434 |
return false; |
return false; |
435 |
|
|
436 |
} |
} |
437 |
|
|
438 |
|
/** |
439 |
|
* Permet de calculer la liste des parcelles à partir de la chaîne passée en paramètre |
440 |
|
* et la retourner sous forme d'un tableau associatif |
441 |
|
* |
442 |
|
* @param string $strParcelles chaîne de la parcelles |
443 |
|
* @return array (array(quartier, section, parcelle), ...) |
444 |
|
*/ |
445 |
|
function parseParcelles($strParcelles) { |
446 |
|
|
447 |
|
// Séparation des lignes |
448 |
|
$references = explode(";", $strParcelles); |
449 |
|
$liste_parcelles = array(); |
450 |
|
|
451 |
|
// On boucle sur chaque ligne pour ajouter la liste des parcelles de chaque ligne |
452 |
|
foreach ($references as $parcelles) { |
453 |
|
|
454 |
|
// On transforme la chaîne de la ligne de parcelles en tableau |
455 |
|
$ref = str_split($parcelles); |
456 |
|
// Les 1er caractères sont numériques |
457 |
|
$num = true; |
458 |
|
|
459 |
|
// Tableau des champs de la ligne de références cadastrales |
460 |
|
$reference_tab = array(); |
461 |
|
$temp = ""; |
462 |
|
foreach ($ref as $carac) { |
463 |
|
|
464 |
|
// Permet de tester si le caractère courant est de même type que le précédent |
465 |
|
if(is_numeric($carac) === $num) { |
466 |
|
$temp .= $carac; |
467 |
|
} else { |
468 |
|
// Bascule |
469 |
|
$num = !$num; |
470 |
|
// On stock le champ |
471 |
|
$reference_tab[] = $temp; |
472 |
|
// re-init de la valeur temporaire pour le champ suivant |
473 |
|
$temp = $carac; |
474 |
|
} |
475 |
|
} |
476 |
|
// Stockage du dernier champ sur lequel il n'y a pas eu de bascule |
477 |
|
$reference_tab[] = $temp; |
478 |
|
// Calcul des parcelles |
479 |
|
$quartier = $reference_tab[0]; |
480 |
|
$sect = $reference_tab[1]; |
481 |
|
|
482 |
|
$ancien_ref_parc = ""; |
483 |
|
for ($i=2; $i < count($reference_tab); $i+=2) { |
484 |
|
$parc["quartier"] = $quartier; |
485 |
|
$parc["section"] = $sect; |
486 |
|
if( $ancien_ref_parc == "" OR $reference_tab[$i-1] == "/") { |
487 |
|
// 1ere parcelle ou parcelle individuelle |
488 |
|
$parc["parcelle"] = $reference_tab[$i]; |
489 |
|
// Ajout d'une parcelle à la liste |
490 |
|
$liste_parcelles[] = $parc; |
491 |
|
} elseif ($reference_tab[$i-1] == "A") { |
492 |
|
// Interval de parcelles |
493 |
|
for ($j=$ancien_ref_parc+1; $j <= $reference_tab[$i]; $j++) { |
494 |
|
// Compléte par des "0" le début de la chaîne si besoin |
495 |
|
$parc["parcelle"] = str_pad($j, 4, "0", STR_PAD_LEFT); |
496 |
|
// Ajout d'une parcelle à la liste |
497 |
|
$liste_parcelles[] = $parc; |
498 |
|
} |
499 |
|
} |
500 |
|
//Gestion des erreurs |
501 |
|
else{ |
502 |
|
|
503 |
|
echo _("Une erreur de formattage a ete detecte dans la reference cadastrale du dossier ").$this->row['dossier']; |
504 |
|
} |
505 |
|
// Sauvegarde de la référence courante de parcelle |
506 |
|
$ancien_ref_parc = $reference_tab[$i]; |
507 |
|
} |
508 |
|
} |
509 |
|
|
510 |
|
return $liste_parcelles; |
511 |
|
} |
512 |
|
|
513 |
|
/** |
514 |
|
* Formate les parcelles en ajoutant le code impôt |
515 |
|
* @param array $liste_parcelles Tableau des parcelles |
516 |
|
* @return string Liste des parcelles formatées |
517 |
|
*/ |
518 |
|
function formatParcelleToSend($liste_parcelles) { |
519 |
|
|
520 |
|
// |
521 |
|
$wParcelle = ""; |
522 |
|
|
523 |
|
//Formatage des références cadastrales pour l'envoi |
524 |
|
foreach ($liste_parcelles as $value) { |
525 |
|
|
526 |
|
// On ajoute les données dans le tableau que si quartier + section + parcelle |
527 |
|
// a été fourni |
528 |
|
if ($value["quartier"]!==""&&$value["section"]!==""&&$value["parcelle"]!==""){ |
529 |
|
|
530 |
|
//On récupère le code impôt de l'arrondissement |
531 |
|
$arrondissement = $this->getCodeImpotByQuartier($value["quartier"]); |
532 |
|
|
533 |
|
//On ajoute la parcelle, si un arrondissement a été trouvé |
534 |
|
if ($arrondissement!=="") { |
535 |
|
// |
536 |
|
$wParcelle .= $arrondissement.$value["quartier"]." ". |
537 |
|
$value["section"].$value["parcelle"].";"; |
538 |
|
|
539 |
|
} |
540 |
|
} |
541 |
|
} |
542 |
|
|
543 |
|
// |
544 |
|
return $wParcelle; |
545 |
|
} |
546 |
|
|
547 |
|
/** |
548 |
|
* Récupère le code impôt par rapport au quartier |
549 |
|
* @param string $quartier Numéro de quartier |
550 |
|
* @return string Code impôt |
551 |
|
*/ |
552 |
|
function getCodeImpotByQuartier($quartier) { |
553 |
|
|
554 |
|
$arrondissement = ""; |
555 |
|
|
556 |
|
// Si le quartier fournis est correct |
557 |
|
if ($quartier != "") { |
558 |
|
|
559 |
|
// Requête SQL |
560 |
|
$sql = "SELECT |
561 |
|
arrondissement.code_impots |
562 |
|
FROM |
563 |
|
".DB_PREFIXE."arrondissement |
564 |
|
LEFT JOIN |
565 |
|
".DB_PREFIXE."quartier |
566 |
|
ON |
567 |
|
quartier.arrondissement = arrondissement.arrondissement |
568 |
|
WHERE |
569 |
|
quartier.code_impots = '".$quartier."'"; |
570 |
|
$this->addToLog("getCodeImpotByQuartier() : db->getOne(\"".$sql."\")", VERBOSE_MODE); |
571 |
|
$arrondissement = $this->db->getOne($sql); |
572 |
|
$this->isDatabaseError($arrondissement); |
573 |
|
} |
574 |
|
|
575 |
|
// Retour |
576 |
|
return $arrondissement; |
577 |
|
} |
578 |
|
|
579 |
|
/** |
580 |
|
* Vérification des paramètres |
581 |
|
*/ |
582 |
|
function checkParams() { |
583 |
|
parent::checkParams(); |
584 |
|
|
585 |
|
(isset($this->config['path_scan']) ? "" : $this->config['path_scan'] = '../trs/numerisation/'); |
586 |
|
|
587 |
|
$default_sig_elyx = array( |
588 |
|
'url' => 'http://localhost/openads/tests/sig_elyx_test.php', |
589 |
|
'wsdl' => '../tests/wsurbanisme.wsdl', |
590 |
|
'login' => 'sig', |
591 |
|
'password' => 'sig', |
592 |
|
); |
593 |
|
(isset($this->config['sig_elyx']) ? "" : $this->config['sig_elyx'] = $default_sig_elyx); |
594 |
|
} |
595 |
|
|
596 |
} |
} |
597 |
|
|
598 |
?> |
?> |