/[openfoncier]/trunk/app/js/script.js
ViewVC logotype

Diff of /trunk/app/js/script.js

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

revision 2113 by vpihour, Thu Jul 25 13:34:24 2013 UTC revision 2367 by softime, Thu Oct 3 10:18:04 2013 UTC
# Line 157  function VerifNumdec(champ) { Line 157  function VerifNumdec(champ) {
157      //}      //}
158            
159  }  }
160    
161    /**
162     * Cette fonction permet de compléter le champ par des zéro par la gauche
163     * @param  string  champ  Champ concerné
164     * @param  integer length Taille du champ retourné
165     */
166    function str_pad_js(champ, length) {
167    
168        // Initialisation de la variable str
169        var str = '' + champ.value;
170    
171        // Si le champ n'est pas vide
172        if (str != '') {
173            // Tant que la taille n'est pas atteint,
174            // on ajoute des 0
175            while (str.length < length) {
176                str = '0' + str;
177            }
178            // Modifie le champ
179            champ.value = str;
180        }
181    }
182    
183  // Ce widget permet de charger les données d'un select en ajax  // Ce widget permet de charger les données d'un select en ajax
184  function changeDataSelect(tableName, linkedField, joker){  function changeDataSelect(tableName, linkedField, joker){
185      var id_dossierAutorisation = $("#dossier_autorisation").val();      var id_dossierAutorisation = $("#dossier_autorisation").val();
# Line 703  $(function() { Line 726  $(function() {
726    
727          formatFieldReferenceCadastrale();          formatFieldReferenceCadastrale();
728      }      }
729    
730        // S'il y a une erreur durant la validation lors de l'ajout
731        // d'une nouvelle demande
732        if (url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
733            && (url.indexOf("&action=3") == -1
734            && url.indexOf("&action=2") == -1
735            && url.indexOf("&validation") != -1
736            && $(".form-is-valid").size() == 0)) {
737    
738            addButtonCadastraleAdesse();
739            formatFieldReferenceCadastrale();
740        }
741            
742      if (url.indexOf("form.php?obj=demande&") != -1      if (url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
743          && (url.indexOf("&action=3") == -1          && (url.indexOf("&action=3") == -1
744          && url.indexOf("&action=2") == -1          && url.indexOf("&action=2") == -1
745            && url.indexOf("&validation") == -1
746          && $(".form-is-valid").size() == 0)) {          && $(".form-is-valid").size() == 0)) {
747                    
748          addButtonCadastraleAdesse();          addButtonCadastraleAdesse();
# Line 726  $(function() { Line 762  $(function() {
762      if (url.indexOf("form.php?obj=demande_dossier_existant&") != -1      if (url.indexOf("form.php?obj=demande_dossier_existant&") != -1
763          && url.indexOf("&action=0") != -1 ){          && url.indexOf("&action=0") != -1 ){
764    
765          /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/          //Cache les champs avant que dossier_autorisation_type_detaille soit choisi
766          hideFields();          hideFields();
767          changeDemandeType();          //On affiche le select du type de la demande
768            $('#demande_type').parent().parent().show();
769      }      }
770            
771      // Modification de demande      // Modification de demande
# Line 1043  function addActionSearchIcon(){ Line 1080  function addActionSearchIcon(){
1080                      $('#dialog').html(res);                      $('#dialog').html(res);
1081                                                
1082                      $( "#dialog" ).dialog({                      $( "#dialog" ).dialog({
1083                            dialogClass: "dialog-search-frequent-"+objName,
1084                          modal: true,                          modal: true,
1085                          buttons : {                          buttons : {
1086                              Valider: function(){                              Valider: function(){
# Line 1318  function addNewFieldReferencesCadastrale Line 1356  function addNewFieldReferencesCadastrale
1356  }  }
1357    
1358  function addButtonCadastraleAdesse(){  function addButtonCadastraleAdesse(){
1359    
1360        // Permet d'ajouter le bouton de récupération d'adresse si sig activé
1361        if ($('#option_sig').val() == 'sig_externe'){
1362            
1363      $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +          $('#terrain_references_cadastrales').parent().parent().after('<div class="field field-type-text" >' +
1364          '<div class="form-libelle"></div>' +              '<div class="form-libelle"></div>' +
1365          '<div class="form-content buttonCadAdr">' +              '<div class="form-content buttonCadAdr">' +
1366              '<input id="cad-adr-them" class="ui-button ui-widget ui-state-default ui-corner-all" type="button" value="Cadastrale < = > Adresse"/>' +                  '<input id="cad-adr-them" '+
1367          '</div>' +                      'class="ui-button ui-widget ui-state-default ui-corner-all" '+
1368     '</div>' );                      'type="button" '+
1369                        'onclick="getAdressFromCadastrale();" '+
1370                        'value="Récupérer l\'adresse de la parcelle"/>' +
1371                '</div>' +
1372           '</div>' );
1373        }
1374  }  }
1375    
1376  /*  /*
# Line 1376  function fieldReferenceCadastraleBase(){ Line 1422  function fieldReferenceCadastraleBase(){
1422      var reference_cadastrale = '<input ' +      var reference_cadastrale = '<input ' +
1423                  'class="champFormulaire reference_cadastrale_custom_field" ' +                  'class="champFormulaire reference_cadastrale_custom_field" ' +
1424                  'type="text" ' +                  'type="text" ' +
1425                  'onchange="VerifNum(this)" ' +                  'onchange="VerifNum(this);str_pad_js(this, 3);" ' +
1426                  'maxlength="4" ' +                  'maxlength="3" ' +
1427                  'size="4" '+                  'size="3" '+
1428                  'placeholder="Quart." ';                  'placeholder="Quart." ';
1429                                    
1430      // désactivation des champs de référence cadastrale      // désactivation des champs de référence cadastrale
# Line 1401  function fieldReferenceCadastraleBase(){ Line 1447  function fieldReferenceCadastraleBase(){
1447      }      }
1448            
1449      reference_cadastrale += 'value="" '+      reference_cadastrale += 'value="" '+
1450                  'onchange="if ( !isAlpha(this.value) ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }"/>';                  'onchange="if ( !isAlpha(this.value) && this.value != \'\' ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }; this.value=this.value.toUpperCase();"/>';
1451      reference_cadastrale += '<input ' +      reference_cadastrale += '<input ' +
1452                  'class="champFormulaire reference_cadastrale_custom_field" ' +                  'class="champFormulaire reference_cadastrale_custom_field" ' +
1453                  'type="text" ' +                  'type="text" ' +
1454                  'onchange="VerifNum(this)" ' +                  'onchange="VerifNum(this);str_pad_js(this, 4);" ' +
1455                  'maxlength="5" ' +                  'maxlength="4" ' +
1456                  'size="5" '+                  'size="4" '+
1457                  'placeholder="Parc." ';                  'placeholder="Parc." ';
1458            
1459      // désactivation des champs de référence cadastrale      // désactivation des champs de référence cadastrale
# Line 1537  function newInputReferenceCadastrale(){ Line 1583  function newInputReferenceCadastrale(){
1583          '<input ' +          '<input ' +
1584              'class="champFormulaire reference_cadastrale_custom_field" ' +              'class="champFormulaire reference_cadastrale_custom_field" ' +
1585              'type="text" ' +              'type="text" ' +
1586              'onchange="VerifNum(this)" ' +              'onchange="VerifNum(this);str_pad_js(this, 4)" ' +
1587              'maxlength="4" ' +              'maxlength="4" ' +
1588              'size="4" ' +              'size="4" ' +
1589              'placeholder="Parc." ' +              'placeholder="Parc." ' +
# Line 1546  function newInputReferenceCadastrale(){ Line 1592  function newInputReferenceCadastrale(){
1592  }  }
1593    
1594    
   
 /**  
  * Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau  
  * tableau de bord  
  */  
 function widget_bind_move_actions() {}  
 function widget_bind_add_action() {}  
 function widget_bind_edit_actions(widget_selector) {}  
   
1595  // Cette fonction permet d'associer a un arbre html les fonctions jquery  // Cette fonction permet d'associer a un arbre html les fonctions jquery
1596  // necessaires. Elle permet notamment lors du chargement d'une page en ajax  // necessaires. Elle permet notamment lors du chargement d'une page en ajax
1597  // d'associer le comportement du bouton, la gestion du calendrier et la gestion  // d'associer le comportement du bouton, la gestion du calendrier et la gestion
# Line 1613  function overlayCerfa(idLot) { Line 1650  function overlayCerfa(idLot) {
1650          });          });
1651  }  }
1652    
1653    /**
1654     * Fonction permettant de faire la somme des champs passé en 2nd parametre et
1655     * le stocker dans le champ passé en 1er
1656     */
1657    function sommeChampsCerfa(cible, source) {
1658        val_cible = 0;
1659        
1660        $.each(source, function(index, value) {
1661            // Conversion des champs source en integer
1662            val_source = parseInt($('#'+value).val());
1663            // Cumul des valeurs des champs source
1664            val_cible = val_cible + (isNaN(val_source) ? 0 : val_source);
1665        });
1666        // Affectation de la nouvelle valeur
1667        $('#'+cible).val(val_cible);
1668    }
1669    
1670    function calculSurfaceTotal() {
1671        
1672        var nom_col = [ "su_avt_shon",
1673                        "su_cstr_shon",
1674                        "su_trsf_shon",
1675                        "su_chge_shon",
1676                        "su_demo_shon",
1677                        "su_tot_shon" ];
1678    
1679        // Calcul des totaux de colonnes
1680        $.each(nom_col, function(index, value) {
1681            var tot_col = 0;
1682            for ( var i = 1; i <= 9; i++ ) {
1683                // Conversion des champs source en integer
1684                val_source = parseInt($('#'+value+i).val());
1685                // Cumul des valeurs des champs source
1686                tot_col = tot_col + (isNaN(val_source) ? 0 : val_source);
1687            }
1688    
1689            // Affectation du résultat de ligne
1690            $('#'+value+'_tot').val(tot_col);
1691        });
1692    
1693        // Calcul des totaux des lignes
1694        for ( var j = 1; j <= 9; j++ ) {
1695            // Conversion des champs source en integer
1696            su_avt_shon = parseInt($('#su_avt_shon'+j).val());
1697            su_cstr_shon = parseInt($('#su_cstr_shon'+j).val());
1698            su_trsf_shon = parseInt($('#su_trsf_shon'+j).val());
1699            su_chge_shon = parseInt($('#su_chge_shon'+j).val());
1700            su_demo_shon = parseInt($('#su_demo_shon'+j).val());
1701            
1702            // Cumul des valeurs des champs source
1703            su_avt_shon = isNaN(su_avt_shon) ? 0 : su_avt_shon;
1704            su_cstr_shon = isNaN(su_cstr_shon) ? 0 : su_cstr_shon;
1705            su_trsf_shon = isNaN(su_trsf_shon) ? 0 : su_trsf_shon;
1706            su_chge_shon = isNaN(su_chge_shon) ? 0 : su_chge_shon;
1707            su_demo_shon = isNaN(su_demo_shon) ? 0 : su_demo_shon;
1708    
1709            // Affectation du résultat de ligne
1710            $('#su_tot_shon'+j).val((su_avt_shon+su_cstr_shon+su_trsf_shon)-(su_chge_shon+su_demo_shon));
1711    
1712        }
1713    
1714        // Calcul du total des totaux
1715        // Conversion des champs source en integer
1716        su_avt_shon = parseInt($('#su_avt_shon_tot').val());
1717        su_cstr_shon = parseInt($('#su_cstr_shon_tot').val());
1718        su_trsf_shon = parseInt($('#su_trsf_shon_tot').val());
1719        su_chge_shon = parseInt($('#su_chge_shon_tot').val());
1720        su_demo_shon = parseInt($('#su_demo_shon_tot').val());
1721        
1722        // Cumul des valeurs des champs source
1723        su_avt_shon = isNaN(su_avt_shon) ? 0 : su_avt_shon;
1724        su_cstr_shon = isNaN(su_cstr_shon) ? 0 : su_cstr_shon;
1725        su_trsf_shon = isNaN(su_trsf_shon) ? 0 : su_trsf_shon;
1726        su_chge_shon = isNaN(su_chge_shon) ? 0 : su_chge_shon;
1727        su_demo_shon = isNaN(su_demo_shon) ? 0 : su_demo_shon;
1728    
1729        // Affectation du résultat de ligne
1730        $('#su_tot_shon_tot').val((su_avt_shon+su_cstr_shon+su_trsf_shon)-(su_chge_shon+su_demo_shon));
1731    
1732    }
1733    
1734  /*  /*
1735   * Marque comme lu une consultation ou commission   * Marque comme lu une consultation ou commission
1736   */   */
# Line 2094  function finalizeDocument(idx, obj, sous Line 2212  function finalizeDocument(idx, obj, sous
2212              );              );
2213                            
2214              //Si la finalisation a été effectuée avec succès              //Si la finalisation a été effectuée avec succès
2215              if ( data.pdf != -1 ){              if ( typeof data.pdf !== "undefined" && data.pdf != -1 ){
2216                                    
2217                  // On change le lien                  // On change le lien
2218                  var etat = ((status == 1)?'':'de') + 'finalis';                  var etat = ((status == 1)?'':'de') + 'finalis';
# Line 2109  function finalizeDocument(idx, obj, sous Line 2227  function finalizeDocument(idx, obj, sous
2227                  //Si on le document est finalisé, on cache les actions du portlet                  //Si on le document est finalisé, on cache les actions du portlet
2228                  if ( status == 1 ){                  if ( status == 1 ){
2229                                            
2230                      $(".edit-16").parent().parent().remove();                      $("#"+sousform+obj+" .edit-16").parent().parent().remove();
2231                      $(".delete-16").parent().parent().remove();                      $("#"+sousform+obj+" .delete-16").parent().parent().remove();
2232                  }                  }
2233                  else{                  else{
2234                                            
# Line 2127  function finalizeDocument(idx, obj, sous Line 2245  function finalizeDocument(idx, obj, sous
2245                          actions += data.actions.supprimer;                          actions += data.actions.supprimer;
2246                      }                      }
2247                                            
2248                      $('.portlet-list').prepend(actions);                      $('#'+sousform+obj+' .portlet-list').prepend(actions);
2249                  }                  }
2250                                    
2251                  //On affiche un message de valisation                  //On affiche un message de valisation
2252                  $('#'+sousform+obj+' .message').addClass("ui-state-valid");                  $('#'+sousform+obj+' .message').addClass("ui-state-valid");
2253                  $('#'+sousform+obj+' .message .text').html(                  $('#'+sousform+obj+' .message .text').html(data.message);
                     "La "+etat+"ation du document s'est effectuée avec succès."  
                 );  
