2
0
forked from Wavyzz/dolibarr

Merge branch '20.0' of git@github.com:Dolibarr/dolibarr.git into 21.0

This commit is contained in:
Laurent Destailleur
2025-07-31 23:54:30 +02:00
5 changed files with 94 additions and 15 deletions

View File

@@ -231,6 +231,42 @@ class DateLibTest extends CommonClassTest
$result = num_open_day($date1, $date2, 'XX', 1);
print __METHOD__." result=".$result."\n";
$this->assertEquals(3, $result, 'NumOpenDay for XX when saturday + sunday are working days'); // 3 opened day, 0 closes (even if country unknown)
// Define specific dates for these tests
$date_friday_4 = dol_mktime(0, 0, 0, 1, 4, 2013, 'gmt'); // Friday
$date_saturday_5 = dol_mktime(0, 0, 0, 1, 5, 2013, 'gmt'); // Saturday
$date_monday_7 = dol_mktime(0, 0, 0, 1, 7, 2013, 'gmt'); // Monday
$date_friday_11 = dol_mktime(0, 0, 0, 1, 11, 2013, 'gmt'); // Following Friday
// Case 1: Weekend Boundary (Friday morning -> Saturday morning)
// Expected: 1 day. No half-day deduction for end date on a non-working day.
// $starthalfday = 'morning', $endhalfday = 'morning' -> $halfday = 1
$conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SATURDAY = 1;
$conf->global->MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY = 1;
$result = num_open_day($date_friday_4, $date_saturday_5, 0, 1, 1, 'FR');
print __METHOD__." result=".$result."\n";
$this->assertEquals(1, $result, 'Case 1: Friday morning to Saturday morning should be 1 day');
// Case 2: Full week with half-day (Friday morning -> Following Friday morning)
// Expected: 5.5 days.
// $starthalfday = 'morning', $endhalfday = 'morning' -> $halfday = 1
$result = num_open_day($date_friday_4, $date_friday_11, 0, 1, 1, 'FR');
print __METHOD__." result=".$result."\n";
$this->assertEquals(5.5, $result, 'Case 2: Friday morning to next Friday morning should be 5.5 days');
// Case 3: Single Half-Day (Monday afternoon)
// Expected: 0.5 days.
// $starthalfday = 'afternoon' -> $halfday = -1
$result = num_open_day($date_monday_7, $date_monday_7, 0, 1, -1, 'FR');
print __METHOD__." result=".$result."\n";
$this->assertEquals(0.5, $result, 'Case 3: A single Monday afternoon should be 0.5 days');
// Case 4: Standard Leave (Monday morning -> Friday evening)
// Expected: 5 days.
// $starthalfday = 'morning', $endhalfday = 'evening' -> $halfday = 0
$result = num_open_day($date_monday_7, $date_friday_11, 0, 1, 0, 'FR');
print __METHOD__." result=".$result."\n";
$this->assertEquals(5, $result, 'Case 4: Monday morning to Friday evening should be 5 days');
}
/**