914 |
|
|
915 |
} |
} |
916 |
|
|
917 |
/* |
/** |
918 |
* Calcul l'identifiant du quartier et d'un arrondissement d'une parcelle |
* Récupère l'identifiant du quartier et d'un arrondissement d'une référence |
919 |
* */ |
* cadastrale |
920 |
function getQuartierArrondissement($parcelle) { |
* @param string $reference_cadastrale |
921 |
|
* |
922 |
|
* @return array |
923 |
|
*/ |
924 |
|
function getQuartierArrondissement($reference_cadastrale) { |
925 |
|
|
926 |
$parcelle = trim($parcelle); |
$reference_cadastrale = trim($reference_cadastrale); |
927 |
$quartier = ''; |
$quartier = ''; |
928 |
|
|
929 |
/*Récupère le code impot du quartier dans la parcelle*/ |
//Récupère le code impot du quartier dans la référence cadastrale |
930 |
for ( $i = 0 ; $i < strlen($parcelle) ; $i++ ){ |
for ( $i = 0 ; $i < strlen($reference_cadastrale) ; $i++ ){ |
931 |
|
|
932 |
if (is_numeric($parcelle[$i]) ){ |
//Si c'est un chiffre, c'est le code quartier |
933 |
|
if (is_numeric($reference_cadastrale[$i]) ){ |
934 |
$quartier .= $parcelle[$i]; |
|
935 |
} |
$quartier .= $reference_cadastrale[$i]; |
936 |
else{ |
} |
937 |
|
//Sinon c'est la section |
938 |
break; |
else{ |
939 |
} |
break; |
940 |
} |
} |
941 |
|
} |
942 |
|
|
943 |
|
//Si le code impôt du quartier a bien été renseigné |
944 |
if ( $quartier !== '' ){ |
if ( $quartier !== '' ){ |
945 |
|
|
946 |
/*identifiant*/ |
//Requête de récupération de l'identifiantdu quartier et de |
947 |
|
//l'arrondissement |
948 |
$sql = "SELECT |
$sql = "SELECT |
949 |
quartier, arrondissement |
quartier, arrondissement |
950 |
FROM |
FROM |
951 |
".DB_PREFIXE."quartier |
".DB_PREFIXE."quartier |
952 |
WHERE |
WHERE |
953 |
code_impots='$quartier'"; |
code_impots='$quartier'"; |
954 |
|
$this->addToLog("getQuartierArrondissement() : db->query(\"$sql\")", VERBOSE_MODE); |
|
$this->addToLog("getQuartierArrondissement(parcelle) : db->query(\"$sql\")", VERBOSE_MODE); |
|
955 |
$res = $this->db->query($sql); |
$res = $this->db->query($sql); |
956 |
if (database :: isError($res)) |
if (database::isError($res)) { |
957 |
die($res->getMessage()."erreur ".$sql); |
die(); |
958 |
|
} |
959 |
if ( $res->numRows() > 0 ){ |
|
960 |
|
//Si on a un résultat |
961 |
|
if ( $res->numRows() == 1 ){ |
962 |
|
// |
963 |
return $res->fetchRow(DB_FETCHMODE_ASSOC); |
return $res->fetchRow(DB_FETCHMODE_ASSOC); |
964 |
} |
} |
965 |
} |
} |
966 |
|
|
967 |
return NULL; |
return NULL; |
968 |
} |
} |
969 |
|
|
970 |
/* |
/** |
971 |
* Retourne la section d'une parcelle |
* Récupère la section d'une référence cadastrale |
972 |
* */ |
* @param string $reference_cadastrale |
973 |
function getSection($parcelle){ |
* |
974 |
|
* @return string |
975 |
|
*/ |
976 |
|
function getSection($reference_cadastrale){ |
977 |
|
|
978 |
$parcelle = trim($parcelle); |
$reference_cadastrale = trim($reference_cadastrale); |
979 |
$section = NULL; |
$section = NULL; |
980 |
|
|
981 |
for ( $i = 0 ; $i < strlen($parcelle) ; $i++ ) |
for ( $i = 0 ; $i < strlen($reference_cadastrale) ; $i++ ) |
982 |
if ( !is_numeric($parcelle[$i]) && is_string($parcelle[$i]) && $parcelle[$i] !== ' ' ) |
if ( !is_numeric($reference_cadastrale[$i]) && is_string($reference_cadastrale[$i]) && $reference_cadastrale[$i] !== ' ' ) |
983 |
$section .= $parcelle[$i]; |
$section .= $reference_cadastrale[$i]; |
984 |
|
|
985 |
return $section; |
return $section; |
986 |
} |
} |
987 |
|
|
988 |
/* |
/* |
989 |
* Retourne l'intructeur correspondant le mieux à la parcelle |
* Retourne l'intructeur correspondant le mieux à la parcelle |
990 |
* */ |
* */ |
991 |
function getInstructeurDivision( $quartier, $arrondissement, $section, $dossier_autorisation) { |
/** |
992 |
|
* Récupère la section d'une référence cadastrale |
993 |
|
* @param string $quartier |
994 |
|
* @param string $arrondissement |
995 |
|
* @param string $section |
996 |
|
* @param string $dossier_autorisation |
997 |
|
* |
998 |
|
* @return array |
999 |
|
*/ |
1000 |
|
function getInstructeurDivision( $quartier, $arrondissement, $section, $dossier_autorisation) { |
1001 |
|
|
1002 |
$quartier = ( $quartier == NULL ) ? -1 : $quartier; |
$quartier = ( $quartier == NULL ) ? -1 : $quartier; |
1003 |
$arrondissement = ( $arrondissement == NULL ) ? -1 : $arrondissement; |
$arrondissement = ( $arrondissement == NULL ) ? -1 : $arrondissement; |
1004 |
|
|
1005 |
/*Récupération du dossier_autorisation_type_detaille concerné par le $dossier_autorisation*/ |
//Récupération du dossier_autorisation_type_detaille concerné par le |
1006 |
|
//$dossier_autorisation |
1007 |
$sql = " |
$sql = " |
1008 |
SELECT |
SELECT |
1009 |
dossier_autorisation_type_detaille |
dossier_autorisation_type_detaille |
1015 |
$this->addToLog("getInstructeurDivision : db->query(\"$sql\")", VERBOSE_MODE); |
$this->addToLog("getInstructeurDivision : db->query(\"$sql\")", VERBOSE_MODE); |
1016 |
$resDATD = $this->db->query($sql); |
$resDATD = $this->db->query($sql); |
1017 |
if (database :: isError($resDATD)) |
if (database :: isError($resDATD)) |
1018 |
die($resDATD->getMessage()."erreur ".$sql); |
die($resDATD->getMessage()."erreur ".$sql); |
1019 |
|
|
1020 |
|
//Si le dossier d'autorisation a un type détaillé de dossier |
1021 |
|
//d'autorisation associé |
1022 |
if ( $resDATD->numRows() > 0 ){ |
if ( $resDATD->numRows() > 0 ){ |
1023 |
$rowDATD = $resDATD->fetchRow(DB_FETCHMODE_ASSOC); |
$rowDATD = $resDATD->fetchRow(DB_FETCHMODE_ASSOC); |
1024 |
|
|
1025 |
|
//Requête de récupération de l'instructeur à affecter |
1026 |
$sql = " |
$sql = " |
1027 |
SELECT |
SELECT |
1028 |
instructeur, section, quartier, arrondissement, dossier_autorisation_type_detaille |
instructeur, section, quartier, arrondissement, dossier_autorisation_type_detaille |
1046 |
( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier = $quartier AND section IS NULL ) OR |
( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier = $quartier AND section IS NULL ) OR |
1047 |
( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier = $quartier AND section = '$section' ) |
( dossier_autorisation_type_detaille = ".$rowDATD['dossier_autorisation_type_detaille']." AND arrondissement = $arrondissement AND quartier = $quartier AND section = '$section' ) |
1048 |
ORDER BY section, quartier, arrondissement, dossier_autorisation_type_detaille |
ORDER BY section, quartier, arrondissement, dossier_autorisation_type_detaille |
1049 |
LIMIT 1 |
LIMIT 1"; |
|
"; |
|
|
|
|
1050 |
$this->addToLog("getInstructeurDivision : db->query(\"$sql\")", VERBOSE_MODE); |
$this->addToLog("getInstructeurDivision : db->query(\"$sql\")", VERBOSE_MODE); |
1051 |
$res = $this->db->query($sql); |
$res = $this->db->query($sql); |
1052 |
if (database :: isError($res)) |
if (database :: isError($res)) |
1053 |
die($res->getMessage()."erreur ".$sql); |
die($res->getMessage()."erreur ".$sql); |
1054 |
|
|
1055 |
|
//Si on a récupéré un instructeur correspondant aux critères |
1056 |
if ( $res->numRows() > 0 ){ |
if ( $res->numRows() > 0 ){ |
1057 |
|
|
1058 |
$row = $res->fetchRow(DB_FETCHMODE_ASSOC); |
$row = $res->fetchRow(DB_FETCHMODE_ASSOC); |
1059 |
|
//On récupère sa division |
1060 |
$sql = "SELECT division FROM ".DB_PREFIXE."instructeur WHERE instructeur = ".$row['instructeur']; |
$sql = "SELECT division FROM ".DB_PREFIXE."instructeur WHERE instructeur = ".$row['instructeur']; |
1061 |
$res = $this->db->query($sql); |
$res = $this->db->query($sql); |
1062 |
if (database :: isError($res)) |
if (database :: isError($res)) |
1063 |
die($res->getMessage()."erreur ".$sql); |
die($res->getMessage()."erreur ".$sql); |
1064 |
|
|
1065 |
|
$row['division'] = NULL; |
1066 |
|
//S'il a une division |
1067 |
if ( $res->numRows() > 0 ){ |
if ( $res->numRows() > 0 ){ |
1068 |
|
|
1069 |
$rowT=& $res->fetchRow(DB_FETCHMODE_ASSOC); |
$rowT=& $res->fetchRow(DB_FETCHMODE_ASSOC); |
1092 |
$arrondissement = NULL; |
$arrondissement = NULL; |
1093 |
$section = NULL; |
$section = NULL; |
1094 |
$instructeur = NULL; |
$instructeur = NULL; |
1095 |
|
|
1096 |
// Si la parcelle n'est pas vide alors on récupère la section, le |
// Si la référence cadastrale n'est pas vide alors on récupère la |
1097 |
// quartier et l'arrondissement |
//section, le quartier et l'arrondissement |
1098 |
if ($val['parcelle'] != '') { |
if ($this->valF['terrain_references_cadastrales'] != '') { |
1099 |
// Cette méthode récupère l'arrondissement et le quartier associé à une parcelle |
|
1100 |
$quartierArrondissement = $this->getQuartierArrondissement($val['parcelle']); |
// Cette méthode récupère l'arrondissement et le quartier de la |
1101 |
|
//référence cadastrale saisie |
1102 |
|
$quartierArrondissement = $this->getQuartierArrondissement($this->valF['terrain_references_cadastrales']); |
1103 |
if ( $quartierArrondissement!= NULL ){ |
if ( $quartierArrondissement!= NULL ){ |
1104 |
|
|
1105 |
$quartier = $quartierArrondissement['quartier']; |
$quartier = $quartierArrondissement['quartier']; |
1112 |
$quartier = NULL; |
$quartier = NULL; |
1113 |
} |
} |
1114 |
// On récupère la section |
// On récupère la section |
1115 |
$section = $this->getSection($val['parcelle']); |
$section = $this->getSection($this->valF['terrain_references_cadastrales']); |
1116 |
} |
} |
1117 |
|
|
1118 |
// Si aucun instructeur n'est saisi et que la dossier_autorisation_type_detaille n'est pas vide |
// Si aucun instructeur n'est saisi et que la dossier_autorisation_type_detaille n'est pas vide |
1119 |
// alors on récupère l'instructeur et la division depuis l'affectation |
// alors on récupère l'instructeur et la division depuis l'affectation |
1120 |
if ( ( empty($this->valF['instructeur']) || $this->valF['instructeur'] == '' ) && $val['dossier_autorisation'] != '' ) { |
if ( ( empty($this->valF['instructeur']) || $this->valF['instructeur'] == '' ) && $val['dossier_autorisation'] != '' ) { |
1121 |
|
|
1122 |
// |
//Récupération de l'instructeur ainsi que de sa division |
1123 |
$instructeurDivision = $this->getInstructeurDivision($quartier, $arrondissement, $section, $val['dossier_autorisation']); |
$instructeurDivision = $this->getInstructeurDivision($quartier, $arrondissement, $section, $this->valF['dossier_autorisation']); |
1124 |
|
|
1125 |
|
//Si un instructeur et sa division ont été récupérés |
1126 |
if ( $instructeurDivision != NULL ){ |
if ( $instructeurDivision != NULL ){ |
1127 |
|
|
1128 |
$instructeur = $instructeurDivision['instructeur']; |
$instructeur = $instructeurDivision['instructeur']; |
1129 |
$division = $instructeurDivision['division']; |
$division = $instructeurDivision['division']; |
1130 |
} |
} |
1131 |
|
//Si un instructeur et sa division n'ont pas été récupérés, on |
1132 |
|
//ajoute pas les données |
1133 |
if ( $instructeur != NULL ){ |
if ( $instructeur != NULL ){ |
1134 |
|
|
1135 |
$this->valF['instructeur'] = $instructeur; |
$this->valF['instructeur'] = $instructeur; |
1136 |
$this->valF['division'] = $division; |
$this->valF['division'] = $division; |
1137 |
} else { |
} else { |
1138 |
|
//On affiche un message à l'utilisateur pour lui signifier |
1139 |
|
//qu'aucun instructeur n'a été assigné au dossier d'instruction |
1140 |
|
//créé |
1141 |
if ($this->f->isAccredited("dossier_modifier_instructeur")) { |
if ($this->f->isAccredited("dossier_modifier_instructeur")) { |
1142 |
$this->addToMessage("<br/> "._("Pensez a assigner un instructeur a ce dossier.")." <br/>"); |
$this->addToMessage("<br/> "._("Pensez a assigner un instructeur a ce dossier.")." <br/>"); |
1143 |
} else { |
} else { |