Maxi debug of new module leave requests

This commit is contained in:
Laurent Destailleur 2015-06-27 13:01:44 +02:00
parent b6efa5ed11
commit 55cb103ab0
8 changed files with 88 additions and 475 deletions

View File

@ -1222,15 +1222,16 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
{
$langs->load("holiday");
$newmenu->add("/holiday/index.php?&leftmenu=hrm", $langs->trans("CPTitreMenu"), 0, $user->rights->holiday->read, '', $mainmenu, 'hrm');
$newmenu->add("/holiday/card.php?&action=request", $langs->trans("MenuAddCP"), 1,$user->rights->holiday->write);
$newmenu->add("/holiday/index.php?&leftmenu=hrm", $langs->trans("List"), 1,$user->rights->holiday->read);
$newmenu->add("/holiday/list.php?&leftmenu=hrm", $langs->trans("CPTitreMenu"), 0, $user->rights->holiday->read, '', $mainmenu, 'hrm');
$newmenu->add("/holiday/card.php?&action=request", $langs->trans("New"), 1,$user->rights->holiday->write);
$newmenu->add("/holiday/list.php?&leftmenu=hrm", $langs->trans("List"), 1,$user->rights->holiday->read);
$newmenu->add("/holiday/list.php?select_statut=2&leftmenu=hrm", $langs->trans("ListToApprove"), 2, $user->rights->holiday->read);
$newmenu->add("/holiday/define_holiday.php?&action=request", $langs->trans("MenuConfCP"), 1, $user->rights->holiday->define_holiday);
$newmenu->add("/holiday/view_log.php?&action=request", $langs->trans("MenuLogCP"), 1, $user->rights->holiday->define_holiday);
$newmenu->add("/holiday/month_report.php?&action=request", $langs->trans("MenuReportMonth"), 1, $user->rights->holiday->define_holiday);
}
// Trips and expenses
// Trips and expenses (old module)
if (! empty($conf->deplacement->enabled))
{
$langs->load("trips");

View File

@ -56,267 +56,6 @@ print_fiche_titre($langs->trans('ConfCP'), $linkback, 'title_hrm.png');
$cp = new Holiday($db);
// Contrôle du formulaire
if ($action == "add")
{
$error = 0;
// Option du groupe de validation
/*if (!$cp->updateConfCP('userGroup',$_POST['userGroup']))
{
$error++;
}*/
// Option du délai pour faire une demande de congés payés
if (!$cp->updateConfCP('delayForRequest',$_POST['delayForRequest']))
{
$error++;
}
// Option du nombre de jours à ajouter chaque mois
$nbHolidayEveryMonth = price2num($_POST['nbHolidayEveryMonth'],5);
if(!$cp->updateConfCP('nbHolidayEveryMonth',$nbHolidayEveryMonth))
{
$error++;
}
// Option du nombre de jours pour un mariage
$OptMariageCP = price2num($_POST['OptMariage'],5);
if(!$cp->updateConfCP('OptMariage',$OptMariageCP)) {
$error++;
}
// Option du nombre de jours pour un décés d'un proche
$OptDecesProcheCP = price2num($_POST['OptDecesProche'],5);
if(!$cp->updateConfCP('OptDecesProche',$OptDecesProcheCP)) {
$error++;
}
// Option du nombre de jours pour un mariage d'un enfant
$OptMariageProcheCP = price2num($_POST['OptMariageProche'],5);
if(!$cp->updateConfCP('OptMariageProche',$OptMariageProcheCP)) {
$error++;
}
// Option du nombre de jours pour un décés d'un parent
$OptDecesParentsCP = price2num($_POST['OptDecesParents'],5);
if(!$cp->updateConfCP('OptDecesParents',$OptDecesParentsCP)) {
$error++;
}
// Option pour avertir le valideur si délai de demande incorrect
if(isset($_POST['AlertValidatorDelay'])) {
if(!$cp->updateConfCP('AlertValidatorDelay','1')) {
$error++;
}
} else {
if(!$cp->updateConfCP('AlertValidatorDelay','0')) {
$error++;
}
}
// Option pour avertir le valideur si solde des congés de l'utilisateur inccorect
if(isset($_POST['AlertValidatorSolde'])) {
if(!$cp->updateConfCP('AlertValidatorSolde','1')) {
$error++;
}
} else {
if(!$cp->updateConfCP('AlertValidatorSolde','0')) {
$error++;
}
}
// Option du nombre de jours à déduire pour 1 jour de congés
$nbHolidayDeducted = price2num($_POST['nbHolidayDeducted'],5);
if(!$cp->updateConfCP('nbHolidayDeducted',$nbHolidayDeducted))
{
$error++;
}
if ($error)
{
setEventMessage($langs->trans('ErrorUpdateConfCP'), 'errors');
} else {
setEventMessage($langs->trans('UpdateConfCPOK'));
}
// Si première mise à jour, prévenir l'utilisateur de mettre à jour le solde des congés payés
$sql = "SELECT *";
$sql.= " FROM ".MAIN_DB_PREFIX."holiday_users";
$result = $db->query($sql);
$num = $db->num_rows($sql);
if($num < 1)
{
$cp->createCPusers();
setEventMessage($langs->trans('AddCPforUsers'), 'warnings');
}
// Si il s'agit de créer un event
}
elseif ($action == 'create_event')
{
$error = 0;
$optName = trim($optName);
$optValue = price2num($optValue,5);
if (! $optName)
{
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Name")), 'errors');
$error++;
}
if (! $optValue > 0)
{
setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Value")), 'errors');
$error++;
}
$cp->optName = $optName;
$cp->optValue = $optValue;
if (! $error)
{
$result = $cp->createEventCP($user);
if($result > 0)
{
setEventMessage('OkCreateEventCP');
$optName='';
$optValue='';
}
else
{
setEventMessage($cp->error, 'errors');
}
}
}
elseif($action == 'event' && isset($_POST['update_event']))
{
$error = 0;
$eventId = array_keys($_POST['update_event']);
$eventId = $eventId[0];
$eventName = $optName;
$eventName = $eventName[$eventId];
$eventValue = $optValue;
$eventValue = $eventValue[$eventId];
if (!empty($eventName))
{
$eventName = trim($eventName);
} else {
$error++;
}
if (!empty($eventValue))
{
$eventValue = price2num($eventValue,5);
} else {
$error++;
}
if (!$error)
{
// Mise à jour des congés de l'utilisateur
$update = $cp->updateEventCP($eventId,$eventName,$eventValue);
if(!$update) {
setEventMessage('ErrorUpdateEventCP', 'errors');
} else {
setEventMessage('UpdateEventOkCP');
}
} else {
setEventMessage('ErrorUpdateEventCP', 'errors');
}
}
elseif($action && isset($_POST['delete_event']))
{
$eventId = array_keys($_POST['delete_event']);
$eventId = $eventId[0];
$result = $cp->deleteEventCP($eventId);
if($result) {
print '<div class="tabBar">';
print $langs->trans('DeleteEventOkCP');
print '</div>';
} else {
print '<div class="tabBar">';
print $langs->trans('ErrorDeleteEventCP');
print '</div>';
}
}
/*print '<br>';
print_fiche_titre($langs->trans('TitleOptionMainCP'),'','');
dol_fiche_head(array(),'','');
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'?leftmenu=setup" name="config">'."\n";
print '<input type="hidden" name="action" value="add" />'."\n";
print '<table class="noborder" width="100%">';
print '<tbody>';
print '<tr class="liste_titre">';
print '<th class="liste_titre">'.$langs->trans('DescOptionCP').'</td>';
print '<th class="liste_titre">'.$langs->trans('ValueOptionCP').'</td>';
print '</tr>';
$var=true;
$var=!$var;
print '<tr '.$bc[$var].'>'."\n";
print '<td style="padding:5px;">'.$langs->trans('DelayForSubmitCP').'</td>'."\n";
print '<td style="padding:5px;"><input class="flat" type="text" name="delayForRequest" value="'.$cp->getConfCP('delayForRequest').'" size="2" /> '.$langs->trans('DurationDays').'</td>'."\n";
print '</tr>'."\n";
$var=!$var;
print '<tr '.$bc[$var].'>'."\n";
print '<td style="padding:5px;">'.$langs->trans('AlertValidatorDelayCP').'</td>'."\n";
print '<td style="padding:5px;"><input class="flat" type="checkbox" name="AlertValidatorDelay" '.$cp->getCheckOption('AlertValidatorDelay').'/></td>'."\n";
print '</tr>'."\n";
$var=!$var;
print '<tr '.$bc[$var].'>'."\n";
print '<td style="padding:5px;">'.$langs->trans('AlertValidorSoldeCP').'</td>'."\n";
print '<td style="padding:5px;"><input class="flat" type="checkbox" name="AlertValidatorSolde" '.$cp->getCheckOption('AlertValidatorSolde').'/></td>'."\n";
print '</tr>'."\n";
$var=!$var;
print '<tr '.$bc[$var].'>'."\n";
print '<td style="padding:5px;">'.$langs->trans('nbHolidayEveryMonthCP').'</td>'."\n";
print '<td style="padding:5px;"><input class="flat" type="text" name="nbHolidayEveryMonth" value="'.$cp->getConfCP('nbHolidayEveryMonth').'" size="5"/> '.$langs->trans('DurationDays').'</td>'."\n";
print '</tr>'."\n";
$var=!$var;
print '<tr '.$bc[$var].'>'."\n";
print '<td style="padding:5px;">'.$langs->trans('nbHolidayDeductedCP').'</td>'."\n";
print '<td style="padding:5px;"><input class="flat" type="text" name="nbHolidayDeducted" value="'.$cp->getConfCP('nbHolidayDeducted').'" size="2"/> '.$langs->trans('DurationDays').'</td>'."\n";
print '</tr>'."\n";
print '</tbody>'."\n";
print '</table>'."\n";
print '<div align="center"><input type="submit" value="'.$langs->trans("ConfirmConfigCP").'" name="bouton" class="button"/></div>'."\n";
print '</form>'."\n\n";
dol_fiche_end();
*/
/*$var=!$var;
print $langs->trans('nbUserCP').': '."\n";
print $cp->getConfCP('nbUser')."<br>\n";
*/
print '<br>'.$langs->trans("GoIntoDictionaryHolidayTypes").'<br><br>';
$var=!$var;
@ -325,85 +64,6 @@ if ($cp->getConfCP('lastUpdate')) print '<strong>'.dol_print_date($db->jdate($cp
else print $langs->trans('None');
print "</div><br>\n";
/*
print '<br>';
print_fiche_titre($langs->trans('TitleOptionEventCP'),'','');
dol_fiche_head(array(),'','');
$cp_events = $cp->fetchEventsCP();
if($cp_events == 1) {
$var = false;
$i = 0;
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'?leftmenu=setup" name="event_update">'."\n";
print '<input type="hidden" name="action" value="event" />'."\n";
print '<table class="noborder" width="100%">'."\n";
print '<tbody>'."\n";
print '<tr class="liste_titre">'."\n";
print '<td class="liste_titre" width="40%">'.$langs->trans('NameEventCP').'</td>'."\n";
print '<td class="liste_titre" width="20%">'.$langs->trans('ValueOptionCP').'</td>'."\n";
print '<td class="liste_titre">&nbsp;</td>'."\n";
print '<td class="liste_titre">&nbsp;</td>'."\n";
print '</tr>'."\n";
foreach($cp->events as $infos_event)
{
$var=!$var;
print '<tr '.$bc[$var].'>'."\n";
print '<td><input class="flat" type="text" size="40" name="optName['.$infos_event['rowid'].']" value="'.$infos_event['name'].'" /></td>'."\n";
print '<td><input class="flat" type="text" size="2" name="optValue['.$infos_event['rowid'].']" value="'.$infos_event['value'].'" /> '.$langs->trans('DurationDays').'</td>'."\n";
print '<td><input type="submit" class="button" name="update_event['.$infos_event['rowid'].']" value="'.dol_escape_htmltag($langs->trans("Save")).'"/></td>'."\n";
print '<td width="20px" align="right"><input type="image" alt="'.$langs->trans("Delete").'" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/delete.png" name="delete_event['.$infos_event['rowid'].']" style="border:0;"/></td>'."\n";
print '</tr>';
$i++;
}
print '</tbody>'."\n";
print '</table>'."\n";
print '</form>'."\n";
print '<br />'."\n\n";
}
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'?leftmenu=setup" name="event_create">'."\n";
print '<input type="hidden" name="action" value="create_event" />'."\n";
print $langs->trans('TitleCreateEventCP');
print '<table class="noborder" width="100%">';
print '<tbody>';
print '<tr class="liste_titre">';
print '<td class="liste_titre" width="40%">'.$langs->trans('NameEventCP').'</td>';
print '<td class="liste_titre" width="20%">'.$langs->trans('ValueOptionCP').'</td>';
print '<td class="liste_titre">&nbsp;</td>';
print '</tr>';
print '<tr class="pair">';
print '<td><input class="flat" type="text" size="40" name="optName" value="'.(is_array($optName)?'':$optName).'" /></td>'."\n";
print '<td><input class="flat" type="text" size="2" name="optValue" value="'.(is_array($optValue)?'':$optValue).'" /> '.$langs->trans('DurationDays').'</td>'."\n";
print '<td><input type="submit" class="button" name="button" value="'.$langs->trans('CreateEventCP').'" /></td>'."\n";
print '</tr>'."\n";
print '</tbody>';
print '</table>';
print '</form>';
dol_fiche_end();
*/
// Fin de page
llxFooter();

View File

@ -277,7 +277,7 @@ if ($action == 'confirm_delete' && GETPOST('confirm') == 'yes' && $user->rights-
if (! $error)
{
$db->commit();
header('Location: index.php');
header('Location: list.php');
exit;
}
else
@ -839,7 +839,6 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create
// Approved by
print '<tr>';
print '<td class="fieldrequired">'.$langs->trans("ReviewedByCP").'</td>';
// Liste des utiliseurs du groupe choisi dans la config
$validator = new UserGroup($db);
$excludefilter=$user->admin?'':'u.rowid <> '.$user->id;
$valideurobjects = $validator->listUsersForGroup($excludefilter);
@ -1119,14 +1118,15 @@ else
} else {
print '<tr>';
print '<td width="50%">'.$langs->trans('ReviewedByCP').'</td>';
// Liste des utiliseurs du groupes choisi dans la config
$idGroupValid = $cp->getConfCP('userGroup');
$validator = new UserGroup($db);
$valideur = $validator->listUsersForGroup('',1);
$validator = new UserGroup($db);
$excludefilter=$user->admin?'':'u.rowid <> '.$user->id;
$valideurobjects = $validator->listUsersForGroup($excludefilter);
$valideurarray = array();
foreach($valideurobjects as $val) $valideurarray[$val->id]=$val->id;
print '<td>';
$form->select_users($cp->fk_validator,"valideur",1,"",0,$valideur,'');
print $form->select_dolusers($user->fk_user, "valideur", 1, "", 0, $valideurarray); // By default, hierarchical parent
print '</td>';
print '</tr>';
}

View File

@ -96,8 +96,8 @@ class Holiday extends CommonObject
// Update sold of vocations
$result = $this->updateSoldeCP();
// Vérifie le nombre d'utilisateur et mets à jour si besoin
if ($result > 0) $result = $this->verifNbUsers($this->countActiveUsersWithoutCP(), $this->getConfCP('nbUser'));
// Check nb of users into table llx_holiday_users and update with empty lines
//if ($result > 0) $result = $this->verifNbUsers($this->countActiveUsersWithoutCP(), $this->getConfCP('nbUser'));
if ($result >= 0)
{
@ -785,61 +785,6 @@ class Holiday extends CommonObject
}
/**
* Retourne un select HTML des groupes d'utilisateurs
*
* @param string $prefix nom du champ dans le formulaire
* @return string retourne le select des groupes
*/
function selectUserGroup($prefix)
{
// On récupère le groupe déjà configuré
$group.= "SELECT value";
$group.= " FROM ".MAIN_DB_PREFIX."holiday_config";
$group.= " WHERE name = 'userGroup'";
$resultat = $this->db->query($group);
$objet = $this->db->fetch_object($resultat);
$groupe = $objet->value;
// On liste les groupes de Dolibarr
$sql = "SELECT u.rowid, u.nom as name";
$sql.= " FROM ".MAIN_DB_PREFIX."usergroup as u";
$sql.= " ORDER BY u.rowid";
dol_syslog(get_class($this)."::selectUserGroup", LOG_DEBUG);
$result = $this->db->query($sql);
// Si pas d'erreur SQL
if ($result)
{
// On créer le select HTML
$selectGroup = '<select name="'.$prefix.'" class="flat">'."\n";
$selectGroup.= '<option value="-1">&nbsp;</option>'."\n";
// On liste les utilisateurs
while ($obj = $this->db->fetch_object($result))
{
if($groupe==$obj->rowid) {
$selectGroup.= '<option value="'.$obj->rowid.'" selected>'.$obj->name.'</option>'."\n";
} else {
$selectGroup.= '<option value="'.$obj->rowid.'">'.$obj->name.'</option>'."\n";
}
}
$selectGroup.= '</select>'."\n";
$this->db->free($result);
}
else
{
// Erreur SQL
$this->error=$this->db->lasterror();
return -1;
}
// Retourne le select HTML
return $selectGroup;
}
/**
* Met à jour une option du module Holiday Payés
*
@ -925,41 +870,52 @@ class Holiday extends CommonObject
{
$this->db->begin();
$users = $this->fetchUsers(false,false);
$nbUser = count($users);
$sql = "UPDATE ".MAIN_DB_PREFIX."holiday_config SET";
$sql.= " value = '".dol_print_date($now,'%Y%m%d%H%M%S')."'";
$sql.= " WHERE name = 'lastUpdate'";
$result = $this->db->query($sql);
$typeleaves=$cp->getTypes(1,1);
$typeleaves=$this->getTypes(1,1);
foreach($typeleaves as $key => $val)
{
// On ajoute x jours à chaque utilisateurs
$nb_holiday = $val['newByMonth'];
if (empty($nb_holiday)) $nb_holiday=0;
$users = $this->fetchUsers(false,false);
$nbUser = count($users);
if ($nb_holiday > 0)
{
dol_syslog("We update leavefor everybody for type ".$key, LOG_DEBUG);
$i = 0;
while ($i < $nbUser)
{
$now_holiday = $this->getCPforUser($users[$i]['rowid'], $val['rowid']);
$new_solde = $now_holiday + $this->getConfCP('nbHolidayEveryMonth');
$i = 0;
while ($i < $nbUser)
{
$now_holiday = $this->getCPforUser($users[$i]['rowid'], $val['rowid']);
$new_solde = $now_holiday + $this->getConfCP('nbHolidayEveryMonth');
// On ajoute la modification dans le LOG
$this->addLogCP($user->id, $users[$i]['rowid'], $langs->trans('HolidaysMonthlyUpdate'), $new_solde, $val['rowid']);
// We add a log for each user
$this->addLogCP($user->id, $users[$i]['rowid'], $langs->trans('HolidaysMonthlyUpdate'), $new_solde, $val['rowid']);
$i++;
}
$i++;
}
$sql2 = "UPDATE ".MAIN_DB_PREFIX."holiday_users SET";
$sql2.= " nb_holiday = nb_holiday + ".$nb_holiday;
$sql2.= " WHERE fk_type = ".$val['rowid'];
// Now we update counter for all users at once
$sql2 = "UPDATE ".MAIN_DB_PREFIX."holiday_users SET";
$sql2.= " nb_holiday = nb_holiday + ".$nb_holiday;
$sql2.= " WHERE fk_type = ".$val['rowid'];
$result= $this->db->query($sql2);
$result= $this->db->query($sql2);
if (! $result) break;
if (! $result)
{
dol_print_error($this->db);
break;
}
}
else dol_syslog("No change for leave of type ".$key, LOG_DEBUG);
}
if ($result)
@ -1142,14 +1098,14 @@ class Holiday extends CommonObject
/**
* Get list of Users or list of vacation balance.
*
* @param boolean $liste If true return a string list. If false, return an array
* @param boolean $type If true, read Dolibarr user list, if false, return vacation balance list.
* @return array|string Return an array
* @param boolean $stringlist If true return a string list of id. If false, return an array
* @param boolean $type If true, read Dolibarr user list, if false, return vacation balance list.
* @return array|string|int Return an array
*/
function fetchUsers($liste=true,$type=true)
function fetchUsers($stringlist=true,$type=true)
{
// Si vrai donc pour user Dolibarr
if ($liste)
if ($stringlist)
{
if($type)
{
@ -1167,23 +1123,23 @@ class Holiday extends CommonObject
$i = 0;
$num = $this->db->num_rows($resql);
$liste = '';
$stringlist = '';
// Boucles du listage des utilisateurs
while($i < $num) {
while($i < $num)
{
$obj = $this->db->fetch_object($resql);
if($i == 0) {
$liste.= $obj->rowid;
$stringlist.= $obj->rowid;
} else {
$liste.= ', '.$obj->rowid;
$stringlist.= ', '.$obj->rowid;
}
$i++;
}
// Retoune le tableau des utilisateurs
return $liste;
return $stringlist;
}
else
{
@ -1195,8 +1151,8 @@ class Holiday extends CommonObject
}
else
{
// Si utilisateur du module Congés Payés
$sql = "SELECT cpu.fk_user, cpu.fk_type, cpu.nb_holidays, u.lastname, u.firstname";
// We want only list of user id
$sql = "SELECT DISTINCT cpu.fk_user";
$sql.= " FROM ".MAIN_DB_PREFIX."holiday_users as cpu";
dol_syslog(get_class($this)."::fetchUsers", LOG_DEBUG);
@ -1207,26 +1163,26 @@ class Holiday extends CommonObject
$i = 0;
$num = $this->db->num_rows($resql);
$liste = '';
$stringlist = '';
// Boucles du listage des utilisateurs
while($i < $num) {
while($i < $num)
{
$obj = $this->db->fetch_object($resql);
if($i == 0) {
$liste.= $obj->fk_user;
$stringlist.= $obj->fk_user;
} else {
$liste.= ', '.$obj->fk_user;
$stringlist.= ', '.$obj->fk_user;
}
$i++;
}
// Retoune le tableau des utilisateurs
return $liste;
return $stringlist;
}
else
{
{
// Erreur SQL
$this->error="Error ".$this->db->lasterror();
return -1;
@ -1248,8 +1204,8 @@ class Holiday extends CommonObject
$resql=$this->db->query($sql);
// Si pas d'erreur SQL
if ($resql) {
if ($resql)
{
$i = 0;
$tab_result = $this->holiday;
$num = $this->db->num_rows($resql);
@ -1264,7 +1220,7 @@ class Holiday extends CommonObject
$tab_result[$i]['lastname'] = $obj->lastname;
$tab_result[$i]['firstname'] = $obj->firstname;
$tab_result[$i]['type'] = $obj->type;
$tab_result[$i]['nb_holidays'] = $obj->nb_holidays;
$tab_result[$i]['nb_holiday'] = $obj->nb_holiday;
$i++;
}
@ -1272,7 +1228,7 @@ class Holiday extends CommonObject
return $tab_result;
}
else
{
{
// Erreur SQL
$this->error="Error ".$this->db->lasterror();
return -1;
@ -1281,7 +1237,7 @@ class Holiday extends CommonObject
else
{
// List of vacation balance users
$sql = "SELECT cpu.fk_user, cpu.fk_type, cpu.nb_holidays, u.lastname, u.firstname";
$sql = "SELECT cpu.fk_user, cpu.fk_type, cpu.nb_holiday, u.lastname, u.firstname";
$sql.= " FROM ".MAIN_DB_PREFIX."holiday_users as cpu,";
$sql.= " ".MAIN_DB_PREFIX."user as u";
$sql.= " WHERE cpu.fk_user = u.rowid";
@ -1290,8 +1246,8 @@ class Holiday extends CommonObject
$resql=$this->db->query($sql);
// Si pas d'erreur SQL
if ($resql) {
if ($resql)
{
$i = 0;
$tab_result = $this->holiday;
$num = $this->db->num_rows($resql);
@ -1306,7 +1262,7 @@ class Holiday extends CommonObject
$tab_result[$i]['lastname'] = $obj->lastname;
$tab_result[$i]['firstname'] = $obj->firstname;
$tab_result[$i]['type'] = $obj->type;
$tab_result[$i]['nb_holidays'] = $obj->nb_holidays;
$tab_result[$i]['nb_holiday'] = $obj->nb_holiday;
$i++;
}
@ -1314,7 +1270,7 @@ class Holiday extends CommonObject
return $tab_result;
}
else
{
{
// Erreur SQL
$this->error="Error ".$this->db->lasterror();
return -1;
@ -1328,16 +1284,16 @@ class Holiday extends CommonObject
*
* @return int retourne le nombre d'utilisateur
*/
function countActiveUsers() {
function countActiveUsers()
{
$sql = "SELECT count(u.rowid) as compteur";
$sql.= " FROM ".MAIN_DB_PREFIX."user as u";
$sql.= " WHERE u.statut > 0";
$result = $this->db->query($sql);
$objet = $this->db->fetch_object($result);
return $objet->compteur;
return $objet->compteur;
}
/**
* Compte le nombre d'utilisateur actifs dans Dolibarr sans CP
@ -1348,12 +1304,12 @@ class Holiday extends CommonObject
$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 ";
$sql.= " WHERE u.statut > 0 AND hu.fk_user IS NULL";
$result = $this->db->query($sql);
$objet = $this->db->fetch_object($result);
return $objet->compteur;
return $objet->compteur;
}
/**
@ -1367,13 +1323,13 @@ class Holiday extends CommonObject
{
if (empty($userCP)) $userCP=0;
dol_syslog(get_class($this).'::verifNbUsers userDolibarr='.$userDolibarrWithoutCP.' userCP='.$userCP);
/*
// On vérifie les users Dolibarr sans CP
if ($userDolibarrWithoutCP > 0)
{
$this->db->begin();
$this->updateConfCP('nbUser',$userDolibarrWithoutCP);
//$this->updateConfCP('nbUser',$userDolibarrWithoutCP);
$listUsersCP = $this->fetchUsers(true,false);
@ -1453,7 +1409,7 @@ class Holiday extends CommonObject
return -1;
}
}
*/
return 1;
}

View File

@ -152,7 +152,7 @@ llxHeader(array(),$langs->trans('CPTitreMenu'));
print_fiche_titre($langs->trans('MenuConfCP'), '', 'title_hrm.png');
print '<div class="info">'.$langs->trans('LastUpdateCP').': '."\n";
if ($cp->getConfCP('lastUpdate')) print '<strong>'.dol_print_date($db->jdate($cp->getConfCP('lastUpdate')),'dayhour','tzuser').'</strong>';
if ($holiday->getConfCP('lastUpdate')) print '<strong>'.dol_print_date($db->jdate($holiday->getConfCP('lastUpdate')),'dayhour','tzuser').'</strong>';
else print $langs->trans('None');
print "</div><br>\n";

View File

@ -24,10 +24,13 @@
-- de l'install et tous les sigles '--' sont supprimés.
--
insert into llx_c_holiday_types(code, label, affect, delay, newByMonth, fk_country) values ('LEAVE_PAID', 'Paid vacation', 1, 7, 0, NULL);
insert into llx_c_holiday_types(code, label, affect, delay, newByMonth, fk_country) values ('LEAVE_SICK', 'Sick leave', 0, 0, 0, NULL);
insert into llx_c_holiday_types(code, label, affect, delay, newByMonth, fk_country) values ('LEAVE_OTHER','Other leave', 0, 0, 0, NULL);
-- Generic to all countries
insert into llx_c_holiday_types(code, label, affect, delay, newByMonth, fk_country, active) values ('LEAVE_SICK', 'Sick leave', 0, 0, 0, NULL, 1);
insert into llx_c_holiday_types(code, label, affect, delay, newByMonth, fk_country, active) values ('LEAVE_OTHER', 'Other leave', 0, 0, 0, NULL, 1);
-- Not enabled by default, we prefer to have an entrey dedicated to country
insert into llx_c_holiday_types(code, label, affect, delay, newByMonth, fk_country, active) values ('LEAVE_PAID', 'Paid vacation', 1, 7, 0, NULL, 0);
-- Leaves specific to France
insert into llx_c_holiday_types(code, label, affect, delay, newByMonth, fk_country) values ('LEAVE_RTT', 'RTT' , 1, 7, 0.83, 1);
insert into llx_c_holiday_types(code, label, affect, delay, newByMonth, fk_country, active) values ('LEAVE_RTT_FR', 'RTT' , 1, 7, 0.83, 1, 1);
insert into llx_c_holiday_types(code, label, affect, delay, newByMonth, fk_country, active) values ('LEAVE_PAID_FR', 'Paid vacation', 1, 30, 2.08334, 1, 1);

View File

@ -1,8 +1 @@
INSERT INTO llx_holiday_config (name ,value) VALUES ('userGroup', NULL);
INSERT INTO llx_holiday_config (name ,value) VALUES ('lastUpdate', NULL);
INSERT INTO llx_holiday_config (name ,value) VALUES ('nbUser', NULL);
INSERT INTO llx_holiday_config (name ,value) VALUES ('delayForRequest', '31');
INSERT INTO llx_holiday_config (name ,value) VALUES ('AlertValidatorDelay', '0');
INSERT INTO llx_holiday_config (name ,value) VALUES ('AlertValidatorSolde', '0');
INSERT INTO llx_holiday_config (name ,value) VALUES ('nbHolidayDeducted', '1');
INSERT INTO llx_holiday_config (name ,value) VALUES ('nbHolidayEveryMonth', '2.08334');