90 |
&& $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier() |
&& $this->f->om_utilisateur["division"] != $this->getDivisionFromDossier() |
91 |
&& $this->getParameter("maj") != 3) { |
&& $this->getParameter("maj") != 3) { |
92 |
// |
// |
93 |
|
$this->addToLog("canAccess(): utilisateur instructeur sur un dossier d'une autre division", EXTRA_VERBOSE_MODE); |
94 |
return false; |
return false; |
95 |
} |
} |
96 |
// |
// |
98 |
} |
} |
99 |
|
|
100 |
/** |
/** |
101 |
* Cette méthode permet de récupérer la division d'un dossier |
* Cette variable permet de stocker le résultat de la méthode |
102 |
|
* getDivisionFromDossier() afin de ne pas effectuer le recalcul à chacun de |
103 |
|
* ces appels. |
104 |
|
* @var string Code de la division du dossier en cours |
105 |
|
*/ |
106 |
|
var $_division_from_dossier = NULL; |
107 |
|
|
108 |
|
/** |
109 |
|
* Cette méthode permet de récupérer le code de division correspondant |
110 |
|
* au dossier sur lequel on se trouve. |
111 |
|
* |
112 |
|
* @return string Code de la division du dossier en cours |
113 |
*/ |
*/ |
114 |
function getDivisionFromDossier() { |
function getDivisionFromDossier() { |
115 |
// |
|
116 |
if (!isset($this->val[array_search("dossier", $this->champs)])) { |
// Cette méthode peut être appelée plusieurs fois lors d'une requête. |
117 |
return NULL; |
// Pour éviter de refaire le traitement de recherche de la division |
118 |
|
// alors on vérifie si nous ne l'avons pas déjà calculé. |
119 |
|
if ($this->_division_from_dossier != NULL) { |
120 |
|
// Logger |
121 |
|
$this->addToLog("getDivisionFromDossier(): retour de la valeur déjà calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE); |
122 |
|
// On retourne la valeur déjà calculée |
123 |
|
return $this->_division_from_dossier; |
124 |
} |
} |
125 |
// |
|
126 |
$sql = "select division from ".DB_PREFIXE."dossier "; |
// Par défaut, on définit la valeur du dossier à NULL |
127 |
$sql .= " where dossier='".$this->val[array_search("dossier", $this->champs)]."'"; |
$dossier = NULL; |
128 |
// |
// Test sur le mode et le contexte du formulaire |
129 |
$division = $this->db->getOne($sql); |
if ($this->getParameter("maj") == 0 |
130 |
$this->addToLog("getDivisionFromDossier(): db->getone(\"".$sql."\")", VERBOSE_MODE); |
&& ($this->getParameter("retourformulaire") == "dossier" |
131 |
database::isError($division); |
|| $this->getParameter("retourformulaire") == "dossier_instruction" |
132 |
// |
|| $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours" |
133 |
return $division; |
|| $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours" |
134 |
|
|| $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures" |
135 |
|
|| $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures")) { |
136 |
|
// Si on se trouve en mode AJOUT (seul mode où l'enregistrement |
137 |
|
// n'existe pas en base de données) ET que nous nous trouvons |
138 |
|
// dans le contexte d'un dossier d'instruction alors on récupère |
139 |
|
// le numéro de dossier depuis le paramètre 'idxformulaire' |
140 |
|
$dossier = $this->getParameter("idxformulaire"); |
141 |
|
} else { |
142 |
|
// Sinon on récupère le numéro de dossier dans le champs dossier de |
143 |
|
// l'enregistrement (en base de données) |
144 |
|
$dossier = $this->getVal("dossier"); |
145 |
|
} |
146 |
|
|
147 |
|
// On appelle la méthode de la classe utils qui renvoi le code de la |
148 |
|
// division d'un dossier, on la stocke pour ne pas refaire le calcul au |
149 |
|
// prochain appel de cette méthode |
150 |
|
$this->_division_from_dossier = $this->f->getDivisionFromDossier($dossier); |
151 |
|
// Logger |
152 |
|
$this->addToLog("getDivisionFromDossier(): retour de la valeur nouvellement calculée - '".$this->_division_from_dossier."'", EXTRA_VERBOSE_MODE); |
153 |
|
// On retourne la valeur retournée |
154 |
|
return $this->_division_from_dossier; |
155 |
|
|
156 |
} |
} |
157 |
|
|
158 |
/** |
/** |