2254              }              }
2255              // Si une erreur s'est produite              // Si une erreur s'est produite
2256              else {              else {
2257                                    
2258                  //On affiche un message de validation                  //On affiche un message de validation
2259                  $('#'+sousform+obj+' .message').addClass("ui-state-error");                  $('#'+sousform+obj+' .message').addClass("ui-state-error");
2260                  $('#'+sousform+obj+' .message .text').html(                  $('#'+sousform+obj+' .message .text').html(data.message);
2261                      "Une erreur s'est produite lors de la finalisation du document."              }
2262                  );          },
2263            error: function(jqXHR, textStatus, errorThrown) {
2264                
2265                //Si un parsererror est retourné, du code HTML s'est affiché dans
2266                //l'application, on affiche ce code
2267                if ( textStatus === "parsererror" ){
2268                    $('#'+sousform+obj+' .message.ui-widget.ui-corner-all.ui-state-highlight').remove()
2269                    $('#'+sousform+obj+' a.retour').first().before(jqXHR.responseText);
2270              }              }
2271          }          }
2272      });      });
# Line 2186  function filterSelect(id, tableName, lin Line 2309  function filterSelect(id, tableName, lin
2309  }  }
2310    
2311  /**  /**
2312     * Redirige vers une page après un temps d'attente
2313     * @param  string   page            lien de la page vers la redirection
2314     * @param  int      milliseconde    temps d'attente avant la redirection
2315     */
2316    function redirection(page, milliseconde) {
2317    
2318        //
2319        setTimeout(window.location = page, milliseconde);
2320    }
2321    
2322    /**
2323   * Retourne ce qu'il y a à afficher dans le formulaire de retour (bouton ajouter ou supprimer et éditer)   * Retourne ce qu'il y a à afficher dans le formulaire de retour (bouton ajouter ou supprimer et éditer)
2324   */   */
2325  function getObjId(obj){  function getObjId(obj){
# Line 2216  function setDataFrequent(id,obj) { Line 2350  function setDataFrequent(id,obj) {
2350          },          },
2351          async:false          async:false
2352      });      });
 }  
