96 |
$this->om_utilisateur["libelle_profil"] = $resProfil; |
$this->om_utilisateur["libelle_profil"] = $resProfil; |
97 |
|
|
98 |
// si c'est un administrateur technique |
// si c'est un administrateur technique |
99 |
if ($resProfil == "ADMINISTRATEUR TECHNIQUE") { |
// XXX Mauvaise méthode, il faut utiliser isAccredited |
100 |
|
if ($resProfil == "ADMINISTRATEUR TECHNIQUE" |
101 |
|
|| $resProfil == "ADMINISTRATEUR FONCTIONNEL") { |
102 |
$this->user_is_admin = true; |
$this->user_is_admin = true; |
103 |
} else { |
} else { |
104 |
$this->user_is_admin = false; |
$this->user_is_admin = false; |
484 |
$ancien_ref_parc = ""; |
$ancien_ref_parc = ""; |
485 |
for ($i=2; $i < count($reference_tab); $i+=2) { |
for ($i=2; $i < count($reference_tab); $i+=2) { |
486 |
$parc["quartier"] = $quartier; |
$parc["quartier"] = $quartier; |
487 |
$parc["section"] = $sect; |
// Met en majuscule si besoin |
488 |
|
$parc["section"] = strtoupper($sect); |
489 |
if( $ancien_ref_parc == "" OR $reference_tab[$i-1] == "/") { |
if( $ancien_ref_parc == "" OR $reference_tab[$i-1] == "/") { |
490 |
// 1ere parcelle ou parcelle individuelle |
// 1ere parcelle ou parcelle individuelle |
491 |
$parc["parcelle"] = $reference_tab[$i]; |
// Compléte par des "0" le début de la chaîne si besoin |
492 |
|
$parc["parcelle"] = str_pad($reference_tab[$i], 4, "0", STR_PAD_LEFT); |
493 |
// Ajout d'une parcelle à la liste |
// Ajout d'une parcelle à la liste |
494 |
$liste_parcelles[] = $parc; |
$liste_parcelles[] = $parc; |
495 |
} elseif ($reference_tab[$i-1] == "A") { |
} elseif ($reference_tab[$i-1] == "A") { |
591 |
(isset($this->config['path_scan']) ? "" : $this->config['path_scan'] = '../trs/numerisation/'); |
(isset($this->config['path_scan']) ? "" : $this->config['path_scan'] = '../trs/numerisation/'); |
592 |
|
|
593 |
$default_sig_elyx = array( |
$default_sig_elyx = array( |
|
'url' => 'http://localhost/openads/tests/sig_elyx_test.php', |
|
594 |
'wsdl' => '../tests/wsurbanisme.wsdl', |
'wsdl' => '../tests/wsurbanisme.wsdl', |
595 |
'login' => 'sig', |
'login' => 'sig', |
596 |
'password' => 'sig', |
'password' => 'sig', |
617 |
} |
} |
618 |
} |
} |
619 |
|
|
620 |
|
/** |
621 |
|
* Permet de vérifier que des champs existe dans une table |
622 |
|
* @param array $list_fields Liste des champs à tester |
623 |
|
* @param string $table Table où les champs doivent exister |
624 |
|
* @return mixed Retourne les champs qui n'existent pas |
625 |
|
* ou true |
626 |
|
*/ |
627 |
|
public function check_field_exist($list_fields, $table) { |
628 |
|
|
629 |
|
// Requête SQL pour récupérer le nom des colonnes |
630 |
|
$sql = "SELECT column_name |
631 |
|
FROM information_schema.columns |
632 |
|
WHERE table_schema = '".substr(DB_PREFIXE, 0, -1)."' |
633 |
|
AND table_name = '".$table."' |
634 |
|
ORDER BY ordinal_position"; |
635 |
|
$this->addToLog("check_field_exist() : db->query(\"".$sql."\")", VERBOSE_MODE); |
636 |
|
$res = $this->db->query($sql); |
637 |
|
$this->isDatabaseError($res); |
638 |
|
|
639 |
|
// Tant qu'il y a un résultat |
640 |
|
while ($row = &$res->fetchRow(DB_FETCHMODE_ASSOC)) { |
641 |
|
|
642 |
|
// Le nom de la colonne est mise dans un tableau |
643 |
|
$list_column[] = $row['column_name']; |
644 |
|
} |
645 |
|
|
646 |
|
// Tableau des champs en erreur |
647 |
|
$error_fields = array(); |
648 |
|
|
649 |
|
// Pour chaque champ à tester |
650 |
|
foreach ($list_fields as $value) { |
651 |
|
|
652 |
|
// S'il n'apparaît pas dans la liste des champs possible |
653 |
|
if (!in_array($value, $list_column)) { |
654 |
|
|
655 |
|
// Alors le champ est ajouté au tableau des erreurs |
656 |
|
$error_fields[] = $value; |
657 |
|
} |
658 |
|
} |
659 |
|
|
660 |
|
// Si le tableau des erreurs n'est pas vide on le retourne |
661 |
|
if (count($error_fields) > 0) { |
662 |
|
return $error_fields; |
663 |
|
} |
664 |
|
|
665 |
|
// Sinon on retourne le booléen true |
666 |
|
return true; |
667 |
|
|
668 |
|
} |
669 |
|
|
670 |
|
/* |
671 |
|
* |
672 |
|
*/ |
673 |
|
/** |
674 |
|
* Récupère la lettre type lié à un événement |
675 |
|
* @param integer $evenement L'identifiant de l'événement |
676 |
|
* @return integer Retourne l'idenfiant de la lettre-type ou true |
677 |
|
*/ |
678 |
|
function getLettreType($evenement){ |
679 |
|
|
680 |
|
$lettretype = NULL; |
681 |
|
|
682 |
|
$sql = |
683 |
|
"SELECT |
684 |
|
lettretype |
685 |
|
FROM |
686 |
|
".DB_PREFIXE."evenement |
687 |
|
WHERE |
688 |
|
evenement = $evenement"; |
689 |
|
|
690 |
|
$this->addToLog("getLettreType() : db->query(\"".$sql."\")", VERBOSE_MODE); |
691 |
|
$res = $this->db->query($sql); |
692 |
|
if ( database::isError($res)){ |
693 |
|
die(); |
694 |
|
} |
695 |
|
|
696 |
|
if ( $res->numrows() > 0 ){ |
697 |
|
|
698 |
|
$row=& $res->fetchRow(DB_FETCHMODE_ASSOC); |
699 |
|
$lettretype = $row['lettretype']; |
700 |
|
} |
701 |
|
|
702 |
|
return $lettretype; |
703 |
|
} |
704 |
|
|
705 |
|
/** |
706 |
|
* Retourne le type de dossier d'autorisation du dossier courant : |
707 |
|
* @param $idxDossier Le numéro du dossier d'instruction |
708 |
|
* @return le code du type détaillée de dossier d'autorisation |
709 |
|
**/ |
710 |
|
function getDATDCode($idxDossier) { |
711 |
|
$sql = "SELECT dossier_autorisation_type_detaille.code |
712 |
|
FROM ".DB_PREFIXE."dossier_autorisation_type_detaille |
713 |
|
INNER JOIN ".DB_PREFIXE."dossier_autorisation |
714 |
|
ON dossier_autorisation_type_detaille.dossier_autorisation_type_detaille = |
715 |
|
dossier_autorisation.dossier_autorisation_type_detaille |
716 |
|
INNER JOIN ".DB_PREFIXE."dossier ON dossier.dossier_autorisation = dossier_autorisation.dossier_autorisation |
717 |
|
WHERE dossier.dossier = '".$idxDossier."'"; |
718 |
|
$res = $this->db->getOne($sql); |
719 |
|
$this->addToLog("getDATDCode() : db->getOne(\"".$sql."\")", VERBOSE_MODE); |
720 |
|
if ( database::isError($res)){ |
721 |
|
die(); |
722 |
|
} |
723 |
|
return $res; |
724 |
|
} |
725 |
|
|
726 |
|
/** |
727 |
|
* Permet de copier un enregistrement |
728 |
|
* @param mixed $idx Identifiant de l'enregistrment |
729 |
|
* @param string $obj Objet de l'enregistrment |
730 |
|
* @param string $objsf Objets associés |
731 |
|
* @return array Tableau des nouveaux id et du message |
732 |
|
*/ |
733 |
|
function copier($idx, $obj, $objsf) { |
734 |
|
|
735 |
|
// Tableau de résultat |
736 |
|
$resArray = array(); |
737 |
|
// Message retourné à l'utilisateur |
738 |
|
$message = ""; |
739 |
|
// Type du message (valid ou error) |
740 |
|
$message_type = "valid"; |
741 |
|
|
742 |
|
// Requête SQL permettant de récupérer les informations sur l'objet métier |
743 |
|
$sql = "SELECT * |
744 |
|
FROM ".DB_PREFIXE.$obj." |
745 |
|
WHERE ".$obj." = ".$idx; |
746 |
|
$res = $this->db->query($sql); |
747 |
|
$this->isDatabaseError($res); |
748 |
|
|
749 |
|
// Valeurs clonées |
750 |
|
$valF = array(); |
751 |
|
while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) { |
752 |
|
// Recupère la valeur |
753 |
|
$valF = $row; |
754 |
|
} |
755 |
|
|
756 |
|
// Valeurs non clonées |
757 |
|
// Identifiant modifié pour que ça soit un ajout |
758 |
|
$valF[$obj] = "]"; |
759 |
|
|
760 |
|
// Inclus la classe de l'objet métier |
761 |
|
require_once "../obj/".$obj.".class.php"; |
762 |
|
|
763 |
|
// Instance de l'objet métier |
764 |
|
$clone_obj = new $obj("]", $this->db, DEBUG); |
765 |
|
// Si dans l'objet métier la fonction "copier" existe |
766 |
|
if (method_exists($clone_obj, "copier")) { |
767 |
|
// Traitement sur les valeurs du duplicata |
768 |
|
$valF = $clone_obj->copier($valF, $objsf, DEBUG); |
769 |
|
// Recupère les messages retourné par la fonction |
770 |
|
$message .= $valF['message']; |
771 |
|
// Supprime les messages de la liste des valeurs |
772 |
|
unset($valF['message']); |
773 |
|
} |
774 |
|
// Ajoute le duplicata |
775 |
|
$clone_obj->ajouter($valF, $this->db, DEBUG); |
776 |
|
// Si aucune erreur se produit dans la classe instanciée |
777 |
|
if ($clone_obj->correct === true) { |
778 |
|
// Récupère l'identifiant de l'objet créé |
779 |
|
$clone_obj_id = $clone_obj->valF[$obj]; |
780 |
|
|
781 |
|
// Message |
782 |
|
$message .= sprintf(_("La copie de l'enregistrement %s avec l'identifiant %s s'est effectuee avec succes"), "<span class='bold'>"._($obj)."</span>", "<span class='bold'>".$idx."</span>")."<br />"; |
783 |
|
|
784 |
|
// Ajout de l'identifant au tableau des résultat |
785 |
|
$resArray[$obj.'_'.$idx] = $clone_obj_id; |
786 |
|
|
787 |
|
// S'il y a au moins un objet metier associé |
788 |
|
if ($objsf != "") { |
789 |
|
// Liste des objet métier associés |
790 |
|
$list_objsf = explode(",", $objsf); |
791 |
|
// Pour chaque objet associé |
792 |
|
foreach ($list_objsf as $key => $objsf) { |
793 |
|
// Inclus la classe de l'objet métier associé |
794 |
|
require_once "../obj/".$objsf.".class.php"; |
795 |
|
|
796 |
|
// Requête SQL permettant de récupérer les informations sur |
797 |
|
// l'objet métier associé |
798 |
|
$sql = "SELECT * |
799 |
|
FROM ".DB_PREFIXE.$objsf." |
800 |
|
WHERE ".$obj." = ".$idx; |
801 |
|
$res = $this->db->query($sql); |
802 |
|
$this->isDatabaseError($res); |
803 |
|
|
804 |
|
// Pour chaque élément associé |
805 |
|
while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)) { |
806 |
|
// Identifiant de l'objet associé à copier |
807 |
|
$idxsf = $row[$objsf]; |
808 |
|
|
809 |
|
// Valeurs clonées |
810 |
|
$valF = $row; |
811 |
|
// Valeurs non clonées |
812 |
|
$valF[$obj] = $clone_obj_id; |
813 |
|
// Identifiant modifié pour que ça soit un ajout |
814 |
|
$valF[$objsf] = "]"; |
815 |
|
// Instance de l'objet métier associé |
816 |
|
$clone_objsf = new $objsf("]", $this->db, DEBUG); |
817 |
|
// Si dans l'objet métier associé |
818 |
|
// la fonction "copier" existe |
819 |
|
if (method_exists($clone_objsf, "copier")) { |
820 |
|
// Traitement sur les valeurs du duplicata |
821 |
|
$valF = $clone_objsf->copier($valF, $objsf, DEBUG); |
822 |
|
// Recupère les messages retourné par la fonction |
823 |
|
$message .= $valF['message']; |
824 |
|
// Supprime les messages de la liste des valeurs |
825 |
|
unset($valF['message']); |
826 |
|
} |
827 |
|
// Ajoute le duplicata |
828 |
|
$clone_objsf->ajouter($valF, $this->db, DEBUG); |
829 |
|
// Si aucune erreur se produit dans la classe instanciée |
830 |
|
if ($clone_objsf->correct === true) { |
831 |
|
// Récupère l'identifiant de l'objet créé |
832 |
|
$clone_objsf_id = $clone_objsf->valF[$objsf]; |
833 |
|
|
834 |
|
// Message |
835 |
|
$message .= sprintf(_("La copie de l'enregistrement %s avec l'identifiant %s s'est effectuee avec succes"), "<span class='bold'>"._($objsf)."</span>", "<span class='bold'>".$idxsf."</span>")."<br />"; |
836 |
|
|
837 |
|
// Ajout de l'identifant au tableau des résultat |
838 |
|
$resArray[$objsf.'_'.$row[$objsf]] = $clone_objsf_id; |
839 |
|
} else { |
840 |
|
|
841 |
|
// Message d'erreur récupéré depuis la classe |
842 |
|
$message .= $clone_objsf->msg; |
843 |
|
// Type du message |
844 |
|
$message_type = "error"; |
845 |
|
} |
846 |
|
} |
847 |
|
} |
848 |
|
} |
849 |
|
// |
850 |
|
} else { |
851 |
|
|
852 |
|
// Message d'erreur récupéré depuis la classe |
853 |
|
$message .= $clone_obj->msg; |
854 |
|
// Type du message |
855 |
|
$message_type = "error"; |
856 |
|
} |
857 |
|
|
858 |
|
// Ajout du message au tableau des résultats |
859 |
|
$resArray['message'] = $message; |
860 |
|
// Ajout du type de message au tableau des résultats |
861 |
|
$resArray['message_type'] = $message_type; |
862 |
|
|
863 |
|
// Retourne le tableau des résultats |
864 |
|
return $resArray; |
865 |
|
} |
866 |
|
|
867 |
|
/** |
868 |
|
* Permet de détailler les conditions pour l'affichage des contraintes dans |
869 |
|
* une édition. |
870 |
|
* @param string $contraintes_param Chaine des conditions |
871 |
|
* @return array Conditions |
872 |
|
*/ |
873 |
|
function explodeConditionContrainte($contraintes_param) { |
874 |
|
|
875 |
|
// Initialisation des variables |
876 |
|
$return = array(); |
877 |
|
$listGroupes = ""; |
878 |
|
$listSousgroupes = ""; |
879 |
|
|
880 |
|
// Coupe la condition au ";" |
881 |
|
// Doit séparer groupe et sous-groupe |
882 |
|
$contraintes_params = explode(";", $contraintes_param); |
883 |
|
|
884 |
|
// Enlève le mots-clés "ssgroupe=" dans la première partie de |
885 |
|
// la condition |
886 |
|
$listSousgroupes = str_replace("ssgroupe=", "", $contraintes_params[0]); |
887 |
|
// Si après traitement le mots-clés "groupe=" est toujours présent |
888 |
|
if (strstr($listSousgroupes, "groupe=")) { |
889 |
|
// On enlève le mots-clés "groupe=" |
890 |
|
$listGroupes = str_replace("groupe=", "", $contraintes_params[0]); |
891 |
|
// Met à null la liste des sousgroupes |
892 |
|
$listSousgroupes = ""; |
893 |
|
} |
894 |
|
// Si il y a une deuxième partie à la condition, ça doit être les |
895 |
|
// sousgroupes |
896 |
|
if (count($contraintes_params) > 1) { |
897 |
|
// Enlève le mots-clés "ssgroupe=" |
898 |
|
$listSousgroupes = str_replace("ssgroupe=", "", $contraintes_params[1]); |
899 |
|
} |
900 |
|
|
901 |
|
// Récupère la liste des groupes et sous-groupes qui doivent |
902 |
|
// être utilisés pour la condition |
903 |
|
$groupes = explode(",", $listGroupes); |
904 |
|
$sousgroupes = explode(",", $listSousgroupes); |
905 |
|
|
906 |
|
// Tableau à retourner |
907 |
|
$return['groupes'] = $groupes; |
908 |
|
$return['sousgroupes'] = $sousgroupes; |
909 |
|
|
910 |
|
// |
911 |
|
return $return; |
912 |
|
} |
913 |
} |
} |
914 |
|
|
915 |
?> |
?> |