/[openfoncier]/trunk/app/consultation_multiple.php
ViewVC logotype

Diff of /trunk/app/consultation_multiple.php

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

revision 530 by vpihour, Mon Oct 22 15:27:20 2012 UTC revision 576 by vpihour, Fri Nov 2 10:09:06 2012 UTC
# Line 1  Line 1 
1  <?php  <?php
2    /**
3    * Script personnalisé pour les consultations multiples.
4    *
5    * @package openfoncier
6    * @version SVN : $Id$
7    */
8    
9      require_once "../obj/utils.class.php";      require_once "../obj/utils.class.php";
10            
11      // Identifiant de l'objet metier a copier      // Identifiant de l'objet metier a copier
12      (isset($_GET['idx']) ? $idx = $_GET['idx'] : $idx = "");      (isset($_GET['idx']) ? $idx = $_GET['idx'] : $idx = "");
13      // Nom de l'objet metier      // Nom de l'objet metier
14      (isset($_GET['obj']) ? $obj = $_GET['obj'] : $obj = "");      (isset($_GET['obj']) ? $obj = $_GET['obj'] : $obj = "");
15        //formulaire retour
16        (isset($_GET['ret']) ? $retourformulaire = $_GET['ret'] : $retourformulaire = "");
17        (isset($_GET['date_envoi']) ? $date_envoi = $_GET['date_envoi'] : $date_envoi = "");
18            
19      $f = new utils("nohtml");      $f = new utils("nohtml");
20    
21      $liste_gauche = "";      $liste_gauche = "";
22    
23      /*Requête qui récupère les services qui sont dans des thématiques*/      if ( isset($_GET) && isset($_GET['data']) && !empty($_GET['data']) ){
24      $sql =          $f->disableLog();
25          "SELECT          /*Récupération des données et formatage.*/
26              ser_cat.service_categorie, ser_cat.libelle AS them_lib,          $donnees_temp = explode(';', $_GET['data']);
27              ser.service, ser.libelle AS ser_lib, ser.consultation_papier          for ( $i = 1 ; $i < count($donnees_temp) ; $i++ )
28          FROM              $donnees[] = explode('_', $donnees_temp[$i]);
             public.lien_service_service_categorie lie,  
             public.service_categorie ser_cat,  
             public.service ser  
         WHERE  
             ser_cat.service_categorie = lie.service_categorie AND  
             ser.service = lie.service AND  
             (  
                 ser.om_validite_fin <= CURRENT_DATE OR  
                 ser.om_validite_fin IS NULL  
             )  
         ";  
       
     $res = $f->db->query($sql);  
     $f->isDatabaseError($res);  
       
     $temp_ser_cat = 0;  
     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {  
29                    
30          /*On change de thématique, donc rajoute le nom de la thématique*/          /* Nombre de consultations papier à générer */
31          if ( $temp_ser_cat != $row['service_categorie'] ){          $nbConsPap = 0;
32            
33            /* Ajout des données en base de données
34             * 0 : l'ID du service
35             * 1 : consultation papier {0,1}
36             * */
37            if ( isset($donnees) && count($donnees) > 0 ){
38                
39                require_once "../core/om_dbform.class.php";
40                $om_dbform = new dbForm();
41                require_once "../obj/consultation.class.php";
42                $consultation = new consultation("]",$f->db,DEBUG);
43                            
44              $temp_ser_cat = $row['service_categorie'];              foreach ($donnees as $value) {
45              $liste_gauche .= '                  
46              <div id="them_'.$row['service_categorie'].'" class="liste_gauche_them" >'.                  $sql = "SELECT delai FROM service WHERE service = $value[0]";
47                  $row['them_lib'].                  $res = $f->db->query($sql);
48              '</div>                  $f->isDatabaseError($res);
49                  <div                  $row=& $res->fetchRow();
50                      class="liste_gauche_service"                  $delai = $row[0];
51                      id="'.$row['service_categorie'].'_'.$row['service'].'_" >                  
52                      '.$row['ser_lib'].'                  /*Calcul du delai de retour*/
53                      <input type="checkbox" '.(($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '' : 'checked' ).'/>                  $date_envoi_temp = $om_dbform->datePHP($date_envoi);
54                  </div>                  $delai = $om_dbform->dateDB($consultation->moisdate($date_envoi_temp, $delai));
55              ';  
56                    /*Les données à ajouter*/  
57                    $arrayVal = array(
58                        'consultation' => "]",
59                        'dossier' => $idx,
60                        'date_envoi' => $date_envoi,
61                        'date_retour' => NULL,
62                        'date_limite' => $delai,
63                        'service' => $value[0],
64                        'avis_consultation' => NULL,
65                        'date_reception' => NULL,
66                        'motivation' => "",
67                        'fichier' => NULL,
68                        'lu' => TRUE
69                    );
70                                  
71                    $consultation->ajouter($arrayVal, $f->db, DEBUG);
72    
73                    /*Comptage du nombre de consultations papier demandées et récupération des ids des PDFs à éditer*/
74                    if ($value[1]==1){
75                        $idxConsultations[] = $consultation->valF['consultation'];
76                        $nbConsPap++;
77                    }
78                }
79                
80                /*Génération du PDF*/
81                if ( isset($idxConsultations) && count($idxConsultations) > 0 ){
82                    
83                    $textIdsConsultations = "";
84                    foreach ($idxConsultations as $value)
85                        $textIdsConsultations .= "&idxConsultations[]=$value";
86                    
87                    echo "
88                        <script>
89                            $.download('../app/pdfetat.php','obj=$obj$textIdsConsultations', 'POST', $obj);
90                        </script>
91                    ";
92                }
93                /*Affichage du message d'information*/
94                $f->displayMessage("valid", count($donnees)._(' service(s) s&eacute;lectionn&eacute;(s) dont ').$nbConsPap._(' consultation(s) papier.'));
95          }          }
96                    
97          /*On est dans la même thématique*/      }
98          else {      else {
99            /*Requête qui récupère les services qui sont dans des thématiques*/
100            $sql =
101                "SELECT
102                    ser_cat.service_categorie, ser_cat.libelle AS them_lib,
103                    ser.service, ser.libelle AS ser_lib, ser.consultation_papier
104                FROM
105                    public.lien_service_service_categorie lie,
106                    public.service_categorie ser_cat,
107                    public.service ser
108                WHERE
109                    ser_cat.service_categorie = lie.service_categorie AND
110                    ser.service = lie.service AND
111                    (
112                        ser.om_validite_fin <= CURRENT_DATE OR
113                        ser.om_validite_fin IS NULL
114                    )
115                ";
116            
117            $res = $f->db->query($sql);
118            $f->isDatabaseError($res);
119            
120            $temp_ser_cat = 0;
121            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
122                $name = $row['service_categorie'].'_'.
123                        $row['service'].'_'.
124                        (($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '0' : '1' ).'_';
125                /*On change de thématique, donc rajoute le nom de la thématique*/
126                if ( $temp_ser_cat != $row['service_categorie'] ){
127                    
128                    $temp_ser_cat = $row['service_categorie'];
129                    $liste_gauche .= '
130                    <div id="them_'.$row['service_categorie'].'" class="liste_gauche_them" >'.
131                        $row['them_lib'].
132                    '</div>
133                        <div
134                            class="liste_gauche_service '.$name.'"
135                            id="'.$name.'" >
136                            '.$row['ser_lib'].'
137                            <input id="'.$name.'" type="checkbox" '.(($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '' : 'checked' ).'/>
138                        </div>
139                    ';
140                }
141                
142                /*On est dans la même thématique*/
143                else {
144                    
145                    $liste_gauche .= '
146                        <div
147                            class="liste_gauche_service '.$name.'"
148                            id="'.$name.'" >
149                            '.$row['ser_lib'].'
150                            <input id="'.$name.'" type="checkbox" '.(($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '' : 'checked' ).'/>
151                        </div>
152                    ';
153                }
154                            
155            }
156            
157            /*Requête qui récupère les services qui ne sont pas dans une thématique*/
158            $sql =
159                "SELECT service, libelle, consultation_papier
160                FROM public.service
161                WHERE service NOT IN
162                    (
163                        SELECT service
164                        FROM lien_service_service_categorie
165                    )
166                     AND
167                    (
168                        om_validite_fin <= CURRENT_DATE OR
169                        om_validite_fin IS NULL
170                    )
171                ";
172            
173            $res = $f->db->query($sql);
174            $f->isDatabaseError($res);
175        
176            if ( $res->numrows() > 0 )
177                $liste_gauche .= '
178                    <div id="them_0" class="liste_gauche_them">Autres</div>';
179            
180            while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
181                /*Ajout de tous les services qui n'ont pas de thématique*/
182                $name = '0_'.
183                        $row['service'].'_'.
184                        (($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '0' : '1' ).'_';
185              $liste_gauche .= '              $liste_gauche .= '
186                  <div                  <div
187                      class="liste_gauche_service"                      class="liste_gauche_service '.$name.'"
188                      id="'.$row['service_categorie'].'_'.$row['service'].'_" >                      id="'.$name.'" >
189                      '.$row['ser_lib'].'                      '.$row['libelle'].'&nbsp;
190                      <input type="checkbox" '.(($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '' : 'checked' ).'/>                      <input id="'.$name.'" type="checkbox" '.(($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '' : 'checked' ).'/>
191                  </div>                  </div>
192              ';              ';
193          }          }
194                    
195      }          /*Affichage du formulaire*/
196                echo '<div class="subtitle">';
197      /*Requête qui récupère les services qui ne sont pas dans une thématique*/              echo '<h3>';
198      $sql =                  echo _("Application");
199          "SELECT service, libelle, consultation_papier                  echo '<span class="om-icon om-icon-16 om-icon-fix arrow-right-16"></span>';
200          FROM public.service                  echo _("consultation");
201          WHERE service NOT IN              echo '</h3>';
202              (          echo '</div>';
203                  SELECT service          echo '<div class="sformulaire">';
204                  FROM lien_service_service_categorie              echo '<form onsubmit="ajaxIt(\'consultation\', \'../app/consultation_multiple.php\');return false;"
205              )                    method="get" action="" name="f2" id="form_val">';
206               AND                  echo '<div class="formEntete ui-corner-all">';
207              (                      echo "<div id='form-content'>";
208                  om_validite_fin <= CURRENT_DATE OR                          echo '<div class="bloc">';
209                  om_validite_fin IS NULL                              echo "<fieldset class='cadre ui-corner-all ui-widget-content'>\n";
210              )                                  echo "\t<legend class='ui-corner-all ui-widget-content ui-state-active'>".
211          ";                                      _("Consultation par th&eacute;matique ")."</legend>";
212                                        echo "<div class='fieldsetContent' style='width:100%'>";
213      $res = $f->db->query($sql);                                      echo '<div class="field-ser-them field-type-hiddenstatic">';
214      $f->isDatabaseError($res);                                          echo '<div class="form-libelle">';
215                                                echo '<label class="libelle-dossier" for="dossier">';
216      if ( $res->numrows() > 0 )                                                  echo _('dossier');
         $liste_gauche .= '  
             <div id="them_0" class="liste_gauche_them">Autres</div>';  
       
     while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) {  
         /*Ajout de tous les services qui n'ont pas de thématique*/  
         $liste_gauche .= '  
             <div  
                 class="liste_gauche_service"  
                 id="0_'.$row['service'].'_" >  
                 '.$row['libelle'].'&nbsp;  
                 <input type="checkbox" '.(($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '' : 'checked' ).'/>  
             </div>  
         ';  
     }  
       
     /*Affichage du formulaire*/  
     echo '<div class="subtitle">';  
         echo '<h3>';  
             echo _("Application");  
             echo '<span class="om-icon om-icon-16 om-icon-fix arrow-right-16"></span>';  
             echo _("consultation");  
         echo '</h3>';  
     echo '</div>';  
     echo '<div class="sformulaire">';  
         echo '<form onsubmit="affichersform(\'consultation\',  
               \'../scr/sousform.php?obj=consultation&premiersf=0&retourformulaire=PC&  
               idxformulaire=PC12R0001&trisf=&validation=1&retour=tab\', this);return false;"  
               method="post" action="" name="f2">';  
             echo '<div class="formEntete ui-corner-all">';  
                 echo "<div id='form-content'>";  
                     echo '<div class="bloc">';  
                         echo "<fieldset class='cadre ui-corner-all ui-widget-content'>\n";  
                             echo "\t<legend class='ui-corner-all ui-widget-content ui-state-active'>".  
                                 _("Consultation par th&eacute;matique ")."</legend>";  
                             echo "<div class='fieldsetContent' style='width:100%'>";  
                                 echo '<div class="field-ser-them field-type-hiddenstatic">';  
                                     echo '<div class="form-libelle">';  
                                         echo '<label class="libelle-dossier" for="dossier">';  
                                             echo _('dossier');  
                                         echo '<span class="not-null-tag">*</span>';  
                                         echo '</label>';  
                                     echo '</div>';  
                                     echo '<div class="form-content">';  
                                         echo '<input id="dossier" class="champFormulaire" type="hidden" value="'.$idx.'" name="dossier">';  
                                         echo $idx;  
                                     echo '</div>';  
                                 echo '</div>';  
                                 /*Code du nouveau champ*/  
                                 echo '<div class="field-ser-them ser-them">';  
                                     echo '<div class="list-ser-them">';  
                                         echo $liste_gauche;  
                                     echo '</div>';  
                                     echo '<div class="button-ser-them">';  
                                         echo '<ul>';  
                                             echo '<li>';  
                                                 echo '<input type="button" value="'._("Ajouter").' >>" id="add-ser-them"/>';  
                                             echo '</li>';  
                                             echo '<li>';  
                                                 echo '<input type="button" value="<< '._("Supprimer").'" id="del-ser-them"/>';  
                                             echo '</li>';  
                                         echo '</ul>';  
                                     echo '</div>';  
                                     echo '<div class="list-sel-ser-them">';  
                                     echo '</div>';  
                                 echo '</div>';  
                                 /* -- FIN --*/  
                                 echo '<div class="field-ser-them field-type-date2">';  
                                     echo '<div  class="form-libelle">';  
                                         echo '<label class="libelle-date_envoi" for="date_envoi">';  
                                             echo _('date_envoi');  
