/[openfoncier]/trunk/obj/lot.class.php
ViewVC logotype

Contents of /trunk/obj/lot.class.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 15835 - (show annotations)
Thu Oct 5 12:46:12 2023 UTC (15 months, 3 weeks ago) by softime
File size: 29201 byte(s)
chore(branch): fusion de la branche d'intégration 6.1.0-develop dans le trunk

1 <?php
2 /**
3 * DBFORM - 'lot' - Surcharge gen.
4 *
5 * @package openads
6 * @version SVN : $Id$
7 */
8
9 require_once ("../gen/obj/lot.class.php");
10
11 class lot extends lot_gen {
12
13 /**
14 * Définition des actions disponibles sur la classe.
15 *
16 * @return void
17 */
18 function init_class_actions() {
19 //
20 parent::init_class_actions();
21
22 // ACTION - 001 - ajouter
23 //
24 $this->class_actions[0]["condition"] = array("is_ajoutable", "can_user_access_dossier_contexte_ajout");
25
26 // ACTION - 001 - modifier
27 //
28 $this->class_actions[1]["condition"] = array("is_modifiable", "can_user_access_dossier_contexte_modification");
29
30 // ACTION - 002 - supprimer
31 //
32 $this->class_actions[2]["condition"] = array("is_supprimable", "can_user_access_dossier_contexte_modification");
33
34 // ACTION - 100 - donnees_techniques
35 // Affiche dans un overlay les données techniques
36 $this->class_actions[100] = array(
37 "identifier" => "donnees_techniques",
38 "portlet" => array(
39 "type" => "action-self",
40 "libelle" => _("Données techniques"),
41 "order" => 100,
42 "class" => "rediger-16",
43 ),
44 "view" => "view_donnees_techniques",
45 "permission_suffix" => "donnees_techniques_consulter",
46 "condition" => "can_user_access_dossier_contexte_modification",
47 );
48
49 // ACTION - 100 - transferer_lot_nouveaux_demandeurs
50 // Transfert les lots de demandeur
51 $this->class_actions[110] = array(
52 "identifier" => "transferer_lot_nouveaux_demandeurs",
53 "portlet" => array(
54 "type" => "action-direct",
55 "libelle" => _("Transferer ce lot aux nouveaux demandeurs"),
56 "order" => 110,
57 "class" => "transferer-16",
58 ),
59 "permission_suffix" => "transferer",
60 "method" => "transferer_lot_demandeurs",
61 "condition" => "can_user_access_dossier_contexte_modification",
62 );
63 }
64
65 /**
66 * TREATMENT - transferer_lot_demandeurs.
67 *
68 * Permet de permet de transferer les lots aux nouveau demandeur.
69 *
70 *
71 * @param array $val valeurs soumises par le formulaire
72 * @param null $dnu1 @deprecated Ancienne ressource de base de données.
73 * @param null $dnu2 @deprecated Ancien marqueur de débogage.
74 *
75 * @return boolean
76 */
77 function transferer_lot_demandeurs($val = array(), &$dnu1 = null, $dnu2 = null) {
78
79 // Cette méthode permet d'exécuter une routine en début des méthodes
80 // dites de TREATMENT.
81 $this->begin_treatment(__METHOD__);
82
83
84 /*Donnees*/
85 $idxDossier = $this->getVal("dossier");
86 //Si les liaisons n'existent pas déjà
87 $qres = $this->f->get_all_results_from_db_query(
88 sprintf(
89 'SELECT
90 lot.lot,
91 lien_lot_demandeur.demandeur
92 FROM
93 %1$slien_dossier_demandeur
94 INNER JOIN %1$slien_lot_demandeur
95 ON lien_lot_demandeur.demandeur = lien_dossier_demandeur.demandeur
96 INNER JOIN %1$slot
97 ON lot.lot = %2$d
98 WHERE
99 lien_dossier_demandeur.dossier = \'%3$s\'',
100 DB_PREFIXE,
101 intval($this->getVal($this->clePrimaire)),
102 $this->f->db->escapeSimple($idxDossier)
103 ),
104 array(
105 'origin' => __METHOD__,
106 'force_result' => true
107 )
108 );
109 if ($qres['code'] !== 'OK') {
110 // Appel de la methode de recuperation des erreurs
111 $this->erreur_db($qres['messsage'], $qres['messsage'], '');
112 $this->correct = false;
113 // Termine le traitement
114 return $this->end_treatment(__METHOD__, false);
115 }
116
117 // Récupère la liste des demandeurs associés aux lot et dossier d'instruction
118 $listDemandeurLie = array();
119 if ($qres['row_count'] > 0) {
120
121 $i = 0;
122 foreach ($qres['result'] as $row) {
123 $listDemandeurLie[$i++] = $row['demandeur'];
124 }
125 }
126 echo (" nbDossierDemandeurIJ: " . $res->numrows());
127
128 // Récupère les demandeurs du dossier d'instruction
129 $qres = $this->f->get_all_results_from_db_query(
130 sprintf(
131 'SELECT
132 lien_dossier_demandeur.demandeur as demandeur,
133 lien_dossier_demandeur.petitionnaire_principal as pp
134 FROM
135 %1$slien_dossier_demandeur
136 WHERE
137 lien_dossier_demandeur.dossier = \'%2$s\'',
138 DB_PREFIXE,
139 $this->f->db->escapeSimple($idxDossier)
140 ),
141 array(
142 'origin' => __METHOD__,
143 'force_result' => true
144 )
145 );
146 if ($qres['result'] !== 'OK') {
147 // Appel de la methode de recuperation des erreurs
148 $this->erreur_db($qres['message'], $qres['message'], '');
149 $this->correct = false;
150 // Termine le traitement
151 return $this->end_treatment(__METHOD__, false);
152 }
153
154 echo (" nbDossierDemandeurWD: " . $qres['row_count']);
155
156 // Transfert des demandeurs entre le dossier et le lot
157 if (count($listDemandeurLie) != $qres['row_count']) {
158
159 //Supprime les anciens liens
160 $sql = "DELETE FROM ".DB_PREFIXE."lien_lot_demandeur
161 WHERE lien_lot_demandeur.lot = ".$this->getVal($this->clePrimaire);
162
163 $res2 = $this->f->db->query($sql);
164
165 echo (" delLotDemandeur: " . $res2);
166 $this->addToLog(__METHOD__."(): db->query(\"".$sql."\");", VERBOSE_MODE);
167 if ($this->f->isDatabaseError($res2, true) !== false) {
168 // Appel de la methode de recuperation des erreurs
169 $this->erreur_db($res2->getDebugInfo(), $res2->getMessage(), '');
170 $res2->free();
171 $this->correct = false;
172 // Termine le traitement
173 return $this->end_treatment(__METHOD__, false);
174 }
175
176 $ret = "";
177
178
179 // Créé autant de liaisons que de demandeurs liés au dossier d'instruction
180 foreach ($qres['result'] as $row) {
181
182 if (!in_array($row['demandeur'], $listDemandeurLie)){
183
184 $valLLD = array();
185 $valLLD['lien_lot_demandeur'] = NULL;
186 $valLLD['lot'] = $this->getVal($this->clePrimaire);
187 $valLLD['demandeur'] = $row['demandeur'];
188 $valLLD['petitionnaire_principal'] = $row['pp'];
189
190 $lld = $this->f->get_inst__om_dbform(array(
191 "obj" => "lien_lot_demandeur",
192 "idx" => "]",
193 ));
194 $lld->valF = array();
195
196 $lld->ajouter($valLLD) ;
197
198 $qres2 = $this->f->get_all_results_from_db_query(
199 sprintf(
200 'SELECT
201 civilite.code as code,
202 CASE WHEN demandeur.qualite = \'particulier\'
203 THEN TRIM(CONCAT(demandeur.particulier_nom, \' \', demandeur.particulier_prenom))
204 ELSE TRIM(CONCAT(demandeur.personne_morale_raison_sociale, \' \', demandeur.personne_morale_denomination))
205 END as nom
206 FROM
207 %1$sdemandeur
208 LEFT JOIN %1$scivilite
209 ON demandeur.particulier_civilite = civilite.civilite
210 OR demandeur.personne_morale_civilite = civilite.civilite
211 WHERE
212 demandeur.demandeur = %2$d',
213 DB_PREFIXE,
214 intval($row['demandeur'])
215 ),
216 array(
217 'origin' => __METHOD__,
218 'force_result' => true
219 )
220 );
221 if ($qres2['result'] !== 'OK') {
222 // Appel de la methode de recuperation des erreurs
223 $this->erreur_db($qres2['message'], $qres2['message'], '');
224 $this->correct = false;
225 // Termine le traitement
226 return $this->end_treatment(__METHOD__, false);
227 }
228
229 $row = array_shift($qres2['result']);
230 $ret .= $row['code']. " " . $row['nom'] . "<br/>" ;
231
232 }
233 }
234
235 //Envoie du message de retour
236 $this->addToMessage(_("Transfert effectue avec succès"));
237 }
238 //Sinon
239 else {
240 //Envoie du message de retour
241 $this->addToMessage(_("Les demandeurs ont déjà été transférés"));
242 }
243
244 // Termine le traitement
245 return $this->end_treatment(__METHOD__, true);
246 }
247
248 /**
249 * Ouvre le sous-formulaire passé en paramètre en overlay
250 * en mode ajout si aucun n'existe sinon en mode modifier.
251 *
252 * @return void
253 */
254 function display_overlay($idx = "", $obj = "") {
255 // Seulement si le numéro de dossier est fourni
256 if (isset($idx) && !empty($idx)
257 && isset($obj) && !empty($obj)){
258
259 // Vérifie que l'objet n'existe pas
260 $qres = $this->f->get_all_results_from_db_query(
261 sprintf(
262 'SELECT
263 donnees_techniques
264 FROM
265 %1$sdonnees_techniques
266 WHERE
267 donnees_techniques.lot = %2$d',
268 DB_PREFIXE,
269 intval($idx)
270 ),
271 array(
272 'origin' => __METHOD__
273 )
274 );
275
276 // S'il n'y en a pas, afficher le formulaire d'ajout
277 if ($qres['row_count'] == 0) {
278 //
279 echo '
280 <script type="text/javascript" >
281 overlayIt(\''.$obj.'\',\''.OM_ROUTE_SOUSFORM.'&obj=donnees_techniques'.
282 '&retourformulaire=lot&action=0&idxformulaire='. $idx. '\', 1);
283 </script>
284 ';
285 }
286 // Sinon afficher l'objet en consultation
287 else {
288 //
289 $row = array_shift($qres['result']);
290 //
291 echo '
292 <script type="text/javascript" >
293 overlayIt(\''.$obj.'\',\''.OM_ROUTE_SOUSFORM.'&obj=donnees_techniques'.
294 '&retourformulaire=lot&action=5&idxformulaire='. $idx. '&idx=' . $row['donnees_techniques'] .'&objsf='.$obj.'\', 1);
295 </script>
296 ';
297 }
298 }
299 }
300
301 /**
302 * CONDITION - is_ajoutable.
303 *
304 * Condition pour pouvoir ajouter
305 *
306 * @return boolean
307 */
308 function is_ajoutable() {
309 // Test du bypass
310 if ($this->f->isAccredited("lot_ajouter_bypass")) {
311 return true;
312 }
313 // Test des autres conditions
314 return $this->is_ajoutable_or_modifiable_or_supprimable();
315 }
316
317 /**
318 * CONDITION - is_modifiable.
319 *
320 * Condition pour afficher le bouton modifier
321 *
322 * @return boolean
323 */
324 function is_modifiable() {
325 // Test du bypass
326 if ($this->f->isAccredited("lot_modifier_bypass")) {
327 return true;
328 }
329 // Test des autres conditions
330 return $this->is_ajoutable_or_modifiable_or_supprimable();
331 }
332
333 /**
334 * CONDITION - is_supprimable.
335 *
336 * Condition pour afficher le bouton supprimer
337 * @return boolean
338 */
339 function is_supprimable() {
340 // Test du bypass
341 if ($this->f->isAccredited("lot_supprimer_bypass")) {
342 return true;
343 }
344 // Test des autres conditions
345 return $this->is_ajoutable_or_modifiable_or_supprimable();
346 }
347
348
349 /**
350 * Conditions pour afficher les boutons modifier et supprimer
351 *
352 * @return boolean
353 */
354 function is_ajoutable_or_modifiable_or_supprimable() {
355 // Tester si le dossier est cloturé ,
356 // et si l'instructeur est de la même division
357 if ($this->is_instructeur_from_division_dossier() === true and
358 $this->is_dossier_instruction_not_closed() === true){
359 return true;
360 }
361
362 return false;
363 }
364
365
366 /**
367 * VIEW - view_donnees_techniques.
368 *
369 * Ouvre le sous-formulaire en ajaxIt dans un overlay.
370 * Cette action est bindée pour utiliser la fonction popUpIt.
371 *
372 * @return void
373 */
374 function view_donnees_techniques() {
375 $dossier = $this->getVal("dossier");
376 // Vérification de l'accessibilité sur l'élément
377 $this->checkAccessibility();
378 //
379 $this->display_overlay(
380 $this->getVal($this->clePrimaire),
381 "donnees_techniques"
382 );
383 }
384
385 /**
386 * SETTER_FORM - setSelect.
387 *
388 * @return void
389 */
390 function setSelect(&$form, $maj, &$dnu1 = null, $dnu2 = null) {
391 // Le parent n'est pas appelé délibérament pour cause de performance.
392 // En effet, celui-ci charge toutes les données de la table dossier et
393 // de la table dossier_autorisation.
394 // parent::setSelect($form, $maj);
395 }
396
397 /**
398 * TRIGGER - triggerajouterapres.
399 *
400 * @return boolean
401 */
402 function triggerajouterapres($id, &$dnu1 = null, $val = array(), $dnu2 = null) {
403 $this->addToLog(__METHOD__."(): start", EXTRA_VERBOSE_MODE);
404 parent::triggerajouterapres($id, $dnu1, $val);
405
406 // Si en sous-formulaire
407 if($this->getParameter("idxformulaire") != "") {
408
409 // Insertion du lien demandeur/lot
410 $lld = $this->f->get_inst__om_dbform(array(
411 "obj" => "lien_lot_demandeur",
412 "idx" => "]",
413 ));
414
415 $qres = $this->f->get_all_results_from_db_query(
416 sprintf(
417 'SELECT
418 *
419 FROM
420 %1$slien_dossier_demandeur
421 WHERE
422 dossier = \'%2$s\'',
423 DB_PREFIXE,
424 $this->f->db->escapeSimple($this->getParameter("idxformulaire"))
425 ),
426 array(
427 'origin' => __METHOD__
428 )
429 );
430 foreach ($qres['result'] as $row) {
431 unset($row['lien_dossier_demandeur']);
432 unset($row['dossier']);
433 $row['lien_lot_demandeur'] = "";
434 $row['lot'] = $this->valF["lot"];
435 $lld->ajouter($row);
436 }
437
438 // Ajoute une ligne dans les données techniques
439 $add_dt = $this->add_donnees_techniques();
440 //
441 if ($add_dt === false) {
442 //
443 $this->addToMessage(_("Impossible d'associer des données techniques au lot.")." "._("Veuillez contacter votre administrateur."));
444 return false;
445 }
446 }
447
448 //
449 return true;
450 }
451
452 /**
453 * Cache le champ dossier_autorisation
454 */
455 function setType(&$form,$maj) {
456 parent::setType($form,$maj);
457
458 $form->setType('dossier_autorisation', 'hidden');
459 $form->setType('dossier','hidden');
460
461 if($maj == "110") {
462 $form->setType('lot', 'hidden');
463 $form->setType('libelle', 'hidden');
464 $form->setType('dossier_autorisation', 'hidden');
465 $form->setType('dossie', 'hidden');
466 }
467 }
468
469 /**
470 * SETTER_FORM - setValsousformulaire (setVal).
471 *
472 * @return void
473 */
474 function setValsousformulaire(&$form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire, &$dnu1 = null, $dnu2 = null) {
475 parent::setValsousformulaire($form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire);
476 //
477 $this->retourformulaire = $retourformulaire;
478 //
479 if ($validation == 0) {
480 $is_in_context_of_di = $this->is_in_context_of_foreign_key("dossier", $this->getParameter("retourformulaire"));
481 $is_in_context_of_da = $this->is_in_context_of_foreign_key("dossier_autorisation", $this->getParameter("retourformulaire"));
482 //
483 if ($is_in_context_of_di === true) {
484 $form->setVal("dossier", $this->getParameter("idxformulaire"));
485 $inst_di = $this->get_inst_dossier($this->getParameter("idxformulaire"));
486 $form->setVal("dossier_autorisation", $inst_di->getVal("dossier_autorisation"));
487 }
488 //
489 if ($is_in_context_of_da === true) {
490 $form->setVal("dossier_autorisation", $this->getParameter("idxformulaire"));
491 }
492 }
493 }
494
495 /**
496 * Ajout de la liste des demandeurs
497 */
498 function sousformSpecificContent($maj) {
499
500 //En consultation
501 if ( $maj == 3 ){
502
503 //Récupère la liste des demandeurs
504 $qres = $this->f->get_all_results_from_db_query(
505 sprintf(
506 'SELECT
507 civilite.code as code,
508 CASE WHEN demandeur.qualite = \'particulier\'
509 THEN TRIM(CONCAT(demandeur.particulier_nom, \' \', demandeur.particulier_prenom))
510 ELSE TRIM(CONCAT(demandeur.personne_morale_raison_sociale, \' \', demandeur.personne_morale_denomination))
511 END as nom,
512 lien_lot_demandeur.petitionnaire_principal as petitionnaire_principal,
513 demandeur.type_demandeur as type_demandeur
514 FROM
515 %1$slien_lot_demandeur
516 LEFT JOIN %1$sdemandeur
517 ON lien_lot_demandeur.demandeur = demandeur.demandeur
518 LEFT JOIN %1$scivilite
519 ON demandeur.particulier_civilite = civilite.civilite OR
520 demandeur.personne_morale_civilite = civilite.civilite
521 WHERE
522 lien_lot_demandeur.lot = %2$d
523 ORDER BY
524 demandeur.type_demandeur DESC',
525 DB_PREFIXE,
526 intval($this->val[array_search('lot', $this->champs)])
527 ),
528 array(
529 'origin' => __METHOD__
530 )
531 );
532 //Affichage des données
533 echo "<div class=\"field field-type-static\">";
534 echo "<div class=\"form-libelle\">";
535 echo "<label id=\"lib-libelle\" class=\"libelle-demandeur\" for=\"demandeur\">";
536 echo _("demandeur");
537 echo "</label>";
538 echo "</div>";
539 echo "<div class=\"form-content\">";
540 echo "<span id=\"demandeur\" class=\"field_value\">";
541
542 $listDemandeur = "";
543 //La liste des demandeurs
544 foreach ($qres['result'] as $row) {
545
546 //Ordonne l'affichage des demandeur
547 if ( $row['petitionnaire_principal'] == 't' ){
548
549 $listDemandeur = $row['code']. " " . $row['nom'] . ", " . _("petitionnaire principal") . "<br/>".$listDemandeur;
550 }
551 else {
552
553 $listDemandeur .= $row['code']. " " . $row['nom'] . ", " . $row['type_demandeur'] . "<br/>";
554 }
555 }
556 echo $listDemandeur;
557 echo "</span>";
558 echo "</div>";
559 echo "</div>";
560 }
561 }
562
563
564 /**
565 * Retourne true s'il y a des données techniques lié au dossier d'instruction
566 * @param string $idx Identifiant du dossier d'instruction
567 * @return boolean S'il y a des données techniques
568 */
569 function hasDonneesTechniquesDossier($idx){
570
571 //Si l'identifiant du dossier d'instruction founi est correct
572 if ( $idx != '' ){
573
574 //On récupère le statut de l'état du dossier d'instruction à partir de
575 //l'identifiant du dossier
576 $qres = $this->f->get_all_results_from_db_query(
577 sprintf(
578 'SELECT
579 donnees_techniques.donnees_techniques
580 FROM
581 %1$sdonnees_techniques
582 LEFT JOIN %1$sdossier
583 ON donnees_techniques.dossier_instruction = dossier.dossier
584 WHERE
585 dossier.dossier = \'%2$s\'',
586 DB_PREFIXE,
587 $this->f->db->escapeSimple($idx)
588 ),
589 array(
590 'origin' => __METHOD__
591 )
592 );
593 if ($qres['row_count'] > 0 ){
594 return TRUE;
595 }
596 }
597 return FALSE;
598 }
599
600
601 /**
602 * Cette méthode est appelée lors de la suppression d’un objet, elle permet
603 * de vérifier si l’objet supprimé n’est pas lié à une autre table pour en
604 * empêcher la suppression.
605 *
606 * @param mixed $id Identifiant de l'objet.
607 *
608 * @return boolean
609 */
610 function cleSecondaire($id, &$dnu1 = null, $val = array(), $dnu2 = null) {
611 // Surcharge pour éviter les contrôles sur les tables liées en cas
612 // de suppression
613 return true;
614 }
615
616
617 /**
618 * Supprime le lien entre le lot et les demandeurs.
619 *
620 * @param integer $lot Identifiant de l'objet.
621 *
622 * @return boolean
623 */
624 protected function delete_lien_lot_demandeur($lot) {
625
626 // SQL
627 $sql = "DELETE FROM ".DB_PREFIXE."lien_lot_demandeur
628 WHERE lot = ".$lot;
629 // Résultat
630 $res = $this->f->db->query($sql);
631 // Log
632 $this->f->addToLog(__METHOD__."() : db->query(\"".$sql."\")", VERBOSE_MODE);
633 //
634 if ($this->f->isDatabaseError($res, true)) {
635 return false;
636 }
637
638 //
639 return true;
640 }
641
642
643 /**
644 * Supprime les données techniques liées.
645 *
646 * @param integer $lot Identifiant de l'objet.
647 *
648 * @return boolean
649 */
650 protected function delete_donnees_techniques($lot) {
651
652 // SQL
653 $sql = "DELETE FROM ".DB_PREFIXE."donnees_techniques
654 WHERE lot = ".$lot;
655 // Résultat
656 $res = $this->f->db->query($sql);
657 // Log
658 $this->f->addToLog(__METHOD__."() : db->query(\"".$sql."\")", VERBOSE_MODE);
659 //
660 if ($this->f->isDatabaseError($res, true)) {
661 return false;
662 }
663
664 //
665 return true;
666 }
667
668 /**
669 * TRIGGER - triggersupprimer.
670 *
671 * @return boolean
672 */
673 function triggersupprimer($id, &$dnu1 = null, $val = array(), $dnu2 = null) {
674 $this->addToLog(__METHOD__."(): start", EXTRA_VERBOSE_MODE);
675
676 // Suppression du lien entre le lot et les demandeurs
677 $delete_lien_lot_demandeur = $this->delete_lien_lot_demandeur($id);
678 if ($delete_lien_lot_demandeur === false) {
679 return false;
680 }
681
682 // Suppression des données techniques lié au lot
683 $delete_donnees_techniques = $this->delete_donnees_techniques($id);
684 if ($delete_donnees_techniques === false) {
685 return false;
686 }
687
688 //
689 return true;
690 }
691
692 /**
693 * Ajout les données techniques au lot.
694 *
695 * @return boolean
696 */
697 protected function add_donnees_techniques() {
698
699 // Instancie la classe donnees_techniques en ajout
700 $inst_dt = $this->f->get_inst__om_dbform(array(
701 "obj" => "donnees_techniques",
702 "idx" => "]",
703 ));
704
705 // Toutes les valeurs sont mis à null
706 foreach($inst_dt->champs as $value) {
707 //
708 $valF[$value] = null;
709 }
710
711 // Ajout de l'identifiant du lot
712 $valF['lot'] = $this->valF[$this->clePrimaire];
713 // Identifiant du CERFA
714 $valF['cerfa'] = $this->get_cerfa_id_by_dossier_autorisation($this->valF['dossier_autorisation']);
715 // Si aucun CERFA n'est identifié
716 if ($valF['cerfa'] === '' || $valF['cerfa'] === null) {
717 //
718 $this->f->addToLog(__METHOD__."() : ERROR - "._("Aucun CERFA paramétré."), DEBUG_MODE);
719 return false;
720 }
721
722 // Ajoute l'enregistrement dans la table donnees_techniques
723 $add = $inst_dt->ajouter($valF);
724 //
725 if ($add === false) {
726 //
727 $this->f->addToLog(__METHOD__."() : ERROR - "._("Impossible d'ajouter les données techniques du lot."), DEBUG_MODE);
728 return false;
729 }
730
731 //
732 return true;
733 }
734
735
736 /**
737 * Récupère l'instance du dossier.
738 *
739 * @param string $dossier_autorisation Identifiant de l'objet.
740 *
741 * @return object
742 */
743 public function get_inst_dossier_autorisation($dossier_autorisation = null) {
744 //
745 return $this->get_inst_common("dossier_autorisation", $dossier_autorisation);
746 }
747
748
749 /**
750 * Récupère l'instance du dossier.
751 *
752 * @param integer $dossier_autorisation_type_detaille Identifiant de l'objet.
753 *
754 * @return object
755 */
756 public function get_inst_dossier_autorisation_type_detaille($dossier_autorisation_type_detaille) {
757 //
758 return $this->get_inst_common("dossier_autorisation_type_detaille", $dossier_autorisation_type_detaille);
759 }
760
761
762 /**
763 * Récupère le cerfa des lots pour afficher les bonnes données techniques.
764 *
765 * @param string $da Identifiant de l'objet.
766 *
767 * @return integer
768 */
769 public function get_cerfa_id_by_dossier_autorisation($da) {
770
771 // Instancie le dossier d'autorisation
772 $inst_da = $this->get_inst_dossier_autorisation($da);
773
774 // Instancie le type détaillé du dossier d'autorisation
775 $inst_datd = $this->get_inst_dossier_autorisation_type_detaille($inst_da->getVal('dossier_autorisation_type_detaille'));
776
777 //
778 return $inst_datd->getVal('cerfa_lot');
779
780 }
781
782 /*
783 * CONDITION - can_user_access_dossier_contexte_ajout
784 *
785 * Vérifie que l'utilisateur a bien accès au dossier d'instruction passé dans le
786 * formulaire d'ajout.
787 * Cette méthode vérifie que l'utilisateur est lié au groupe du dossier, et si le
788 * dossier est confidentiel qu'il a accès aux confidentiels de ce groupe.
789 *
790 */
791 function can_user_access_dossier_contexte_ajout() {
792
793 ($this->f->get_submitted_get_value('idxformulaire') !== null ? $id_dossier =
794 $this->f->get_submitted_get_value('idxformulaire') : $id_dossier = "");
795 //
796 if ($id_dossier !== "") {
797 $dossier = $this->f->get_inst__om_dbform(array(
798 "obj" => "dossier_instruction",
799 "idx" => $id_dossier,
800 ));
801 //
802 return $dossier->can_user_access_dossier();
803 }
804 return false;
805 }
806
807 /*
808 * CONDITION - can_user_access_dossier_contexte_modification
809 *
810 * Vérifie que l'utilisateur a bien accès au dossier lié au lot instanciée.
811 * Cette méthode vérifie que l'utilisateur est lié au groupe du dossier, et si le
812 * dossier est confidentiel qu'il a accès aux confidentiels de ce groupe.
813 *
814 */
815 function can_user_access_dossier_contexte_modification() {
816
817 $id_dossier = $this->getVal('dossier');
818 //
819 if ($id_dossier !== "" && $id_dossier !== null) {
820 $dossier = $this->f->get_inst__om_dbform(array(
821 "obj" => "dossier_instruction",
822 "idx" => $id_dossier,
823 ));
824 //
825 return $dossier->can_user_access_dossier();
826 }
827 return false;
828 }
829
830
831 }// fin classe
832

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26