-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathholiday_func.php
More file actions
79 lines (71 loc) · 2.21 KB
/
Copy pathholiday_func.php
File metadata and controls
79 lines (71 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
##
## holiday module - A dotProject module for keeping track of holidays
##
## Sensorlink AS (c) 2006
## Vegard Fiksdal (fiksdal@sensorlink.no)
##
require_once 'PEAR/Holidays.php';
function isHoliday( $date=0 ){
// Query database for settings
$holiday_manual = db_loadResult( 'SELECT holiday_manual FROM holiday_settings' );
$holiday_auto = db_loadResult( 'SELECT holiday_auto FROM holiday_settings' );
$holiday_driver = db_loadResult( 'SELECT holiday_driver FROM holiday_settings' );
if(!$date)
{
$date=new CDate;
}
if($holiday_manual)
{
// Check whether the date is blacklisted
$sql = "SELECT * FROM holiday ";
$sql.= "WHERE ( date(holiday_start_date) <= '";
$sql.= $date->format( '%Y-%m-%d' );
$sql.= "' AND date(holiday_end_date) >= '";
$sql.= $date->format( '%Y-%m-%d' ) ;
$sql.= "' AND holiday_white=0 ) ";
$sql.= "OR ( ";
$sql.= " DATE_FORMAT(holiday_start_date, '%m-%d') <= '";
$sql.= $date->format( '%m-%d' );
$sql.= "' AND DATE_FORMAT(holiday_end_date, '%m-%d') >= '";
$sql.= $date->format( '%m-%d' ) ;
$sql.= "' AND holiday_annual=1";
$sql.= " AND holiday_white=0 ) ";
if(db_loadResult($sql))
{
return 0;
}
// Check if we have a whitelist item for this date
$sql = "SELECT * FROM holiday ";
$sql.= "WHERE ( date(holiday_start_date) <= '";
$sql.= $date->format( '%Y-%m-%d' );
$sql.= "' AND date(holiday_end_date) >= '";
$sql.= $date->format( '%Y-%m-%d' ) ;
$sql.= "' AND holiday_white=1 ) ";
$sql.= "OR ( ";
$sql.= " DATE_FORMAT(holiday_start_date, '%m-%d') <= '";
$sql.= $date->format( '%m-%d' );
$sql.= "' AND DATE_FORMAT(holiday_end_date, '%m-%d') >= '";
$sql.= $date->format( '%m-%d' ) ;
$sql.= "' AND holiday_annual=1";
$sql.= " AND holiday_white=1 ) ";
if(db_loadResult($sql))
{
return 1;
}
}
if($holiday_auto)
{
// Still here? Ok, lets poll the automatic system
$drivers_alloc = Date_Holidays::getInstalledDrivers();
$driver_object = Date_Holidays::factory($drivers_alloc[$holiday_driver]['title'],$date->getYear(),'en_EN');
if (!Date_Holidays::isError($driver_object)) {
if($driver_object->getHolidayForDate($date)){
return 1;
}
}
}
// No hits, must be a working day
return 0;
}
?>