/[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 596 by vpihour, Mon Nov 5 14:39:47 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 language='javascript' type='text/javascript'>
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) selectionne(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 t'.$name.'"
135                            id="t'.$name.'" >
136                            '.$row['ser_lib'].'
137                            <input class="t'.$name.'" type="checkbox" '.(($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '' : 'checked="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 t'.$name.'"
148                            id="t'.$name.'" >
149                            '.$row['ser_lib'].'
150                            <input class="t'.$name.'" type="checkbox" '.(($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '' : 'checked="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 t'.$name.'"
188                      id="'.$row['service_categorie'].'_'.$row['service'].'_" >                      id="t'.$name.'" >
189                      '.$row['ser_lib'].'                      '.$row['libelle'].'&nbsp;
190                      <input type="checkbox" '.(($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '' : 'checked' ).'/>                      <input class="t'.$name.'" type="checkbox" '.(($row['consultation_papier'] == '' || $row['consultation_papier'] == FALSE ) ? '' : 'checked="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>";
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 thematique ")."</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 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_droite_title list-sel-ser-them-title\'>'._('Service a consulter').'</div>';
243                                                    echo '<div class=\'cell2 liste_droite_title 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&                            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 language='javascript' type='text/javascript'>
282              echo '</div>';              $(function(){
283          echo '</form>';                  
284      echo '</div>';                  /*
285                            Sélectionne tous les services d'un thème au clique sur celui ci.
286      echo "                  */
287      <script>                  $('.liste_gauche_them').click(
288          $(function(){                      function(){
289              $('.liste_gauche_them').click(                          
290                  function(){                          var id = $(this).attr('id').split('_')[1];
291                                                var numSer = 0;
292                      var id = $(this).attr('id').split('_')[1];                          var numSerWithClass = 0;
293                      $('.list-ser-them div').each(                          
294                          function() {                          $('.list-ser-them div').each(
295                                                            function() {
296                              if ( $(this).attr('id').indexOf('them') == -1 &&                                          
297                                   $(this).attr('id').indexOf(id) == 0 ){                                  if ( $(this).attr('id').indexOf('them') == -1 &&
298                                  $(this).toggleClass('liste_gauche_service_selected');                                       $(this).attr('id').indexOf(id) == 1  &&
299                                         $(this).hasClass('liste_gauche_service_selected') )
300                                        
301                                         numSerWithClass++;                                    
302                                    
303                                    if ( $(this).attr('id').indexOf('them') == -1 &&
304                                         $(this).attr('id').indexOf(id) == 1  )
305                                        
306                                        numSer++;
307                              }                              }
308                          }                          );
309                      );                          
310                  }                          if ( numSerWithClass < numSer && numSerWithClass >= 0 ){
311              );                          
312                                             $('.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(  
313                                  function() {                                  function() {
314                                        
315                                      if ( $(this).attr('id').indexOf('them') == -1 &&                                      if ( $(this).attr('id').indexOf('them') == -1 &&
316                                           $(this).attr('id').indexOf('_' + id.split('_')[1] + '_') != -1 ){                                       $(this).attr('id').indexOf(id) == 1 &&
317                                                                                 !$(this).hasClass('liste_gauche_service_selected') )
318                                          $(this).hide();                                      
319                                      }                                          $(this).addClass('liste_gauche_service_selected');
320                                  }                                  }
321                              );                              );
322                          }                          }
323                      );                          
324                  }                          else {
             );      
               
             $('#del-ser-them').click(  
                 function() {  
                     $('.liste_droite_service_selected').each(  
                         function() {  
                               
                             var id = $('#'+ $(this).attr('id') + ' .cell1 div').attr('id');  
325                                                            
326                              $('.list-ser-them div').each(                              $('.list-ser-them div').each(
327                                  function() {                                  function() {
328                                        
329                                      if ( $(this).attr('id').indexOf('them') == -1 &&                                     if ( $(this).attr('id').indexOf('them') == -1 &&
330                                           $(this).attr('id').indexOf('_' + id.split('_')[1] + '_') != -1 ){                                      $(this).attr('id').indexOf(id) == 1  &&
331                                                                                $(this).hasClass('liste_gauche_service_selected') )
332                                          $(this).show();                                      
333                                      }                                         $(this).removeClass('liste_gauche_service_selected');
334                                  }                                  }
335                              );                             );
336                            }
337                        }
338                    );
339                    
340                    /*
341                        Change la class CSS d'un service sur lequel on clique dans la liste de gauche.
342                    */
343                    $('.liste_gauche_service').click(
344                        function(){
345                            $(this).toggleClass('liste_gauche_service_selected');
346                        }
347                    );
348                    
349                    /*
350                        Change la class CSS d'un service sur lequel on clique dans la liste de droite.
351                    */
352                    $('.field-ser-them').on(
353                        'click',
354                        '.cell1',
355                        function(){
356                            if ( !$(this).hasClass('liste_droite_title') )
357                                $(this).parent().toggleClass('liste_droite_service_selected');
358                        }
359                    );
360                    
361                    $('.liste_droite_service input[type=checkbox]').live(
362                        'click',
363                        'input[type=checkbox]',
364                        function(){
365                            
366                            old_id = $(this).attr('class');
367                            
368                            tab_don = old_id.split('_');
369                            
370                            new_id = tab_don[0] + '_' + tab_don[1] + '_' + ((tab_don[2] == 0 ) ? 1 : 0 ) + '_';
371    
372                            changeOneData( ';' + tab_don[1] + '_' + tab_don[2], ';' + tab_don[1] + '_' + ((tab_don[2] == 0) ? 1 : 0) );
373                            $('div[class=\"' + old_id + '\"]').attr('class', new_id);
374                            $(this).attr('class', new_id);
375    
376                        }
377                    );
378                    
379                    $('#date_envoi').change(
380                        function (){
381                            
382                            var listServ = new Array();
383                            var data = '';
384                    
385                            $('.liste_gauche_service_selected').each(
386                                function(i) {
387                                    
388                                    var name = $(this).attr('name');
389                                    
390                                    if ( listServ.length > 0 && listServ.indexOf(name.split('_')[1]) != -1 )
391                                        return;
392                                    listServ[i] = name.split('_')[1];
393                                    data += ';' + name.split('_')[1] + '_' + name.split('_')[2] ;
394                                    
395                                }
396                            );
397                            
398                            changeActionVal(data);
399                        }
400                    );
401                    
402                    /*
403                        Passe les services sélectionnés dans la liste de gauche dans celle de droite.
404                    */
405                    $('#add-ser-them').click(
406                        function() {
407                            
408                            changeDataLeftColumn();
409                        }
410                    );    
411                    
412                    /*
413                        Passe les services sélectionnés dans la liste de droite dans celle de gauche.
414                    */
415                    $('#del-ser-them').click(
416                        function() {
417                            
418                            var data = '';
419                            
420                            $('.liste_droite_service_selected').each(
421                                function() {
422                                    
423                                    var name = $('#'+ $(this).attr('id') + ' .cell1 div').attr('name');
424                                    
425                                    manageListServ('.list-ser-them div', name, 1);
426                                    data += ';' + name.split('_')[1] + '_' + name.split('_')[2] ;
427                                    
428                                    $(this).remove();
429                                }
430                            );
431                            
432                            changeActionVal(data);
433                        }
434                    );
435                });
436                
437                /*
438                    Vérifie que l'objet n'est pas une thématique et que son identifiant correspond.
439                */
440                function isNotthemIsOneServ( objet, id ){
441                    return ( $(objet).attr('id').indexOf('them') == -1 &&
442                             $(objet).attr('id').indexOf('_' + id.split('_')[1] + '_') != -1 );
443                }
444                
445                /*
446                    Affiche ou cache un élément qui n'est pas une thématique et dont son identifiant correspond.
447                */
448                function manageListServ( objet , name, type){
449        
450                    $(objet).each(
451                        function() {
452                            
453                            if ( isNotthemIsOneServ(this, name) ){
454                                if ( type == 0 )
455                                
456                                    $(this).hide() ;
457                                                            
458                              $(this).remove();                              else {
459                                    
460                                    if ( $(this).hasClass('liste_gauche_service_selected') )
461                                    
462                                        $(this).toggleClass('liste_gauche_service_selected');
463                                    
464                                    $(this).show() ;
465                                    
466                                }
467                          }                          }
468                      );                      }
469                    );
470                }
471                
472                /*
473                    Change les actions qui sont réalisées lors de la soumission du formulaire
474                */
475                function changeActionVal(data){
476                    date = $('#date_envoi').val();
477                    
478                    $('#form_val').attr(
479                        'onsubmit',
480                        '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;' +
481                        '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\');'
482                        
483                    );
484                    $('#button_val').attr(
485                        'onclick',
486                        '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);' +
487                        '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\');'
488                        
489                    );
490                }
491                
492                /*
493                    Change les actions qui sont réalisées lors de la soumission du formulaire
494                */
495                function changeOneData( oldData, newData) {
496                    
497                    date = $('#date_envoi').val();
498                    
499                    $('#form_val').attr(
500                        'onsubmit',
501                        $('#form_val').attr('onsubmit').replace(oldData,newData)                    
502                    );
503                    $('#button_val').attr(
504                        'onclick',
505                        $('#button_val').attr('onclick').replace(oldData,newData)
506                    );
507                }
508                
509                function changeDataLeftColumn(){
510                    
511                    var listServ = new Array();
512                    var data = '';
513                    
514                    if ( $('.liste_droite_service').length == 0 ){
515                        $('.list-sel-ser-them').empty();
516                        $('.list-sel-ser-them').append(''+
517                                    '<div class=\'row\'>'+
518                                        '<div class=\'cell1 liste_droite_title list-sel-ser-them-title\'>"._('Service a consulter')."</div>'+
519                                        '<div class=\'cell2 liste_droite_title list-sel-ser-them-title\'>"._('Version papier')."</div>'+
520                                    '</div>') ;
521                  }                  }
             );  
         });  
     </script>";  
     ?>  