217                                              echo '<span class="not-null-tag">*</span>';                                              echo '<span class="not-null-tag">*</span>';
218                                          echo '</label>';                                              echo '</label>';
219                                            echo '</div>';
220                                            echo '<div class="form-content">';
221                                                echo '<input id="dossier" class="champFormulaire" type="hidden" value="'.$idx.'" name="dossier">';
222                                                echo $idx;
223                                            echo '</div>';
224                                        echo '</div>';
225                                        /*Code du nouveau champ*/
226                                        echo '<div class="field-ser-them ser-them">';
227                                            echo '<div class="list-ser-them">';
228                                                echo $liste_gauche;
229                                            echo '</div>';
230                                            echo '<div class="button-ser-them">';
231                                                echo '<ul>';
232                                                    echo '<li>';
233                                                        echo '<input type="button" value="'._("Ajouter").' >>" id="add-ser-them"/>';
234                                                    echo '</li>';
235                                                    echo '<li>';
236                                                        echo '<input type="button" value="<< '._("Supprimer").'" id="del-ser-them"/>';
237                                                    echo '</li>';
238                                                echo '</ul>';
239                                            echo '</div>';
240                                            echo '<div class="list-sel-ser-them">';
241                                                echo '<div class=\'row\'>';
242                                                    echo '<div class=\'cell1 liste_gauche_them\' id=\'list-sel-ser-them-title\'>'._('Service à consulter').'</div>';
243                                                    echo '<div class=\'cell2 liste_gauche_them\' id=\'list-sel-ser-them-title\'>'._('Version papier').'</div>';
244                                                echo '</div>';
245                                            echo '</div>';
246                                      echo '</div>';                                      echo '</div>';
247                                      echo '<div class="form-content">';                                      /* -- FIN --*/
248                                          echo '<input id="date_envoi" class="champFormulaire datepicker"                                      echo '<div class="field-ser-them field-type-date2">';
249                                                type="text"  onkeyup="" onchange="fdate(this)"                                          echo '<div  class="form-libelle">';
250                                                maxlength="10" size="12" value="'.date("d/m/Y").'"                                              echo '<label class="libelle-date_envoi" for="date_envoi">';
251                                                 name="date_envoi">';                                                  echo _('date_envoi');
252                                                    echo '<span class="not-null-tag">*</span>';
253                                                echo '</label>';
254                                            echo '</div>';
255                                            echo '<div class="form-content">';
256                                                echo '<input id="date_envoi" class="champFormulaire datepicker"
257                                                      type="text"  onkeyup="" onchange="fdate(this)"
258                                                      maxlength="10" size="12" value="'.date("d/m/Y").'"
259                                                       name="date_envoi">';
260                                            echo '</div>';
261                                      echo '</div>';                                      echo '</div>';
262                                  echo '</div>';                                  echo "</div>";
263                              echo "</div>";                              echo "</fieldset>";
264                          echo "</fieldset>";                          echo '</div>';
265                      echo '</div>';                      echo '</div>';
266                  echo '</div>';                  echo '</div>';
267              echo '</div>';                  echo '<div class="formControls">';
268              echo '<div class="formControls">';                      echo '<input class="om-button ui-button ui-widget ui-state-default ui-corner-all"
269                  echo '<input class="om-button ui-button ui-widget ui-state-default ui-corner-all"                            type="button" onclick="if ( $(\'.liste_gauche_service_selected\').length > 0 && $(\'#date_envoi\').val() != \'\' ) { ajaxIt(\'consultation\', \'../app/consultation_multiple.php\'); } else alert(\'Veuillez choisir au moins un service et une date d envoi\');"
270                        type="button" onclick="affichersform(\'consultation\',                            value="Ajouter le(s) enregistrement(s) de la table : \'Consultation\'"
271                        \'../scr/sousform.php?obj=consultation&premiersf=0&retourformulaire=PC&                            role="button" aria-disabled="false" id="button_val">';
272                        idxformulaire=PC12R0001&trisf=&validation=1&retour=tab\',                      echo '<a class="retour" onclick="ajaxIt(\'consultation\', \'../scr/soustab.php?obj='.$obj.'&retourformulaire='.$retourformulaire.'&idxformulaire='.$idx.'&premier=0&tricol=\');"
273                        this.form);"                            href="#">';
274                        value="Ajouter le(s) enregistrement(s) de la table : \'Consultation\'"                         echo 'Retour';
275                        role="button" aria-disabled="false">';                     echo '</a>';
276                  echo '<a class="retour" onclick="ajaxIt(\'consultation\',                  echo '</div>';
277                        \'../scr/soustab.php?obj=consultation&retourformulaire=PC&              echo '</form>';
278                        idxformulaire=PC12R0001&premier=0&tricol=\');"          echo '</div>';
279                        href="#">';          
280                     echo 'Retour';          echo "
281                 echo '</a>';          <script>
282              echo '</div>';              $(function(){
283          echo '</form>';                  /*
284      echo '</div>';                      Sélectionne tous les services d'un thème au clique sur celui ci.
285                        */
286      echo "                  $('.liste_gauche_them').click(
287      <script>                      function(){
288          $(function(){                          
289              $('.liste_gauche_them').click(                          var id = $(this).attr('id').split('_')[1];
290                  function(){                          var numSer = 0;
291                                                var numSerWithClass = 0;
292                      var id = $(this).attr('id').split('_')[1];                          
293                      $('.list-ser-them div').each(                          $('.list-ser-them div').each(
294                          function() {                              function() {
295                                                                        
296                              if ( $(this).attr('id').indexOf('them') == -1 &&                                  if ( $(this).attr('id').indexOf('them') == -1 &&
297                                   $(this).attr('id').indexOf(id) == 0 ){                                       $(this).attr('id').indexOf(id) == 0  &&
298                                  $(this).toggleClass('liste_gauche_service_selected');                                       $(this).hasClass('liste_gauche_service_selected') )
299                                        
300                                         numSerWithClass++;                                    
301                                    
302                                    if ( $(this).attr('id').indexOf('them') == -1 &&
303                                         $(this).attr('id').indexOf(id) == 0  )
304                                        
305                                        numSer++;
306                              }                              }
307                          }                          );
308                      );                          
309                  }                          if ( numSerWithClass < numSer && numSerWithClass >= 0 ){
310              );                          
311                                             $('.list-ser-them div').each(
             $('.liste_gauche_service').click(  
                 function(){  
                     $(this).toggleClass('liste_gauche_service_selected');  
                 }  
             );  
               
             $('.liste_droite_service').live(  
                 'click',  
                 function(){  
                     $(this).toggleClass('liste_droite_service_selected');  
                 }  
             );  
               
             $('#add-ser-them').click(  
                 function() {  
                       
                     $('.list-sel-ser-them').empty();  
                       
                     $('.liste_gauche_service_selected').each(  
                         function(i) {  
                               
                             ( i == 0 ) ?  
                                 $('.list-sel-ser-them').append(''+  
                                     '<div class=\'row\'>'+  
                                         '<div class=\'cell1\' id=\'list-sel-ser-them-title\'>"._('Service à consulter')."</div>'+  
                                         '<div class=\'cell2\' id=\'list-sel-ser-them-title\'>"._('Version papier')."</div>'+  
                                     '</div>')  
                                 : '' ;  
                               
                             $('.list-sel-ser-them').append(  
                                 '<div class=\'row liste_droite_service\' id=\'' + i + '\'>'+  
                                     '<div class=\'cell1\'>'+  
                                         '<div id=\'' + $(this).attr('id') + '\'>'+  
                                             $(this).html().split('<')[0]+  
                                         '</div>'+  
                                     '</div>' +  
                                     '<div class=\'cell2\'>'+  
                                         '<div>'+  
                                             '<'+$(this).html().split('<')[1]+  
                                         '</div>'+  
                                     '</div>'+  
                                 '</div>'  
                             );  
                               
                             $(this).hide();  
                             var id = $(this).attr('id');  
                             $('.list-ser-them div').each(  
312                                  function() {                                  function() {
313                                        
314                                      if ( $(this).attr('id').indexOf('them') == -1 &&                                      if ( $(this).attr('id').indexOf('them') == -1 &&
315                                           $(this).attr('id').indexOf('_' + id.split('_')[1] + '_') != -1 ){                                       $(this).attr('id').indexOf(id) == 0 &&
316                                                                                 !$(this).hasClass('liste_gauche_service_selected') )
317                                          $(this).hide();                                      
318                                      }                                          $(this).addClass('liste_gauche_service_selected');
319                                  }                                  }
320                              );                              );
321                          }                          }
322                      );                          
323                  }                          else {
             );      
               
             $('#del-ser-them').click(  
                 function() {  
                     $('.liste_droite_service_selected').each(  
                         function() {  
                               
                             var id = $('#'+ $(this).attr('id') + ' .cell1 div').attr('id');  
324                                                            
325                              $('.list-ser-them div').each(                              $('.list-ser-them div').each(
326                                  function() {                                  function() {
327                                        
328                                      if ( $(this).attr('id').indexOf('them') == -1 &&                                     if ( $(this).attr('id').indexOf('them') == -1 &&
329                                           $(this).attr('id').indexOf('_' + id.split('_')[1] + '_') != -1 ){                                      $(this).attr('id').indexOf(id) == 0  &&
330                                                                                $(this).hasClass('liste_gauche_service_selected') )
331                                          $(this).show();                                      
332                                      }                                         $(this).removeClass('liste_gauche_service_selected');
333                                  }                                  }
334                              );                             );
335                            }
336                        }
337                    );
338                    
339                    /*
340                        Change la class CSS d'un service sur lequel on clique dans la liste de gauche.
341                    */
342                    $('.liste_gauche_service').click(
343                        function(){
344                            $(this).toggleClass('liste_gauche_service_selected');
345                        }
346                    );
347                    
348                    /*
349                        Change la class CSS d'un service sur lequel on clique dans la liste de droite.
350                    */
351                    $('.field-ser-them').on(
352                        'click',
353                        '.cell1',
354                        function(){
355                            $(this).parent().toggleClass('liste_droite_service_selected');
356                        }
357                    );
358                    
359                    $('.liste_droite_service input[type=checkbox]').live(
360                        'click',
361                        'input[type=checkbox]',
362                        function(){
363                            
364                            old_id = $(this).attr('id');
365                            
366                            tab_don = old_id.split('_');
367                            
368                            new_id = tab_don[0] + '_' + tab_don[1] + '_' + ((tab_don[2] == 0 ) ? 1 : 0 ) + '_';
369    
370                            changeOneData( ';' + tab_don[1] + '_' + tab_don[2], ';' + tab_don[1] + '_' + ((tab_don[2] == 0) ? 1 : 0) );
371                            $('div[name=\"' + $(this).attr('class') + '\"]').attr('id', new_id);
372                            $(this).attr('id', new_id);
373    
374                        }
375                    );
376                    
377                    $('#date_envoi').change(
378                        function (){
379                            
380                            var listServ = new Array();
381                            var data = '';
382                    
383                            $('.liste_gauche_service_selected').each(
384                                function(i) {
385                                    
386                                    var id = $(this).attr('id');
387                                    
388                                    if ( listServ.length > 0 && listServ.indexOf(id.split('_')[1]) != -1 )
389                                        return;
390                                    listServ[i] = id.split('_')[1];
391                                    data += ';' + id.split('_')[1] + '_' + id.split('_')[2] ;
392                                    
393                                }
394                            );
395                            
396                            changeActionVal(data);
397                        }
398                    );
399                    
400                    /*
401                        Passe les services sélectionnés dans la liste de gauche dans celle de droite.
402                    */
403                    $('#add-ser-them').click(
404                        function() {
405                            
406                            changeDataLeftColumn();
407                        }
408                    );    
409                    
410                    /*
411                        Passe les services sélectionnés dans la liste de droite dans celle de gauche.
412                    */
413                    $('#del-ser-them').click(
414                        function() {
415                            
416                            var data = '';
417                            
418                            $('.liste_droite_service_selected').each(
419                                function() {
420                                    
421                                    var id = $('#'+ $(this).attr('id') + ' .cell1 div').attr('id');
422                                    
423                                    manageListServ('.list-ser-them div', id, 1);
424                                    data += ';' + id.split('_')[1] + '_' + id.split('_')[2] ;
425                                    
426                                    $(this).remove();
427                                }
428                            );
429                            
430                            changeActionVal(data);
431                        }
432                    );
433                });
434                
435                /*
436                    Vérifie que l'objet n'est pas une thématique et que son identifiant correspond.
437                */
438                function isNotthemIsOneServ( objet, id ){
439                    return ( $(objet).attr('id').indexOf('them') == -1 &&
440                             $(objet).attr('id').indexOf('_' + id.split('_')[1] + '_') != -1 );
441                }
442                
443                /*
444                    Affiche ou cache un élément qui n'est pas une thématique et dont son identifiant correspond.
445                */
446                function manageListServ( objet ,id, type){
447        
448                    $(objet).each(
449                        function() {
450                            
451                            if ( isNotthemIsOneServ(this, id) ){
452                                if ( type == 0 )
453                                
454                                    $(this).hide() ;
455                                                            
456                              $(this).remove();                              else {
457                                    
458                                    if ( $(this).hasClass('liste_gauche_service_selected') )
459                                    
460                                        $(this).toggleClass('liste_gauche_service_selected');
461                                    
462                                    $(this).show() ;
463                                    
464                                }
465                          }                          }
466                      );                      }
467                    );
468                }
469                
470                /*
471                    Change les actions qui sont réalisées lors de la soumission du formulaire
472                */
473                function changeActionVal(data){
474                    date = $('#date_envoi').val();
475                    
476                    $('#form_val').attr(
477                        'onsubmit',
478                        'if ( $(\'.liste_gauche_service_selected\').length > 0 && $(\'#date_envoi\').val() != \'\' ) { messageIt(\'consultation\', \'../app/consultation_multiple.php?obj=$obj&data='+data+'&idx=$idx&date_envoi='+date+'\',true);return false;' +
479                        'messageIt(\'consultation\', \'../scr/soustab.php?obj=$obj&retourformulaire=$retourformulaire&idxformulaire=$idx&premier=0&tricol=\',false);} else alert(\'Veuillez choisir au moins un service et une date d envoi\');'
480                        
481                    );
482                    $('#button_val').attr(
483                        'onclick',
484                        'if ( $(\'.liste_gauche_service_selected\').length > 0 && $(\'#date_envoi\').val() != \'\' ) { messageIt(\'consultation\', \'../app/consultation_multiple.php?obj=$obj&data='+data+'&idx=$idx&date_envoi='+date+'\',true);' +
485                        'messageIt(\'consultation\', \'../scr/soustab.php?obj=$obj&retourformulaire=$retourformulaire&idxformulaire=$idx&premier=0&tricol=\',false);} else alert(\'Veuillez choisir au moins un service et une date d envoi\');'
486                        
487                    );
488                }
489                
490                /*
491                    Change les actions qui sont réalisées lors de la soumission du formulaire
492                */
493                function changeOneData( oldData, newData) {
494                    
495                    date = $('#date_envoi').val();
496                    
497                    $('#form_val').attr(
498                        'onsubmit',
499                        $('#form_val').attr('onsubmit').replace(oldData,newData)                    
500                    );
501                    $('#button_val').attr(
502                        'onclick',
503                        $('#button_val').attr('onclick').replace(oldData,newData)
504                    );
505                }
506                
507                function changeDataLeftColumn(){
508                    
509                    var listServ = new Array();
510                    var data = '';
511                    
512                    if ( $('.liste_droite_service').length == 0 ){
513                        $('.list-sel-ser-them').empty();
514                        $('.list-sel-ser-them').append(''+
515                                    '<div class=\'row\'>'+
516                                        '<div class=\'cell1 liste_gauche_them\' id=\'list-sel-ser-them-title\'>"._('Service à consulter')."</div>'+
517                                        '<div class=\'cell2 liste_gauche_them\' id=\'list-sel-ser-them-title\'>"._('Version papier')."</div>'+
518                                    '</div>') ;
519                  }                  }
             );  
         });  
     </script>";  
     ?>  
