[openads-Commits] r4653 - branches/suivi_dates/obj

已查看 0 次
跳至第一个未读帖子

sof...@adullact.net

未读,
2016年6月28日 12:06:552016/6/28
收件人 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.
*

回复全部
回复作者
转发
0 个新帖子