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

Diff of /trunk/obj/demande.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 828 by nhaye, Fri Nov 23 17:50:13 2012 UTC revision 838 by nhaye, Tue Nov 27 12:03:05 2012 UTC
# Line 6  require_once ("../gen/obj/demande.class. Line 6  require_once ("../gen/obj/demande.class.
6    
7  class demande extends demande_gen {  class demande extends demande_gen {
8    
9      var $valIdDemandeur = array();      var $valIdDemandeur = array("petitionnaire_principal" => "",
10                                    "delegataire" => "",
11                                    "petitionnaire" => array());
12        var $postedIdDemandeur = array("petitionnaire_principal" => "",
13                                    "delegataire" => "",
14                                    "petitionnaire" => array());
15    
16      function demande($id,&$db,$debug) {      function demande($id,&$db,$debug) {
17          $this->constructeur($id,$db,$debug);          $this->constructeur($id,$db,$debug);
# Line 22  class demande extends demande_gen { Line 27  class demande extends demande_gen {
27          }          }
28      }      }
29            
30        /**
31         * Méthode de verification du contenu
32         */
33        function verifier($val, &$db, $DEBUG) {
34            parent::verifier($val, $db, $DEBUG);
35            $this->getPostedValues();
36            if(!isset($this->postedIdDemandeur["petitionnaire_principal"]) OR
37               empty($this->postedIdDemandeur["petitionnaire_principal"])) {
38                $this->correct = false;
39                $this->addToMessage("La saisie d'un petitionnaire principal est obligatoire.");
40                $this->valIdDemandeur=$this->postedIdDemandeur;
41            }
42        }
43      /*      /*
44      * Ajout du fielset      * Ajout du fielset
45      * Add fieldset      * Add fieldset
# Line 81  class demande extends demande_gen { Line 99  class demande extends demande_gen {
99       * Ajout des délégataires et pétitionnaires       * Ajout des délégataires et pétitionnaires
100       **/       **/
101      function triggerAjouterApres($id, &$db, $val, $DEBUG){      function triggerAjouterApres($id, &$db, $val, $DEBUG){
102            $this->listeDemandeur();
103          $this->insertLinkDemandeDemandeur($db, $DEBUG);          $this->insertLinkDemandeDemandeur($db, $DEBUG);
104            $this->valIdDemandeur=$this->postedIdDemandeur;
105    
106      }      }
107      function triggerModifierApres($id, &$db, $val, $DEBUG){      function triggerModifierApres($id, &$db, $val, $DEBUG){
108            $this->listeDemandeur();
109          $this->insertLinkDemandeDemandeur($db, $DEBUG);          $this->insertLinkDemandeDemandeur($db, $DEBUG);
110            $this->valIdDemandeur=$this->postedIdDemandeur;
111    
112      }      }
113    
114      /**      /**
115       * Insertion des liens entre la demande et les demendeurs recement ajoutés       * Gestion des liens entre la demande et les demendeurs recement ajoutés
116       **/       **/
117      function insertLinkDemandeDemandeur($db, $DEBUG) {      function insertLinkDemandeDemandeur($db, $DEBUG) {
         $postedValues=$this->getPostedValues();  
118          //          //
119          require_once "../obj/lien_demande_demandeur.class.php";          require_once "../obj/lien_demande_demandeur.class.php";
         $lien_demande_demandeur = new lien_demande_demandeur("]", $db, $DEBUG);  
         // Traitement du tableau des des valeurs postées  
         foreach ($postedValues as $type => $demandeur) {  
             // Liste des petitionnaires secondaires  
             if($type == "petitionnaire" AND count($postedValues["petitionnaire"]) > 0) {  
                 foreach ($demandeur as $petitionnaire) {  
                     // Enregistrement des liens demande petitionnaire  
                     $lien = array('lien_demande_demandeur' => "",  
                                    'petitionnaire_principal' => "f",  
                                    'demande' => $this->valF['demande'],  
                                    'demandeur' => $petitionnaire);  
                     $lien_demande_demandeur -> ajouter($lien, $db, $DEBUG);  
                 }  
             } else {  
                 // Enregistrement des liens demande, patitionnaire_principal/delegataire  
                 $lien = array('lien_demande_demandeur' => "",  
                                        'petitionnaire_principal' =>  
                                         (($type == "petitionnaire_principal")? "t":"f" ),  
                                        'demande' => $this->valF['demande'],  
                                        'demandeur' => $demandeur);  
                 $lien_demande_demandeur -> ajouter($lien, $db, $DEBUG);  
120    
121            // Comparaison de l'id petitionnaire principal
122            if(isset($this->postedIdDemandeur['petitionnaire_principal']) AND
123               !empty($this->postedIdDemandeur['petitionnaire_principal']) AND
124               $this->valIdDemandeur['petitionnaire_principal'] !=
125                            $this->postedIdDemandeur['petitionnaire_principal']) {
126                // Ajout du nouveau lien
127                $this->addLinkDemandeDemandeur($this->postedIdDemandeur['petitionnaire_principal'], true, $db, $DEBUG);
128                if(!empty($this->valIdDemandeur['petitionnaire_principal'])) {
129                    $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['petitionnaire_principal'], $db, $DEBUG);
130                }
131            }
132    
133            // Comparaison du delegataire
134            if(isset($this->postedIdDemandeur['delegataire']) AND
135               !empty($this->postedIdDemandeur['delegataire']) AND
136               $this->valIdDemandeur['delegataire'] !=
137                            $this->postedIdDemandeur['delegataire']) {
138                // Ajout du nouveau lien
139                $this->addLinkDemandeDemandeur($this->postedIdDemandeur['delegataire'], false, $db, $DEBUG);
140                if(!empty($this->valIdDemandeur['delegataire'])) {
141                    $this->deleteLinkDemandeDemandeur($this->valIdDemandeur['delegataire'], $db, $DEBUG);
142                }
143            }
144    
145            // Comparaison des different petitionnaires
146            if(isset($this->postedIdDemandeur['petitionnaire'])) {
147                // Suppression des liens non valides
148                foreach ($this->valIdDemandeur['petitionnaire'] as $petitionnaire) {
149                    if(!in_array($petitionnaire, $this->postedIdDemandeur['petitionnaire'])) {
150                        $this->deleteLinkDemandeDemandeur($petitionnaire, $db, $DEBUG);
151                    }
152                }
153                // Ajout des nouveaux liens
154                foreach ($this->postedIdDemandeur['petitionnaire'] as $petitionnaire) {
155                    if(!in_array($petitionnaire, $this->valIdDemandeur['petitionnaire'])) {
156                        $this->addLinkDemandeDemandeur($petitionnaire, false, $db, $DEBUG);
157                    }
158              }              }
159          }          }
160          // Affichage du nombre de liaisons      }
161          if(count($postedValues) > 1) {  
162              $this->addToMessage(count($postedValues)." "._("demandeurs ont ete ajoutes"));  
163        /**
164         * Fonction permettant d'ajouter un lien
165         * entre la table demande et demandeur
166         **/
167        function addLinkDemandeDemandeur($id, $principal, $db, $DEBUG) {
168            $lienAjout = new lien_demande_demandeur(
169                                            "]",
170                                            $db,
171                                            $DEBUG);
172            $lien = array('lien_demande_demandeur' => "",
173                               'petitionnaire_principal' => (($principal)?"t":"f"),
174                               'demande' => $this->valF['demande'],
175                               'demandeur' => $id);
176            $lienAjout->ajouter($lien, $db, $DEBUG);
177            $lienAjout->__destruct();
178        }
179    
180        /**
181         * Fonction permettant de supprimer un lien
182         * entre la table demande et demandeur
183         **/
184        function deleteLinkDemandeDemandeur($id, $db, $DEBUG) {
185            // Suppression
186            $sql = "DELETE FROM ".DB_PREFIXE."lien_demande_demandeur ".
187                    "WHERE demande=".$this->valF['demande'].
188                    " AND demandeur=".$id;
189            // Execution de la requete de suppression de l'objet
190            $res = $db->query($sql);
191            // Logger
192            $this->f->addToLog("supprimer(): db->query(\"".$sql."\");", VERBOSE_MODE);
193            $this->f->isDatabaseError();
194    
195        }
196    
197        function isLinkDemandeDemandeurExist($idDemandeur) {
198            $sql = "SELECT count(*)
199                    FROM ".DB_PREFIXE."lien_demande_demandeur
200                    WHERE demande = ".$this->valF['demande'].
201                    "AND demandeur = ".$idDemandeur;
202            $count = $this->f->db->getOne($sql);
203            $this->f->addToLog("db->getone(\"".$sql."\");", VERBOSE_MODE);
204            $this->f->isDatabaseError($count);
205            if ($count === 0) {
206                return false;
207          } else {          } else {
208              $this->addToMessage(_("Un demandeur a ete ajoute"));              return true;
209          }          }
210            
211      }      }
212    
213      /**      /**
# Line 134  class demande extends demande_gen { Line 215  class demande extends demande_gen {
215       **/       **/
216      function getPostedValues() {      function getPostedValues() {
217          // Récupération des demandeurs dans POST          // Récupération des demandeurs dans POST
         $values=array();  
218          if (isset($_POST['petitionnaire_principal']) OR          if (isset($_POST['petitionnaire_principal']) OR
219                  isset($_POST['delegataire']) OR                  isset($_POST['delegataire']) OR
220                      isset($_POST['petitionnaire'])) {                      isset($_POST['petitionnaire'])) {
221              if( isset($_POST['petitionnaire_principal']) AND              if( isset($_POST['petitionnaire_principal']) AND
222                      !empty($_POST['petitionnaire_principal'])) {                      !empty($_POST['petitionnaire_principal'])) {
223                  $values['petitionnaire_principal'] = $_POST['petitionnaire_principal'];                  $this->postedIdDemandeur['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
224              }              }
225              if( isset($_POST['delegataire']) AND              if( isset($_POST['delegataire']) AND
226                      !empty($_POST['delegataire'])) {                      !empty($_POST['delegataire'])) {
227                  $values['delegataire'] = $_POST['delegataire'];                  $this->postedIdDemandeur['delegataire'] = $_POST['delegataire'];
228              }              }
229              if( isset($_POST['petitionnaire']) AND              if( isset($_POST['petitionnaire']) AND
230                      !empty($_POST['petitionnaire'])) {                      !empty($_POST['petitionnaire'])) {
231                  $values['petitionnaire'] = $_POST['petitionnaire'];                  $this->postedIdDemandeur['petitionnaire'] = $_POST['petitionnaire'];
232              }              }
233          }          }
         return $values;  
234      }      }
235      /**      /**
236       * Méthode permettant de récupérer les id des demandeur lié à la demande       * Méthode permettant de récupérer les id des demandeur lié à la demande
237       **/       **/
238      function setValIdDemandeur() {      function listeDemandeur() {
239          // Récupération des demandeurs de la base          // Récupération des demandeurs de la base
240          $sql = "SELECT demandeur.demandeur,          $sql = "SELECT demandeur.demandeur,
241                          demandeur.type_demandeur,                          demandeur.type_demandeur,
# Line 166  class demande extends demande_gen { Line 245  class demande extends demande_gen {
245              ON demandeur.demandeur=lien_demande_demandeur.demandeur              ON demandeur.demandeur=lien_demande_demandeur.demandeur
246              WHERE demande = ".$this->val[array_search('demande', $this->champs)];              WHERE demande = ".$this->val[array_search('demande', $this->champs)];
247          $res = $this->f->db->query($sql);          $res = $this->f->db->query($sql);
248          $this->f->addToLog("setValIdDemandeur() : ".$sql);          $this->f->addToLog("listeDemandeur() : ".$sql);
249          $this->f->isDatabaseError($res);          $this->f->isDatabaseError($res);
250          // Stoquage du résultat dans un tableau          // Stoquage du résultat dans un tableau
251          while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){          while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
# Line 180  class demande extends demande_gen { Line 259  class demande extends demande_gen {
259                  $this->valIdDemandeur['delegataire']=$row['demandeur'];                  $this->valIdDemandeur['delegataire']=$row['demandeur'];
260              }              }
261          }          }
         // Demandeurs de la base ÉCRASÉS dans le tableau par ceux du POST  
         $this->valIdDemandeur = array_merge($this->valIdDemandeur, $this->getPostedValues());  
