sof...@adullact.net
unread,Jun 28, 2016, 12:06:55 PM6/28/16Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to openmairi...@googlegroups.com
Author: softime
Date: 2016-06-28 18:06:52 +0200 (Tue, 28 Jun 2016)
New Revision: 4653
Modified:
branches/suivi_dates/obj/instruction.class.php
branches/suivi_dates/obj/utils.class.php
Log:
* Correction et optimisation du code.
Modified: branches/suivi_dates/obj/instruction.class.php
===================================================================
--- branches/suivi_dates/obj/instruction.class.php 2016-06-28 16:00:54 UTC (rev 4652)
+++ branches/suivi_dates/obj/instruction.class.php 2016-06-28 16:06:52 UTC (rev 4653)
@@ -45,6 +45,20 @@
*/
var $inst_dossier = null;
+ /**
+ * Instance de la classe instructeur
+ *
+ * @var mixed
+ */
+ var $inst_instructeur = null;
+
+ /**
+ * Instance de la classe om_utilisateur
+ *
+ * @var mixed
+ */
+ var $inst_om_utilisateur = null;
+
var $metadata = array(
"om_fichier_instruction" => array(
"dossier" => "getDossier",
@@ -3122,6 +3136,7 @@
return false;
}
+
/**
* CONDITION - can_monitoring_dates.
*
@@ -3129,17 +3144,36 @@
*
* @return boolean
*/
- function can_monitoring_dates() {
+ public function can_monitoring_dates() {
+ // Récupère la valeur du champ finalisé
+ $om_final_instruction = $this->getVal('om_final_instruction');
+
+ // Si l'instruction n'est pas finalisée
+ if ($om_final_instruction == 'f') {
+ //
+ return false;
+ }
+
// Récupération des infos du dossier
- $di = $this->get_inst_dossier();
- $coll_di = $di->getVal('om_collectivite');
+ $inst_dossier = $this->get_inst_dossier();
+ $coll_di = $inst_dossier->getVal('om_collectivite');
$div_di = $this->getDivisionFromDossier();
// et de son éventuel instructeur
- $instr_di = $di->getVal('instructeur');
+ $instr_di = $inst_dossier->getVal('instructeur');
+ // Par défaut on prétend que l'instructeur n'est pas multi
$instr_di_coll_multi = false;
- if (empty($instr_di) === false) {
- $instr_di_coll = $this->f->getCollectiviteInstructeur($instr_di);
- $instr_di_coll_multi = !$this->f->isCollectiviteMono($instr_di_coll);
+ // Si un instructeur est affecté au dossier
+ if ($instr_di !== '' && $instr_di !== null) {
+ //
+ $inst_instructeur = $this->get_inst_instructeur($instr_di);
+ // Récupération de l'utilisateur lié à l'instructeur
+ $inst_om_utilisateur = $this->get_inst_om_utilisateur($inst_instructeur->getVal('om_utilisateur'));
+ $instr_di_coll = $inst_om_utilisateur->getVal('om_collectivite');
+ // Vérifie si l'instructeur est de la collectivité de niveau 2
+ if ($this->f->isCollectiviteMono($instr_di_coll) === false) {
+ //
+ $instr_di_coll_multi = true;
+ }
}
// S'il s'agit d'un instructeur
@@ -3147,15 +3181,20 @@
// Il faut qu'il instruise le dossier ou soit de la même division
if ($this->f->om_utilisateur['instructeur'] === $instr_di
|| $this->f->om_utilisateur['division'] === $div_di) {
+ //
return true;
}
+
// On donne également le droit s'il est de la même collectivité que
// le dossier et si l'instruction est déléguée à la communauté
if ($this->f->isCollectiviteMono($this->f->om_utilisateur['om_collectivite']) === true
&& $this->f->om_utilisateur['om_collectivite'] === $coll_di
&& $instr_di_coll_multi === true) {
+ //
return true;
}
+
+ //
return false;
}
@@ -3165,11 +3204,13 @@
// Il a le droit s'il est de la communauté
if ($this->f->isCollectiviteMono($this->f->om_utilisateur['om_collectivite']) === false) {
+ //
return true;
}
// Sinon il faut qu'il soit de la même commune que celle du dossier
if ($this->f->om_utilisateur['om_collectivite'] === $coll_di) {
+ //
return true;
}
@@ -3177,6 +3218,7 @@
return false;
}
+
/**
* TREATMENT - finalize.
*
@@ -5012,6 +5054,34 @@
//
return $modele;
}
+
+
+ /**
+ * Récupère l'instance de l'instructeur
+ *
+ * @param integer $instructeur Identifiant de l'instructeur.
+ *
+ * @return object
+ */
+ protected function get_inst_instructeur($instructeur) {
+ //
+ return $this->get_inst_common("instructeur", $instructeur);
+ }
+
+
+ /**
+ * Récupère l'instance de l'utilisateur
+ *
+ * @param integer $om_utilisateur Identifiant de l'utilisateur.
+ *
+ * @return object
+ */
+ protected function get_inst_om_utilisateur($om_utilisateur) {
+ //
+ return $this->get_inst_common("om_utilisateur", $om_utilisateur);
+ }
+
+
}// fin classe
?>
Modified: branches/suivi_dates/obj/utils.class.php
===================================================================
--- branches/suivi_dates/obj/utils.class.php 2016-06-28 16:00:54 UTC (rev 4652)
+++ branches/suivi_dates/obj/utils.class.php 2016-06-28 16:06:52 UTC (rev 4653)
@@ -129,25 +129,6 @@
}
/**
- * Retourne la collectivité d'un instructeur
- *
- * @param integer $id_instr
- * @return integer
- */
- public function getCollectiviteInstructeur($id_instr) {
- $sql = "
- SELECT om_collectivite
- FROM ".DB_PREFIXE."om_utilisateur
- WHERE om_utilisateur = (SELECT om_utilisateur
- FROM ".DB_PREFIXE."instructeur
- WHERE instructeur = ".$id_instr.")";
- $id_collectivite = $this->db->getOne($sql);
- $this->addToLog(__METHOD__.": db->getOne(\"".$sql."\");", VERBOSE_MODE);
- $this->isDatabaseError($id_collectivite);
- return $id_collectivite;
- }
-
- /**
* Retourne l'identifiant de la collectivité multi ou l'identifiant de la
* seule collectivité dans le cas d'une installation mono.
*