2
0
forked from Wavyzz/dolibarr

Merge pull request #1728 from fmarcet/develop

New: Can have half day holiday
This commit is contained in:
Laurent Destailleur
2014-07-11 12:22:37 +02:00
3 changed files with 49 additions and 5 deletions

View File

@@ -659,6 +659,49 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode='FR')
if($jour_semaine == 0 || $jour_semaine == 6) $ferie=true;
//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
if (! $countryfound)

View File

@@ -1670,12 +1670,12 @@ class Holiday extends CommonObject
// Filtrage de séléction
if(!empty($filter)) {
$sql.= $filter;
$sql.= " ".$filter;
}
// Ordre d'affichage
if(!empty($order)) {
$sql.= $order;
$sql.= " ".$order;
}
dol_syslog(get_class($this)."::fetchLog", LOG_DEBUG);

View File

@@ -3,6 +3,7 @@
* Copyright (C) 2012-2013 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
* 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
* 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
$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');
exit;
@@ -208,7 +209,7 @@ if ($action == 'update')
// Si pas de jours ouvrés dans la demande
$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');
exit;
@@ -398,7 +399,7 @@ if($action == 'confirm_valid')
if ($verif > 0)
{
// 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);
$newSolde = $soldeActuel - ($nbopenedday * $cp->getConfCP('nbHolidayDeducted'));