262      }      }
263    
264      /**      /**
265       * Ajout de la liste des demandeurs       * Ajout de la liste des demandeurs
266       */       */
267      function formSpecificContent($maj) {      function formSpecificContent($maj) {
268          $this->setValIdDemandeur();          if(!$this->correct) {
269                $this->listeDemandeur();
270            }
271            if($maj < 2 AND !$this->correct) {
272                $linkable = true;
273            } else {
274                $linkable = false;
275            }
276          // Conteneur de la listes des demandeurs          // Conteneur de la listes des demandeurs
277          echo "<div class=\"demande_hidden_bloc col_12\">";          echo "<div class=\"demande_hidden_bloc col_12\">";
278          echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";          echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
# Line 199  class demande extends demande_gen { Line 283  class demande extends demande_gen {
283          require_once "../obj/delegataire.class.php";          require_once "../obj/delegataire.class.php";
284    
285          // Affichage du bloc pétitionnaire principal / délégataire          // Affichage du bloc pétitionnaire principal / délégataire
286            // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
287          echo "<div id=\"petitionnaire_principal_delegataire\">";          echo "<div id=\"petitionnaire_principal_delegataire\">";
288          // Affichage de la synthèse          // Affichage de la synthèse
289          if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND          if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
# Line 206  class demande extends demande_gen { Line 291  class demande extends demande_gen {
291              $demandeur = new petitionnaire(              $demandeur = new petitionnaire(
292                                  $this->valIdDemandeur["petitionnaire_principal"],                                  $this->valIdDemandeur["petitionnaire_principal"],
293                                  $this->f->db,false);                                  $this->f->db,false);
294              $demandeur -> afficherSynthese("petitionnaire_principal");              $demandeur -> afficherSynthese("petitionnaire_principal", $linkable);
295              $demandeur -> __destruct();              $demandeur -> __destruct();
296          } else {          }
297              // Si en édition de formulaire          // Si en édition de formulaire
298              if($maj < 2 AND $this->correct != true) {          if($maj < 2 AND $this->correct != true) {
299                  // Bouton d'ajout du pétitionnaire principal              // Bouton d'ajout du pétitionnaire principal
300                  echo "<input id=\"add_petitionnaire_principal\"              // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
301                      class=\"ui-button ui-widget ui-state-default ui-corner-all\"              echo "<input id=\"add_petitionnaire_principal\"
302                      type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>";                  class=\"ui-button ui-widget ui-state-default ui-corner-all\"
303              }                  type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>";
304                echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> ";
305                // Bouton d'ajout du delegataire
306                // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
307                echo "<input id=\"add_delegataire\"
308                    class=\"ui-button ui-widget ui-state-default ui-corner-all\"
309                    type=\"button\" value=\""._("Saisir le delegataire")."\"/>";
310          }          }
311          // Affichage de la synthèse          // Affichage de la synthèse
312          if (isset ($this->valIdDemandeur["delegataire"]) AND          if (isset ($this->valIdDemandeur["delegataire"]) AND
313              !empty($this->valIdDemandeur["delegataire"])) {              !empty($this->valIdDemandeur["delegataire"])) {
             echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> ";  
314              $demandeur = new delegataire($this->valIdDemandeur["delegataire"],              $demandeur = new delegataire($this->valIdDemandeur["delegataire"],
315                                         $this->f->db,false);                                         $this->f->db,false);
316              $demandeur -> afficherSynthese("delegataire");              $demandeur -> afficherSynthese("delegataire", $linkable);
317              $demandeur -> __destruct();              $demandeur -> __destruct();
         } else {  
             if($maj < 2 AND $this->correct != true AND  
                isset ($this->valIdDemandeur["petitionnaire_principal"]) AND  
             !empty($this->valIdDemandeur["petitionnaire_principal"])) {  
                 echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> ";  
                 // Bouton d'ajout du pétitionnaire principal  
                 echo "<input id=\"add_delegataire\"  
                     class=\"ui-button ui-widget ui-state-default ui-corner-all\"  
                     type=\"button\" value=\""._("Saisir le delegataire")."\"/>";  
             }  
318          }          }
319            
320          echo "</div>";          echo "</div>";
321    
322          // Bloc des pétitionnaires secondaires          // Bloc des pétitionnaires secondaires
323            // L'ID DU DIV SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
324          echo "<div id=\"listePetitionnaires\">";          echo "<div id=\"listePetitionnaires\">";
325    
326           // Affichage de la synthèse           // Affichage de la synthèse
# Line 248  class demande extends demande_gen { Line 330  class demande extends demande_gen {
330              foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {              foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {
331                  $demandeur = new petitionnaire($petitionnaire,                  $demandeur = new petitionnaire($petitionnaire,
332                                         $this->f->db,false);                                         $this->f->db,false);
333                  $demandeur -> afficherSynthese("petitionnaire");                  $demandeur -> afficherSynthese("petitionnaire", $linkable);
334                  $demandeur -> __destruct();                  $demandeur -> __destruct();
335              }              }
336                            
337          }          }
338          if ($maj < 2 AND $this->correct != true AND          if ($maj < 2 AND !$this->correct) {
339              isset ($this->valIdDemandeur["petitionnaire_principal"]) AND              // L'ID DE L'INPUT SUIVANT EST NECESSAIRE AU BON FONCTIONNEMENT DU JS
             !empty($this->valIdDemandeur["petitionnaire_principal"])) {  
340              echo "<input id=\"add_petitionnaire\"              echo "<input id=\"add_petitionnaire\"
341                      class=\"ui-button ui-widget ui-state-default ui-corner-all\"                      class=\"ui-button ui-widget ui-state-default ui-corner-all\"
342                      type=\"button\" value=\""._("Ajouter un petitionnaire")."\"/>";                      type=\"button\" value=\""._("Ajouter un petitionnaire")."\"/>";

Legend:
Removed from v.828  
changed lines
  Added in v.838

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26