522                    
523                    $('.liste_gauche_service_selected').each(
524                        function(i) {
525                            
526                            if ( !$(this).is(':visible') )
527                                return;
528                                
529                            var id = $(this).attr('id');
530                            
531                            if ( listServ.length > 0 && listServ.indexOf(id.split('_')[1]) != -1 )
532                                return;
533                            listServ[i] = id.split('_')[1];
534                            data += ';' + id.split('_')[1] + '_' + id.split('_')[2] ;
535                            
536                            $('.list-sel-ser-them').append(
537                                '<div class=\'row liste_droite_service\'>'+
538                                    '<div class=\'cell1\'>'+
539                                        '<div class=\'' + $(this).attr('id') + '\' name=\'' + $(this).attr('id') + '\'>'+
540                                            $(this).html().split('<')[0]+
541                                        '</div>'+
542                                    '</div>' +
543                                    '<div class=\'cell2\'>'+
544                                        '<div>'+
545                                            '<input class=\'' + $(this).attr('id') + '\''+$(this).html().split('<input')[1]+
546                                        '</div>'+
547                                    '</div>'+
548                                '</div>'
549                            );
550                            
551                            $(this).hide();
552                            
553                            manageListServ('.list-ser-them div', id, 0);
554                            
555                        }
556                    );
557    
558                    changeActionVal(data);
559                }
560            </script>";
561        }
562        ?>

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26