30 |
*/ |
*/ |
31 |
define('K_TCPDF_EXTERNAL_CONFIG', true); |
define('K_TCPDF_EXTERNAL_CONFIG', true); |
32 |
define('K_TCPDF_CALLS_IN_HTML', true); |
define('K_TCPDF_CALLS_IN_HTML', true); |
33 |
|
define('K_PATH_FONTS', '../app/fonts/'); |
34 |
|
|
35 |
/** |
/** |
36 |
* Dépendances PHP du framework |
* Dépendances PHP du framework |
375 |
// Récupération des infos utilisateur |
// Récupération des infos utilisateur |
376 |
$sqlUser = "SELECT om_utilisateur, nom, email, login, om_collectivite, om_profil ". |
$sqlUser = "SELECT om_utilisateur, nom, email, login, om_collectivite, om_profil ". |
377 |
"FROM ".DB_PREFIXE."om_utilisateur WHERE login = '".$_SESSION['login']."'"; |
"FROM ".DB_PREFIXE."om_utilisateur WHERE login = '".$_SESSION['login']."'"; |
378 |
$resUser=$this->db->query($sqlUser); |
$resUser = $this->db->query($sqlUser); |
379 |
$this->addToLog("getUserInfos(): db->query(\"".$sqlUser."\");", VERBOSE_MODE); |
$this->addToLog(__METHOD__."(): db->query(\"".$sqlUser."\");", VERBOSE_MODE); |
380 |
if ( database::isError($resUser)){ |
$this->isDatabaseError($resUser); |
|
die(); |
|
|
} |
|
381 |
$this->om_utilisateur=&$resUser->fetchRow(DB_FETCHMODE_ASSOC); |
$this->om_utilisateur=&$resUser->fetchRow(DB_FETCHMODE_ASSOC); |
382 |
|
|
383 |
// Récupère le profil et test si c'est un |
// Récupère le profil et test si c'est un |
384 |
$sqlProfil = "SELECT libelle FROM ".DB_PREFIXE."om_profil WHERE om_profil = ".$this->om_utilisateur['om_profil']; |
$sqlProfil = "SELECT libelle FROM ".DB_PREFIXE."om_profil WHERE om_profil = ".$this->om_utilisateur['om_profil']; |
385 |
$resProfil=$this->db->getOne($sqlProfil); |
$resProfil = $this->db->getone($sqlProfil); |
386 |
$this->addToLog("getUserInfos(): db->getOne(\"".$sqlProfil."\");", VERBOSE_MODE); |
$this->addToLog(__METHOD__."(): db->getone(\"".$sqlProfil."\");", VERBOSE_MODE); |
387 |
if (database::isError($resProfil)){ |
$this->isDatabaseError($resProfil); |
|
die(); |
|
|
} |
|
388 |
// Sauvegarde le libelle du profil |
// Sauvegarde le libelle du profil |
389 |
$this->om_utilisateur["libelle_profil"] = $resProfil; |
$this->om_utilisateur["libelle_profil"] = $resProfil; |
390 |
|
|
453 |
division.division, division.code, division.libelle ". |
division.division, division.code, division.libelle ". |
454 |
"FROM ".DB_PREFIXE."instructeur INNER JOIN ".DB_PREFIXE."division ON division.division=instructeur.division ". |
"FROM ".DB_PREFIXE."instructeur INNER JOIN ".DB_PREFIXE."division ON division.division=instructeur.division ". |
455 |
"WHERE instructeur.om_utilisateur = ".$this->om_utilisateur['om_utilisateur']; |
"WHERE instructeur.om_utilisateur = ".$this->om_utilisateur['om_utilisateur']; |
456 |
$resInstr=$this->db->query($sqlInstr); |
$resInstr = $this->db->query($sqlInstr); |
457 |
$this->addToLog("getUserInfos(): db->query(\"".$sqlInstr."\");", VERBOSE_MODE); |
$this->addToLog(__METHOD__."(): db->query(\"".$sqlInstr."\");", VERBOSE_MODE); |
458 |
if ( database::isError($resInstr)){ |
$this->isDatabaseError($resInstr); |
|
die(); |
|
|
} |
|
459 |
$tempInstr=&$resInstr->fetchRow(DB_FETCHMODE_ASSOC); |
$tempInstr=&$resInstr->fetchRow(DB_FETCHMODE_ASSOC); |
460 |
// Si il y a un resultat c'est un instructeur |
// Si il y a un resultat c'est un instructeur |
461 |
if (is_array($tempInstr) === true && count($tempInstr) > 0) { |
if (is_array($tempInstr) === true && count($tempInstr) > 0) { |
481 |
$this->om_utilisateur['om_utilisateur'] |
$this->om_utilisateur['om_utilisateur'] |
482 |
); |
); |
483 |
$resServ = $this->db->query($sqlServ); |
$resServ = $this->db->query($sqlServ); |
484 |
$this->addToLog("getUserInfos(): db->query(\"".$sqlServ."\");", VERBOSE_MODE); |
$this->addToLog(__METHOD__."(): db->query(\"".$sqlServ."\");", VERBOSE_MODE); |
485 |
if ( database::isError($resServ)){ |
$this->isDatabaseError($resServ); |
|
die(); |
|
|
} |
|
|
|
|
486 |
while ($tempServ =& $resServ->fetchRow(DB_FETCHMODE_ASSOC)) { |
while ($tempServ =& $resServ->fetchRow(DB_FETCHMODE_ASSOC)) { |
487 |
$this->om_utilisateur['service'][]=$tempServ; |
$this->om_utilisateur['service'][]=$tempServ; |
488 |
} |
} |
510 |
$this->om_utilisateur['om_utilisateur'] |
$this->om_utilisateur['om_utilisateur'] |
511 |
); |
); |
512 |
$resTiers = $this->db->query($sqlTiers); |
$resTiers = $this->db->query($sqlTiers); |
513 |
$this->addToLog("getUserInfos(): db->query(\"".$sqlTiers."\");", VERBOSE_MODE); |
$this->addToLog(__METHOD__."(): db->query(\"".$sqlTiers."\");", VERBOSE_MODE); |
514 |
$this->isDatabaseError($resTiers); |
$this->isDatabaseError($resTiers); |
515 |
|
|
516 |
while ($tempTiers = $resTiers->fetchRow(DB_FETCHMODE_ASSOC)) { |
while ($tempTiers = $resTiers->fetchRow(DB_FETCHMODE_ASSOC)) { |
694 |
__METHOD__."(): db->query(\"".$sql."\");", |
__METHOD__."(): db->query(\"".$sql."\");", |
695 |
VERBOSE_MODE |
VERBOSE_MODE |
696 |
); |
); |
697 |
if (database::isError($res)) { |
$this->isDatabaseError($res); |
|
die(); |
|
|
} |
|
698 |
$row = $res->fetchrow(DB_FETCHMODE_ASSOC); |
$row = $res->fetchrow(DB_FETCHMODE_ASSOC); |
699 |
// Enregistrement de la division en session |
// Enregistrement de la division en session |
700 |
if (isset($row["division"]) && $row["division"] != NULL) { |
if (isset($row["division"]) && $row["division"] != NULL) { |
716 |
__METHOD__."(): db->query(\"".$sqlGroupes."\");", |
__METHOD__."(): db->query(\"".$sqlGroupes."\");", |
717 |
VERBOSE_MODE |
VERBOSE_MODE |
718 |
); |
); |
719 |
if (database::isError($resGroupes)) { |
$this->isDatabaseError($resGroupes); |
|
die(); |
|
|
} |
|
720 |
// Si aucun résultat alors récupération du paramétrage des groupes du profil |
// Si aucun résultat alors récupération du paramétrage des groupes du profil |
721 |
if ($resGroupes->numRows() === 0) { |
if ($resGroupes->numRows() === 0) { |
722 |
$sqlGroupes = "SELECT groupe.code, lien_om_profil_groupe.confidentiel, lien_om_profil_groupe.enregistrement_demande, groupe.libelle |
$sqlGroupes = "SELECT groupe.code, lien_om_profil_groupe.confidentiel, lien_om_profil_groupe.enregistrement_demande, groupe.libelle |
730 |
__METHOD__."(): db->query(\"".$sqlGroupes."\");", |
__METHOD__."(): db->query(\"".$sqlGroupes."\");", |
731 |
VERBOSE_MODE |
VERBOSE_MODE |
732 |
); |
); |
733 |
if (database::isError($resGroupes)) { |
$this->isDatabaseError($resGroupes); |
|
die(); |
|
|
} |
|
734 |
} |
} |
735 |
$_SESSION["groupe"] = array(); |
$_SESSION["groupe"] = array(); |
736 |
// Enregistrement des groupe en session |
// Enregistrement des groupe en session |
806 |
ON |
ON |
807 |
dossier.etat = etat.etat |
dossier.etat = etat.etat |
808 |
WHERE dossier ='".$idx."'"; |
WHERE dossier ='".$idx."'"; |
809 |
$statut = $this->db->getOne($sql); |
$statut = $this->db->getone($sql); |
810 |
$this->addToLog("getStatutDossier() : db->getOne(\"".$sql."\")", VERBOSE_MODE); |
$this->addToLog(__METHOD__."(): db->getone(\"".$sql."\")", VERBOSE_MODE); |
811 |
if ( database::isError($statut)){ |
$this->isDatabaseError($statut); |
|
die(); |
|
|
} |
|
812 |
} |
} |
813 |
return $statut; |
return $statut; |
814 |
} |
} |
1162 |
".DB_PREFIXE."evenement |
".DB_PREFIXE."evenement |
1163 |
WHERE |
WHERE |
1164 |
evenement = $evenement"; |
evenement = $evenement"; |
|
|
|
|
$this->addToLog("getLettreType() : db->query(\"".$sql."\")", VERBOSE_MODE); |
|
1165 |
$res = $this->db->query($sql); |
$res = $this->db->query($sql); |
1166 |
if ( database::isError($res)){ |
$this->addToLog( |
1167 |
die(); |
__METHOD__."(): db->query(\"".$sql."\");", |
1168 |
} |
VERBOSE_MODE |
1169 |
|
); |
1170 |
|
$this->isDatabaseError($res); |
1171 |
if ( $res->numrows() > 0 ){ |
if ( $res->numrows() > 0 ){ |
1172 |
|
|
1173 |
$row=& $res->fetchRow(DB_FETCHMODE_ASSOC); |
$row=& $res->fetchRow(DB_FETCHMODE_ASSOC); |
1190 |
dossier_autorisation.dossier_autorisation_type_detaille |
dossier_autorisation.dossier_autorisation_type_detaille |
1191 |
INNER JOIN ".DB_PREFIXE."dossier ON dossier.dossier_autorisation = dossier_autorisation.dossier_autorisation |
INNER JOIN ".DB_PREFIXE."dossier ON dossier.dossier_autorisation = dossier_autorisation.dossier_autorisation |
1192 |
WHERE dossier.dossier = '".$idxDossier."'"; |
WHERE dossier.dossier = '".$idxDossier."'"; |
1193 |
$res = $this->db->getOne($sql); |
$res = $this->db->getone($sql); |
1194 |
$this->addToLog("getDATDCode() : db->getOne(\"".$sql."\")", VERBOSE_MODE); |
$this->addToLog( |
1195 |
if ( database::isError($res)){ |
__METHOD__."(): db->getone(\"".$sql."\");", |
1196 |
die(); |
VERBOSE_MODE |
1197 |
} |
); |
1198 |
|
$this->isDatabaseError($res); |
1199 |
return $res; |
return $res; |
1200 |
} |
} |
1201 |
|
|
1219 |
WHERE |
WHERE |
1220 |
dossier.dossier = '".$idxDossier."' |
dossier.dossier = '".$idxDossier."' |
1221 |
"; |
"; |
1222 |
$res = $this->db->getOne($sql); |
$res = $this->db->getone($sql); |
1223 |
$this->addToLog(__METHOD__."(): db->getOne(\"".$sql."\")", VERBOSE_MODE); |
$this->addToLog( |
1224 |
if ( database::isError($res)){ |
__METHOD__."(): db->getone(\"".$sql."\");", |
1225 |
die(); |
VERBOSE_MODE |
1226 |
} |
); |
1227 |
|
$this->isDatabaseError($res); |
1228 |
return $res; |
return $res; |
1229 |
} |
} |
1230 |
|
|
2890 |
// La méthode de récupération du dossier diffère selon le contexte |
// La méthode de récupération du dossier diffère selon le contexte |
2891 |
// du formulaire |
// du formulaire |
2892 |
if ($retourformulaire === "dossier" |
if ($retourformulaire === "dossier" |
2893 |
|| $retourformulaire === "dossier_instruction" |
|| $this->contexte_dossier_instruction()) { |
|
|| $retourformulaire === "dossier_instruction_mes_encours" |
|
|
|| $retourformulaire === "dossier_instruction_tous_encours" |
|
|
|| $retourformulaire === "dossier_instruction_mes_clotures" |
|
|
|| $retourformulaire === "dossier_instruction_tous_clotures" |
|
|
|| $retourformulaire === "dossier_contentieux_mes_infractions" |
|
|
|| $retourformulaire === "dossier_contentieux_toutes_infractions" |
|
|
|| $retourformulaire === "dossier_contentieux_mes_recours" |
|
|
|| $retourformulaire === "dossier_contentieux_tous_recours") { |
|
2894 |
|
|
2895 |
// Récupère le numéro du dossier depuis le paramètre |
// Récupère le numéro du dossier depuis le paramètre |
2896 |
// idxformulaire présent dans l'URL |
// idxformulaire présent dans l'URL |
3034 |
$footer[] = array( |
$footer[] = array( |
3035 |
"title" => __("Documentation"), |
"title" => __("Documentation"), |
3036 |
"description" => __("Acceder a l'espace documentation de l'application"), |
"description" => __("Acceder a l'espace documentation de l'application"), |
3037 |
"href" => "http://docs.openmairie.org/?project=openads&version=5.12&format=html&path=manuel_utilisateur", |
"href" => "http://docs.openmairie.org/?project=openads&version=5.13&format=html&path=manuel_utilisateur", |
3038 |
"target" => "_blank", |
"target" => "_blank", |
3039 |
"class" => "footer-documentation", |
"class" => "footer-documentation", |
3040 |
); |
); |
5865 |
|
|
5866 |
return $result; |
return $result; |
5867 |
} |
} |
5868 |
|
|
5869 |
|
/** |
5870 |
|
* Vérifie si un formulaire est ouvert dans le contexte d'un |
5871 |
|
* dossier d'instruction. Pour cela vérifiesi le paramètre retourformulaire |
5872 |
|
* prend une de ces valeurs : |
5873 |
|
* - dossier_instruction |
5874 |
|
* - dossier_instruction_mes_encours |
5875 |
|
* - dossier_instruction_tous_encours |
5876 |
|
* - dossier_instruction_mes_clotures |
5877 |
|
* - dossier_instruction_tous_clotures |
5878 |
|
* - dossier_contentieux_mes_infractions |
5879 |
|
* - dossier_contentieux_toutes_infractions |
5880 |
|
* - dossier_contentieux_mes_recours |
5881 |
|
* - dossier_contentieux_tous_recours |
5882 |
|
* - sous_dossier |
5883 |
|
* |
5884 |
|
* /!\ Pour l'affichage des références cadastrales dans le formulaire de modification |
5885 |
|
* d'un dossier d'instruction cette condition est aussi utilisée mais en javascript. |
5886 |
|
* Si cette méthode est modifiée il faut également aller modifier les conditions |
5887 |
|
* dans app/js/script.js (~l1580) |
5888 |
|
* |
5889 |
|
* @return boolean |
5890 |
|
*/ |
5891 |
|
public function contexte_dossier_instruction() { |
5892 |
|
$retourformulaire = $this->get_submitted_get_value("retourformulaire"); |
5893 |
|
|
5894 |
|
if ($retourformulaire == 'dossier_instruction' || |
5895 |
|
$retourformulaire == 'dossier_instruction_mes_encours' || |
5896 |
|
$retourformulaire == 'dossier_instruction_tous_encours' || |
5897 |
|
$retourformulaire == 'dossier_instruction_mes_clotures' || |
5898 |
|
$retourformulaire == 'dossier_instruction_tous_clotures' || |
5899 |
|
$retourformulaire == 'dossier_contentieux_mes_infractions' || |
5900 |
|
$retourformulaire == 'dossier_contentieux_toutes_infractions' || |
5901 |
|
$retourformulaire == "dossier_contentieux_mes_recours" || |
5902 |
|
$retourformulaire == "dossier_contentieux_tous_recours" || |
5903 |
|
$retourformulaire == "sous_dossier") { |
5904 |
|
return true; |
5905 |
|
} |
5906 |
|
return false; |
5907 |
|
} |
5908 |
|
|
5909 |
|
/** |
5910 |
|
* Calcule l'id d'un sous-formulaire d'un objet donné. Pour cela |
5911 |
|
* récupère le fichier de paramétrage de l'objet (.inc) pour accéder |
5912 |
|
* à la variable de paramétrage des sous-formulaires. |
5913 |
|
* Vérifie pour chacun des formulaires paramétrés si l'utilisateur à |
5914 |
|
* les permissions nécessaires pour y accéder. A partir de ces |
5915 |
|
* informations calcule l'identifiant du sous-onglet. |
5916 |
|
* |
5917 |
|
* @param string nom du formulaire auquel appartiens le sous-formulaire |
5918 |
|
* @return integer identifiant du sus-formulaire |
5919 |
|
*/ |
5920 |
|
public function get_ui_tabs($obj, $direct_field, $direct_form, $direct_action, $direct_idx) { |
5921 |
|
$tabs_id = 1; |
5922 |
|
// Rétrocompatibilité : il est possible que dans les scripts inclus |
5923 |
|
// par cette méthode, la variable $f soit attendue et utilisée. |
5924 |
|
// @deprecated Cette variable ne doit plus être utilisée. |
5925 |
|
$f = $this; |
5926 |
|
|
5927 |
|
// Initialisation des paramètres |
5928 |
|
$params = array( |
5929 |
|
// action sur l'objet parent |
5930 |
|
"action" => array( |
5931 |
|
"default_value" => "", |
5932 |
|
), |
5933 |
|
// (optionnel) soit idx soit direct_field : identifiant de |
5934 |
|
// l'objet contexte |
5935 |
|
"idx" => array( |
5936 |
|
"default_value" => "", |
5937 |
|
) |
5938 |
|
); |
5939 |
|
foreach ($this->get_initialized_parameters($params) as $key => $value) { |
5940 |
|
${$key} = $value; |
5941 |
|
} |
5942 |
|
// Vérification des paramètres obligatoires |
5943 |
|
if (empty($obj) |
5944 |
|
|| empty($action) |
5945 |
|
|| (empty($idx) && empty($direct_field)) |
5946 |
|
|| empty($direct_form) |
5947 |
|
|| empty($direct_action) |
5948 |
|
|| empty($direct_idx)) { |
5949 |
|
|
5950 |
|
return $tabs_id; |
5951 |
|
} |
5952 |
|
// Inclusion du script [sql/<OM_DB_PHPTYPE>/<OBJ>.inc.php] |
5953 |
|
// L'objectif est de récupéré la liste des onglets pour extraire |
5954 |
|
// l'identifiant de l'onglet sélectionné |
5955 |
|
// - Variable utilisée $sousformulaire |
5956 |
|
$standard_script_path = "../sql/".OM_DB_PHPTYPE."/".$obj.".inc.php"; |
5957 |
|
$core_script_path = PATH_OPENMAIRIE."sql/".OM_DB_PHPTYPE."/".$obj.".inc.php"; |
5958 |
|
$gen_script_path = "../gen/sql/".OM_DB_PHPTYPE."/".$obj.".inc.php"; |
5959 |
|
$custom_script_path = $this->get_custom("tab", $obj); |
5960 |
|
|
5961 |
|
if ($custom_script_path !== null) { |
5962 |
|
require_once $custom_script_path; |
5963 |
|
} elseif (file_exists($standard_script_path) === false |
5964 |
|
&& file_exists($core_script_path) === true) { |
5965 |
|
require_once $core_script_path; |
5966 |
|
} elseif (file_exists($standard_script_path) === false |
5967 |
|
&& file_exists($gen_script_path) === true) { |
5968 |
|
require_once $gen_script_path; |
5969 |
|
} elseif (file_exists($standard_script_path) === true) { |
5970 |
|
require $standard_script_path; |
5971 |
|
} |
5972 |
|
|
5973 |
|
if (empty($sousformulaire)) { |
5974 |
|
return $tabs_id; |
5975 |
|
} |
5976 |
|
|
5977 |
|
foreach ($sousformulaire as $sousform) { |
5978 |
|
$droit = array($sousform, $sousform."_tab"); |
5979 |
|
|
5980 |
|
if ($this->isAccredited($droit, "OR")) { |
5981 |
|
if ($sousform == $direct_form) { |
5982 |
|
break; |
5983 |
|
} |
5984 |
|
$tabs_id++; |
5985 |
|
} |
5986 |
|
} |
5987 |
|
return $tabs_id; |
5988 |
|
} |
5989 |
|
|
5990 |
|
|
5991 |
|
/** |
5992 |
|
* Récupère une requête sql et renvoie les éléments nécessaires |
5993 |
|
* pour ajouter le filtrage de des groupes à cette requête. |
5994 |
|
* Renvoie ces éléments sous la forme d'un tableau associatif |
5995 |
|
* ex : array( |
5996 |
|
* ['FROM'] => 'LEFT JOIN ...', |
5997 |
|
* ['WHERE'] => '...' |
5998 |
|
* ); |
5999 |
|
* |
6000 |
|
* @param string requête sql à faire évoluer |
6001 |
|
* @return array |
6002 |
|
*/ |
6003 |
|
public function get_sql_filtre_groupe($sql = '') { |
6004 |
|
$sqlCplmt = array( |
6005 |
|
'FROM' => '', |
6006 |
|
'WHERE' => '' |
6007 |
|
); |
6008 |
|
|
6009 |
|
// Tableau temporaire contenant les clauses pour chaque groupe |
6010 |
|
$group_clause = array(); |
6011 |
|
foreach ($_SESSION["groupe"] as $key => $value) { |
6012 |
|
$group_clause[$key] = "(groupe.code = '".$key."'"; |
6013 |
|
if($value["confidentiel"] !== true) { |
6014 |
|
$group_clause[$key] .= " AND dossier_autorisation_type.confidentiel IS NOT TRUE"; |
6015 |
|
} |
6016 |
|
$group_clause[$key] .= ")"; |
6017 |
|
} |
6018 |
|
// Ajout du cas ou le code du groupe est null |
6019 |
|
$group_clause['EMPTY'] = '(groupe.code IS NULL AND dossier_autorisation_type.confidentiel IS NOT TRUE)'; |
6020 |
|
// Mise en chaîne des clauses |
6021 |
|
$conditions = implode(" OR ", $group_clause); |
6022 |
|
if ($conditions !== "") { |
6023 |
|
// On ajout le WHERE si il n'est pas présent |
6024 |
|
if (stripos($sql, "WHERE") === false) { |
6025 |
|
$sqlCplmt['WHERE'] .= "WHERE "; |
6026 |
|
} else { |
6027 |
|
$sqlCplmt['WHERE'] .= " AND "; |
6028 |
|
} |
6029 |
|
|
6030 |
|
$sqlCplmt['WHERE'] .= "(".$conditions.")"; |
6031 |
|
} |
6032 |
|
|
6033 |
|
|
6034 |
|
// Jointures manquantes dans la requête d'origine qui devront être ajouté |
6035 |
|
// dans la requête complémentaire |
6036 |
|
if (preg_match("/".DB_PREFIXE."dossier_autorisation(?!_)/i", $sql) === 0) { |
6037 |
|
$sqlCplmt['FROM'] .= " |
6038 |
|
LEFT JOIN ".DB_PREFIXE."dossier_autorisation |
6039 |
|
ON dossier_autorisation.dossier_autorisation = dossier.dossier_autorisation"; |
6040 |
|
} |
6041 |
|
if (preg_match("/".DB_PREFIXE."dossier_autorisation_type_detaille(?!_)/i", $sql) === 0) { |
6042 |
|
$sqlCplmt['FROM'] .= " |
6043 |
|
LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille |
6044 |
|
ON dossier_autorisation.dossier_autorisation_type_detaille = dossier_autorisation_type_detaille.dossier_autorisation_type_detaille"; |
6045 |
|
} |
6046 |
|
if (preg_match("/".DB_PREFIXE."dossier_autorisation_type(?!_)/i", $sql) === 0) { |
6047 |
|
$sqlCplmt['FROM'] .= " |
6048 |
|
LEFT JOIN ".DB_PREFIXE."dossier_autorisation_type |
6049 |
|
ON dossier_autorisation_type.dossier_autorisation_type = dossier_autorisation_type_detaille.dossier_autorisation_type"; |
6050 |
|
} |
6051 |
|
if (preg_match("/".DB_PREFIXE."groupe(?!_)/i", $sql) === 0) { |
6052 |
|
$sqlCplmt['FROM'] .= " |
6053 |
|
LEFT JOIN ".DB_PREFIXE."groupe |
6054 |
|
ON dossier_autorisation_type.groupe = groupe.groupe"; |
6055 |
|
} |
6056 |
|
|
6057 |
|
return $sqlCplmt; |
6058 |
|
} |
6059 |
|
|
6060 |
|
/** |
6061 |
|
* Récupère une requête sql et renvoie les éléments nécessaires |
6062 |
|
* pour ajouter le filtrage de des groupes à cette requête. |
6063 |
|
* Renvoie ces éléments sous la forme d'un tableau associatif |
6064 |
|
* ex : array( |
6065 |
|
* ['FROM'] => 'LEFT JOIN ...', |
6066 |
|
* ['WHERE'] => '...' |
6067 |
|
* ); |
6068 |
|
* |
6069 |
|
* @param string requête sql à faire évoluer |
6070 |
|
* @return array |
6071 |
|
*/ |
6072 |
|
public function get_sql_filtre_sous_dossier($sql = '') { |
6073 |
|
$sqlCplmt = array( |
6074 |
|
'FROM' => '', |
6075 |
|
'WHERE' => '' |
6076 |
|
); |
6077 |
|
// On ajout le WHERE si il n'est pas présent |
6078 |
|
$sqlCplmt['WHERE'] = ' AND dossier_instruction_type.sous_dossier IS NOT TRUE'; |
6079 |
|
if (stripos($sql, "WHERE") === false) { |
6080 |
|
$sqlCplmt['WHERE'] .= 'WHERE dossier_instruction_type.sous_dossier IS NOT TRUE'; |
6081 |
|
} |
6082 |
|
// Jointures manquantes dans la requête d'origine qui devront être ajouté |
6083 |
|
// dans la requête complémentaire |
6084 |
|
if (preg_match("/".DB_PREFIXE."dossier_instruction_type(?!_)/i", $sql) === 0 || |
6085 |
|
preg_match("/".DB_PREFIXE."dossier_instruction_type(?!_)\s*(as|AS)/i", $sql) !== 0) { |
6086 |
|
$sqlCplmt['FROM'] .= " |
6087 |
|
LEFT JOIN ".DB_PREFIXE."dossier_instruction_type |
6088 |
|
ON dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type"; |
6089 |
|
} |
6090 |
|
|
6091 |
|
return $sqlCplmt; |
6092 |
|
} |
6093 |
|
|
6094 |
} |
} |