520                    
521                    $('.liste_gauche_service_selected').each(
522                        function(i) {
523                            
524                            if ( !$(this).is(':visible') )
525                                return;
526                                
527                            var id = $(this).attr('id');
528                            
529                            if ( listServ.length > 0 && listServ.indexOf(id.split('_')[1]) != -1 )
530                                return;
531                            listServ[i] = id.split('_')[1];
532                            data += ';' + id.split('_')[1] + '_' + id.split('_')[2] ;
533                            
534                            $('.list-sel-ser-them').append(
535                                '<div class=\'row liste_droite_service\' id=\'' + i + '\'>'+
536                                    '<div class=\'cell1\'>'+
537                                        '<div name=\'' + $(this).attr('id') + '\' id=\'' + $(this).attr('id') + '\'>'+
538                                            $(this).html().split('<')[0]+
539                                        '</div>'+
540                                    '</div>' +
541                                    '<div class=\'cell2\'>'+
542                                        '<div>'+
543                                            '<input class=\'' + $(this).attr('id') + '\''+$(this).html().split('<input')[1]+
544                                        '</div>'+
545                                    '</div>'+
546                                '</div>'
547                            );
548                            
549                            $(this).hide();
550                            
551                            manageListServ('.list-ser-them div', id, 0);
552                            
553                        }
554                    );
555    
556                    changeActionVal(data);
557                }
558            </script>";
559        }
560        ?>

Legend:
Removed from v.530  
changed lines
  Added in v.576

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26