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

Annotation of /trunk/app/getAdressFromCadastrale.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3218 - (hide annotations)
Wed Dec 17 14:06:57 2014 UTC (10 years, 1 month ago) by vpihour
File size: 4838 byte(s)
Lors de la récupération de l'adresse, grâce aux références cadastrale, au moment de la saisie de la demande, si le nom de la voie faisait plus de trente caractères une erreur de base de données était déclenchée lors de l'ajout de la demande.

1 vpihour 2169 <?php
2     /**
3     * Ce script va interroger le WS1 et en retourner le résultat
4     *
5     * @package openads
6     * @version SVN : $Id: getAdressFromCadastrale.php
7     */
8    
9     require_once "../obj/utils.class.php";
10    
11     //Données
12     $refcads = (isset($_POST['refcad']) ? $_POST['refcad'] : "" );
13    
14     //Si ce n'est pas un
15     if ( !is_array($refcads) ){
16     printf(json_encode(_("Aucune reference cadastrale fournie")));
17     return;
18     }
19    
20     $f = new utils("nohtml", "demande_nouveau_dossier_ajouter");
21     $f->disableLog();
22    
23     //Données à envoyer
24 softime 2231 $wParcelle = "";
25 vpihour 2169 //Formatage des références cadastrales pour l'envoi
26     foreach ($refcads as $refcad) {
27    
28     //Pour chaque ligne
29     foreach ($refcad as $value) {
30    
31     //On ajoute les données dans le tableau que si quartier + section + parcelle
32     //a été fourni
33 softime 2231 if ($value["quartier"]!==""&&$value["section"]!==""&&$value["parcelle"]!=="") {
34    
35     //
36     $wParcelle .= $value["quartier"].$value["section"].$value["parcelle"];
37    
38     //Si on a des délimiteurs
39     if (isset($value["delimit"][0])) {
40    
41     //Pour chaque délimiteur
42     for($i = 0 ; $i < count($value["delimit"][0]) ; $i++){
43     //
44     $wParcelle .= $value["delimit"][0][$i];
45 vpihour 2169 }
46     }
47 softime 2231
48     // Séparateur
49     $wParcelle .= ";";
50 vpihour 2169 }
51     }
52     }
53     require_once ('../services/outgoing/MessageSenderSoap.class.php');
54    
55 softime 2229 // Configuration du soap
56     $conf = $f->config['sig_elyx'];
57 vpihour 2169
58 softime 2229 // Instance de la classe permettant d'envoyer des requête SOAP
59 softime 2285 $MessageSenderSoap = new MessageSenderSoap($conf['wsdl'], $conf['login'],
60 softime 2229 $conf['password']);
61    
62 softime 2231 // Formatage des parcelles pour l'envoi au webservice
63     $liste_parcelles = $f->parseParcelles($wParcelle);
64     $wParcelle = $f->formatParcelleToSend($liste_parcelles);
65     $data["wParcelle"] = implode(';', $wParcelle);
66    
67 vpihour 2169 //On lance la requête SOAP
68 softime 2232 $execute = $MessageSenderSoap->execute("getExistParcelle", $data);
69    
70     // Initialise le tableau qui contiendra les parcelles qui
71     // n'existent pas
72     $list_error_parcelle = array();
73     // Vérifie l'existence des parcelles
74     foreach ($execute['return'] as $key => $ret) {
75     // Si c'est un tableau
76     if (is_array($execute['return'][$key])) {
77     //
78     if ($ret['existe'] != '0') {
79     $list_error_parcelle[] = $ret['id'];
80     }
81     } elseif ($key == 'existe' && $execute['return'][$key] == '1') {
82     $list_error_parcelle[] = $execute['return']['id'];
83     }
84 vpihour 2169 }
85    
86 softime 2232 // Si il n'y a pas d'erreur
87     if (count($list_error_parcelle) == 0) {
88 softime 2229
89 softime 2232 // Variable retournée
90 nhaye 3066 $response['return_addr'] = $execute['return'];
91 softime 2232 // Si plusieur parcelle sont retourné on n'utilise que la première pour
92     // récupérer l'adresse
93     if (isset($execute['return'][0]) && is_array($execute['return'][0])) {
94     unset($response);
95 nhaye 3066 $response['return_addr'] = $execute['return'][0];
96 softime 2232 }
97 softime 2229
98 softime 2232 //Récupération du nom de la collectivité
99     if (is_array($response)){
100     $sql = "SELECT
101     libelle
102     FROM
103     ".DB_PREFIXE."om_collectivite
104     WHERE
105     om_collectivite = ".$_SESSION["collectivite"];
106     $f->addToLog("getAdressFromCadastrale.php : ".$sql." execute <br>", EXTRA_VERBOSE_MODE);
107    
108     $localite = $f->db->getOne($sql);
109     $f->isDatabaseError($localite);
110    
111 nhaye 3066 $response["return_addr"]["localite"] = $localite;
112 softime 2229 }
113 softime 2232
114     //Si la parcelle existe
115 nhaye 3066 if ( $response["return_addr"]["existe"] == 0 ){
116 softime 2232
117     // Formate le code postal
118     $code_postal = '';
119     // Requête sql
120     $sqlDonneesArrdt = "SELECT code_postal
121     FROM ".DB_PREFIXE."arrondissement
122 nhaye 3066 WHERE arrondissement = ".$response['return_addr']['arrdt'];
123 softime 2232 $code_postal = $f->db->getOne($sqlDonneesArrdt);
124     $f->addToLog("app/geolocalisation_treatment.php : db->query(\"".$sqlDonneesArrdt."\")", VERBOSE_MODE);
125     $f->isDatabaseError($code_postal);
126    
127     // Si il y a un résultat
128     if ($code_postal != '') {
129 nhaye 3066 $response['return_addr']['arrdt'] = $code_postal;
130 softime 2232 }
131    
132 vpihour 3218 // On coupe les chaînes retournées afin que la taille correspondent aux
133     // tailles des champs en base de données
134     $response['return_addr']['dnuvoi'] = substr($response['return_addr']['dnuvoi'], 0, 20);
135     $response['return_addr']['nom'] = substr($response['return_addr']['prefixe']." ".$response['return_addr']['nom'], 0, 30);
136     //
137 softime 2232 printf(json_encode($response));
138     }
139     else{
140     printf(json_encode(_("Aucune adresse ne correspond a la reference cadastrale fournie")));
141     }
142 vpihour 2169 }
143 softime 2232 else {
144     $string_error_parcelle = implode(", ", $list_error_parcelle);
145    
146 softime 2249 printf(json_encode(sprintf(_("Les parcelles n'existent pas."))));
147 vpihour 2169 }
148     ?>

Properties

Name Value
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26