1 |
softime |
4927 |
<?php |
2 |
|
|
//$Id$ |
3 |
|
|
//gen openMairie le 10/10/2016 10:56 |
4 |
|
|
|
5 |
|
|
require_once "../gen/obj/lien_dossier_dossier.class.php"; |
6 |
|
|
|
7 |
|
|
class lien_dossier_dossier extends lien_dossier_dossier_gen { |
8 |
|
|
|
9 |
|
|
function __construct($id, &$dnu1 = null, $dnu2 = null) { |
10 |
|
|
$this->constructeur($id); |
11 |
|
|
} |
12 |
|
|
|
13 |
jymadier |
4940 |
/** |
14 |
|
|
* |
15 |
|
|
*/ |
16 |
|
|
var $activate_class_action = true; |
17 |
|
|
|
18 |
|
|
/** |
19 |
|
|
* Définition des actions disponibles sur la classe. |
20 |
|
|
* |
21 |
|
|
* @return void |
22 |
|
|
*/ |
23 |
|
|
function init_class_actions() { |
24 |
|
|
// |
25 |
|
|
parent::init_class_actions(); |
26 |
|
|
|
27 |
jymadier |
4945 |
// ACTION - 001 - modifier |
28 |
|
|
// Désactivation de l'action modifier |
29 |
|
|
$this->class_actions[1] = null; |
30 |
|
|
|
31 |
|
|
// ACTION - 002 - supprimer |
32 |
|
|
// Désactivation de l'action supprimer |
33 |
|
|
$this->class_actions[2] = null; |
34 |
|
|
|
35 |
|
|
// ACTION - 003 - consulter |
36 |
|
|
// Désactivation de l'action consulter |
37 |
|
|
$this->class_actions[3] = null; |
38 |
|
|
|
39 |
jymadier |
4940 |
// ACTION - 4 - view_tab |
40 |
|
|
// Interface spécifique des l'onglet des dossiers liés |
41 |
|
|
$this->class_actions[4] = array( |
42 |
|
|
"identifier" => "view_tab", |
43 |
|
|
"view" => "view_tab", |
44 |
|
|
"permission_suffix" => "tab", |
45 |
|
|
); |
46 |
jymadier |
5017 |
|
47 |
|
|
// ACTION - 5 - view_add |
48 |
|
|
// Interface spécifique des l'onglet des dossiers liés |
49 |
|
|
$this->class_actions[5] = array( |
50 |
|
|
"identifier" => "view_ajouter_liaison", |
51 |
|
|
"method" => "ajouter_liaison", |
52 |
|
|
"permission_suffix" => "gestion_defaut", |
53 |
|
|
"crud" => "create", |
54 |
nmeucci |
6289 |
"condition" => "is_ajoutable", |
55 |
jymadier |
5017 |
); |
56 |
jymadier |
4940 |
} |
57 |
|
|
|
58 |
nmeucci |
6289 |
/** |
59 |
|
|
* CONDITION - is_ajoutable. |
60 |
|
|
* |
61 |
|
|
* Condition pour pouvoir ajouter |
62 |
|
|
* |
63 |
|
|
* @return boolean |
64 |
|
|
*/ |
65 |
|
|
function is_ajoutable() { |
66 |
|
|
// Si bypass |
67 |
|
|
if ($this->f->can_bypass(get_class($this), "gestion_defaut")) { |
68 |
|
|
return true; |
69 |
|
|
} |
70 |
|
|
// Teste si le dossier n'est pas cloturé |
71 |
|
|
// et si l'instructeur est de la même division |
72 |
|
|
if ($this->is_dossier_instruction_not_closed() === true |
73 |
|
|
&& $this->is_instructeur_from_division_dossier() === true) { |
74 |
|
|
return true; |
75 |
|
|
} |
76 |
jymadier |
5017 |
|
77 |
nmeucci |
6289 |
return false; |
78 |
|
|
} |
79 |
|
|
|
80 |
jymadier |
4940 |
/** |
81 |
|
|
* VIEW - view_tab |
82 |
|
|
* |
83 |
|
|
* Cette vue permet d'afficher l'interface spécifique du tableau |
84 |
jymadier |
5017 |
* des dossiers liés. |
85 |
jymadier |
4940 |
* |
86 |
|
|
* @return void |
87 |
|
|
*/ |
88 |
|
|
function view_tab() { |
89 |
|
|
|
90 |
|
|
// Vérification de l'accessibilité sur l'élément |
91 |
|
|
$this->checkAccessibility(); |
92 |
|
|
|
93 |
nmeucci |
6054 |
// Si le paramètre 'idxformulaire' n'est pas vide |
94 |
|
|
// (idxformulaire est la valeur de la clé primaire du DI) |
95 |
jymadier |
4941 |
if ($this->f->get_submitted_get_value('idxformulaire') !== null and $this->f->get_submitted_get_value('idxformulaire') != '') { |
96 |
nmeucci |
4942 |
|
97 |
jymadier |
4940 |
// Initialisation des variables |
98 |
jymadier |
4941 |
$idx = $this->f->get_submitted_get_value('idxformulaire'); |
99 |
jymadier |
4940 |
$retourformulaire = ($this->f->get_submitted_get_value('retourformulaire') !== null) ? $this->f->get_submitted_get_value('retourformulaire') : ""; |
100 |
nmeucci |
6082 |
if ($retourformulaire == "") { |
101 |
|
|
// Valeur par défaut de $retourformulaire |
102 |
|
|
$retourformulaire = 'dossier_instruction'; |
103 |
|
|
} |
104 |
nmeucci |
4942 |
|
105 |
nmeucci |
6054 |
// Vérification de la visibilité du DA |
106 |
|
|
$da = $this->get_inst_dossier_instruction($idx); |
107 |
|
|
|
108 |
nmeucci |
5063 |
echo "<div id=\"sousform-href\"></div>"; |
109 |
|
|
echo "<div id=\"sousform-lien_dossier_dossier\">"; |
110 |
|
|
echo "<div class=\"soustab-message\"></div>"; |
111 |
|
|
echo "<div class=\"soustab-container\">"; |
112 |
nmeucci |
4942 |
|
113 |
jymadier |
4940 |
// Affichage du tableau des dossiers d'autorisation |
114 |
nmeucci |
6054 |
if ($da->is_dossier_autorisation_visible() === true) { |
115 |
nhaye |
6378 |
$link_tab_dossier_autorisation = '../scr/soustab.php?obj=dossier_autorisation&idxformulaire='.$idx.'&retour=tab&retourformulaire='.$retourformulaire; |
116 |
nmeucci |
6054 |
printf('<div id="sousform-dossier_autorisation"></div> |
117 |
|
|
<script type="text/javascript" > |
118 |
|
|
ajaxIt(\'dossier_autorisation\', \'%1$s\'); |
119 |
|
|
</script> |
120 |
|
|
', $link_tab_dossier_autorisation); |
121 |
|
|
} |
122 |
nmeucci |
4942 |
|
123 |
|
|
// Affichage du tableau des dossiers d'instruction |
124 |
nhaye |
6378 |
$link_tab_dossier_lies = '../scr/soustab.php?obj=dossier_lies&idxformulaire='.$idx.'&retour=tab&retourformulaire='.$retourformulaire; |
125 |
nmeucci |
5123 |
printf('<div id="tab_dossier_lies_href" data-href="%1$s"></div><div id="sousform-dossier_lies"></div> |
126 |
nmeucci |
5063 |
<script type="text/javascript" > |
127 |
nmeucci |
5070 |
ajaxIt(\'dossier_lies\', \'%1$s\'); |
128 |
nmeucci |
5063 |
</script> |
129 |
nmeucci |
5070 |
', $link_tab_dossier_lies); |
130 |
jymadier |
4940 |
|
131 |
nmeucci |
4942 |
// Affichage du tableau des dossiers d'autorisation liés géographiquement |
132 |
nhaye |
6378 |
$link_tab_dossier_lies_geographiquement = '../scr/soustab.php?obj=dossier_lies_geographiquement&idxformulaire='.$idx.'&retour=tab&retourformulaire='.$retourformulaire; |
133 |
nmeucci |
5123 |
printf('<div id="sousform-dossier_lies_geographiquement"></div> |
134 |
nmeucci |
5063 |
<script type="text/javascript" > |
135 |
nmeucci |
5070 |
ajaxIt(\'dossier_lies_geographiquement\', \'%1$s\'); |
136 |
nmeucci |
5063 |
</script> |
137 |
nmeucci |
5070 |
', $link_tab_dossier_lies_geographiquement); |
138 |
nmeucci |
4942 |
|
139 |
|
|
echo '</div></div>'; |
140 |
|
|
} |
141 |
jymadier |
4940 |
} |
142 |
|
|
|
143 |
jymadier |
5017 |
|
144 |
|
|
/** |
145 |
|
|
* VIEW - ajouter_liaison |
146 |
|
|
* |
147 |
|
|
* Cette vue permet de traiter les contraintes postées et d'afficher |
148 |
|
|
* le résultat de ce traitement en AJAX. |
149 |
|
|
* |
150 |
|
|
* @return void |
151 |
|
|
*/ |
152 |
|
|
function ajouter_liaison($val = array()) { |
153 |
|
|
// Begin |
154 |
|
|
$this->begin_treatment(__METHOD__); |
155 |
|
|
// Mutateur de valF |
156 |
|
|
$this->setValF($val); |
157 |
|
|
// Mutateur de valF specifique a l'ajout |
158 |
|
|
$this->setValFAjout($val); |
159 |
|
|
// Verification de la validite des donnees |
160 |
|
|
$this->verifier($val, $this->f->db, null); |
161 |
|
|
// Verification specifique au MODE 'insert' de la validite des donnees |
162 |
|
|
$this->verifierAjout($val, $this->f->db); |
163 |
|
|
// Si les verifications precedentes sont correctes, on procede a |
164 |
|
|
// l'ajout, sinon on ne fait rien et on affiche un message d'echec |
165 |
|
|
if ($this->correct) { |
166 |
|
|
// Appel au mutateur pour le calcul de la cle primaire (si la cle |
167 |
|
|
// est automatique) specifique au MODE 'insert' |
168 |
|
|
$this->setId($this->f->db); |
169 |
|
|
// Execution du trigger 'before' specifique au MODE 'insert' |
170 |
|
|
// Le premier parametre est vide car en MODE 'insert' |
171 |
|
|
// l'enregistrement n'existe pas encore donc il n'a pas |
172 |
|
|
// d'identifiant |
173 |
|
|
if($this->triggerajouter("", $this->f->db, $val, null) === false) { |
174 |
|
|
$this->correct = false; |
175 |
|
|
$this->addToLog(__METHOD__."(): ERROR", DEBUG_MODE); |
176 |
|
|
// Return |
177 |
|
|
return $this->end_treatment(__METHOD__, false); |
178 |
|
|
} |
179 |
|
|
// Execution de la requete d'insertion des donnees de l'attribut |
180 |
|
|
// valF de l'objet dans l'attribut table de l'objet |
181 |
|
|
$res = $this->f->db->autoExecute(DB_PREFIXE.$this->table, $this->valF, DB_AUTOQUERY_INSERT); |
182 |
|
|
// Logger |
183 |
|
|
$this->addToLog(__METHOD__."(): db->autoExecute(\"".DB_PREFIXE.$this->table."\", ".print_r($this->valF, true).", DB_AUTOQUERY_INSERT);", VERBOSE_MODE); |
184 |
|
|
// Si une erreur survient |
185 |
|
|
if (database::isError($res, true)) { |
186 |
|
|
// Appel de la methode de recuperation des erreurs |
187 |
|
|
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), ''); |
188 |
|
|
$this->correct = false; |
189 |
|
|
// Return |
190 |
|
|
return $this->end_treatment(__METHOD__, false); |
191 |
|
|
} else { |
192 |
|
|
// |
193 |
|
|
$main_res_affected_rows = $this->f->db->affectedRows(); |
194 |
|
|
// Log |
195 |
|
|
$this->addToLog(__METHOD__."(): "._("Requete executee"), VERBOSE_MODE); |
196 |
|
|
// Execution du trigger 'after' specifique au MODE 'insert' |
197 |
|
|
// Le premier parametre est vide car en MODE 'insert' |
198 |
|
|
// l'enregistrement n'existe pas encore donc il n'a pas |
199 |
|
|
// d'identifiant |
200 |
|
|
if($this->triggerajouterapres($this->valF[$this->clePrimaire], $this->f->db, $val, null) === false) { |
201 |
|
|
$this->correct = false; |
202 |
|
|
$this->addToLog(__METHOD__."(): ERROR", DEBUG_MODE); |
203 |
|
|
// Return |
204 |
|
|
return $this->end_treatment(__METHOD__, false); |
205 |
|
|
} |
206 |
nmeucci |
6050 |
$messageAddSuccess = _("Le dossier %s a été lié."); |
207 |
nmeucci |
5141 |
$this->addToMessage(sprintf($messageAddSuccess, $this->valF['dossier_cible'])); |
208 |
jymadier |
5017 |
|
209 |
|
|
// Template du lien vers le DI |
210 |
nmeucci |
5839 |
$template_link_di = "<a id='link_dossier_instruction_lie' title=\"%s\" class='lien' href='../scr/form.php?obj=dossier_instruction&action=777&idx=%s'> |
211 |
nmeucci |
5141 |
<span class='om-icon om-icon-16 om-icon-fix consult-16'></span>%s</a>"; |
212 |
jymadier |
5017 |
|
213 |
|
|
// Lien vers le DI |
214 |
nmeucci |
5141 |
$link_di = sprintf( |
215 |
|
|
$template_link_di, |
216 |
|
|
_("Acceder au dossier d'instruction"), |
217 |
|
|
$this->valF['dossier_cible'], |
218 |
|
|
_("Acceder au dossier d'instruction") |
219 |
|
|
); |
220 |
jymadier |
5017 |
|
221 |
|
|
// Message affiché à l'utilisateur |
222 |
nmeucci |
5141 |
$this->addToMessage('<br/>'.$link_di); |
223 |
jymadier |
5017 |
} |
224 |
|
|
} else { |
225 |
|
|
// Return |
226 |
|
|
return $this->end_treatment(__METHOD__, false); |
227 |
|
|
} |
228 |
|
|
// Return |
229 |
|
|
return $this->end_treatment(__METHOD__, true); |
230 |
|
|
} |
231 |
|
|
|
232 |
|
|
|
233 |
jymadier |
4945 |
function setType(&$form,$maj) { |
234 |
|
|
parent::setType($form,$maj); |
235 |
|
|
|
236 |
|
|
//type |
237 |
jymadier |
5017 |
$form->setType('lien_dossier_dossier','hidden'); |
238 |
jymadier |
4945 |
$form->setType('dossier_src','hidden'); |
239 |
jymadier |
5017 |
$form->setType('dossier_cible', 'text'); |
240 |
jymadier |
4945 |
$form->setType('type_lien','hidden'); |
241 |
|
|
} |
242 |
|
|
|
243 |
nmeucci |
5227 |
function setLib(&$form,$maj) { |
244 |
|
|
parent::setLib($form,$maj); |
245 |
|
|
$form->setLib('dossier_cible', _("dossier cible")); |
246 |
|
|
} |
247 |
jymadier |
5017 |
|
248 |
nmeucci |
5227 |
|
249 |
jymadier |
5017 |
function setLayout(&$form, $maj) { |
250 |
|
|
|
251 |
|
|
|
252 |
|
|
// Col1 : Fieldset "Dossier d'Instruction" |
253 |
|
|
// $form->setBloc('dossier_cible', 'D', '', 'col_9'); |
254 |
|
|
|
255 |
|
|
$form->setFieldset('dossier_cible', 'D', _("Lier un Dossier")); |
256 |
|
|
$form->setFieldset('dossier_cible', 'F'); |
257 |
|
|
|
258 |
|
|
|
259 |
|
|
// $form->setBloc('dossier_cible', 'F'); |
260 |
|
|
|
261 |
|
|
} |
262 |
|
|
|
263 |
|
|
|
264 |
|
|
function setvalF($val) { |
265 |
|
|
// |
266 |
|
|
parent::setValF($val); |
267 |
|
|
// |
268 |
|
|
if ($this->getParameter('maj') == 5) { |
269 |
|
|
// |
270 |
|
|
$dossier = $this->getParameter("idxformulaire"); |
271 |
|
|
// |
272 |
|
|
$this->valF["dossier_src"] = $dossier; |
273 |
|
|
$this->valF["dossier_cible"] = strtoupper(str_replace(" ", "", $this->f->db->escapesimple($this->valF["dossier_cible"]))); |
274 |
|
|
$this->valF["type_lien"] = "manuel"; |
275 |
|
|
} |
276 |
|
|
} |
277 |
|
|
|
278 |
|
|
function retoursousformulaire($idxformulaire, $retourformulaire, $val, |
279 |
|
|
$objsf, $premiersf, $tricolsf, $validation, |
280 |
|
|
$idx, $maj, $retour) { |
281 |
|
|
|
282 |
|
|
// Si le formulaire parent est dossier |
283 |
|
|
if($retourformulaire === "dossier_instruction") { |
284 |
|
|
// |
285 |
|
|
echo "\n<a class=\"retour\" "; |
286 |
|
|
echo "href=\"#\" "; |
287 |
|
|
|
288 |
nmeucci |
5067 |
echo "onclick=\"ajaxIt('lien_dossier_dossier', '"; |
289 |
|
|
echo "../scr/sousform.php" |
290 |
jymadier |
5017 |
."?obj=lien_dossier_dossier" |
291 |
|
|
."&action=4" |
292 |
nmeucci |
5067 |
."&idx=0" |
293 |
jymadier |
5017 |
."&retourformulaire=$retourformulaire" |
294 |
|
|
."&idxformulaire=$idxformulaire');\""; |
295 |
|
|
echo "\" "; |
296 |
|
|
echo ">"; |
297 |
|
|
// |
298 |
|
|
echo _("Retour"); |
299 |
|
|
// |
300 |
|
|
echo "</a>\n"; |
301 |
|
|
|
302 |
|
|
} else { |
303 |
|
|
// |
304 |
|
|
parent::retoursousformulaire($idxformulaire, $retourformulaire, $val, |
305 |
|
|
$objsf, $premiersf, $tricolsf, $validation, |
306 |
|
|
$idx, $maj, $retour); |
307 |
|
|
} |
308 |
|
|
} |
309 |
|
|
|
310 |
|
|
|
311 |
|
|
/** |
312 |
|
|
* Surcharge de la méthode de vérification |
313 |
|
|
**/ |
314 |
|
|
function verifier($val, &$db, $DEBUG) { |
315 |
nmeucci |
5141 |
// Vérification des champs obligatoires |
316 |
jymadier |
5017 |
$this->checkRequired(); |
317 |
|
|
if ($this->correct === false) { |
318 |
|
|
return false; |
319 |
|
|
} |
320 |
nmeucci |
5141 |
|
321 |
|
|
// Un DI ne peut pas s'auto-lier |
322 |
jymadier |
5017 |
$id_dossier_cible = str_replace(" ", "", $this->valF['dossier_cible']); |
323 |
nmeucci |
5141 |
if ($id_dossier_cible == $this->getParameter("idxformulaire")) { |
324 |
jymadier |
5017 |
$this->correct = false; |
325 |
nhaye |
6395 |
$this->addToMessage(_("Vous ne pouvez pas lier un dossier à lui-même. Saisissez un nouveau numéro puis recommencez.")); |
326 |
jymadier |
5017 |
return false; |
327 |
|
|
} |
328 |
|
|
|
329 |
nmeucci |
5141 |
// Vérification de l'existence du DI cible (avec gestion multi) |
330 |
|
|
$where_collectivite = ""; |
331 |
|
|
if ($this->f->isCollectiviteMono($_SESSION['collectivite']) === true) { |
332 |
|
|
$where_collectivite = " |
333 |
|
|
AND dossier.om_collectivite=".$_SESSION['collectivite']." |
334 |
jymadier |
5017 |
"; |
335 |
nmeucci |
5141 |
} |
336 |
|
|
$sql = " |
337 |
|
|
SELECT |
338 |
|
|
count(*) |
339 |
|
|
FROM |
340 |
|
|
".DB_PREFIXE."dossier |
341 |
|
|
WHERE |
342 |
|
|
dossier.dossier = '".strtoupper($id_dossier_cible)."' |
343 |
|
|
".$where_collectivite; |
344 |
|
|
$count = $this->f->db->getOne($sql); |
345 |
|
|
$this->f->addToLog(__METHOD__."(): db->getOne(\"".$sql."\");", VERBOSE_MODE); |
346 |
|
|
$this->f->isDatabaseError($count); |
347 |
|
|
if ($count === '0') { |
348 |
|
|
$this->correct = false; |
349 |
nhaye |
6395 |
$this->addToMessage(sprintf(_("Il n'existe aucun dossier correspondant au numéro %s. Saisissez un nouveau numéro puis recommencez."), $id_dossier_cible)); |
350 |
nmeucci |
6051 |
$this->form->setVal('dossier_cible', ''); |
351 |
nmeucci |
5141 |
return false; |
352 |
|
|
} |
353 |
jymadier |
5017 |
|
354 |
nmeucci |
5141 |
// Vérification de l'existence d'un lien |
355 |
|
|
$type_link = $this->get_type_link($this->valF['dossier_src'], $this->valF['dossier_cible']); |
356 |
|
|
if ($type_link !== null) { |
357 |
|
|
switch ($type_link) { |
358 |
|
|
case 'manuel': |
359 |
|
|
$message_deja_lie = _("Le dossier %s est déjà lié au dossier courant."); |
360 |
|
|
break; |
361 |
|
|
case 'auto_recours': |
362 |
|
|
$message_deja_lie = _("Le dossier %s est déjà lié au dossier courant (lien automatique)."); |
363 |
|
|
break; |
364 |
|
|
case 'lien_par_da': |
365 |
|
|
$message_deja_lie = _("Le dossier %s est déjà lié au dossier courant (même dossier d'autorisation)."); |
366 |
|
|
break; |
367 |
|
|
default: |
368 |
|
|
$message_deja_lie = _("L'existence d'une liaison entre le dossier courant et le %s n'a pas pu être vérifiée."); |
369 |
|
|
$message_deja_lie .= '<br/>'; |
370 |
|
|
$message_deja_lie .= _("Veuillez contacter votre administrateur."); |
371 |
|
|
break; |
372 |
jymadier |
5017 |
} |
373 |
nmeucci |
5141 |
$this->addToMessage(sprintf($message_deja_lie, $id_dossier_cible)); |
374 |
|
|
$this->correct = false; |
375 |
|
|
return false; |
376 |
jymadier |
5017 |
} |
377 |
|
|
} |
378 |
|
|
|
379 |
nmeucci |
5141 |
/** |
380 |
|
|
* Récupère, s'il existe, le type du lien entre deux DI. |
381 |
|
|
* |
382 |
|
|
* Le lien peut être implicite (les DI ont le même DA) ou créé : |
383 |
|
|
* - manuellement (lors de l'ajout par l'utilisateur) ; |
384 |
|
|
* - automatiquement (lors de la création d'un DI contentieux). |
385 |
|
|
* |
386 |
|
|
* S'il s'agit d'une liaison implicite par le DA, |
387 |
|
|
* la notion de DI cible / source ne s'applique pas. |
388 |
|
|
* |
389 |
|
|
* Sinon elle s'applique et le lien est directionnel : |
390 |
|
|
* inverser les DI cible et source est susceptible de modifier le résultat. |
391 |
|
|
* |
392 |
|
|
* @param string $dossier_src ID du DI source |
393 |
|
|
* @param string $dossier_cible ID du DI cible |
394 |
|
|
* @return mixed NULL si aucune liaison sinon type du lien (STRING) |
395 |
|
|
*/ |
396 |
|
|
function get_type_link($dossier_src, $dossier_cible) { |
397 |
jymadier |
5017 |
|
398 |
nmeucci |
5141 |
// On vérifie s'il y a une entrée dans la table de liaison pour le sens |
399 |
|
|
// indiqué en paramètres : si c'est le cas on retourne le type du lien trouvé. |
400 |
jymadier |
5017 |
$sql = " |
401 |
|
|
SELECT |
402 |
|
|
type_lien |
403 |
|
|
FROM |
404 |
|
|
".DB_PREFIXE."lien_dossier_dossier |
405 |
|
|
WHERE |
406 |
|
|
dossier_src = '".strtoupper($dossier_src)."' |
407 |
|
|
AND dossier_cible = '".strtoupper($dossier_cible)."' |
408 |
|
|
"; |
409 |
|
|
$type_lien = $this->f->db->getOne($sql); |
410 |
|
|
$this->f->addToLog(__METHOD__."(): db->getOne(\"".$sql."\");", VERBOSE_MODE); |
411 |
nmeucci |
5141 |
$this->f->isDatabaseError($type_lien); |
412 |
jymadier |
5017 |
if ($type_lien !== null AND $type_lien !== '') { |
413 |
|
|
return $type_lien; |
414 |
|
|
} |
415 |
nmeucci |
5141 |
|
416 |
|
|
// Sinon on vérifie la présence d'une éventuelle liaison implicite par le DA. |
417 |
|
|
$sql = " |
418 |
|
|
SELECT |
419 |
|
|
count(*) |
420 |
|
|
FROM |
421 |
|
|
".DB_PREFIXE."dossier |
422 |
|
|
WHERE |
423 |
|
|
dossier = '".strtoupper($dossier_cible)."' |
424 |
|
|
AND dossier_autorisation = (SELECT dossier_autorisation |
425 |
|
|
FROM ".DB_PREFIXE."dossier |
426 |
|
|
WHERE dossier = '".strtoupper($dossier_src)."') |
427 |
|
|
"; |
428 |
|
|
$res = $this->f->db->getOne($sql); |
429 |
|
|
$this->f->addToLog(__METHOD__."(): db->getOne(\"".$sql."\");", VERBOSE_MODE); |
430 |
|
|
$this->f->isDatabaseError($res); |
431 |
|
|
if ($res === '1') { |
432 |
|
|
return 'lien_par_da'; |
433 |
|
|
} |
434 |
|
|
|
435 |
|
|
// Sinon aucun lien n'a été trouvé. |
436 |
|
|
return null; |
437 |
jymadier |
5017 |
} |
438 |
nmeucci |
6054 |
|
439 |
|
|
/** |
440 |
|
|
* Récupère l'instance du dossier d'instruction. |
441 |
|
|
* |
442 |
|
|
* @param string $dossier_instruction Identifiant du dossier d'instruction. |
443 |
|
|
* |
444 |
|
|
* @return object |
445 |
|
|
*/ |
446 |
|
|
function get_inst_dossier_instruction($dossier_instruction = null) { |
447 |
|
|
// |
448 |
|
|
return $this->get_inst_common("dossier_instruction", $dossier_instruction); |
449 |
|
|
} |
450 |
softime |
4927 |
} |
451 |
|
|
|
452 |
|
|
?> |