/[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 808 by nhaye, Thu Nov 22 16:37:35 2012 UTC revision 828 by nhaye, Fri Nov 23 17:50:13 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;      var $valIdDemandeur = array();
10    
11      function demande($id,&$db,$debug) {      function demande($id,&$db,$debug) {
12          $this->constructeur($id,$db,$debug);          $this->constructeur($id,$db,$debug);
# Line 78  class demande extends demande_gen { Line 78  class demande extends demande_gen {
78      }      }
79    
80      /**      /**
81       * Méthode permettant de récupérer les id des demandeur lié à la demande       * Ajout des délégataires et pétitionnaires
82         **/
83        function triggerAjouterApres($id, &$db, $val, $DEBUG){
84            $this->insertLinkDemandeDemandeur($db, $DEBUG);
85    
86        }
87        function triggerModifierApres($id, &$db, $val, $DEBUG){
88            $this->insertLinkDemandeDemandeur($db, $DEBUG);
89    
90        }
91    
92        /**
93         * Insertion des liens entre la demande et les demendeurs recement ajoutés
94       **/       **/
95      function getValIdDemandeur() {      function insertLinkDemandeDemandeur($db, $DEBUG) {
96          if( $validation > 0 ) {          $postedValues=$this->getPostedValues();
97              foreach($_POST as $champ => $val) {          //
98                  if(!in_array($champ, $this->champs)) {          require_once "../obj/lien_demande_demandeur.class.php";
99                      $this->valIdDemandeur[$champ]=$val;          $lien_demande_demandeur = new lien_demande_demandeur("]", $db, $DEBUG);
100            // Traitement du tableau des des valeurs postées
101            foreach ($postedValues as $type => $demandeur) {
102                // Liste des petitionnaires secondaires
103                if($type == "petitionnaire" AND count($postedValues["petitionnaire"]) > 0) {
104                    foreach ($demandeur as $petitionnaire) {
105                        // Enregistrement des liens demande petitionnaire
106                        $lien = array('lien_demande_demandeur' => "",
107                                       'petitionnaire_principal' => "f",
108                                       'demande' => $this->valF['demande'],
109                                       'demandeur' => $petitionnaire);
110                        $lien_demande_demandeur -> ajouter($lien, $db, $DEBUG);
111                  }                  }
112                } else {
113                    // Enregistrement des liens demande, patitionnaire_principal/delegataire
114                    $lien = array('lien_demande_demandeur' => "",
115                                           'petitionnaire_principal' =>
116                                            (($type == "petitionnaire_principal")? "t":"f" ),
117                                           'demande' => $this->valF['demande'],
118                                           'demandeur' => $demandeur);
119                    $lien_demande_demandeur -> ajouter($lien, $db, $DEBUG);
120    
121                }
122            }
123            // Affichage du nombre de liaisons
124            if(count($postedValues) > 1) {
125                $this->addToMessage(count($postedValues)." "._("demandeurs ont ete ajoutes"));
126            } else {
127                $this->addToMessage(_("Un demandeur a ete ajoute"));
128            }
129            
130        }
131    
132        /**
133         * Methode de recupération des valeurs postées
134         **/
135        function getPostedValues() {
136            // Récupération des demandeurs dans POST
137            $values=array();
138            if (isset($_POST['petitionnaire_principal']) OR
139                    isset($_POST['delegataire']) OR
140                        isset($_POST['petitionnaire'])) {
141                if( isset($_POST['petitionnaire_principal']) AND
142                        !empty($_POST['petitionnaire_principal'])) {
143                    $values['petitionnaire_principal'] = $_POST['petitionnaire_principal'];
144                }
145                if( isset($_POST['delegataire']) AND
146                        !empty($_POST['delegataire'])) {
147                    $values['delegataire'] = $_POST['delegataire'];
148              }              }
149          } elseif( $maj > 0 ) {              if( isset($_POST['petitionnaire']) AND
150              $sql = "SELECT demandeur, petitionnaire_principal                      !empty($_POST['petitionnaire'])) {
151                  FROM lien_demande_demandeur                  $values['petitionnaire'] = $_POST['petitionnaire'];
                 WHERE demande = ".$this->val[array_search('demande', $this->champs)];  
             $res = $f->db->query($sql);  
             $f->isDatabaseError($res);  
             while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){  
                 $this->valIdDemandeur[$row['demande']]=$row['petitionnaire_principal'];  
152              }              }
153          }          }
154            return $values;
155        }
156        /**
157         * Méthode permettant de récupérer les id des demandeur lié à la demande
158         **/
159        function setValIdDemandeur() {
160            // Récupération des demandeurs de la base
161            $sql = "SELECT demandeur.demandeur,
162                            demandeur.type_demandeur,
163                            lien_demande_demandeur.petitionnaire_principal
164                FROM ".DB_PREFIXE."lien_demande_demandeur
165                INNER JOIN ".DB_PREFIXE."demandeur
166                ON demandeur.demandeur=lien_demande_demandeur.demandeur
167                WHERE demande = ".$this->val[array_search('demande', $this->champs)];
168            $res = $this->f->db->query($sql);
169            $this->f->addToLog("setValIdDemandeur() : ".$sql);
170            $this->f->isDatabaseError($res);
171            // Stoquage du résultat dans un tableau
172            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){
173                if ($row['petitionnaire_principal'] == 't' AND
174                    $row['type_demandeur']=="petitionnaire") {
175                    $this->valIdDemandeur['petitionnaire_principal']=$row['demandeur'];
176                } elseif ($row['petitionnaire_principal'] == 'f' AND
177                    $row['type_demandeur']=="petitionnaire"){
178                    $this->valIdDemandeur['petitionnaire'][]=$row['demandeur'];
179                } elseif ($row['type_demandeur']=="delegataire"){
180                    $this->valIdDemandeur['delegataire']=$row['demandeur'];
181                }
182            }
183            // Demandeurs de la base ÉCRASÉS dans le tableau par ceux du POST
184            $this->valIdDemandeur = array_merge($this->valIdDemandeur, $this->getPostedValues());
185      }      }
186    
187      /**      /**
188       * Ajout de la liste des demandeurs       * Ajout de la liste des demandeurs
189       */       */
190      function formSpecificContent($maj) {      function formSpecificContent($maj) {
191            $this->setValIdDemandeur();
192          // Conteneur de la listes des demandeurs          // Conteneur de la listes des demandeurs
193          echo "<div class=\"demande_hidden_bloc col_12\">";          echo "<div class=\"demande_hidden_bloc col_12\">";
194          echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";          echo "<fieldset class=\"cadre ui-corner-all ui-widget-content\">";
195          echo "  <legend class=\"ui-corner-all ui-widget-content ui-state-active\">"          echo "  <legend class=\"ui-corner-all ui-widget-content ui-state-active\">"
196                  ._("Petitionnaire")."</legend>";                  ._("Petitionnaire")."</legend>";
197          // Si des demandeurs sont liés à la demande          // Si des demandeurs sont liés à la demande
198          if( count($this->valIdDemandeur) > 0 ) {          require_once "../obj/petitionnaire.class.php";
199            require_once "../obj/delegataire.class.php";
200    
201            // Affichage du bloc pétitionnaire principal / délégataire
202            echo "<div id=\"petitionnaire_principal_delegataire\">";
203            // Affichage de la synthèse
204            if (isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
205                !empty($this->valIdDemandeur["petitionnaire_principal"])) {
206                $demandeur = new petitionnaire(
207                                    $this->valIdDemandeur["petitionnaire_principal"],
208                                    $this->f->db,false);
209                $demandeur -> afficherSynthese("petitionnaire_principal");
210                $demandeur -> __destruct();
211          } else {          } else {
212              // Bouton d'ajout du pétitionnaire principal              // Si en édition de formulaire
213              echo "<input id=\"add_petitionnaire_principal\"              if($maj < 2 AND $this->correct != true) {
214                  class=\"ui-button ui-widget ui-state-default ui-corner-all\"                  // Bouton d'ajout du pétitionnaire principal
215                  type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>";                  echo "<input id=\"add_petitionnaire_principal\"
216                        class=\"ui-button ui-widget ui-state-default ui-corner-all\"
217                        type=\"button\" value=\""._("Saisir le petitionnaire principal")."\"/>";
218                }
219            }
220            // Affichage de la synthèse
221            if (isset ($this->valIdDemandeur["delegataire"]) AND
222                !empty($this->valIdDemandeur["delegataire"])) {
223                echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> ";
224                $demandeur = new delegataire($this->valIdDemandeur["delegataire"],
225                                           $this->f->db,false);
226                $demandeur -> afficherSynthese("delegataire");
227                $demandeur -> __destruct();
228            } else {
229                if($maj < 2 AND $this->correct != true AND
230                   isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
231                !empty($this->valIdDemandeur["petitionnaire_principal"])) {
232                    echo " <span class=\"om-icon om-icon-16 om-icon-fix arrow-right-16\">></span> ";
233                    // Bouton d'ajout du pétitionnaire principal
234                    echo "<input id=\"add_delegataire\"
235                        class=\"ui-button ui-widget ui-state-default ui-corner-all\"
236                        type=\"button\" value=\""._("Saisir le delegataire")."\"/>";
237                }
238          }          }
239            echo "</div>";
240    
241            // Bloc des pétitionnaires secondaires
242            echo "<div id=\"listePetitionnaires\">";
243    
244             // Affichage de la synthèse
245            if (isset ($this->valIdDemandeur["petitionnaire"]) AND
246                !empty($this->valIdDemandeur["petitionnaire"])) {
247                
248                foreach ($this->valIdDemandeur["petitionnaire"] as $petitionnaire) {
249                    $demandeur = new petitionnaire($petitionnaire,
250                                           $this->f->db,false);
251                    $demandeur -> afficherSynthese("petitionnaire");
252                    $demandeur -> __destruct();
253                }
254                
255            }
256            if ($maj < 2 AND $this->correct != true AND
257                isset ($this->valIdDemandeur["petitionnaire_principal"]) AND
258                !empty($this->valIdDemandeur["petitionnaire_principal"])) {
259                echo "<input id=\"add_petitionnaire\"
260                        class=\"ui-button ui-widget ui-state-default ui-corner-all\"
261                        type=\"button\" value=\""._("Ajouter un petitionnaire")."\"/>";
262            }
263            echo "</div>";
264          echo "</fieldset>";          echo "</fieldset>";
265          echo "</div>";          echo "</div>";
266      }      }

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26