Merge pull request #1728 from fmarcet/develop
New: Can have half day holiday
This commit is contained in:
commit
a8dbcf4d36
@ -659,6 +659,49 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR')
|
|||||||
if($jour_semaine == 0 || $jour_semaine == 6) $ferie=true;
|
if($jour_semaine == 0 || $jour_semaine == 6) $ferie=true;
|
||||||
//Samedi (6) et dimanche (0)
|
//Samedi (6) et dimanche (0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($countrycode == 'ES')
|
||||||
|
{
|
||||||
|
$countryfound=1;
|
||||||
|
|
||||||
|
// Definition des dates feriees fixes
|
||||||
|
if($jour == 1 && $mois == 1) $ferie=true; // Año nuevo
|
||||||
|
if($jour == 6 && $mois == 1) $ferie=true; // Día Reyes
|
||||||
|
if($jour == 1 && $mois == 5) $ferie=true; // 1 Mayo
|
||||||
|
if($jour == 15 && $mois == 8) $ferie=true; // 15 Agosto
|
||||||
|
if($jour == 12 && $mois == 10) $ferie=true; // Día Hispanidad
|
||||||
|
if($jour == 1 && $mois == 11) $ferie=true; // 1 noviembre
|
||||||
|
if($jour == 6 && $mois == 12) $ferie=true; // Constitución
|
||||||
|
if($jour == 8 && $mois == 12) $ferie=true; // Inmaculada
|
||||||
|
if($jour == 25 && $mois == 12) $ferie=true; // 25 diciembre
|
||||||
|
|
||||||
|
// Calcul día de Pascua
|
||||||
|
$date_paques = easter_date($annee);
|
||||||
|
$jour_paques = date("d", $date_paques);
|
||||||
|
$mois_paques = date("m", $date_paques);
|
||||||
|
if($jour_paques == $jour && $mois_paques == $mois) $ferie=true;
|
||||||
|
// Paques
|
||||||
|
|
||||||
|
// Viernes Santo
|
||||||
|
$date_viernes = mktime(
|
||||||
|
date("H", $date_paques),
|
||||||
|
date("i", $date_paques),
|
||||||
|
date("s", $date_paques),
|
||||||
|
date("m", $date_paques),
|
||||||
|
date("d", $date_paques) -2,
|
||||||
|
date("Y", $date_paques)
|
||||||
|
);
|
||||||
|
$jour_viernes = date("d", $date_viernes);
|
||||||
|
$mois_viernes = date("m", $date_viernes);
|
||||||
|
if($jour_viernes == $jour && $mois_viernes == $mois) $ferie=true;
|
||||||
|
//Viernes Santo
|
||||||
|
|
||||||
|
// Calul des samedis et dimanches
|
||||||
|
$jour_julien = unixtojd($timestampStart);
|
||||||
|
$jour_semaine = jddayofweek($jour_julien, 0);
|
||||||
|
if($jour_semaine == 0 || $jour_semaine == 6) $ferie=true;
|
||||||
|
//Samedi (6) et dimanche (0)
|
||||||
|
}
|
||||||
|
|
||||||
// Cas pays non defini
|
// Cas pays non defini
|
||||||
if (! $countryfound)
|
if (! $countryfound)
|
||||||
|
|||||||
@ -1670,12 +1670,12 @@ class Holiday extends CommonObject
|
|||||||
|
|
||||||
// Filtrage de séléction
|
// Filtrage de séléction
|
||||||
if(!empty($filter)) {
|
if(!empty($filter)) {
|
||||||
$sql.= $filter;
|
$sql.= " ".$filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ordre d'affichage
|
// Ordre d'affichage
|
||||||
if(!empty($order)) {
|
if(!empty($order)) {
|
||||||
$sql.= $order;
|
$sql.= " ".$order;
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetchLog", LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetchLog", LOG_DEBUG);
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
* Copyright (C) 2012-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2012-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2013 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
* Copyright (C) 2014 Ferran Marcet <fmarcet@2byte.es>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -111,7 +112,7 @@ if ($action == 'create')
|
|||||||
|
|
||||||
// Si aucun jours ouvrés dans la demande
|
// Si aucun jours ouvrés dans la demande
|
||||||
$nbopenedday=num_open_day($date_debut_gmt, $date_fin_gmt, 0, 1, $halfday);
|
$nbopenedday=num_open_day($date_debut_gmt, $date_fin_gmt, 0, 1, $halfday);
|
||||||
if($nbopenedday < 1)
|
if($nbopenedday < 0.5)
|
||||||
{
|
{
|
||||||
header('Location: fiche.php?action=request&error=DureeHoliday');
|
header('Location: fiche.php?action=request&error=DureeHoliday');
|
||||||
exit;
|
exit;
|
||||||
@ -208,7 +209,7 @@ if ($action == 'update')
|
|||||||
|
|
||||||
// Si pas de jours ouvrés dans la demande
|
// Si pas de jours ouvrés dans la demande
|
||||||
$nbopenedday=num_open_day($date_debut_gmt, $date_fin_gmt, 0, 1, $halfday);
|
$nbopenedday=num_open_day($date_debut_gmt, $date_fin_gmt, 0, 1, $halfday);
|
||||||
if ($nbopenedday < 1)
|
if ($nbopenedday < 0.5)
|
||||||
{
|
{
|
||||||
header('Location: fiche.php?id='.$_POST['holiday_id'].'&action=edit&error=DureeHoliday');
|
header('Location: fiche.php?id='.$_POST['holiday_id'].'&action=edit&error=DureeHoliday');
|
||||||
exit;
|
exit;
|
||||||
@ -398,7 +399,7 @@ if($action == 'confirm_valid')
|
|||||||
if ($verif > 0)
|
if ($verif > 0)
|
||||||
{
|
{
|
||||||
// Calculcate number of days consummed
|
// Calculcate number of days consummed
|
||||||
$nbopenedday=num_open_day($cp->date_debut_gmt,$cp->date_fin_gmt,0,1);
|
$nbopenedday=num_open_day($cp->date_debut_gmt,$cp->date_fin_gmt,0,1,$cp->halfday);
|
||||||
|
|
||||||
$soldeActuel = $cp->getCpforUser($cp->fk_user);
|
$soldeActuel = $cp->getCpforUser($cp->fk_user);
|
||||||
$newSolde = $soldeActuel - ($nbopenedday * $cp->getConfCP('nbHolidayDeducted'));
|
$newSolde = $soldeActuel - ($nbopenedday * $cp->getConfCP('nbHolidayDeducted'));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user