57 |
$f->isDatabaseError($resDonneesDI); |
$f->isDatabaseError($resDonneesDI); |
58 |
$rowDonneesDI = &$resDonneesDI->fetchRow(DB_FETCHMODE_ASSOC); |
$rowDonneesDI = &$resDonneesDI->fetchRow(DB_FETCHMODE_ASSOC); |
59 |
|
|
|
// Formatage des parcelles pour l'envoi au webservice |
|
|
$liste_parcelles = $f->parseParcelles($rowDonneesDI['terrain_references_cadastrales']); |
|
|
$wParcelle = $f->formatParcelleToSend($liste_parcelles); |
|
|
|
|
60 |
// Si l'enregistrement n'existe pas dans la table sig_elyx |
// Si l'enregistrement n'existe pas dans la table sig_elyx |
61 |
if (count($rowDonneesSIG) == 0) { |
if (count($rowDonneesSIG) == 0) { |
62 |
|
|
76 |
} |
} |
77 |
} |
} |
78 |
|
|
79 |
|
// Formatage des parcelles pour l'envoi au webservice |
80 |
|
$liste_parcelles = $f->parseParcelles($rowDonneesSIG['terrain_references_cadastrales_archive']); |
81 |
|
$wParcelle = $f->formatParcelleToSend($liste_parcelles); |
82 |
|
// Crée une chaîne de parcelle séparée par des ";" |
83 |
|
$stringParcelles = implode(';', $wParcelle); |
84 |
|
|
85 |
// Configuration du soap |
// Configuration du soap |
86 |
$conf = $f->config['sig_elyx']; |
$conf = $f->config['sig_elyx']; |
87 |
|
|
96 |
|
|
97 |
// Initialisation des variables |
// Initialisation des variables |
98 |
$message = ""; |
$message = ""; |
99 |
|
$message_diff_parcelle = _("Les parcelles ont ete modifiees."); |
100 |
$execute = array(); |
$execute = array(); |
101 |
|
|
102 |
// Si les références cadastrales sont à changer dans sig_elyx |
// Si les références cadastrales sont à changer dans sig_elyx |
103 |
$flag_ref_cadastrales = false; |
$flag_ref_cadastrales = false; |
104 |
|
$diff_parcelle = false; |
105 |
|
|
106 |
// Fait appele aux différents webservices selon le bouton cliqué |
// Fait appele aux différents webservices selon le bouton cliqué |
107 |
switch ($fieldname) { |
switch ($fieldname) { |
108 |
// |
// |
109 |
case 'verif_parcelle': |
case 'verif_parcelle': |
110 |
// Crée une chaîne de parcelle séparée par des ";" |
// Données à envoyer au wsdl |
|
$stringParcelles = implode(';', $wParcelle); |
|
|
// |
|
111 |
$data = array( |
$data = array( |
112 |
"wParcelle" => $stringParcelles, |
"wParcelle" => $stringParcelles, |
113 |
); |
); |
116 |
break; |
break; |
117 |
// |
// |
118 |
case 'calcul_emprise': |
case 'calcul_emprise': |
|
// Crée une chaîne de parcelle séparée par des ";" |
|
|
$stringParcelles = implode(';', $wParcelle); |
|
119 |
// Données à envoyer au wsdl |
// Données à envoyer au wsdl |
120 |
$data = array( |
$data = array( |
121 |
"wParcelle" => $stringParcelles, |
"wParcelle" => $stringParcelles, |
193 |
// |
// |
194 |
$string_error_parcelle = implode(", ", $list_error_parcelle); |
$string_error_parcelle = implode(", ", $list_error_parcelle); |
195 |
// |
// |
196 |
$message = sprintf(_("La/Les parcelle(s) %s n'existe(nt) pas."), $string_error_parcelle); |
$message = _("Les parcelles n'existent pas."); |
197 |
} else { |
} else { |
198 |
// Sinon ont met à jour le champ |
// Sinon ont met à jour le champ |
199 |
// terrain_references_cadastrales_archive dans la table |
// terrain_references_cadastrales_archive dans la table |
200 |
// sig_elyx |
// sig_elyx |
201 |
$flag_ref_cadastrales = true; |
$flag_ref_cadastrales = true; |
202 |
|
|
203 |
|
// Si les deux champs sont différent |
204 |
|
if (isset($rowDonneesSIG["terrain_references_cadastrales_archive"]) && $rowDonneesSIG["terrain_references_cadastrales_archive"] != $rowDonneesDI["terrain_references_cadastrales"]) { |
205 |
|
$diff_parcelle = true; |
206 |
|
} |
207 |
} |
} |
208 |
break; |
break; |
209 |
// |
// |
229 |
// Traitement du message |
// Traitement du message |
230 |
$message = _("Le centroide a ete calcule")." : ". |
$message = _("Le centroide a ete calcule")." : ". |
231 |
$execute['return']['coordX'].", ". |
$execute['return']['coordX'].", ". |
232 |
$execute['return']['coordY']; |
$execute['return']['coordY']."."; |
233 |
|
|
234 |
// Met à jour le centroide dans le dossier |
// Met à jour le centroide dans le dossier |
235 |
$res = $f->db->query("UPDATE ".DB_PREFIXE."dossier ". |
$res = $f->db->query("UPDATE ".DB_PREFIXE."dossier ". |
251 |
foreach ($execute['return'] as $key => $ret) { |
foreach ($execute['return'] as $key => $ret) { |
252 |
// |
// |
253 |
if (is_array($execute['return'][$key])) { |
if (is_array($execute['return'][$key])) { |
254 |
$liste_contraintes[] = $ret[$key]['libelle']; |
$liste_contraintes[] = "- ".$ret['libelle']; |
255 |
} elseif ($key == "libelle") { |
} elseif ($key == "libelle") { |
256 |
$liste_contraintes[] = $execute['return'][$key]; |
$liste_contraintes[] = "- ".$execute['return'][$key]; |
257 |
} |
} |
258 |
} |
} |
259 |
// Liste des contraintes dans une chaîne |
// Liste des contraintes dans une chaîne |
260 |
$string_contraintes = implode(", ", $liste_contraintes); |
$string_contraintes = implode(', <br/>', $liste_contraintes); |
261 |
// Recrée le tableau de retour |
// Recrée le tableau de retour |
262 |
unset($execute); |
unset($execute); |
263 |
$execute['return']['servitude'] = $string_contraintes; |
$execute['return']['servitude'] = $string_contraintes; |
278 |
// Traitement du message d'erreur |
// Traitement du message d'erreur |
279 |
$message = _("Une erreur s'est produite. Veuillez verifier les etapes precedentes ou contacter votre administrateur."); |
$message = _("Une erreur s'est produite. Veuillez verifier les etapes precedentes ou contacter votre administrateur."); |
280 |
// log le message d'erreur retourné par le webservice |
// log le message d'erreur retourné par le webservice |
281 |
$f->addToLog("app/geolocalisation_treatment.php: Traitement webservice SIG".$soap->getErrorMessage(), DEBUG); |
$f->addToLog("app/geolocalisation_treatment.php: Traitement webservice SIG: ".$soap->getErrorMessage(), DEBUG_MODE); |
282 |
// Redéfinit la variable utilisée pour le retour |
// Redéfinit la variable utilisée pour le retour |
283 |
unset($execute); |
unset($execute); |
284 |
$execute= array(); |
$execute= array(); |
306 |
$valueSIG['message_'.$fieldname] = $message; |
$valueSIG['message_'.$fieldname] = $message; |
307 |
// Si les références cadastrales ont été modifiées et vérifier |
// Si les références cadastrales ont été modifiées et vérifier |
308 |
if ($flag_ref_cadastrales === true) { |
if ($flag_ref_cadastrales === true) { |
309 |
// |
// On met à jour le champ de la table sig_elyx |
310 |
$valueSIG['terrain_references_cadastrales_archive'] = $rowDonneesDI['terrain_references_cadastrales']; |
$valueSIG['terrain_references_cadastrales_archive'] = $rowDonneesDI['terrain_references_cadastrales']; |
311 |
} |
} |
312 |
|
// Si les champs contenant la référence cadastrale dans le DI |
313 |
|
// et dans la table sig_elyx sont différent |
314 |
|
if ($diff_parcelle === true) { |
315 |
|
// Met à jour le message des autres boutons |
316 |
|
$valueSIG['message_calcul_emprise'] = $message_diff_parcelle; |
317 |
|
$valueSIG['message_calcul_centroide'] = $message_diff_parcelle; |
318 |
|
$valueSIG['message_recup_contrainte'] = $message_diff_parcelle; |
319 |
|
// Met à jour l'état des autres boutons |
320 |
|
$valueSIG['etat_calcul_emprise'] = 'f'; |
321 |
|
$valueSIG['etat_calcul_centroide'] = 'f'; |
322 |
|
$valueSIG['etat_recup_contrainte'] = 'f'; |
323 |
|
// Met à jour la date de traitement des autres boutons |
324 |
|
$valueSIG['date_calcul_emprise'] = $date_db; |
325 |
|
$valueSIG['date_calcul_centroide'] = $date_db; |
326 |
|
$valueSIG['date_recup_contrainte'] = $date_db; |
327 |
|
|
328 |
|
// Message à affiché à l'utilisateur |
329 |
|
$message_diff_parcelle = sprintf(_("Dernier traitement effectue le %s."), $date)." ".$message_diff_parcelle; |
330 |
|
} |
331 |
// Modification de l'enregistrement |
// Modification de l'enregistrement |
332 |
$sig_elyx->modifier($valueSIG, $f->db, DEBUG); |
$sig_elyx->modifier($valueSIG, $f->db, DEBUG); |
333 |
|
|
341 |
"date"=> $date, |
"date"=> $date, |
342 |
"etat"=> $etat, |
"etat"=> $etat, |
343 |
"message"=> $message, |
"message"=> $message, |
344 |
|
"message_diff_parcelle"=> $message_diff_parcelle |
345 |
); |
); |
346 |
|
|
347 |
// Retourne le résultat dans un tableau json |
// Retourne le résultat dans un tableau json |