disableLog(); //Données $refcads = ($f->get_submitted_post_value("refcad") != null) ? $f->get_submitted_post_value("refcad") : "" ; //Si ce n'est pas un if ( !is_array($refcads) ){ printf(json_encode(_("Aucune reference cadastrale fournie"))); return; } //Données à envoyer $wParcelle = ""; //Formatage des références cadastrales pour l'envoi foreach ($refcads as $refcad) { //Pour chaque ligne foreach ($refcad as $value) { //On ajoute les données dans le tableau que si quartier + section + parcelle //a été fourni if ($value["quartier"]!==""&&$value["section"]!==""&&$value["parcelle"]!=="") { // $wParcelle .= $value["quartier"].$value["section"].$value["parcelle"]; //Si on a des délimiteurs if (isset($value["delimit"][0])) { //Pour chaque délimiteur for($i = 0 ; $i < count($value["delimit"][0]) ; $i++){ // $wParcelle .= $value["delimit"][0][$i]; } } // Séparateur $wParcelle .= ";"; } } } require_once ('../services/outgoing/MessageSenderSoap.class.php'); // Configuration du soap $conf = $f->config['sig_elyx']; // Instance de la classe permettant d'envoyer des requête SOAP $MessageSenderSoap = new MessageSenderSoap($conf['wsdl'], $conf['login'], $conf['password']); // Formatage des parcelles pour l'envoi au webservice $liste_parcelles = $f->parseParcelles($wParcelle); $wParcelle = $f->formatParcelleToSend($liste_parcelles); $data["wParcelle"] = implode(';', $wParcelle); //On lance la requête SOAP $execute = $MessageSenderSoap->execute("getExistParcelle", $data); // Initialise le tableau qui contiendra les parcelles qui // n'existent pas $list_error_parcelle = array(); // Vérifie l'existence des parcelles foreach ($execute['return'] as $key => $ret) { // Si c'est un tableau if (is_array($execute['return'][$key])) { // if ($ret['existe'] != '0') { $list_error_parcelle[] = $ret['id']; } } elseif ($key == 'existe' && $execute['return'][$key] == '1') { $list_error_parcelle[] = $execute['return']['id']; } } // Si il n'y a pas d'erreur if (count($list_error_parcelle) == 0) { // Variable retournée $response['return_addr'] = $execute['return']; // Si plusieur parcelle sont retourné on n'utilise que la première pour // récupérer l'adresse if (isset($execute['return'][0]) && is_array($execute['return'][0])) { unset($response); $response['return_addr'] = $execute['return'][0]; } //Récupération du nom de la collectivité if (is_array($response)){ $sql = "SELECT libelle FROM ".DB_PREFIXE."om_collectivite WHERE om_collectivite = ".$_SESSION["collectivite"]; $f->addToLog("getAdressFromCadastrale.php : ".$sql." execute
", EXTRA_VERBOSE_MODE); $localite = $f->db->getOne($sql); $f->isDatabaseError($localite); $response["return_addr"]["localite"] = $localite; } //Si la parcelle existe if ( $response["return_addr"]["existe"] == 0 ){ // Formate le code postal $code_postal = ''; // Requête sql $sqlDonneesArrdt = "SELECT code_postal FROM ".DB_PREFIXE."arrondissement WHERE arrondissement = ".$response['return_addr']['arrdt']; $code_postal = $f->db->getOne($sqlDonneesArrdt); $f->addToLog("app/geolocalisation_treatment.php : db->query(\"".$sqlDonneesArrdt."\")", VERBOSE_MODE); $f->isDatabaseError($code_postal); // Si il y a un résultat if ($code_postal != '') { $response['return_addr']['arrdt'] = $code_postal; } // On coupe les chaînes retournées afin que la taille correspondent aux // tailles des champs en base de données $response['return_addr']['dnuvoi'] = substr($response['return_addr']['dnuvoi'], 0, 20); $response['return_addr']['nom'] = substr($response['return_addr']['prefixe']." ".$response['return_addr']['nom'], 0, 30); // printf(json_encode($response)); } else{ printf(json_encode(_("Aucune adresse ne correspond a la reference cadastrale fournie"))); } } else { $string_error_parcelle = implode(", ", $list_error_parcelle); printf(json_encode(sprintf(_("Les parcelles n'existent pas.")))); } ?>