Update phpunit
This commit is contained in:
parent
15eaa5cbd8
commit
73c3fa40bf
@ -601,14 +601,14 @@ function dol_get_first_day_week($day, $month, $year, $gm = false)
|
||||
*
|
||||
* @param int $timestampStart Timestamp de debut
|
||||
* @param int $timestampEnd Timestamp de fin
|
||||
* @param string $countrycode Country code
|
||||
* @param string $country_code Country code
|
||||
* @param int $lastday Last day is included, 0: no, 1:yes
|
||||
* @param int $includesaturday Include saturday as non working day (-1=use setup, 0=no, 1=yes)
|
||||
* @param int $includesunday Include sunday as non working day (-1=use setup, 0=no, 1=yes)
|
||||
* @return int|string Number of non working days or error message string if error
|
||||
* @see num_between_day(), num_open_day()
|
||||
*/
|
||||
function num_public_holiday($timestampStart, $timestampEnd, $countrycode = 'FR', $lastday = 0, $includesaturday = -1, $includesunday = -1)
|
||||
function num_public_holiday($timestampStart, $timestampEnd, $country_code = '', $lastday = 0, $includesaturday = -1, $includesunday = -1)
|
||||
{
|
||||
global $db, $conf, $mysoc;
|
||||
|
||||
@ -618,6 +618,8 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode = 'FR',
|
||||
// Check to ensure we use correct parameters
|
||||
if ((($timestampEnd - $timestampStart) % 86400) != 0) return 'ErrorDates must use same hours and must be GMT dates';
|
||||
|
||||
if (empty($country_code)) $country_code = $mysoc->country_code;
|
||||
|
||||
if ($includesaturday < 0) $includesaturday = (isset($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SATURDAY) ? $conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SATURDAY : 1);
|
||||
if ($includesunday < 0) $includesunday = (isset($conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY) ? $conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY : 1);
|
||||
|
||||
@ -651,10 +653,12 @@ function num_public_holiday($timestampStart, $timestampEnd, $countrycode = 'FR',
|
||||
}
|
||||
}
|
||||
|
||||
$country_id = dol_getIdFromCode($db, $country_code, 'c_country', 'code', 'rowid');
|
||||
|
||||
// Loop on public holiday defined into hrm_public_holiday
|
||||
$sql = "SELECT code, entity, fk_country, dayrule, year, month, day, active";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."c_hrm_public_holiday";
|
||||
$sql.= " WHERE active = 1 and fk_country IN (0, ".$mysoc->country_id.")";
|
||||
$sql.= " WHERE active = 1 and fk_country IN (0".($country_id > 0 ? ", ".$country_id : 0).")";
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
|
||||
@ -185,16 +185,33 @@ class DateLibTest extends PHPUnit\Framework\TestCase
|
||||
// With same hours - Tuesday/Wednesday jan 2013
|
||||
$date1=dol_mktime(0, 0, 0, 1, 1, 2013);
|
||||
$date2=dol_mktime(0, 0, 0, 1, 2, 2013);
|
||||
$date3=dol_mktime(0, 0, 0, 1, 3, 2013);
|
||||
|
||||
$result=num_public_holiday($date1, $date2, 'FR', 1);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(1, $result, 'NumPublicHoliday for Tuesday/Wednesday jan 2013 for FR'); // 1 closed days
|
||||
$this->assertEquals(1, $result, 'NumPublicHoliday for Tuesday 1 - Wednesday 2 jan 2013 for FR'); // 1 closed days (country france)
|
||||
|
||||
$result=num_public_holiday($date1, $date2, 'XX', 1);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(0, $result, 'NumPublicHoliday for Tuesday/Wednesday jan 2013 for XX'); // no closed days (country unknown)
|
||||
$this->assertEquals(1, $result, 'NumPublicHoliday for Tuesday 1 - Wednesday 2 jan 2013 for XX'); // 1 closed days (country unknown)
|
||||
|
||||
// With same hours - Friday/Sunday jan 2013
|
||||
$result=num_public_holiday($date2, $date3, 'FR', 1);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(0, $result, 'NumPublicHoliday for Wednesday 2 - Thursday 3 jan 2013 for FR'); // no closed days
|
||||
|
||||
// Check with easter monday
|
||||
$date1=dol_mktime(0, 0, 0, 4, 21, 2019);
|
||||
$date2=dol_mktime(0, 0, 0, 4, 23, 2019);
|
||||
|
||||
$result=num_public_holiday($date1, $date2, 'XX', 1);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(1, $result, 'NumPublicHoliday including eastermonday for XX'); // 2 opened day, 1 closed days (sunday)
|
||||
|
||||
$result=num_public_holiday($date1, $date2, 'FR', 1);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(2, $result, 'NumPublicHoliday including eastermonday for FR'); // 1 opened day, 2 closed days (sunday + easter monday)
|
||||
|
||||
// Check for sunday/saturday - Friday 4 - Sunday 6 jan 2013
|
||||
$date1=dol_mktime(0, 0, 0, 1, 4, 2013);
|
||||
$date2=dol_mktime(0, 0, 0, 1, 6, 2013);
|
||||
|
||||
@ -202,10 +219,25 @@ class DateLibTest extends PHPUnit\Framework\TestCase
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(2, $result, 'NumPublicHoliday for FR'); // 1 opened day, 2 closed days
|
||||
|
||||
$result=num_public_holiday($date1, $date2, 'FR', 1, 1, 1);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(2, $result, 'NumPublicHoliday for FR'); // 1 opened day, 2 closed days
|
||||
|
||||
$result=num_public_holiday($date1, $date2, 'FR', 1, 1, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(1, $result, 'NumPublicHoliday for FR'); // 2 opened day, 1 closed days
|
||||
|
||||
$result=num_public_holiday($date1, $date2, 'FR', 1, 0, 0);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(0, $result, 'NumPublicHoliday for FR'); // 3 opened day, 0 closed days
|
||||
|
||||
$result=num_public_holiday($date1, $date2, 'XX', 1);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(2, $result, 'NumPublicHoliday for XX'); // 1 opened day, 2 closed days (even if country unknown)
|
||||
|
||||
|
||||
|
||||
// Add more holiday with constant HOLIDAY_MORE_PUBLIC_HOLIDAYS
|
||||
$conf->global->HOLIDAY_MORE_PUBLIC_HOLIDAYS='12-13,2019-12-14';
|
||||
|
||||
$date1=dol_mktime(0, 0, 0, 12, 13, 2018);
|
||||
@ -243,14 +275,19 @@ class DateLibTest extends PHPUnit\Framework\TestCase
|
||||
// With same hours - Tuesday/Wednesday jan 2013
|
||||
$date1=dol_mktime(0, 0, 0, 1, 1, 2013);
|
||||
$date2=dol_mktime(0, 0, 0, 1, 2, 2013);
|
||||
$date3=dol_mktime(0, 0, 0, 1, 3, 2013);
|
||||
|
||||
$result=num_open_day($date1, $date2, 0, 1, 0, 'FR');
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(1, $result, 'NumOpenDay Tuesday/Wednesday jan 2013 for FR'); // 1 opened days
|
||||
$this->assertEquals(1, $result, 'NumOpenDay Tuesday 1 - Wednesday 2 jan 2013 for FR'); // 1 opened days (country france)
|
||||
|
||||
$result=num_open_day($date1, $date2, 0, 1, 0, 'XX');
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(2, $result, 'NumOpenDay Tuesday/Wednesday jan 2013 for XX'); // 2 opened days (country unknown)
|
||||
$this->assertEquals(1, $result, 'NumOpenDay Tuesday 1 - Wednesday 2 jan 2013 for XX'); // 1 opened days (country unknown)
|
||||
|
||||
$result=num_open_day($date2, $date3, 0, 1, 0, 'FR');
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals(2, $result, 'NumOpenDay Wednesday 2 - Thursday 3 jan 2013 for FR'); // 2 opened days
|
||||
|
||||
// With same hours - Friday/Sunday jan 2013
|
||||
$date1=dol_mktime(0, 0, 0, 1, 4, 2013);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user