From d8e5fd20d298fa4fe63e5bb931d986c2fa2379ba Mon Sep 17 00:00:00 2001 From: Alexis Algoud Date: Mon, 10 Feb 2014 09:39:26 +0100 Subject: [PATCH] In certain case, holiday_users won't be update (1 delete, 1 add for ex) Add a fonction for count the real number of user without CP --- htdocs/holiday/class/holiday.class.php | 28 ++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php index dc949344ee6..e92068ee364 100644 --- a/htdocs/holiday/class/holiday.class.php +++ b/htdocs/holiday/class/holiday.class.php @@ -87,7 +87,7 @@ class Holiday extends CommonObject $this->updateSoldeCP(); // Vérifie le nombre d'utilisateur et mets à jour si besoin - $this->verifNbUsers($this->countActiveUsers(),$this->getConfCP('nbUser')); + $this->verifNbUsers($this->countActiveUsersWithoutCP(),$this->getConfCP('nbUser')); return 1; } @@ -1229,7 +1229,23 @@ class Holiday extends CommonObject $sql = "SELECT count(u.rowid) as compteur"; $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; - $sql.= " WHERE statut > '0'"; + $sql.= " WHERE u.statut > '0'"; + + $result = $this->db->query($sql); + $objet = $this->db->fetch_object($result); + return $objet->compteur; + + } + /** + * Compte le nombre d'utilisateur actifs dans Dolibarr sans CP + * + * @return int retourne le nombre d'utilisateur + */ + function countActiveUsersWithoutCP() { + + $sql = "SELECT count(u.rowid) as compteur"; + $sql.= " FROM ".MAIN_DB_PREFIX."user as u LEFT OUTER JOIN ".MAIN_DB_PREFIX."holiday_users hu ON (hu.fk_user=u.rowid)"; + $sql.= " WHERE u.statut > 0 AND hu.fk_user IS NULL "; $result = $this->db->query($sql); $objet = $this->db->fetch_object($result); @@ -1244,13 +1260,13 @@ class Holiday extends CommonObject * @param int $userCP nombre d'utilisateur actifs dans le module congés payés * @return void */ - function verifNbUsers($userDolibarr,$userCP) { + function verifNbUsers($userDolibarrWithoutCP,$userCP) { if (empty($userCP)) $userCP=0; dol_syslog(get_class($this).'::verifNbUsers userDolibarr='.$userDolibarr.' userCP='.$userCP); - // Si il y a plus d'utilisateur Dolibarr que dans le module CP - if ($userDolibarr > $userCP) + // On vérifie les users Dolibarr sans CP + if ($userDolibarrWithoutCP > 0) { $this->updateConfCP('nbUser',$userDolibarr); @@ -1311,7 +1327,7 @@ class Holiday extends CommonObject $obj = $this->db->fetch_object($resql); - // On ajoute l'utilisateur + // On supprime l'utilisateur $this->deleteCPuser($obj->fk_user); $i++;