From c8f940a8eeab12e48db04c129b766de2f663d953 Mon Sep 17 00:00:00 2001 From: skeeter Date: Mon, 14 May 2001 23:43:05 +0000 Subject: [PATCH] Added a new field to the holiday table for observance rules. --- calendar/inc/class.calendar_holiday.inc.php | 59 ++++++++++++--------- calendar/setup/holidays.CA | 10 ++-- calendar/setup/holidays.US | 26 ++++----- setup/sql/mysql_newtables.inc.php | 1 + setup/sql/mysql_upgrade_beta.inc.php | 12 +++++ setup/sql/pgsql_newtables.inc.php | 4 +- setup/sql/pgsql_upgrade_beta.inc.php | 11 ++++ version.inc.php | 2 +- 8 files changed, 79 insertions(+), 46 deletions(-) diff --git a/calendar/inc/class.calendar_holiday.inc.php b/calendar/inc/class.calendar_holiday.inc.php index 1fd2e8799b..7d740fff29 100755 --- a/calendar/inc/class.calendar_holiday.inc.php +++ b/calendar/inc/class.calendar_holiday.inc.php @@ -98,7 +98,7 @@ class calendar_holiday { // echo 'Line #'.$i.' : '.$lines[$i]."
\n"; $holiday = explode("\t",$lines[$i]); - if(count($holiday) == 6) + if(count($holiday) == 7) { $loc = $holiday[0]; $name = addslashes($holiday[1]); @@ -106,8 +106,9 @@ class calendar_holiday $month = intval($holiday[3]); $occurence = intval($holiday[4]); $dow = intval($holiday[5]); + $observ_rule = intval($holidays[6]); // echo "Inserting LOCALE='".$loc."' NAME='".$name."' extra=(".$day.'/'.$month.'/'.$occurence.'/'.$dow.'/'.")
\n"; - $sql = "INSERT INTO phpgw_cal_holidays(locale,name,mday,month_num,occurence,dow) VALUES('$loc','$name',$day,$month,$occurence,$dow)"; + $sql = "INSERT INTO phpgw_cal_holidays(locale,name,mday,month_num,occurence,dow,observance_rule) VALUES('$loc','$name',$day,$month,$occurence,$dow,$observ_rule)"; $this->db->query($sql,__LINE__,__FILE__); } } @@ -134,31 +135,36 @@ class calendar_holiday else { $day = $holiday['day']; - $dow = $phpgw->calendar->day_of_week($this->year,$holiday['month'],$day); - // This now calulates Observed holidays and creates a new entry for them. - if($dow == 0) + if($holiday['observance_rule'] == True) { - $i++; - $this->holidays[$i]['locale'] = $holiday['locale'].' (Observed)'; - $this->holidays[$i]['name'] = $holiday['name']; - $this->holidays[$i]['day'] = $holiday['day'] + 1; - $this->holidays[$i]['month'] = $holiday['month']; - $this->holidays[$i]['occurence'] = $holiday['occurence']; - $this->holidays[$i]['dow'] = $holiday['dow']; - $this->holidays[$i]['date'] = mktime(0,0,0,$holiday['month'],$day+1,$this->year) - $this->tz_offset; -// echo 'Calculating for year('.$this->year.') month('.$this->holidays[$i]['month'].') dow('.$this->holidays[$i]['dow'].') occurence('.$this->holidays[$i]['occurence'].') datetime('.$this->holidays[$i]['date'].') DATE('.date('Y.m.d H:i:s',$this->holidays[$i]['date']).')
'."\n"; - } - elseif($dow == 6) - { - $i++; - $this->holidays[$i]['locale'] = $holiday['locale'].' (Observed)'; - $this->holidays[$i]['name'] = $holiday['name']; - $this->holidays[$i]['day'] = $holiday['day'] - 1; - $this->holidays[$i]['month'] = $holiday['month']; - $this->holidays[$i]['occurence'] = $holiday['occurence']; - $this->holidays[$i]['dow'] = $holiday['dow']; - $this->holidays[$i]['date'] = mktime(0,0,0,$holiday['month'],$day-1,$this->year) - $this->tz_offset; -// echo 'Calculating for year('.$this->year.') month('.$this->holidays[$i]['month'].') dow('.$this->holidays[$i]['dow'].') occurence('.$this->holidays[$i]['occurence'].') datetime('.$this->holidays[$i]['date'].') DATE('.date('Y.m.d H:i:s',$this->holidays[$i]['date']).')
'."\n"; + $dow = $phpgw->calendar->day_of_week($this->year,$holiday['month'],$day); + // This now calulates Observed holidays and creates a new entry for them. + if($dow == 0) + { + $i++; + $this->holidays[$i]['locale'] = $holiday['locale'].' (Observed)'; + $this->holidays[$i]['name'] = $holiday['name']; + $this->holidays[$i]['day'] = $holiday['day'] + 1; + $this->holidays[$i]['month'] = $holiday['month']; + $this->holidays[$i]['occurence'] = $holiday['occurence']; + $this->holidays[$i]['dow'] = $holiday['dow']; + $this->holidays[$i]['date'] = mktime(0,0,0,$holiday['month'],$day+1,$this->year) - $this->tz_offset; + $this->holidays[$i]['obervance_rule'] = 0; +// echo 'Calculating for year('.$this->year.') month('.$this->holidays[$i]['month'].') dow('.$this->holidays[$i]['dow'].') occurence('.$this->holidays[$i]['occurence'].') datetime('.$this->holidays[$i]['date'].') DATE('.date('Y.m.d H:i:s',$this->holidays[$i]['date']).')
'."\n"; + } + elseif($dow == 6) + { + $i++; + $this->holidays[$i]['locale'] = $holiday['locale'].' (Observed)'; + $this->holidays[$i]['name'] = $holiday['name']; + $this->holidays[$i]['day'] = $holiday['day'] - 1; + $this->holidays[$i]['month'] = $holiday['month']; + $this->holidays[$i]['occurence'] = $holiday['occurence']; + $this->holidays[$i]['dow'] = $holiday['dow']; + $this->holidays[$i]['date'] = mktime(0,0,0,$holiday['month'],$day-1,$this->year) - $this->tz_offset; + $this->holidays[$i]['obervance_rule'] = 0; +// echo 'Calculating for year('.$this->year.') month('.$this->holidays[$i]['month'].') dow('.$this->holidays[$i]['dow'].') occurence('.$this->holidays[$i]['occurence'].') datetime('.$this->holidays[$i]['date'].') DATE('.date('Y.m.d H:i:s',$this->holidays[$i]['date']).')
'."\n"; + } } } $datetime = mktime(0,0,0,$holiday['month'],$day,$this->year) - $this->tz_offset; @@ -186,6 +192,7 @@ class calendar_holiday $this->holidays[$i]['month'] = intval($this->db->f('month_num')); $this->holidays[$i]['occurence'] = intval($this->db->f('occurence')); $this->holidays[$i]['dow'] = intval($this->db->f('dow')); + $this->holidays[$i]['observance_rule'] = intval($this->db->f('observance_rule')); if(count($this->users) == 2 && $this->users[0] != $this->users[1]) { if($this->holidays[$i]['locale'] == $this->users[1]) diff --git a/calendar/setup/holidays.CA b/calendar/setup/holidays.CA index 338d7ace7b..3c899dc5da 100755 --- a/calendar/setup/holidays.CA +++ b/calendar/setup/holidays.CA @@ -1,5 +1,5 @@ -CA Quebec Civic Holiday 3 1 0 0 -CA Canadian Civic Holiday 0 8 1 1 -CA Rememberence Day 11 11 0 0 -CA Christmas Day 25 12 0 0 -CA Boxing Day 26 12 0 0 +CA Quebec Civic Holiday 3 1 0 0 1 +CA Canadian Civic Holiday 0 8 1 1 0 +CA Rememberence Day 11 11 0 0 1 +CA Christmas Day 25 12 0 0 1 +CA Boxing Day 26 12 0 0 1 diff --git a/calendar/setup/holidays.US b/calendar/setup/holidays.US index 4efd5518ed..c20f254b60 100755 --- a/calendar/setup/holidays.US +++ b/calendar/setup/holidays.US @@ -1,13 +1,13 @@ -US New Years 1 1 0 0 -US Martin Luther King's Birthday 0 1 3 1 -US Inaugeration Day 20 1 0 0 -US Presidents Day 0 2 3 1 -US Armed Forces Day 0 5 3 6 -US Memorial Day 0 5 99 1 -US Flag Day 14 6 0 0 -US Independence Day 4 7 0 0 -US Labor Day 0 9 1 1 -US Columbus Day 0 10 2 1 -US Veterans Day 11 11 0 0 -US Thanksgiving Day 0 11 4 4 -US Christmas Day 25 12 0 0 +US New Years 1 1 0 0 1 +US Martin Luther King's Birthday 0 1 3 1 0 +US Inaugeration Day 20 1 0 0 0 +US Presidents Day 0 2 3 1 0 +US Armed Forces Day 0 5 3 6 0 +US Memorial Day 0 5 99 1 0 +US Flag Day 14 6 0 0 0 +US Independence Day 4 7 0 0 1 +US Labor Day 0 9 1 1 0 +US Columbus Day 0 10 2 1 0 +US Veterans Day 11 11 0 0 1 +US Thanksgiving Day 0 11 4 4 0 +US Christmas Day 25 12 0 0 1 diff --git a/setup/sql/mysql_newtables.inc.php b/setup/sql/mysql_newtables.inc.php index b9db32e495..13a9e1a1e6 100644 --- a/setup/sql/mysql_newtables.inc.php +++ b/setup/sql/mysql_newtables.inc.php @@ -242,6 +242,7 @@ month_num int DEFAULT '0' NOT NULL, occurence int DEFAULT '0' NOT NULL, dow int DEFAULT '0' NOT NULL, + observance_rule int DEFAULT '0' NOT NULL, PRIMARY KEY (hol_id) )"; $phpgw_setup->db->query($sql); diff --git a/setup/sql/mysql_upgrade_beta.inc.php b/setup/sql/mysql_upgrade_beta.inc.php index a72f7a9ae9..96e5365163 100644 --- a/setup/sql/mysql_upgrade_beta.inc.php +++ b/setup/sql/mysql_upgrade_beta.inc.php @@ -1660,6 +1660,18 @@ $phpgw_info['setup']['currentver']['phpgwapi'] = '0.9.11.009'; } + $test[] = '0.9.11.009'; + function upgrade0_9_11_009() + { + global $phpgw_info,$phpgw_setup; + + $phpgw_setup->db->query("alter table phpgw_cal_holidays add column observance_rule int DEFAULT '0' NOT NULL",__LINE__,__TABLE__); + $phpgw_setup->db->query("delete from phpgw_cal_holidays",__LINE__,__FILE__); + + $phpgw_info['setup']['currentver']['phpgwapi'] = '0.9.11.010'; + } + + reset ($test); while (list ($key, $value) = each ($test)){ if ($phpgw_info["setup"]["currentver"]["phpgwapi"] == $value) { diff --git a/setup/sql/pgsql_newtables.inc.php b/setup/sql/pgsql_newtables.inc.php index 80844be609..13921b0afd 100644 --- a/setup/sql/pgsql_newtables.inc.php +++ b/setup/sql/pgsql_newtables.inc.php @@ -215,7 +215,9 @@ mday int DEFAULT 0, month_num int DEFAULT 0, occurence int DEFAULT 0, - dow int DEFAULT 0 + dow int DEFAULT 0, + observance_rule int DEFAULT 0 + )"; $phpgw_setup->db->query($sql); diff --git a/setup/sql/pgsql_upgrade_beta.inc.php b/setup/sql/pgsql_upgrade_beta.inc.php index 86c1636c76..47454648f1 100644 --- a/setup/sql/pgsql_upgrade_beta.inc.php +++ b/setup/sql/pgsql_upgrade_beta.inc.php @@ -2180,6 +2180,17 @@ $phpgw_info['setup']['currentver']['phpgwapi'] = '0.9.11.009'; } + $test[] = '0.9.11.009'; + function upgrade0_9_11_009() + { + global $phpgw_info,$phpgw_setup; + + $phpgw_setup->db->query("alter table phpgw_holidays add column observance_rule int default 0",__LINE__,__TABLE__); + $phpgw_setup->db->query("delete from phpgw_cal_holidays",__LINE__,__FILE__); + + $phpgw_info['setup']['currentver']['phpgwapi'] = '0.9.11.010'; + } + reset ($test); while (list ($key, $value) = each ($test)){ if ($phpgw_info["setup"]["currentver"]["phpgwapi"] == $value) { diff --git a/version.inc.php b/version.inc.php index c4592fa840..55559e1537 100644 --- a/version.inc.php +++ b/version.inc.php @@ -11,5 +11,5 @@ /* $Id$ */ - $phpgw_info['server']['versions']['phpgwapi'] = '0.9.11.009'; + $phpgw_info['server']['versions']['phpgwapi'] = '0.9.11.010'; $phpgw_info['server']['versions']['current_header'] = '1.12';