2353    }
2354    
2355    /**
2356     * Redirige vers le script PHP pour mettre à jour les informations
2357     * et met à jour l'interface pour l'utilisateur
2358     * @param  string   id          Identifiant du dossier
2359     * @param  string   fieldname   Nom du champ
2360     * @param  Function callback    Fonction mettant à jour l'interface des données
2361     * @param  string   confirm_message     Texte du message de confirmation
2362     */
2363    function geolocalisation_treatment(id, fieldname, callback, confirm_message) {
2364    
2365        // Overlay de confirmation du traitement
2366        if (confirm_message != null && confirm_message != '') {
2367            var dialog_confirm = confirm(confirm_message);
2368            if( dialog_confirm == false ){
2369              return false;
2370            }
2371        }
2372    
2373        // Affichage du spinner
2374        $('#'+fieldname).each(
2375            function(){
2376                $(this).children().removeClass();
2377                $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-empty');
2378                $(this).children().children().children(".text").html(msg_loading);
2379            }
2380        );
2381        
2382        // lien vers script PHP faisant l'appel au webservice
2383        link = '../app/geolocalisation_treatment.php?fieldname='+fieldname+'&id='+id+'&callback='+callback;
2384    
2385        // Traitement
2386        $.ajax({
2387            type: "GET",
2388            url: link,
2389            cache: false,
2390            dataType: "json",
2391            success: function(res){
2392                //
2393                $('#'+fieldname).each(
2394                    function(){
2395                        $(this).children().children().children(".text").text(res['log']['message']);
2396                        $(this).children().removeClass();
2397                        if (res['log']['etat'] == 't') {
2398                            $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-valid');
2399                        } else {
2400                            $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2401                        }
2402                    }
2403                );
2404    
2405                //
2406                if (typeof(callback) === "function" && res['log']['etat'] == 't') {
2407                    callback(res);
2408                }
2409            },
2410            async:false
2411        });
2412    }
2413    
2414    /**
2415     * Efface le message en haut du formulaire
2416     * @param array res Résultat après le traitement du script PHP
2417     */
2418    function set_geolocalisation_message(res) {
2419        // Si il y a un message d'erreur
2420        if ($('#geolocalisation-message')[0]) {
2421            // Supprime le message
2422            $('#geolocalisation-message').remove();
2423            // Modifie les messages des autres fonctionnalités
2424            $('#calcul_emprise').each(
2425                function() {
2426                    $(this).children().removeClass();
2427                    $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2428                    $(this).children().children().children(".text").text(res['log']['message_diff_parcelle']);
2429                }
2430            );
2431            $('#calcul_centroide').each(
2432                function() {
2433                    $(this).children().removeClass();
2434                    $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2435                    $(this).children().children().children(".text").text(res['log']['message_diff_parcelle']);
2436                }
2437            );
2438            $('#recup_contrainte').each(
2439                function() {
2440                    $(this).children().removeClass();
2441                    $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2442                    $(this).children().children().children(".text").text(res['log']['message_diff_parcelle']);
2443                }
2444            );
2445        }
2446        
2447    }
2448    
2449    /**
2450     * Met le champ centroïde à jour
2451     * @param  array   res  Résultat après le traitement du script PHP
2452     */
2453    function set_geolocalisation_centroide(res) {
2454        
2455        var content = "<a id='action-form-localiser'"+
2456                " target='_SIG' href='../app/redirect_plan_sig.php?idx="+res['return']['dossierID']+"'>"+
2457                "<span class='om-icon om-icon-16 om-icon-fix sig-16' title='Localiser'>Localiser</span> "+
2458                " POINT("+res['return']['coordX']+" "+res['return']['coordY']+")"+
2459                " </a>";
2460        
2461        $('span#centroide').html(content);
2462        $('span#geom').html(content);
2463    }
2464    
2465    /**
2466     * Met le champ servitude à jour
2467     * @param  array   res  Résultat après le traitement du script PHP
2468     */
2469    function set_geolocalisation_contrainte(res) {
2470        $('span#servitude').html(res['return']['servitude']);
2471    }
2472    
2473    /**
2474     * Redirige vers ElyxWeb
2475     * @param array res Résultat après le traitement du script PHP
2476     */
2477    function redirection_elyxweb(res) {
2478        window.open(res['return']);
2479    }
2480    
2481    /**
2482     * Traitement du bouton permettant de calculer toutes les données géographiques
2483     * @param  string   id                  Identifiant du dossier
2484     * @param  string   confirm_message     Texte du message de confirmation
2485     */
2486    function all_geolocalisation_treatments(id, confirm_message) {
2487    
2488        // Overlay de confirmation du traitement
2489        if (confirm_message != null && confirm_message != '') {
2490            var dialog_confirm = confirm(confirm_message);
2491            if( dialog_confirm == false ){
2492              return false;
2493            }
2494        }
2495    
2496        // Initialisation des variables utilisées en paramètres
2497        var fieldname = '';
2498        var callback = '';
2499        var confirm_message = '';
2500        var flag = '';
2501    
2502        // Modification des variables utilisées en paramètres pour "Vérifier les
2503        // parcelles"
2504        fieldname = 'verif_parcelle';
2505        callback = set_geolocalisation_message;
2506        // Traitement "Vérifier les parcelles"
2507        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2508    
2509        // Positionne le flag sur le message de "Vérifier les parcelles"
2510        flag = $('#'+fieldname+"-message").attr("class");
2511        // Si c'est un message d'erreur on arrete le traitement
2512        if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2513            return false;
2514        }
2515    
2516        // Modification des variables utilisées en paramètres pour "Calculer
2517        // l'emprise"
2518        fieldname = 'calcul_emprise';
2519        callback = '';
2520        // Traitement "Calculer l'emprise"
2521        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2522    
2523        // Positionne le flag sur le message de "Calculer l'emprise"
2524        flag = $('#'+fieldname+"-message").attr("class");
2525        // Si c'est un message d'erreur on arrete le traitement
2526        if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2527            return false;
2528        }
2529    
2530        // Modification des variables utilisées en paramètres pour "Calculer le
2531        // centroïde"
2532        fieldname = 'calcul_centroide';
2533        callback = set_geolocalisation_centroide;
2534        // Traitement "Calculer le centroïde"
2535        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2536    
2537        // Positionne le flag sur le message de "Calculer le centroïde"
2538        flag = $('#'+fieldname+"-message").attr("class");
2539        // Si c'est un message d'erreur on arrete le traitement
2540        if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2541            return false;
2542        }
2543    
2544        // Modification des variables utilisées en paramètres pour "Récupérer les
2545        // contraintes"
2546        fieldname = 'recup_contrainte';
2547        callback = set_geolocalisation_contrainte;
2548        //Traitement "Récupérer les contraintes"
2549        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2550        
2551    }
2552    
2553    /**
2554     * Remplit le formulaire avec l'adresse trouvée ou affiche un message d'erreur
2555     */
2556    function getAdressFromCadastrale(){
2557        
2558        //Récupération des références cadastrales
2559        var referenceCadastrale = '{"refcad":[{';
2560        var i = 0 ;
2561        var j = 1 ;
2562        var delimit = 0;
2563        var parcelleDelimit = 0;
2564        var noReferenceCadastrale = false;
2565        $(".reference_cadastrale_custom_field").each(
2566            function(){
2567                
2568                //On vérifie que le champ n'est pas vide
2569                if ($(this).val()!=""&&$(this).val() != ";"){
2570                    noReferenceCadastrale = true;
2571                }
2572                
2573                //On va à la ligne suivante
2574                if ( $(this).val() == ";" ){
2575                    referenceCadastrale +=(delimit!=0)?'}]':'';
2576                    referenceCadastrale += "}" ;
2577                    i++;
2578                    j = 1;
2579                    delimit = 0;
2580                    parcelleDelimit = 0;
2581                }
2582                //On parcourt la ligne
2583                else {
2584                    switch(true){
2585                        //Quartier
2586                        case (j==1):
2587                            referenceCadastrale += (i!=0)?',':'';
2588                            referenceCadastrale += '"' + i + '"' + ':{"quartier":"'+$(this).val()+'"';
2589                            break;
2590                        //Section
2591                        case (j==2):
2592                            referenceCadastrale += ', "section":"'+$(this).val()+'"';
2593                            break;
2594                        //Parcelle
2595                        case (j==3):
2596                            referenceCadastrale += ', "parcelle":"'+$(this).val()+'"';
2597                            break;
2598                        //Le délimiteur
2599                        case (j%2==0&&j!=2):
2600                            if ( delimit==0 ){
2601                                referenceCadastrale += ', "delimit":[{"'+(delimit++)+'":"'+$(this).val()+'"';
2602                            }
2603                            else {
2604                                referenceCadastrale += ', "'+(delimit++)+'":"'+$(this).val()+'"';
2605                            }
2606                            break;
2607                        //La parcelle après le délimiteur
2608                        case (j%2==1&&j!=1&&j!=3):
2609                            referenceCadastrale += ',"'+(delimit++)+'":"'+$(this).val()+'"';
2610                            break;
2611                    }
2612                    j++;
2613                }
2614            }
2615        );
2616        if ( noReferenceCadastrale == true ){
2617            referenceCadastrale += "}]}";
2618        }
2619        else {
2620            referenceCadastrale = "";
2621        }
2622    
2623        //Lance la tentative de récupération de l'adresse
2624        $.ajax({
2625            type: "POST",
2626            url: '../app/getAdressFromCadastrale.php',
2627            data: $.parseJSON(referenceCadastrale),
2628            cache: false,
2629            dataType: "json",
2630            success: function(data){
2631    
2632                //Si le retour est un objet JSON, on a un résultat
2633                if ( $.isPlainObject(data)){
2634                    
2635                    //On met l'adresse dans les champs
2636                    $("#terrain_adresse_voie_numero").val(data.return.dnuvoi);
2637                    $("#terrain_adresse_voie").val(data.return.prefixe+" "+data.return.nom);
2638                    $("#terrain_adresse_code_postal").val(data.return.arrdt);
2639                    $("#terrain_adresse_localite").val(data.return.localite);
2640                }
2641                //Sinon, on affiche un message d'erreur
2642                else {
2643                    alert(data);
2644                }
2645            },
2646            async: false
2647        });
2648    }
2649    
2650    /**
2651     * Modifie les champs requis pour le formulaire demande_type
2652     * @param  integer  demande_nature                         Identifiant
2653     * @param  string   lib_dossier_autorisation_type_detaille Libellé du champ
2654     * dossier_autorisation_type_detaille
2655     * @param  string   lib_dossier_instruction_type           Libellé du champ
2656     * dossier_instruction_type
2657     */
2658    function required_fields_demande_type(demande_nature, lib_dossier_autorisation_type_detaille, lib_dossier_instruction_type) {
2659    
2660        // Lien
2661        link = "../app/getDemandeNatureInfo.php?demande_nature=" + demande_nature;
2662    
2663        // Traitement
2664        $.ajax({
2665            type: "GET",
2666            url: link,
2667            cache: false,
2668            dataType: "json",
2669            success: function(demande_nature_info) {
2670    
2671                // On enlève le "*" au libellé du champ
2672                // dossier_autorisation_type_detaille pour montrer qu'il n'est
2673                // pas obligatoire
2674                $("#lib-dossier_autorisation_type_detaille").text('');
2675                $("#lib-dossier_autorisation_type_detaille")
2676                    .html(lib_dossier_autorisation_type_detaille);
2677    
2678                // On enlève le "*" au libellé du champ
2679                // dossier_instruction_type pour montrer qu'il n'est
2680                // pas obligatoire
2681                $("#lib-dossier_instruction_type").text('');
2682                $("#lib-dossier_instruction_type")
2683                    .html(lib_dossier_instruction_type);
2684                
2685                // Si c'est une nouvelle demande
2686                if (demande_nature_info != ''
2687                    && demande_nature_info != null) {
2688    
2689                    if (demande_nature_info['code'] == 'NOUV') {
2690    
2691                        // On ajoute le "*" au libellé du champ
2692                        // dossier_autorisation_type_detaille pour montrer qu'il est
2693                        // obligatoire
2694                        $("#lib-dossier_autorisation_type_detaille").text('');
2695                        $("#lib-dossier_autorisation_type_detaille")
2696                            .html(lib_dossier_autorisation_type_detaille + ' <span class="not-null-tag">*</span>');
2697    
2698                        // On ajoute le "*" au libellé du champ
2699                        // dossier_instruction_type pour montrer qu'il est
2700                        // obligatoire
2701                        $("#lib-dossier_instruction_type").text('');
2702                        $("#lib-dossier_instruction_type")
2703                            .html(lib_dossier_instruction_type + ' <span class="not-null-tag">*</span>');
2704    
2705                    }
2706    
2707                }
2708                
2709            },
2710            async:false
2711        });
2712    }
2713    
2714    /**
2715     * Appel au chargement de la page
2716     **/
2717    $(function() {
2718    
2719        // url de la page
2720        url = document.location + "";
2721    
2722        // Si dans le formulaire des type de demande
2723        // et que c'est en mode ajout ou modifier
2724        if (url.indexOf("form.php?obj=demande_type&") != -1
2725            && (url.indexOf("&action=0") != -1
2726            || url.indexOf("&action=1") != -1
2727            || url.indexOf("&validation=") != -1)) {
2728    
2729            // Récupère les paramètres nécessaires
2730            var demande_nature = $("#demande_nature").val();
2731            var lib_dossier_autorisation_type_detaille = $("#lib-dossier_autorisation_type_detaille").text();
2732            var lib_dossier_instruction_type = $("#lib-dossier_instruction_type").text();
2733    
2734            // Appelle la fonction pour indiquer si les champs sont requis ou non
2735            required_fields_demande_type(demande_nature, lib_dossier_autorisation_type_detaille, lib_dossier_instruction_type);
2736        }
2737    
2738    });

Legend:
Removed from v.2113  
changed lines
  Added in v.2367

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26