Fix: Maxi debug of holiday module
This commit is contained in:
parent
515f30591d
commit
4cc44292e7
@ -759,15 +759,16 @@ function num_between_day($timestampStart, $timestampEnd, $lastday=0)
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to return number of working days (and text of units) between two dates (jours ouvres)
|
||||
* Function to return number of working days (and text of units) between two dates (working days)
|
||||
*
|
||||
* @param timestamp $timestampStart Timestamp for start date
|
||||
* @param timestamp $timestampEnd Timestamp for end date
|
||||
* @param int $inhour 0: return number of days, 1: return number of hours (72 max)
|
||||
* @param int $lastday We include last day, 0: no, 1:yes
|
||||
* @return int Number of days or hours
|
||||
* @param timestamp $timestampStart Timestamp for start date
|
||||
* @param timestamp $timestampEnd Timestamp for end date
|
||||
* @param int $inhour 0: return number of days, 1: return number of hours (72h max)
|
||||
* @param int $lastday We include last day, 0: no, 1:yes
|
||||
* @param int $halfday Tag to define half day when holiday start and end
|
||||
* @return int Number of days or hours
|
||||
*/
|
||||
function num_open_day($timestampStart, $timestampEnd,$inhour=0,$lastday=0)
|
||||
function num_open_day($timestampStart, $timestampEnd, $inhour=0, $lastday=0, $halfday=0)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
@ -784,13 +785,13 @@ function num_open_day($timestampStart, $timestampEnd,$inhour=0,$lastday=0)
|
||||
$nbOpenDay = num_between_day($timestampStart, $timestampEnd, $lastday) - num_public_holiday($timestampStart, $timestampEnd, $lastday);
|
||||
$nbOpenDay.= " " . $langs->trans("Days");
|
||||
if ($inhour == 1 && $nbOpenDay <= 3) $nbOpenDay = $nbOpenDay*24 . $langs->trans("HourShort");
|
||||
return $nbOpenDay;
|
||||
return $nbOpenDay - (($inhour == 1 ? 12 : 0.5) * abs($halfday));
|
||||
}
|
||||
elseif ($timestampStart == $timestampEnd)
|
||||
{
|
||||
$nbOpenDay=$lastday;
|
||||
if ($inhour == 1) $nbOpenDay = $nbOpenDay*24 . $langs->trans("HourShort");
|
||||
return $nbOpenDay;
|
||||
return $nbOpenDay - (($inhour == 1 ? 12 : 0.5) * abs($halfday));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -30,17 +30,22 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
|
||||
*/
|
||||
class Holiday extends CommonObject
|
||||
{
|
||||
var $db;
|
||||
public $element='holiday';
|
||||
public $table_element='holiday';
|
||||
|
||||
var $db;
|
||||
var $error;
|
||||
var $errors=array();
|
||||
|
||||
var $rowid;
|
||||
|
||||
var $ref;
|
||||
|
||||
var $fk_user;
|
||||
var $date_create='';
|
||||
var $description;
|
||||
var $date_debut='';
|
||||
var $date_fin='';
|
||||
var $halfday='';
|
||||
var $statut='';
|
||||
var $fk_validator;
|
||||
var $date_valid='';
|
||||
@ -97,15 +102,14 @@ class Holiday extends CommonObject
|
||||
|
||||
// Insert request
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."holiday(";
|
||||
|
||||
$sql.= "fk_user,";
|
||||
$sql.= "date_create,";
|
||||
$sql.= "description,";
|
||||
$sql.= "date_debut,";
|
||||
$sql.= "date_fin,";
|
||||
$sql.= "halfday,";
|
||||
$sql.= "statut,";
|
||||
$sql.= "fk_validator";
|
||||
|
||||
$sql.= ") VALUES (";
|
||||
|
||||
// User
|
||||
@ -114,6 +118,7 @@ class Holiday extends CommonObject
|
||||
$sql.= " '".addslashes($this->description)."',";
|
||||
$sql.= " '".$this->db->idate($this->date_debut)."',";
|
||||
$sql.= " '".$this->db->idate($this->date_fin)."',";
|
||||
$sql.= " ".$this->halfday.",";
|
||||
$sql.= " '1',";
|
||||
$sql.= " '".$this->fk_validator."'";
|
||||
|
||||
@ -170,6 +175,7 @@ class Holiday extends CommonObject
|
||||
$sql.= " cp.description,";
|
||||
$sql.= " cp.date_debut,";
|
||||
$sql.= " cp.date_fin,";
|
||||
$sql.= " cp.halfday,";
|
||||
$sql.= " cp.statut,";
|
||||
$sql.= " cp.fk_validator,";
|
||||
$sql.= " cp.date_valid,";
|
||||
@ -193,11 +199,13 @@ class Holiday extends CommonObject
|
||||
|
||||
$this->id = $obj->rowid;
|
||||
$this->rowid = $obj->rowid; // deprecated
|
||||
$this->ref = $obj->rowid;
|
||||
$this->fk_user = $obj->fk_user;
|
||||
$this->date_create = $this->db->jdate($obj->date_create);
|
||||
$this->description = $obj->description;
|
||||
$this->date_debut = $this->db->jdate($obj->date_debut);
|
||||
$this->date_fin = $this->db->jdate($obj->date_fin);
|
||||
$this->halfday = $obj->halfday;
|
||||
$this->statut = $obj->statut;
|
||||
$this->fk_validator = $obj->fk_validator;
|
||||
$this->date_valid = $this->db->jdate($obj->date_valid);
|
||||
@ -240,6 +248,7 @@ class Holiday extends CommonObject
|
||||
$sql.= " cp.description,";
|
||||
$sql.= " cp.date_debut,";
|
||||
$sql.= " cp.date_fin,";
|
||||
$sql.= " cp.halfday,";
|
||||
$sql.= " cp.statut,";
|
||||
$sql.= " cp.fk_validator,";
|
||||
$sql.= " cp.date_valid,";
|
||||
@ -284,11 +293,13 @@ class Holiday extends CommonObject
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
|
||||
$tab_result[$i]['rowid'] = $obj->rowid;
|
||||
$tab_result[$i]['ref'] = $obj->rowid;
|
||||
$tab_result[$i]['fk_user'] = $obj->fk_user;
|
||||
$tab_result[$i]['date_create'] = $this->db->jdate($obj->date_create);
|
||||
$tab_result[$i]['description'] = $obj->description;
|
||||
$tab_result[$i]['date_debut'] = $this->db->jdate($obj->date_debut);
|
||||
$tab_result[$i]['date_fin'] = $this->db->jdate($obj->date_fin);
|
||||
$tab_result[$i]['halfday'] = $obj->halfday;
|
||||
$tab_result[$i]['statut'] = $obj->statut;
|
||||
$tab_result[$i]['fk_validator'] = $obj->fk_validator;
|
||||
$tab_result[$i]['date_valid'] = $this->db->jdate($obj->date_valid);
|
||||
@ -334,6 +345,7 @@ class Holiday extends CommonObject
|
||||
$sql.= " cp.description,";
|
||||
$sql.= " cp.date_debut,";
|
||||
$sql.= " cp.date_fin,";
|
||||
$sql.= " cp.halfday,";
|
||||
$sql.= " cp.statut,";
|
||||
$sql.= " cp.fk_validator,";
|
||||
$sql.= " cp.date_valid,";
|
||||
@ -342,10 +354,16 @@ class Holiday extends CommonObject
|
||||
$sql.= " cp.fk_user_refuse,";
|
||||
$sql.= " cp.date_cancel,";
|
||||
$sql.= " cp.fk_user_cancel,";
|
||||
$sql.= " cp.detail_refuse";
|
||||
$sql.= " cp.detail_refuse,";
|
||||
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."holiday as cp";
|
||||
$sql.= " WHERE cp.rowid > '0'"; // Hack pour la recherche sur le tableau
|
||||
$sql.= " uu.name as user_lastname,";
|
||||
$sql.= " uu.firstname as user_firstname,";
|
||||
|
||||
$sql.= " ua.name as validator_lastname,";
|
||||
$sql.= " ua.firstname as validator_firstname";
|
||||
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."holiday as cp, ".MAIN_DB_PREFIX."user as uu, ".MAIN_DB_PREFIX."user as ua";
|
||||
$sql.= " WHERE cp.fk_user = uu.rowid AND cp.fk_validator = ua.rowid "; // Hack pour la recherche sur le tableau
|
||||
|
||||
// Filtrage de séléction
|
||||
if(!empty($filter)) {
|
||||
@ -378,11 +396,13 @@ class Holiday extends CommonObject
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
|
||||
$tab_result[$i]['rowid'] = $obj->rowid;
|
||||
$tab_result[$i]['ref'] = $obj->rowid;
|
||||
$tab_result[$i]['fk_user'] = $obj->fk_user;
|
||||
$tab_result[$i]['date_create'] = $this->db->jdate($obj->date_create);
|
||||
$tab_result[$i]['description'] = $obj->description;
|
||||
$tab_result[$i]['date_debut'] = $this->db->jdate($obj->date_debut);
|
||||
$tab_result[$i]['date_fin'] = $this->db->jdate($obj->date_fin);
|
||||
$tab_result[$i]['halfday'] = $obj->halfday;
|
||||
$tab_result[$i]['statut'] = $obj->statut;
|
||||
$tab_result[$i]['fk_validator'] = $obj->fk_validator;
|
||||
$tab_result[$i]['date_valid'] = $this->db->jdate($obj->date_valid);
|
||||
@ -393,6 +413,12 @@ class Holiday extends CommonObject
|
||||
$tab_result[$i]['fk_user_cancel'] = $obj->fk_user_cancel;
|
||||
$tab_result[$i]['detail_refuse'] = $obj->detail_refuse;
|
||||
|
||||
$tab_result[$i]['user_firstname'] = $obj->user_firstname;
|
||||
$tab_result[$i]['user_lastname'] = $obj->user_lastname;
|
||||
|
||||
$tab_result[$i]['validator_firstname'] = $obj->validator_firstname;
|
||||
$tab_result[$i]['validator_lastname'] = $obj->validator_lastname;
|
||||
|
||||
$i++;
|
||||
}
|
||||
// Retourne 1 et ajoute le tableau à la variable
|
||||
@ -403,7 +429,7 @@ class Holiday extends CommonObject
|
||||
{
|
||||
// Erreur SQL
|
||||
$this->error="Error ".$this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR);
|
||||
dol_syslog(get_class($this)."::fetchAll ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -435,6 +461,7 @@ class Holiday extends CommonObject
|
||||
} else {
|
||||
$error++;
|
||||
}
|
||||
$sql.= " halfday = ".$this->halfday.",";
|
||||
if(!empty($this->statut) && is_numeric($this->statut)) {
|
||||
$sql.= " statut = '".$this->statut."',";
|
||||
} else {
|
||||
@ -567,57 +594,112 @@ class Holiday extends CommonObject
|
||||
* @param int $fk_user Id user
|
||||
* @param date $dateDebut Start date
|
||||
* @param date $dateFin End date
|
||||
* @param int $halfday Tag to define half day when holiday start and end
|
||||
* @return boolean
|
||||
*/
|
||||
function verifDateHolidayCP($fk_user,$dateDebut,$dateFin)
|
||||
function verifDateHolidayCP($fk_user, $dateDebut, $dateFin, $halfday=0)
|
||||
{
|
||||
$this->fetchByUser($fk_user,'','');
|
||||
|
||||
foreach($this->holiday as $infos_CP) {
|
||||
|
||||
if($dateDebut >= $infos_CP['date_debut'] && $dateDebut <= $infos_CP['date_fin'] || $dateFin <= $infos_CP['date_fin'] && $dateFin >= $infos_CP['date_debut']) {
|
||||
foreach($this->holiday as $infos_CP)
|
||||
{
|
||||
if ($infos_CP['statut'] == 4) continue; // ignore not validated holidays
|
||||
if ($infos_CP['statut'] == 5) continue; // ignore not validated holidays
|
||||
|
||||
// TODO Also use halfday for the check
|
||||
if ($dateDebut >= $infos_CP['date_debut'] && $dateDebut <= $infos_CP['date_fin'] || $dateFin <= $infos_CP['date_fin'] && $dateFin >= $infos_CP['date_debut'])
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne la traduction du statut d'un congé payé
|
||||
*
|
||||
* @param int $statut int du statut du congé
|
||||
* @return string retourne la traduction du statut
|
||||
*/
|
||||
function getStatutCP($statut) {
|
||||
|
||||
global $langs;
|
||||
|
||||
if(is_numeric($statut)) {
|
||||
|
||||
switch($statut) {
|
||||
case 1: // Brouillon
|
||||
$statut = $langs->trans('DraftCP');
|
||||
break;
|
||||
case 2: // En attente de validation
|
||||
$statut = $langs->trans('ToValidateCP');
|
||||
break;
|
||||
case 3: // Validée
|
||||
$statut = $langs->trans('ValidateCP');
|
||||
break;
|
||||
case 4: // Annulée
|
||||
$statut = $langs->trans('CancelCP');
|
||||
break;
|
||||
case 5: // Refusée
|
||||
$statut = $langs->trans('RefuseCP');
|
||||
}
|
||||
|
||||
return $statut;
|
||||
}
|
||||
/**
|
||||
* Return clicable name (with picto eventually)
|
||||
*
|
||||
* @param int $withpicto 0=_No picto, 1=Includes the picto in the linkn, 2=Picto only
|
||||
* @return string String with URL
|
||||
*/
|
||||
function getNomUrl($withpicto=0)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
$result='';
|
||||
|
||||
$lien = '<a href="'.DOL_URL_ROOT.'/holiday/fiche.php?id='.$this->id.'">';
|
||||
$lienfin='</a>';
|
||||
|
||||
$picto='holiday';
|
||||
|
||||
$label=$langs->trans("Show").': '.$this->ref;
|
||||
|
||||
if ($withpicto) $result.=($lien.img_object($label,$picto).$lienfin);
|
||||
if ($withpicto && $withpicto != 2) $result.=' ';
|
||||
if ($withpicto != 2) $result.=$lien.$this->ref.$lienfin;
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the label status
|
||||
*
|
||||
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
|
||||
* @return string Label
|
||||
*/
|
||||
function getLibStatut($mode=0)
|
||||
{
|
||||
return $this->LibStatut($this->statut, $mode, $this->date_debut);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the label of a statut
|
||||
*
|
||||
* @param int $statut id statut
|
||||
* @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto
|
||||
* @param date $startdate Date holiday should start
|
||||
* @return string Label
|
||||
*/
|
||||
function LibStatut($statut, $mode=0, $startdate='')
|
||||
{
|
||||
global $langs;
|
||||
|
||||
if ($mode == 0)
|
||||
{
|
||||
if ($statut == 1) return $langs->trans('DraftCP');
|
||||
if ($statut == 2) return $langs->trans('ToValidateCP');
|
||||
if ($statut == 3) return $langs->trans('ValidateCP');
|
||||
if ($statut == 4) return $langs->trans('CancelCP');
|
||||
if ($statut == 5) return $langs->trans('RefuseCP');
|
||||
}
|
||||
if ($mode == 2)
|
||||
{
|
||||
$pictoapproved='statut6';
|
||||
if (! empty($startdate) && $startdate > dol_now()) $pictoapproved='statut4';
|
||||
if ($statut == 1) return img_picto($langs->trans('DraftCP'),'statut0').' '.$langs->trans('DraftCP'); // Draft
|
||||
if ($statut == 2) return img_picto($langs->trans('ToValidateCP'),'statut1').' '.$langs->trans('ToValidateCP'); // Waiting approval
|
||||
if ($statut == 3) return img_picto($langs->trans('ValidateCP'),$pictoapproved).' '.$langs->trans('ValidateCP');
|
||||
if ($statut == 4) return img_picto($langs->trans('CancelCP'),'statut5').' '.$langs->trans('CancelCP');
|
||||
if ($statut == 5) return img_picto($langs->trans('RefuseCP'),'statut5').' '.$langs->trans('RefuseCP');
|
||||
}
|
||||
if ($mode == 5)
|
||||
{
|
||||
$pictoapproved='statut6';
|
||||
if (! empty($startdate) && $startdate > dol_now()) $pictoapproved='statut4';
|
||||
if ($statut == 1) return $langs->trans('DraftCP').' '.img_picto($langs->trans('DraftCP'),'statut0'); // Draft
|
||||
if ($statut == 2) return $langs->trans('ToValidateCP').' '.img_picto($langs->trans('ToValidateCP'),'statut1'); // Waiting approval
|
||||
if ($statut == 3) return $langs->trans('ValidateCP').' '.img_picto($langs->trans('ValidateCP'),$pictoapproved);
|
||||
if ($statut == 4) return $langs->trans('CancelCP').' '.img_picto($langs->trans('CancelCP'),'statut5');
|
||||
if ($statut == 5) return $langs->trans('RefuseCP').' '.img_picto($langs->trans('RefuseCP'),'statut5');
|
||||
}
|
||||
|
||||
return $statut;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Affiche un select HTML des statuts de congés payés
|
||||
*
|
||||
@ -773,18 +855,19 @@ class Holiday extends CommonObject
|
||||
|
||||
if (empty($userID) && empty($nbHoliday))
|
||||
{
|
||||
// Si mise à jour pour tous le monde en début de mois
|
||||
|
||||
// Si mise à jour pour tout le monde en début de mois
|
||||
$now=dol_now();
|
||||
|
||||
// Mois actuel
|
||||
$month = date('m',time());
|
||||
$month = date('m',$now);
|
||||
$lastUpdate = $this->getConfCP('lastUpdate');
|
||||
$monthLastUpdate = date('m', $lastUpdate);
|
||||
|
||||
// Si la date du mois n'est pas la même que celle sauvegardé, on met à jour le timestamp
|
||||
// Si la date du mois n'est pas la même que celle sauvegardée, on met à jour le timestamp
|
||||
if ($month != $monthLastUpdate)
|
||||
{
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."holiday_config SET";
|
||||
$sql.= " value = '".dol_now()."'";
|
||||
$sql.= " value = '".$this->db->idate($now)."'";
|
||||
$sql.= " WHERE name = 'lastUpdate'";
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
@ -838,7 +921,7 @@ class Holiday extends CommonObject
|
||||
*/
|
||||
function getCheckOption($name) {
|
||||
|
||||
$sql = "SELECT *";
|
||||
$sql = "SELECT value";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."holiday_config";
|
||||
$sql.= " WHERE name = '".$name."'";
|
||||
|
||||
@ -909,15 +992,15 @@ class Holiday extends CommonObject
|
||||
*/
|
||||
function getCPforUser($user_id) {
|
||||
|
||||
$sql = "SELECT *";
|
||||
$sql = "SELECT nb_holiday";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."holiday_users";
|
||||
$sql.= " WHERE fk_user = '".$user_id."'";
|
||||
|
||||
dol_syslog(get_class($this).'::getCPforUser sql='.$sql);
|
||||
$result = $this->db->query($sql);
|
||||
|
||||
if($result) {
|
||||
$obj = $this->db->fetch_array($result);
|
||||
return number_format($obj['nb_holiday'],2);
|
||||
$obj = $this->db->fetch_object($result);
|
||||
return number_format($obj->nb_holiday,2);
|
||||
} else {
|
||||
return '0';
|
||||
}
|
||||
@ -1610,6 +1693,7 @@ class Holiday extends CommonObject
|
||||
$this->date_debut=dol_now();
|
||||
$this->date_fin=dol_now()+(24*3600);
|
||||
$this->fk_validator=1;
|
||||
$this->halfday=0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -52,6 +52,8 @@ $now=dol_now();
|
||||
// Si création de la demande
|
||||
if ($action == 'create')
|
||||
{
|
||||
$cp = new Holiday($db);
|
||||
|
||||
// Si pas le droit de créer une demande
|
||||
if(!$user->rights->holiday->write)
|
||||
{
|
||||
@ -59,9 +61,15 @@ if ($action == 'create')
|
||||
exit;
|
||||
}
|
||||
|
||||
$date_debut = dol_mktime(0, 0, 0, $_POST['date_debut_month'], $_POST['date_debut_day'], $_POST['date_debut_year']);
|
||||
$date_fin = dol_mktime(0, 0, 0, $_POST['date_fin_month'], $_POST['date_fin_day'], $_POST['date_fin_year']);
|
||||
|
||||
$date_debut = dol_mktime(0, 0, 0, GETPOST('date_debut_month'), GETPOST('date_debut_day'), GETPOST('date_debut_year'));
|
||||
$date_fin = dol_mktime(0, 0, 0, GETPOST('date_fin_month'), GETPOST('date_fin_day'), GETPOST('date_fin_year'));
|
||||
$starthalfday=GETPOST('starthalfday');
|
||||
$endhalfday=GETPOST('endhalfday');
|
||||
$halfday=0;
|
||||
if ($starthalfday == 'afternoon' && $endhalfday == 'morning') $halfday=2;
|
||||
else if ($starthalfday == 'afternoon') $halfday=-1;
|
||||
else if ($endhalfday == 'morning') $halfday=1;
|
||||
|
||||
$valideur = GETPOST('valideur');
|
||||
$description = trim(GETPOST('description'));
|
||||
$userID = GETPOST('userID');
|
||||
@ -80,21 +88,15 @@ if ($action == 'create')
|
||||
exit;
|
||||
}
|
||||
|
||||
$testDateDebut = $date_debut;
|
||||
$testDateFin = $date_fin;
|
||||
|
||||
// Si date de début après la date de fin
|
||||
if($testDateDebut > $testDateFin)
|
||||
if ($date_debut > $date_fin)
|
||||
{
|
||||
header('Location: fiche.php?action=request&error=datefin');
|
||||
exit;
|
||||
}
|
||||
|
||||
$cp = new Holiday($db);
|
||||
|
||||
$verifCP = $cp->verifDateHolidayCP($userID,$date_debut,$date_fin);
|
||||
|
||||
// On vérifie si il n'y a pas déjà des congés payés sur cette période
|
||||
// Check if there is already holiday for this period
|
||||
$verifCP = $cp->verifDateHolidayCP($userID, $date_debut, $date_fin, $halfday);
|
||||
if (! $verifCP)
|
||||
{
|
||||
header('Location: fiche.php?action=request&error=alreadyCP');
|
||||
@ -102,7 +104,7 @@ if ($action == 'create')
|
||||
}
|
||||
|
||||
// Si aucun jours ouvrés dans la demande
|
||||
$nbopenedday=num_open_day($testDateDebut,$testDateFin,0,1);
|
||||
$nbopenedday=num_open_day($date_debut, $date_fin, 0, 1, $halfday);
|
||||
if($nbopenedday < 1)
|
||||
{
|
||||
header('Location: fiche.php?action=request&error=DureeHoliday');
|
||||
@ -121,7 +123,8 @@ if ($action == 'create')
|
||||
$cp->date_debut = $date_debut;
|
||||
$cp->date_fin = $date_fin;
|
||||
$cp->fk_validator = $valideur;
|
||||
|
||||
$cp->halfday = $halfday;
|
||||
|
||||
$verif = $cp->create($user_id);
|
||||
|
||||
// Si pas d'erreur SQL on redirige vers la fiche de la demande
|
||||
@ -141,9 +144,15 @@ if ($action == 'create')
|
||||
|
||||
if ($action == 'update')
|
||||
{
|
||||
$date_debut = dol_mktime(0, 0, 0, $_POST['date_debut_month'], $_POST['date_debut_day'], $_POST['date_debut_year']);
|
||||
$date_fin = dol_mktime(0, 0, 0, $_POST['date_fin_month'], $_POST['date_fin_day'], $_POST['date_fin_year']);
|
||||
|
||||
$date_debut = dol_mktime(0, 0, 0, GETPOST('date_debut_month'), GETPOST('date_debut_day'), GETPOST('date_debut_year'));
|
||||
$date_fin = dol_mktime(0, 0, 0, GETPOST('date_fin_month'), GETPOST('date_fin_day'), GETPOST('date_fin_year'));
|
||||
$starthalfday=GETPOST('starthalfday');
|
||||
$endhalfday=GETPOST('endhalfday');
|
||||
$halfday=0;
|
||||
if ($starthalfday == 'afternoon' && $endhalfday == 'morning') $halfday=2;
|
||||
else if ($starthalfday == 'afternoon') $halfday=-1;
|
||||
else if ($endhalfday == 'morning') $halfday=1;
|
||||
|
||||
// Si pas le droit de modifier une demande
|
||||
if(!$user->rights->holiday->write)
|
||||
{
|
||||
@ -175,11 +184,8 @@ if ($action == 'update')
|
||||
exit;
|
||||
}
|
||||
|
||||
$testDateDebut = $date_debut;
|
||||
$testDateFin = $date_fin;
|
||||
|
||||
// Si date de début après la date de fin
|
||||
if ($testDateDebut > $testDateFin) {
|
||||
if ($date_debut > $date_fin) {
|
||||
header('Location: fiche.php?id='.$_POST['holiday_id'].'&action=edit&error=datefin');
|
||||
exit;
|
||||
}
|
||||
@ -191,7 +197,7 @@ if ($action == 'update')
|
||||
}
|
||||
|
||||
// Si pas de jours ouvrés dans la demande
|
||||
$nbopenedday=num_open_day($testDateDebut,$testDateFin,0,1);
|
||||
$nbopenedday=num_open_day($date_debut, $date_fin, 0, 1, $halfday);
|
||||
if ($nbopenedday < 1)
|
||||
{
|
||||
header('Location: fiche.php?id='.$_POST['holiday_id'].'&action=edit&error=DureeHoliday');
|
||||
@ -202,10 +208,10 @@ if ($action == 'update')
|
||||
$cp->date_debut = $date_debut;
|
||||
$cp->date_fin = $date_fin;
|
||||
$cp->fk_validator = $valideur;
|
||||
|
||||
$verif = $cp->update($user->id);
|
||||
|
||||
// Si pas d'erreur SQL on redirige vers la fiche de la demande
|
||||
$cp->halfday = $halfday;
|
||||
|
||||
// Update
|
||||
$verif = $cp->update($user->id);
|
||||
if ($verif > 0)
|
||||
{
|
||||
header('Location: fiche.php?id='.$_POST['holiday_id']);
|
||||
@ -502,9 +508,9 @@ if ($action == 'confirm_cancel' && $_GET['confirm'] == 'yes')
|
||||
$userID = $user->id;
|
||||
|
||||
// Si statut en attente de validation et valideur = utilisateur
|
||||
if($cp->statut == 2 && $userID == $cp->fk_validator)
|
||||
if ($cp->statut == 2 && $userID == $cp->fk_validator)
|
||||
{
|
||||
$cp->date_cancel = date('Y-m-d H:i:s', time());
|
||||
$cp->date_cancel = dol_now();
|
||||
$cp->fk_user_cancel = $user->id;
|
||||
$cp->statut = 4;
|
||||
|
||||
@ -569,6 +575,10 @@ if ($action == 'confirm_cancel' && $_GET['confirm'] == 'yes')
|
||||
*/
|
||||
|
||||
$form = new Form($db);
|
||||
$cp = new Holiday($db);
|
||||
|
||||
$listhalfday=array('morning'=>$langs->trans("Morning"),"afternoon"=>$langs->trans("Afternoon"));
|
||||
|
||||
|
||||
llxHeader(array(),$langs->trans('CPTitreMenu'));
|
||||
|
||||
@ -617,43 +627,39 @@ if (empty($id) || $action == 'add' || $action == 'request')
|
||||
dol_htmloutput_mesg('',$errors,'error');
|
||||
}
|
||||
|
||||
$cp = new Holiday($db);
|
||||
|
||||
$delayForRequest = $cp->getConfCP('delayForRequest');
|
||||
//$delayForRequest = $delayForRequest * (60*60*24);
|
||||
|
||||
$nextMonth = dol_time_plus_duree($now, $delayForRequest, 'd');
|
||||
|
||||
print '<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
function valider(){
|
||||
if(document.demandeCP.date_debut_.value != "") {
|
||||
|
||||
if(document.demandeCP.date_fin_.value != "") {
|
||||
|
||||
if(document.demandeCP.valideur.value != "-1") {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
alert("'.dol_escape_js($langs->transnoentities('InvalidValidatorCP')).'");
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
alert("'.dol_escape_js($langs->transnoentities('NoDateFin')).'");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
alert("'.dol_escape_js($langs->transnoentities('NoDateDebut')).'");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//]]>
|
||||
print '<script type="text/javascript">
|
||||
function valider()
|
||||
{
|
||||
if(document.demandeCP.date_debut_.value != "")
|
||||
{
|
||||
if(document.demandeCP.date_fin_.value != "")
|
||||
{
|
||||
if(document.demandeCP.valideur.value != "-1") {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
alert("'.dol_escape_js($langs->transnoentities('InvalidValidatorCP')).'");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("'.dol_escape_js($langs->transnoentities('NoDateFin')).'");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("'.dol_escape_js($langs->transnoentities('NoDateDebut')).'");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
</script>'."\n";
|
||||
|
||||
// Formulaire de demande
|
||||
@ -678,6 +684,8 @@ if (empty($id) || $action == 'add' || $action == 'request')
|
||||
$tmpdate = dol_mktime(0, 0, 0, GETPOST('datepmonth'), GETPOST('datepday'), GETPOST('datepyear'));
|
||||
$form->select_date($tmpdate,'date_debut_');
|
||||
}
|
||||
print ' ';
|
||||
print $form->selectarray('starthalfday', $listhalfday, (GETPOST('starthalfday')?GETPOST('starthalfday'):'morning'));
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
print '<tr>';
|
||||
@ -690,6 +698,8 @@ if (empty($id) || $action == 'add' || $action == 'request')
|
||||
$tmpdate = dol_mktime(0, 0, 0, GETPOST('datefmonth'), GETPOST('datefday'), GETPOST('datefyear'));
|
||||
$form->select_date($tmpdate,'date_fin_');
|
||||
}
|
||||
print ' ';
|
||||
print $form->selectarray('endhalfday', $listhalfday, (GETPOST('endhalfday')?GETPOST('endhalfday'):'afternoon'));
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
print '<tr>';
|
||||
@ -738,7 +748,6 @@ else
|
||||
// Affichage de la fiche d'une demande de congés payés
|
||||
if ($id > 0)
|
||||
{
|
||||
$cp = new Holiday($db);
|
||||
$cp->fetch($id);
|
||||
|
||||
$valideur = new User($db);
|
||||
@ -834,7 +843,6 @@ else
|
||||
|
||||
dol_fiche_head($head,'card',$langs->trans("CPTitreMenu"),0,'holiday');
|
||||
|
||||
|
||||
if ($action == 'edit' && $user->id == $cp->fk_user && $cp->statut == 1)
|
||||
{
|
||||
$edit = true;
|
||||
@ -845,53 +853,69 @@ else
|
||||
|
||||
print '<table class="border" width="100%">';
|
||||
print '<tbody>';
|
||||
/*print '<tr class="liste_titre">';
|
||||
print '<td colspan="2">'.$langs->trans("InfosCP").'</td>';
|
||||
print '</tr>';*/
|
||||
|
||||
$linkback='';
|
||||
|
||||
print '<tr>';
|
||||
print '<td width="25%">'.$langs->trans("Ref").'</td>';
|
||||
print '<td>'.$cp->rowid.'</td>';
|
||||
print '<td>';
|
||||
print $form->showrefnav($cp, 'id', $linkback, 1, 'rowid', 'ref');
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
$starthalfday=($cp->halfday == -1 || $cp->halfday == 2)?'afternoon':'morning';
|
||||
$endhalfday=($cp->halfday == 1 || $cp->halfday == 2)?'morning':'afternoon';
|
||||
|
||||
if(!$edit) {
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('DateDebCP').'</td>';
|
||||
print '<td>'.dol_print_date($cp->date_debut,'day').'</td>';
|
||||
print '<td>'.$langs->trans('DateDebCP').' ('.$langs->trans("FirstDayOfHoliday").')</td>';
|
||||
print '<td>'.dol_print_date($cp->date_debut,'day');
|
||||
print ' ';
|
||||
print $langs->trans($listhalfday[$starthalfday]);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
} else {
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('DateDebCP').'</td>';
|
||||
print '<td>'.$langs->trans('DateDebCP').' ('.$langs->trans("FirstDayOfHoliday").')</td>';
|
||||
print '<td>';
|
||||
$form->select_date($cp->date_debut,'date_debut_');
|
||||
print ' ';
|
||||
print $form->selectarray('starthalfday', $listhalfday, (GETPOST('starthalfday')?GETPOST('starthalfday'):$starthalfday));
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
|
||||
if(!$edit) {
|
||||
if (!$edit)
|
||||
{
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('DateFinCP').'</td>';
|
||||
print '<td>'.dol_print_date($cp->date_fin,'day').'</td>';
|
||||
print '<td>'.$langs->trans('DateFinCP').' ('.$langs->trans("LastDayOfHoliday").')</td>';
|
||||
print '<td>'.dol_print_date($cp->date_fin,'day');
|
||||
print ' ';
|
||||
print $langs->trans($listhalfday[$endhalfday]);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
} else {
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('DateFinCP').'</td>';
|
||||
print '<td>'.$langs->trans('DateFinCP').' ('.$langs->trans("LastDayOfHoliday").')</td>';
|
||||
print '<td>';
|
||||
$form->select_date($cp->date_fin,'date_fin_');
|
||||
print ' ';
|
||||
print $form->selectarray('endhalfday', $listhalfday, (GETPOST('endhalfday')?GETPOST('endhalfday'):$endhalfday));
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('NbUseDaysCP').'</td>';
|
||||
print '<td>'.num_open_day($cp->date_debut,$cp->date_fin,0,1).'</td>';
|
||||
print '<td>'.num_open_day($cp->date_debut, $cp->date_fin, 0, 1, $cp->halfday).'</td>';
|
||||
print '</tr>';
|
||||
|
||||
// Status
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('StatutCP').'</td>';
|
||||
print '<td><b>'.$cp->getStatutCP($cp->statut).'</b></td>';
|
||||
print '<td>'.$cp->getLibStatut(2).'</td>';
|
||||
print '</tr>';
|
||||
if($cp->statut == 5) {
|
||||
if ($cp->statut == 5)
|
||||
{
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('DetailRefusCP').'</td>';
|
||||
print '<td>'.$cp->detail_refuse.'</td>';
|
||||
@ -899,12 +923,15 @@ else
|
||||
}
|
||||
|
||||
// Description
|
||||
if(!$edit) {
|
||||
if (!$edit)
|
||||
{
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('DescCP').'</td>';
|
||||
print '<td>'.nl2br($cp->description).'</td>';
|
||||
print '</tr>';
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans('DescCP').'</td>';
|
||||
print '<td><textarea name="description" class="flat" rows="'.ROWS_3.'" cols="70">'.$cp->description.'</textarea></td>';
|
||||
@ -995,23 +1022,27 @@ else
|
||||
{
|
||||
print '<a href="fiche.php?id='.$_GET['id'].'&action=edit" class="butAction">'.$langs->trans("EditCP").'</a>';
|
||||
}
|
||||
if($user->rights->holiday->delete && $cp->statut == 1)
|
||||
{
|
||||
print '<a href="fiche.php?id='.$_GET['id'].'&action=delete" class="butAction">'.$langs->trans("DeleteCP").'</a>';
|
||||
}
|
||||
if($user->id == $cp->fk_user && $cp->statut == 1)
|
||||
{
|
||||
print '<a href="fiche.php?id='.$_GET['id'].'&action=sendToValidate" class="butAction">'.$langs->trans("SendToValidationCP").'</a>';
|
||||
print '<a href="fiche.php?id='.$_GET['id'].'&action=sendToValidate" class="butAction">'.$langs->trans("Validate").'</a>';
|
||||
}
|
||||
|
||||
if($user->rights->holiday->delete && $cp->statut == 1)
|
||||
{
|
||||
print '<a href="fiche.php?id='.$_GET['id'].'&action=delete" class="butActionDelete">'.$langs->trans("DeleteCP").'</a>';
|
||||
}
|
||||
|
||||
// Si le statut est en attente de validation et que le valideur est connecté
|
||||
if($userID == $cp->fk_validator && $cp->statut == 2)
|
||||
if ($userID == $cp->fk_validator && $cp->statut == 2)
|
||||
{
|
||||
print '<a href="fiche.php?id='.$_GET['id'].'&action=valid" class="butAction">'.$langs->trans("ActionValidCP").'</a>';
|
||||
print '<a href="fiche.php?id='.$_GET['id'].'&action=valid" class="butAction">'.$langs->trans("Approve").'</a>';
|
||||
print '<a href="fiche.php?id='.$_GET['id'].'&action=refuse" class="butAction">'.$langs->trans("ActionRefuseCP").'</a>';
|
||||
print '<a href="fiche.php?id='.$_GET['id'].'&action=cancel" class="butAction">'.$langs->trans("ActionCancelCP").'</a>';
|
||||
}
|
||||
|
||||
if (($userID == $cp->fk_validator && $cp->statut == 2) || ($cp->date_debut > dol_now()) || $user->admin)
|
||||
{
|
||||
print '<a href="fiche.php?id='.$_GET['id'].'&action=cancel" class="butAction">'.$langs->trans("ActionCancelCP").'</a>';
|
||||
}
|
||||
|
||||
print '</div>';
|
||||
}
|
||||
|
||||
|
||||
@ -57,7 +57,6 @@ $search_employe = GETPOST('search_employe');
|
||||
$search_valideur = GETPOST('search_valideur');
|
||||
$search_statut = GETPOST('select_statut');
|
||||
|
||||
$holiday = new Holiday($db);
|
||||
|
||||
/*
|
||||
* Actions
|
||||
@ -71,6 +70,9 @@ $holiday = new Holiday($db);
|
||||
* View
|
||||
*/
|
||||
|
||||
$holiday = new Holiday($db);
|
||||
$holidaystatic=new Holiday($db);
|
||||
|
||||
$max_year = 5;
|
||||
$min_year = 10;
|
||||
$filter='';
|
||||
@ -268,35 +270,44 @@ $holiday->selectStatutCP($search_statut);
|
||||
print '<input type="image" class="liste_titre" name="button_search" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" alt="'.$langs->trans('Search').'">';
|
||||
print "</td></tr>\n";
|
||||
|
||||
|
||||
// Lines
|
||||
if (! empty($holiday->holiday))
|
||||
{
|
||||
$userstatic = new User($db);
|
||||
$approbatorstatic = new User($db);
|
||||
|
||||
foreach($holiday->holiday as $infos_CP)
|
||||
{
|
||||
$var=!$var;
|
||||
|
||||
// Utilisateur
|
||||
$user = new User($db);
|
||||
$user->fetch($infos_CP['fk_user']);
|
||||
$userstatic->id=$infos_CP['fk_user'];
|
||||
$userstatic->lastname=$infos_CP['user_lastname'];
|
||||
$userstatic->firstname=$infos_CP['user_firstname'];
|
||||
|
||||
// Valideur
|
||||
$validator = new User($db);
|
||||
$validator->fetch($infos_CP['fk_validator']);
|
||||
|
||||
$approbatorstatic->id=$infos_CP['fk_validator'];
|
||||
$approbatorstatic->lastname=$infos_CP['validator_lastname'];
|
||||
$approbatorstatic->firstname=$infos_CP['validator_firstname'];
|
||||
|
||||
$date = $infos_CP['date_create'];
|
||||
|
||||
$statut = $holiday->getStatutCP($infos_CP['statut']);
|
||||
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td><a href="./fiche.php?id='.$infos_CP['rowid'].'">CP '.$infos_CP['rowid'].'</a></td>';
|
||||
print '<td style="text-align: center;">'.dol_print_date($date,'day').'</td>';
|
||||
print '<td>'.$user->getNomUrl('1').'</td>';
|
||||
print '<td>'.$validator->getNomUrl('1').'</td>';
|
||||
print '<td style="text-align: center;">'.dol_print_date($infos_CP['date_debut'],'day').'</td>';
|
||||
print '<td style="text-align: center;">'.dol_print_date($infos_CP['date_fin'],'day').'</td>';
|
||||
print '<td>';
|
||||
$nbopenedday=num_open_day($infos_CP['date_debut'],$infos_CP['date_fin'],0,1);
|
||||
$holidaystatic->id=$infos_CP['rowid'];
|
||||
$holidaystatic->ref=$infos_CP['rowid'];
|
||||
print $holidaystatic->getNomUrl(1);
|
||||
print '</td>';
|
||||
print '<td style="text-align: center;">'.dol_print_date($date,'day').'</td>';
|
||||
print '<td>'.$userstatic->getNomUrl('1').'</td>';
|
||||
print '<td>'.$approbatorstatic->getNomUrl('1').'</td>';
|
||||
print '<td align="center">'.dol_print_date($infos_CP['date_debut'],'day').'</td>';
|
||||
print '<td align="center">'.dol_print_date($infos_CP['date_fin'],'day').'</td>';
|
||||
print '<td align="right">';
|
||||
$nbopenedday=num_open_day($infos_CP['date_debut'], $infos_CP['date_fin'] ,0, 1, $infos_CP['halfday']);
|
||||
print $nbopenedday;
|
||||
print '<td align="center"><a href="./fiche.php?id='.$infos_CP['rowid'].'">'.$statut.'</a></td>';
|
||||
print '<td align="right">'.$holidaystatic->LibStatut($infos_CP['statut'],5).'</td>';
|
||||
print '</tr>'."\n";
|
||||
|
||||
}
|
||||
|
||||
@ -44,6 +44,7 @@ if(!$user->rights->holiday->month_report) accessforbidden();
|
||||
|
||||
$html = new Form($db);
|
||||
$htmlother = new FormOther($db);
|
||||
$holidaystatic = new Holiday($db);
|
||||
|
||||
llxHeader(array(),$langs->trans('CPTitreMenu'));
|
||||
|
||||
@ -59,13 +60,12 @@ if(empty($year)) {
|
||||
$year = date('Y');
|
||||
}
|
||||
|
||||
$sql = "SELECT cp.fk_user, cp.date_debut, cp.date_fin";
|
||||
$sql = "SELECT cp.rowid, cp.fk_user, cp.date_debut, cp.date_fin, cp.halfday";
|
||||
$sql.= " FROM llx_holiday cp";
|
||||
$sql.= " LEFT JOIN llx_user u ON cp.fk_user = u.rowid";
|
||||
$sql.= " WHERE cp.rowid > '0'";
|
||||
$sql.= " AND cp.statut = 3";
|
||||
$sql.= " AND (date_format(cp.date_debut, '%Y-%m') = '$year-$month'
|
||||
OR date_format(cp.date_fin, '%Y-%m') = '$year-$month')";
|
||||
$sql.= " WHERE cp.statut = 3"; // Approved
|
||||
// TODO Use BETWEEN instead of date_format
|
||||
$sql.= " AND (date_format(cp.date_debut, '%Y-%m') = '$year-$month' OR date_format(cp.date_fin, '%Y-%m') = '$year-$month')";
|
||||
$sql.= " ORDER BY u.name,cp.date_debut";
|
||||
|
||||
$result = $db->query($sql);
|
||||
@ -77,53 +77,62 @@ print '<div class="tabBar">';
|
||||
|
||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
||||
|
||||
print 'Choix mois : <input class="flat" type="text" size="1" maxlength="2"
|
||||
name="month_start" value="'.$month.'"> ';
|
||||
print 'Choix mois : <input class="flat" type="text" size="1" maxlength="2" name="month_start" value="'.$month.'"> ';
|
||||
$htmlother->select_year($year,'year_start',1,10,3);
|
||||
|
||||
print '<input type="submit" value="'.$langs->trans("Refresh").'" class="button" />';
|
||||
|
||||
print '</form>';
|
||||
|
||||
print '<br />';
|
||||
print '<br>';
|
||||
|
||||
$var=true;
|
||||
print '<table class="noborder" width="40%;">';
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans('Ref').'</td>';
|
||||
print '<td>'.$langs->trans('Employee').'</td>';
|
||||
print '<td>'.$langs->trans('DateDebCP').'</td>';
|
||||
print '<td>'.$langs->trans('DateFinCP').'</td>';
|
||||
print '<td>'.$langs->trans('nbJours').'</td>';
|
||||
print '<td align="right">'.$langs->trans('nbJours').'</td>';
|
||||
print '</tr>';
|
||||
|
||||
if($num == '0') {
|
||||
|
||||
print '<tr class="pair">';
|
||||
print '<td colspan="4" style="text-align: center; padding: 3px;">'.$langs->trans('NoCPforMonth').'</td>';
|
||||
print '<td colspan="5">'.$langs->trans('None').'</td>';
|
||||
print '</tr>';
|
||||
|
||||
} else {
|
||||
|
||||
while($holiday = $db->fetch_array($result)){
|
||||
while ($holiday = $db->fetch_array($result))
|
||||
{
|
||||
$user = new User($db);
|
||||
$user->fetch($holiday['fk_user']);
|
||||
$var=!$var;
|
||||
|
||||
if(substr($holiday['date_debut'],5,2)==$month-1){
|
||||
$holidaystatic->id=$holiday['rowid'];
|
||||
$holidaystatic->ref=$holiday['rowid'];
|
||||
|
||||
$start_date=$db->jdate($holiday['date_debut']);
|
||||
$end_date=$db->jdate($holiday['date_fin']);
|
||||
/*if(substr($holiday['date_debut'],5,2)==$month-1){
|
||||
$holiday['date_debut'] = date('Y-'.$month.'-01');
|
||||
}
|
||||
|
||||
if(substr($holiday['date_fin'],5,2)==$month+1){
|
||||
$holiday['date_fin'] = date('Y-'.$month.'-t');
|
||||
}
|
||||
}*/
|
||||
|
||||
print '<tr '.$bc[$var].'>';
|
||||
print '<td>'.$holidaystatic->getNomUrl(1).'</td>';
|
||||
print '<td>'.$user->nom.' '.$user->prenom.'</td>';
|
||||
print '<td>'.$holiday['date_debut'].'</td>';
|
||||
print '<td>'.$holiday['date_fin'].'</td>';
|
||||
print '<td>';
|
||||
$nbopenedday=num_open_day($holiday['date_debut'],$holiday['date_fin'],0,1);
|
||||
print '<td>'.dol_print_date($start_date,'day');
|
||||
print '</td>';
|
||||
print '<td>'.dol_print_date($end_date,'day');
|
||||
print '</td>';
|
||||
print '<td align="right">';
|
||||
$nbopenedday=num_open_day($start_date, $end_date, 0, 1, $holiday['halfday']);
|
||||
print $nbopenedday;
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
@ -15,12 +15,12 @@ DateFinCP=End date
|
||||
DateCreateCP=Creation date
|
||||
DraftCP=Draft
|
||||
ToValidateCP=Awaiting approval
|
||||
ValidateCP=Validated
|
||||
ValidateCP=Approved
|
||||
CancelCP=Canceled
|
||||
RefuseCP=Refused
|
||||
ValidatorCP=Validator
|
||||
ValidatorCP=Approbator
|
||||
ListeCP=List of holidays
|
||||
ValidateByCP=Will be validated by
|
||||
ValidateByCP=Will be approved by
|
||||
DescCP=Description
|
||||
SendRequestCP=Creating demand for holidays
|
||||
DelayToRequestCP=Applications for holidays must be made at least <b>%s day(s)</b> before them.
|
||||
@ -47,17 +47,17 @@ StatutCP=Status
|
||||
SendToValidationCP=Send to validation
|
||||
TitleDeleteCP=Delete the request of holidays
|
||||
ConfirmDeleteCP=Confirm the deletion of this request for holidays?
|
||||
ErrorCantDeleteCP=Error you don't have the right to delete this request of holidays.
|
||||
ErrorCantDeleteCP=Error you don't have the right to delete this holiday request.
|
||||
CantCreateCP=You don't have the right to apply for holidays.
|
||||
InvalidValidatorCP=You must choose a validator to your request of holidays.
|
||||
InvalidValidatorCP=You must choose an approbator to your holiday request.
|
||||
UpdateButtonCP=Update
|
||||
CantUpdate=You cannot update this request of holidays.
|
||||
NoDateDebut=You must select a start date.
|
||||
NoDateFin=You must select an end date.
|
||||
ErrorDureeCP=Your request for holidays does not contain working day.
|
||||
TitleValidCP=Validate the request holidays
|
||||
ConfirmValidCP=Are you sure you want to validate the request of holidays?
|
||||
DateValidCP=Date validation
|
||||
TitleValidCP=Approve the request holidays
|
||||
ConfirmValidCP=Are you sure you want to approve the holiday request?
|
||||
DateValidCP=Date approved
|
||||
TitleToValidCP=Send request holidays
|
||||
ConfirmToValidCP=Are you sure you want to send the request of holidays?
|
||||
TitleRefuseCP=Refuse the request holidays
|
||||
@ -91,15 +91,15 @@ LastDayOfHoliday=Last day of holiday
|
||||
ConfCP=Configuration of holidays module
|
||||
DescOptionCP=Description of the option
|
||||
ValueOptionCP=Value
|
||||
GroupToValidateCP=Group with the ability to validate holidays
|
||||
GroupToValidateCP=Group with the ability to approve holidays
|
||||
ConfirmConfigCP=Validate the configuration
|
||||
LastUpdateCP=Last updated automatically of holidays
|
||||
UpdateConfCPOK=Updated successfully.
|
||||
ErrorUpdateConfCP=An error occurred during the update, please try again.
|
||||
AddCPforUsers=Please add the balance of holidays of users by <a href="../define_holiday.php" style="font-weight: normal; color: red; text-decoration: underline;">clicking here</a>.
|
||||
DelayForSubmitCP=Deadline to apply for holidays
|
||||
AlertValidatorDelayCP=Prevent the validator if the holiday request does not match the deadline
|
||||
AlertValidorSoldeCP=Prevent the validator if the holiday request exceed the balance
|
||||
AlertapprobatortorDelayCP=Prevent the approbator if the holiday request does not match the deadline
|
||||
AlertValidorSoldeCP=Prevent the approbator if the holiday request exceed the balance
|
||||
nbUserCP=Number of users supported in the module holidays
|
||||
nbHolidayDeductedCP=Number of holidays to be deducted per day of holiday taken
|
||||
nbHolidayEveryMonthCP=Number of holidays added every month
|
||||
|
||||
@ -14,13 +14,13 @@ DateDebCP=Date Début
|
||||
DateFinCP=Date Fin
|
||||
DateCreateCP=Date de création
|
||||
DraftCP=Brouillon
|
||||
ToValidateCP=En attente de validation
|
||||
ValidateCP=Validée
|
||||
ToValidateCP=En attente d'approbation
|
||||
ValidateCP=Approuvé
|
||||
CancelCP=Annulée
|
||||
RefuseCP=Refusée
|
||||
ValidatorCP=Valideur
|
||||
ValidatorCP=Approbateur
|
||||
ListeCP=Liste des congés
|
||||
ValidateByCP=Sera validée par
|
||||
ValidateByCP=Sera approuvé par
|
||||
DescCP=Description
|
||||
SendRequestCP=Envoyer la demande de congés
|
||||
DelayToRequestCP=Les demandes de congés doivent être faites au moins <b>%s jours</b> avant la date</b> de ceux-ci.
|
||||
@ -49,7 +49,7 @@ TitleDeleteCP=Supprimer la demande de Congés
|
||||
ConfirmDeleteCP=Confirmer la suppression de cette demande de congés ?
|
||||
ErrorCantDeleteCP=Erreur, vous n'avez pas le droit de supprimer cette demande de congés.
|
||||
CantCreateCP=Vous n'avez pas le droit de faire des demandes de congés.
|
||||
InvalidValidatorCP=Vous devez choisir un valideur pour votre demande de congés.
|
||||
InvalidValidatorCP=Vous devez choisir un approbateur pour votre demande de congés.
|
||||
UpdateButtonCP=Mettre à jour
|
||||
CantUpdate=Vous ne pouvez pas mettre à jour cette demande de congés.
|
||||
NoDateDebut=Vous devez choisir une date de début.
|
||||
@ -57,7 +57,7 @@ NoDateFin=Vous devez choisir une date de fin.
|
||||
ErrorDureeCP=Votre demande de congés payés ne contient aucun jour ouvré.
|
||||
TitleValidCP=Valider la demande de Congés Payés
|
||||
ConfirmValidCP=Êtes-vous sûr de vouloir valider la demande de congés ?
|
||||
DateValidCP=Date de validation
|
||||
DateValidCP=Date d'approbation
|
||||
TitleToValidCP=Envoyer la demande de Congés Payés
|
||||
ConfirmToValidCP=Êtes-vous sûr de vouloir envoyer la demande de congés ?
|
||||
TitleRefuseCP=Refuser la demande de Congés Payés
|
||||
|
||||
Loading…
Reference in New Issue
Block a user