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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1933 - (show annotations)
Tue May 28 14:40:36 2013 UTC (11 years, 8 months ago) by vpihour
Original Path: trunk/obj/commission.class.php
File size: 8982 byte(s)
Finalisation du document de l'ordre du jour ou du compte rendu de la commission lors de leur diffusion

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 function commission($id,&$db,$debug) {
10 $this->constructeur($id,$db,$debug);
11 }// fin constructeur
12
13 function afterFormSpecificContent() {
14
15 //Le sous-formulaire spécifique ne s'affiche qu'en consultation
16 if ( $this->parameters['maj'] == 3 ){
17 $f = $this->f;
18 include "../app/commission_manage.php";
19 }
20 }
21
22 //Le type de commission n'est pas modifiable une fois la commission ajoutée
23 function setType(&$form,$maj) {
24 parent::setType($form,$maj);
25
26 //Cache le champ code en ajout
27 if ( $maj == 0 ){
28
29 $form->setType('code', 'hidden');
30 }
31
32 if ( $maj > 0 ) {
33 $form->setType('commission_type', 'selecthiddenstatic');
34 $form->setType('code', 'hiddenstatic');
35 }
36
37 //Cache les champs pour la finalisation
38 $form->setType('om_fichier_commission_ordre_jour', 'hidden');
39 $form->setType('om_fichier_commission_ordre_jour', 'hidden');
40 $form->setType('om_fichier_commission_compte_rendu', 'hidden');
41 $form->setType('om_fichier_commission_compte_rendu', 'hidden');
42 }
43
44 //Action javascript au changement du type de la commission
45 function setOnchange(&$form,$maj){
46 parent::setOnchange($form,$maj);
47
48 $form->setOnchange("commission_type","chargeDonneesCommissionType(this.value);");
49 }
50
51 // Date du jour par défaut
52 function setVal(&$form, $maj, $validation, &$db) {
53
54 if( $maj == 0 ) {
55
56 $form->setVal("date_commission",date('d/m/Y'));
57 }
58 }
59
60 // Génération automatique du code de la commission
61 function setvalF($val) {
62 parent::setValF($val);
63
64 // Récupération du code du type de la commission
65 $codeTypeCommission = "";
66 if ( isset($val['commission_type']) && is_numeric($val['commission_type']))
67 $codeTypeCommission = $this->getCodeTypeCommission($val['commission_type']);
68
69 //Formatte la date
70 $dateFormatee = $this->formatDate($val['date_commission']);
71
72 $this->valF['code'] = $codeTypeCommission.$dateFormatee;
73 }
74
75 //Retourne le code du type de la commission passée en paramètre
76 function getCodeTypeCommission($typeCommission){
77
78 $codeTypeCommission = "";
79
80 $sql = "SELECT
81 code
82 FROM
83 ".DB_PREFIXE."commission_type
84 WHERE
85 commission_type = ".$typeCommission;
86 $codeTypeCommission = $this->db->getOne($sql);
87 $this->f->addToLog("getCodeTypeCommission(): db->getone(\"".$sql."\")", VERBOSE_MODE);
88 if ( database::isError($codeTypeCommission) ){
89 die();
90 }
91
92 return $codeTypeCommission;
93 }
94
95 // Prend une date au format JJ/MM/AAAA et retourne AAAAMMJJ
96 function formatDate($date){
97
98 $dateFormatee = explode('/',$date);
99 $dateFormatee = $dateFormatee[2].$dateFormatee[1].$dateFormatee[0];
100
101 return $dateFormatee;
102 }
103
104 /**
105 * Surcharge pour gérer les actions disponibles dans le portlet
106 */
107 function checkAccessibility() {
108 //
109 parent::checkAccessibility();
110 //Si le document est déjà finalisé, on affiche uniquement le lien de
111 //dé-finalisation pour l'ordre du jour et le compte rendu
112 $om_final_commission_ordre_jour = $this->getVal("om_final_commission_ordre_jour");
113 if ( isset($this->actions_sup["commission_ordre_jour"]) &&
114 $om_final_commission_ordre_jour== "t" ){
115
116 //On cache le lien de finalisation et on affiche le bon lien pour l'édition
117 $this->actions_sup["commission_ordre_jour"]["lien"] = "../spg/file.php?id=";
118 $this->actions_sup["commission_ordre_jour"]["id"] =
119 "&amp;obj=commission&amp;champ=om_fichier_commission_ordre_jour";
120 }
121
122 $om_final_commission_compte_rendu = $this->getVal("om_final_commission_compte_rendu");
123 if ( isset($this->actions_sup["finalisation"]) &&
124 $om_final_commission_compte_rendu== "t" ){
125
126 //On cache le lien de finalisation et on affiche le bon lien pour l'édition
127 $this->actions_sup["commission_compte_rendu"]["lien"] = "../spg/file.php?id=";
128 $this->actions_sup["commission_compte_rendu"]["id"] =
129 "&amp;obj=commission&amp;champ=om_fichier_commission_compte_rendu";
130 }
131 }
132
133 /**
134 * Finalisation des documents lors de la diffusion
135 */
136 function finaliser( $champ = '', $status, $sousform){
137
138 //Si on finalise le document
139 //Génération du PDF
140 $_GET['output'] = "string";
141 $_GET['obj'] = 'commission_'.$champ;
142 $f = $this->f;
143 include '../pdf/pdfetat.php';
144
145 //Métadonnées du document
146 $metadata = array(
147 'filename' => 'commission_'.$champ.'_'.$idx.'.pdf',
148 'mimetype' => 'application/pdf',
149 'size' => strlen($pdf_output)
150 );
151
152 $uid = $this->f->storage->create($pdf_output, $metadata);
153
154 //Mise à jour des données
155 if ( $uid != '' ){
156 // Logger
157 $this->addToLog("finaliser() - begin", EXTRA_VERBOSE_MODE);
158 // Recuperation de la valeur de la cle primaire de l'objet
159 if($this->getVal($this->clePrimaire)!='')
160 $id = $this->getVal($this->clePrimaire);
161 else
162 $id=$this->id;
163
164 //Tableau contenant le lien vers le PDF et lien du portlet pour la mise
165 //à jour de l'interface
166 $lien = '../spg/file.php?obj=commission&'.
167 'champ=om_fichier_commission_'.$champ.'&id='.$id;
168
169 foreach ( $this->champs as $key=>$value )
170 $val[$value] = $this->val[$key];
171 $val['date_commission']=$this->dateDBToForm($val['date_commission']);
172
173 $this->setvalF($val);
174
175 // Verification de la validite des donnees
176 $this->verifier($this->val, $this->db, DEBUG);
177 // Verification du verrou
178 $this->testverrou();
179 // Si les verifications precedentes sont correctes, on procede a
180 // la modification, sinon on ne fait rien et on retourne une erreur
181 if ($this->correct) {
182 // Execution du trigger 'before' specifique au MODE 'update'
183 $this->triggermodifier( $id, $this->db, $this->val, DEBUG);
184
185 //Modifie uniquement les valeurs des champs concernant la finalisation
186 //du document
187 $valF = array(
188 "om_final_commission_".$champ => TRUE,
189 "om_fichier_commission_".$champ => $uid
190 );
191
192 // Execution de la requête de modification des donnees de l'attribut
193 // valF de l'objet dans l'attribut table de l'objet
194 $res = $this->db->autoExecute(DB_PREFIXE.$this->table, $valF,
195 DB_AUTOQUERY_UPDATE, $this->getCle($id));
196 // Si une erreur survient
197 if (database::isError($res)) {
198 // Appel de la methode de recuperation des erreurs
199 $this->erreur_db($res->getDebugInfo(), $res->getMessage(), '');
200 } else {
201 // Log
202 $this->addToLog(_("Requete executee"), VERBOSE_MODE);
203 // Log
204 $message = _("Enregistrement")."&nbsp;".$id."&nbsp;";
205 $message .= _("de la table")."&nbsp;\"".$this->table."\"&nbsp;";
206 $message .= "[&nbsp;".$this->db->affectedRows()."&nbsp;";
207 $message .= _("enregistrement(s) mis a jour")."&nbsp;]";
208 $this->addToLog($message, VERBOSE_MODE);
209 // Mise en place du verrou pour ne pas finaliser plusieurs fois
210 // le meme document
211 $this->verrouille();
212 // Execution du trigger 'after' specifique au MODE 'update'
213 $this->triggermodifierapres($id, $this->db, $this->val, DEBUG);
214
215 return $lien;
216 }
217 } else {
218 // Message d'echec (saut d'une ligne supplementaire avant le
219 // message pour qu'il soit mis en evidence)
220 $this->addToLog("Finalisation non enregistree");
221 return -1;
222 }
223 }
224 // Si le document n'a pas été stocké
225 else{
226 return -1;
227 }
228 }
229 }// fin classe
230 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26