/[openfoncier]/branches/3.14.x-lettrerar/obj/commission.class.php
ViewVC logotype

Contents of /branches/3.14.x-lettrerar/obj/commission.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3485 - (show annotations)
Wed May 20 14:52:14 2015 UTC (9 years, 8 months ago) by vpihour
Original Path: branches/3.14.x/obj/commission.class.php
File size: 13604 byte(s)
Lors de la suppression des consultations, instructions et commissions, le ocument finalisé n'était pas supprimé. C'est corrigé.

1 <?php
2 //$Id$
3 //gen openMairie le 07/12/2012 17:33
4
5 require_once ("../gen/obj/commission.class.php");
6
7 class commission extends commission_gen {
8
9 // Champs contenant les UID des fichiers
10 var $abstract_type = array(
11 "om_fichier_commission_ordre_jour" => "file",
12 "om_fichier_commission_compte_rendu" => "file",
13 );
14
15 var $metadata = array(
16 "om_fichier_commission_ordre_jour" => array(
17 "dossier" => "getDossier",
18 "dossier_version" => "getDossierVersion",
19 "numDemandeAutor" => "getNumDemandeAutor",
20 "anneemoisDemandeAutor" => "getAnneemoisDemandeAutor",
21 "typeInstruction" => "getTypeInstruction",
22 "statutAutorisation" => "getStatutAutorisation",
23 "typeAutorisation" => "getTypeAutorisation",
24 "dateEvenementDocument" => "getDateEvenementDocument",
25 "groupeInstruction" => 'getGroupeInstruction',
26 "title" => 'getTitleOrdreCommission',
27 ),
28 "om_fichier_commission_compte_rendu" => array(
29 "dossier" => "getDossier",
30 "dossier_version" => "getDossierVersion",
31 "numDemandeAutor" => "getNumDemandeAutor",
32 "anneemoisDemandeAutor" => "getAnneemoisDemandeAutor",
33 "typeInstruction" => "getTypeInstruction",
34 "statutAutorisation" => "getStatutAutorisation",
35 "typeAutorisation" => "getTypeAutorisation",
36 "dateEvenementDocument" => "getDateEvenementDocument",
37 "groupeInstruction" => 'getGroupeInstruction',
38 "title" => 'getTitleCompteRenduCommission',
39 ),
40 );
41
42 function commission($id,&$db,$debug) {
43 $this->constructeur($id,$db,$debug);
44 }// fin constructeur
45
46 function afterFormSpecificContent() {
47
48 //Le sous-formulaire spécifique ne s'affiche qu'en consultation
49 if ( $this->parameters['maj'] == 3 ){
50 $f = $this->f;
51 include "../app/commission_manage.php";
52 }
53 }
54
55 //Le type de commission n'est pas modifiable une fois la commission ajoutée
56 function setType(&$form,$maj) {
57 parent::setType($form,$maj);
58
59 //Cache le champ code en ajout
60 if ( $maj == 0 ){
61
62 $form->setType('code', 'hidden');
63 }
64
65 if ( $maj > 0 ) {
66 $form->setType('commission_type', 'selecthiddenstatic');
67 $form->setType('code', 'hiddenstatic');
68 }
69
70 //Cache les champs pour la finalisation
71 $form->setType('om_fichier_commission_ordre_jour', 'hidden');
72 $form->setType('om_final_commission_ordre_jour', 'hidden');
73 $form->setType('om_fichier_commission_compte_rendu', 'hidden');
74 $form->setType('om_final_commission_compte_rendu', 'hidden');
75 }
76
77 //Action javascript au changement du type de la commission
78 function setOnchange(&$form,$maj){
79 parent::setOnchange($form,$maj);
80
81 $form->setOnchange("commission_type","chargeDonneesCommissionType(this.value);");
82 }
83
84 // Date du jour par défaut
85 function setVal(&$form, $maj, $validation, &$db) {
86
87 if( $maj == 0 ) {
88
89 $form->setVal("date_commission",date('d/m/Y'));
90 }
91 }
92
93 // Génération automatique du code de la commission
94 function setvalF($val) {
95 parent::setValF($val);
96
97 // Récupération du code du type de la commission
98 $codeTypeCommission = "";
99 if ( isset($val['commission_type']) && is_numeric($val['commission_type']))
100 $codeTypeCommission = $this->getCodeTypeCommission($val['commission_type']);
101
102 //Formatte la date
103 $dateFormatee = $this->formatDate($val['date_commission']);
104
105 $this->valF['code'] = $codeTypeCommission.$dateFormatee;
106 }
107
108 //Retourne le code du type de la commission passée en paramètre
109 function getCodeTypeCommission($typeCommission){
110
111 $codeTypeCommission = "";
112
113 $sql = "SELECT
114 code
115 FROM
116 ".DB_PREFIXE."commission_type
117 WHERE
118 commission_type = ".$typeCommission;
119 $codeTypeCommission = $this->db->getOne($sql);
120 $this->f->addToLog("getCodeTypeCommission(): db->getone(\"".$sql."\")", VERBOSE_MODE);
121 if ( database::isError($codeTypeCommission) ){
122 die();
123 }
124
125 return $codeTypeCommission;
126 }
127
128 // Prend une date au format JJ/MM/AAAA et retourne AAAAMMJJ
129 function formatDate($date){
130
131 $dateFormatee = explode('/',$date);
132 $dateFormatee = $dateFormatee[2].$dateFormatee[1].$dateFormatee[0];
133
134 return $dateFormatee;
135 }
136
137 /**
138 * Surcharge pour gérer les actions disponibles dans le portlet
139 */
140 function checkAccessibility() {
141 //
142 parent::checkAccessibility();
143 //Si le document est déjà finalisé, on affiche uniquement le lien de
144 //dé-finalisation pour l'ordre du jour et le compte rendu
145 $om_final_commission_ordre_jour = $this->getVal("om_final_commission_ordre_jour");
146 if ( isset($this->actions_sup["commission_ordre_jour"]) &&
147 $om_final_commission_ordre_jour== "t" ){
148
149 //On cache le lien de finalisation et on affiche le bon lien pour l'édition
150 $this->actions_sup["commission_ordre_jour"]["lien"] = "../spg/file.php?id=";
151 $this->actions_sup["commission_ordre_jour"]["id"] =
152 "&amp;obj=commission&amp;champ=om_fichier_commission_ordre_jour";
153 }
154
155 $om_final_commission_compte_rendu = $this->getVal("om_final_commission_compte_rendu");
156 if ( isset($this->actions_sup["finalisation"]) &&
157 $om_final_commission_compte_rendu== "t" ){
158
159 //On cache le lien de finalisation et on affiche le bon lien pour l'édition
160 $this->actions_sup["commission_compte_rendu"]["lien"] = "../spg/file.php?id=";
161 $this->actions_sup["commission_compte_rendu"]["id"] =
162 "&amp;obj=commission&amp;champ=om_fichier_commission_compte_rendu";
163 }
164 }
165
166 /**
167 * Finalisation des documents.
168 * @param string $champ champ du fichier à finaliser
169 * @param booleen $status permet de définir si on finalise ou définalise
170 * @param string $sousform permet de savoir si se trouve dans un sousformulaire (passé au javascript)
171 */
172 function finaliser( $champ = '', $status, $sousform){
173
174 //Si on finalise le document
175 //Génération du PDF
176 $_GET['output'] = "string";
177 $_GET['obj'] = 'commission_'.$champ;
178 $f = $this->f;
179 include '../pdf/pdfetat.php';
180
181 //Métadonnées du document
182 $metadata = array(
183 'filename' => 'commission_'.$champ.'_'.$idx.'.pdf',
184 'mimetype' => 'application/pdf',
185 'size' => strlen($pdf_output)
186 );
187 // Récupération des métadonnées calculées après validation
188 $spe_metadata = $this->getMetadata("om_fichier_commission_".$champ);
189 $metadata = array_merge($metadata, $spe_metadata);
190
191 $uid = $this->f->storage->create($pdf_output, $metadata);
192
193 // Recuperation de la valeur de la cle primaire de l'objet
194 if($this->getVal($this->clePrimaire)!='')
195 $id = $this->getVal($this->clePrimaire);
196 else
197 $id=$this->id;
198 //Mise à jour des données
199 if ( $uid != '' && $uid != 'OP_FAILURE' ){
200 // Logger
201 $this->addToLog("finaliser() - begin", EXTRA_VERBOSE_MODE);
202
203 //Tableau contenant le lien vers le PDF et lien du portlet pour la mise
204 //à jour de l'interface
205 $lien = '../spg/file.php?obj=commission&'.
206 'champ=om_fichier_commission_'.$champ.'&id='.$id;
207
208 foreach ( $this->champs as $key=>$value )
209 $val[$value] = $this->val[$key];
210 $val['date_commission']=$this->dateDBToForm($val['date_commission']);
211
212 $this->setvalF($val);
213
214 // Verification de la validite des donnees
215 $this->verifier($this->val, $this->db, DEBUG);
216 // Verification du verrou
217 $this->testverrou();
218 // Si les verifications precedentes sont correctes, on procede a
219 // la modification, sinon on ne fait rien et on retourne une erreur
220 if ($this->correct) {
221 // Execution du trigger 'before' specifique au MODE 'update'
222 $this->triggermodifier( $id, $this->db, $this->val, DEBUG);
223
224 //Modifie uniquement les valeurs des champs concernant la finalisation
225 //du document
226 $valF = array(
227 "om_final_commission_".$champ => TRUE,
228 "om_fichier_commission_".$champ => $uid
229 );
230
231 // Execution de la requête de modification des donnees de l'attribut
232 // valF de l'objet dans l'attribut table de l'objet
233 $res = $this->db->autoExecute(DB_PREFIXE.$this->table, $valF,
234 DB_AUTOQUERY_UPDATE, $this->getCle($id));
235 // Si une erreur survient
236 if (database::isError($res)) {
237 // Appel de la methode de recuperation des erreurs
238 $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
239 } else {
240 // Log
241 $this->addToLog(_("Requete executee"), VERBOSE_MODE);
242 // Log
243 $message = _("Enregistrement")."&nbsp;".$id."&nbsp;";
244 $message .= _("de la table")."&nbsp;\"".$this->table."\"&nbsp;";
245 $message .= "[&nbsp;".$this->db->affectedRows()."&nbsp;";
246 $message .= _("enregistrement(s) mis a jour")."&nbsp;]";
247 $this->addToLog($message, VERBOSE_MODE);
248 // Mise en place du verrou pour ne pas finaliser plusieurs fois
249 // le meme document
250 $this->verrouille();
251 // Execution du trigger 'after' specifique au MODE 'update'
252 $this->triggermodifierapres($id, $this->db, $this->val, DEBUG);
253
254 return $lien;
255 }
256 } else {
257 // Message d'echec (saut d'une ligne supplementaire avant le
258 // message pour qu'il soit mis en evidence)
259 $this->addToLog(
260 _("Finalisation non enregistree")." - ".
261 _("id commission_").$champ." = ".$id." - ".
262 _("uid fichier")." = ".$uid
263 );
264 return -1;
265 }
266 }
267 // Si le document n'a pas été stocké
268 else{
269 $this->addToLog(
270 _("Finalisation non enregistree")." - ".
271 _("id commission_").$champ." = ".$id." - ".
272 _("uid fichier")." = ".$uid
273 );
274 return -1;
275 }
276 }
277
278 /**
279 * Récupération du numéro de dossier d'instruction à ajouter aux métadonnées
280 * @return chaîne vide
281 */
282 protected function getDossier() {
283 return "";
284 }
285 /**
286 * Récupération la version du dossier d'instruction à ajouter aux métadonnées
287 * @return chaîne vide
288 */
289 protected function getDossierVersion() {
290 return "";
291 }
292 /**
293 * Récupération du numéro de dossier d'autorisation à ajouter aux métadonnées
294 * @return chaîne vide
295 */
296 protected function getNumDemandeAutor() {
297 return "";
298 }
299 /**
300 * Récupération de la date de demande initiale du dossier à ajouter aux métadonnées
301 * @return chaîne vide
302 */
303 protected function getAnneemoisDemandeAutor() {
304 return "";
305 }
306 /**
307 * Récupération du type de dossier d'instruction à ajouter aux métadonnées
308 * @return chaîne vide
309 */
310 protected function getTypeInstruction() {
311 return "";
312 }
313 /**
314 * Récupération du statut du dossier d'autorisation à ajouter aux métadonnées
315 * @return chaîne vide
316 */
317 protected function getStatutAutorisation() {
318 return "";
319 }
320 /**
321 * Récupération du type de dossier d'autorisation à ajouter aux métadonnées
322 * @return chaîne vide
323 */
324 protected function getTypeAutorisation() {
325 return "";
326 }
327 /**
328 * Récupération de la date d'ajout de document à ajouter aux métadonnées
329 * @return date de l'évènement
330 */
331 protected function getDateEvenementDocument() {
332 return date("Y-m-d");
333 }
334 /**
335 * Récupération du groupe d'instruction à ajouter aux métadonnées
336 * @return string Groupe d'instruction
337 */
338 protected function getGroupeInstruction() {
339 return "ADS";
340 }
341 /**
342 * Récupération du type du document à ajouter aux métadonnées
343 * @return string Type de document
344 */
345 protected function getTitleOrdreCommission() {
346 return "Ordre du jour de commission";
347 }
348 /**
349 * Récupération du type du document à ajouter aux métadonnées
350 * @return string Type de document
351 */
352 protected function getTitleCompteRenduCommission() {
353 return "Compte-rendu de commission";
354 }
355
356 }// fin classe
357 ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26