/[openfoncier]/trunk/obj/commission.class.php
ViewVC logotype

Annotation of /trunk/obj/commission.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1933 - (hide annotations)
Tue May 28 14:40:36 2013 UTC (11 years, 8 months ago) by vpihour
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 fmichon 1022 <?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 fmichon 1332 function afterFormSpecificContent() {
14 vpihour 1389
15     //Le sous-formulaire spécifique ne s'affiche qu'en consultation
16     if ( $this->parameters['maj'] == 3 ){
17     $f = $this->f;
18 fmichon 1520 include "../app/commission_manage.php";
19 vpihour 1389 }
20 fmichon 1332 }
21 vpihour 1389
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 vpihour 1401 //Cache le champ code en ajout
27     if ( $maj == 0 ){
28    
29     $form->setType('code', 'hidden');
30     }
31    
32 vpihour 1389 if ( $maj > 0 ) {
33 vpihour 1390 $form->setType('commission_type', 'selecthiddenstatic');
34 vpihour 1401 $form->setType('code', 'hiddenstatic');
35 vpihour 1389 }
36 vpihour 1899
37     //Cache les champs pour la finalisation
38 vpihour 1933 $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 vpihour 1389 }
43 fmichon 1332
44 vpihour 1389 //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 vpihour 1401
60     // Génération automatique du code de la commission
61 vpihour 1453 function setvalF($val) {
62     parent::setValF($val);
63 vpihour 1772
64 vpihour 1401 // Récupération du code du type de la commission
65 vpihour 1772 $codeTypeCommission = "";
66     if ( isset($val['commission_type']) && is_numeric($val['commission_type']))
67     $codeTypeCommission = $this->getCodeTypeCommission($val['commission_type']);
68 vpihour 1401
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 fmichon 1886 $this->f->addToLog("getCodeTypeCommission(): db->getone(\"".$sql."\")", VERBOSE_MODE);
88 vpihour 1773 if ( database::isError($codeTypeCommission) ){
89     die();
90     }
91 vpihour 1401
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 vpihour 1933
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 fmichon 1022 }// fin classe
230     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26