From 83096f5c7c55b4f5eaef2911f61faaf1fb52276b Mon Sep 17 00:00:00 2001 From: mattf Date: Mon, 18 Jan 2010 11:17:24 +0000 Subject: [PATCH] updated DST schemes for Australia and New Zealand git-svn-id: svn://192.168.202.10@1310 3d104415-ff17-0410-8863-d5cf3c621b8a --- bin/ADMIN_adjust_GMTnow_on_leads.pl | 89 ++++++++------ bin/ADMIN_area_code_populate.pl | 9 +- bin/VICIDIAL_IN_new_leads_file.pl | 153 ++++++++++++++++++++++++- extras/UTF8_lead_file.txt | 18 +-- www/vicidial/AST_DIDstats.php | 4 +- www/vicidial/listloader.pl | 153 ++++++++++++++++++++++++- www/vicidial/listloader_super.pl | 153 ++++++++++++++++++++++++- www/vicidial/new_listloader_superL.php | 144 ++++++++++++++++++++++- www/vicidial/non_agent_api.php | 144 ++++++++++++++++++++++- 9 files changed, 808 insertions(+), 59 deletions(-) diff --git a/bin/ADMIN_adjust_GMTnow_on_leads.pl b/bin/ADMIN_adjust_GMTnow_on_leads.pl index 11ab0a21..dcdff88b 100644 --- a/bin/ADMIN_adjust_GMTnow_on_leads.pl +++ b/bin/ADMIN_adjust_GMTnow_on_leads.pl @@ -7,7 +7,7 @@ # # run every time you load leads into the vicidial_list table # -# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # # CHANGES @@ -25,10 +25,17 @@ # 90129-1114 - Added NANPA prefix lookup option # 90401-1327 - Fixed quiet flag function # 91129-2155 - Replaced SELECT STAR queries with field lists, formatting fixes +# 100117-2122 - Added force-date option and activated FSO-FSA and LSS-FSA # +use Time::Local; + +$secX = time(); +$time = $secX; + $MT[0]=''; $q=0; +$forcedate=''; ### begin parsing run-time options ### if (length($ARGV[0])>1) @@ -50,6 +57,7 @@ if (length($ARGV[0])>1) print " [--postal-code-gmt] = Attempt postal codes lookup for timezones\n"; print " [--nanpa-prefix-gmt] = Attempt nanpa prefix lookup for timezones\n"; print " [--singlelistid=XXX] = Only lookup and alter leads in one list_id\n"; + print " [--force-date=YYYY-MM-DD] = Force this date as date to run\n"; print "\n"; exit; @@ -88,12 +96,25 @@ if (length($ARGV[0])>1) if ($args =~ /-singlelistid=/i) { @data_in = split(/-singlelistid=/,$args); - $singlelistid = $data_in[1]; + $singlelistid = $data_in[1]; if ($q < 1) {print "\n----- SINGLE LISTID OVERRIDE: $singlelistid -----\n\n";} } else {$singlelistid = '';} + if ($args =~ /-force-date=/i) + { + @data_in = split(/-force-date=/,$args); + $forcedate = $data_in[1]; + @cli_date = split("-",$forcedate); + $year = $cli_date[0]; + $mon = $cli_date[1]; + $mday = $cli_date[2]; + $cli_date[1] = ($cli_date[1] - 1); + $time = timelocal(0,0,2,$cli_date[2],$cli_date[1],$cli_date[0]); + + if ($q < 1) {print "\n----- FORCE DATE OVERRIDE: $forcedate $time -----\n\n";} + } } } else @@ -148,11 +169,7 @@ $server_ip = $VARserver_ip; # Asterisk server IP if (!$VARDB_port) {$VARDB_port='3306';} -$secX = time(); -# $secX = '1079989363'; # epoch for March 22, 2993 -# $secX = '1097989363'; # epoch for October 17, 2004 - -($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($secX); +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time); $mon++; $year = ($year + 1900); if ($mon < 10) {$mon = "0$mon";} @@ -173,8 +190,7 @@ $stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERN $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; -$rec_countY=0; -while ($sthArows > $rec_countY) +if ($sthArows > 0) { @aryA = $sthA->fetchrow_array; $DBtelnet_host = "$aryA[0]"; @@ -199,7 +215,6 @@ while ($sthArows > $rec_countY) if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} if ($DBext_context) {$ext_context = $DBext_context;} - $rec_countY++; } $sthA->finish(); @@ -207,7 +222,7 @@ $LOCAL_GMT_OFF = $SERVER_GMT; $LOCAL_GMT_OFF_STD = $SERVER_GMT; if ($isdst) {$LOCAL_GMT_OFF++;} -if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} +if ($DB) {print "SEED TIME $time : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} if (length($singlelistid)> 0) {$listSQL = "where list_id='$singlelistid'"; $XlistSQL=" and list_id='$singlelistid' ";} else {$listSQL = ''; $XlistSQL='';} @@ -355,7 +370,7 @@ foreach (@phone_codes) else { $AC_GMT_diff = ($area_GMT - $LOCAL_GMT_OFF_STD); - $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + $AC_localtime = ($time + (3600 * $AC_GMT_diff)); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); $year = ($year + 1900); $mon++; @@ -537,7 +552,7 @@ foreach (@phone_codes) else { $AC_GMT_diff = ($area_GMT - $LOCAL_GMT_OFF_STD); - $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + $AC_localtime = ($time + (3600 * $AC_GMT_diff)); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); $year = ($year + 1900); $mon++; @@ -719,7 +734,7 @@ foreach (@phone_codes) else { $AC_GMT_diff = ($area_GMT - $LOCAL_GMT_OFF_STD); - $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + $AC_localtime = ($time + (3600 * $AC_GMT_diff)); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); $year = ($year + 1900); $mon++; @@ -877,6 +892,7 @@ exit; sub USACAN_dstcalc { #********************************************************************** # SSM-FSN +# USA and CANADA # This is returns 1 if Daylight Savings Time is in effect and 0 if # Standard time is in effect. # Based on Second Sunday March to First Sunday November at 2 am. @@ -971,6 +987,7 @@ sub USACAN_dstcalc { sub NA_dstcalc { #********************************************************************** # FSA-LSO +# Mexico and parts of North America # This is returns 1 if Daylight Savings Time is in effect and 0 if # Standard time is in effect. # Based on first Sunday in April and last Sunday in October at 2 am. @@ -1037,6 +1054,7 @@ sub NA_dstcalc { sub GBR_dstcalc { #********************************************************************** # LSM-LSO +# Europe # This is returns 1 if Daylight Savings Time is in effect and 0 if # Standard time is in effect. # Based on last Sunday in March and last Sunday in October at 1 am. @@ -1104,7 +1122,7 @@ sub GBR_dstcalc { sub AUS_dstcalc { #********************************************************************** -# LSO-LSM - Australia, for 2008-9 Western Australia only +# LSO-LSM - Australia, for 2008-9 Western Australia only (stopped in 2009) # This is returns 1 if Daylight Savings Time is in effect and 0 if # Standard time is in effect. # Based on last Sunday in October and last Sunday in March at 1 am. @@ -1174,7 +1192,7 @@ sub AUS_dstcalc { sub AUST_dstcalc { #********************************************************************** # FSO-LSM -# TASMANIA ONLY +# TASMANIA ONLY (stopped in 2008) # This is returns 1 if Daylight Savings Time is in effect and 0 if # Standard time is in effect. # Based on first Sunday in October and last Sunday in March at 1 am. @@ -1242,7 +1260,7 @@ sub AUST_dstcalc { sub AUSE_dstcalc { #********************************************************************** # FSO-FSA -# 2008+ EASTERN AUSTRALIA ONLY +# 2008+ AUSTRALIA ONLY (country code 61) # This is returns 1 if Daylight Savings Time is in effect and 0 if # Standard time is in effect. # Based on first Sunday in October and first Sunday in April at 1 am. @@ -1260,23 +1278,23 @@ sub AUSE_dstcalc { $AUSE_DST=0; return 0; } elsif ($mm == 4) { if ($dd > 7) { - $AUSE_DST=0; return 0; - } elsif ($dd >= ($dow+0)) { + $AUSE_DST=0; return 1; + } elsif ($dd >= ($dow+1)) { if ($timezone) { if ($dow == 0 && $ns < (3600+$timezone*3600)) { - $AUSE_DST=1; return 1; + $AUSE_DST=1; return 0; } else { - $AUSE_DST=0; return 0; + $AUSE_DST=0; return 1; } } else { - if ($dow == 0 && $ns < 3600) { - $AUSE_DST=1; return 1; + if ($dow == 0 && $ns < 7200) { + $AUSE_DST=1; return 0; } else { - $AUSE_DST=0; return 0; + $AUSE_DST=0; return 1; } } } else { - $AUSE_DST=0; return 0; + $AUSE_DST=1; return 0; } } elsif ($mm == 10) { if ($dd >= 8) { @@ -1307,7 +1325,7 @@ sub AUSE_dstcalc { sub NZL_dstcalc { #********************************************************************** -# FSO-TSM +# FSO-TSM (stopped in 2007) # This is returns 1 if Daylight Savings Time is in effect and 0 if # Standard time is in effect. # Based on first Sunday in October and third Sunday in March at 1 am. @@ -1374,7 +1392,7 @@ sub NZL_dstcalc { sub NZLN_dstcalc { #********************************************************************** # LSS-FSA -# 2007+ NEW ZEALAND +# 2007+ NEW ZEALAND (country code 64) # This is returns 1 if Daylight Savings Time is in effect and 0 if # Standard time is in effect. # Based on last Sunday in September and first Sunday in April at 1 am. @@ -1392,23 +1410,23 @@ sub NZLN_dstcalc { $NZLN_DST=0; return 0; } elsif ($mm == 4) { if ($dd > 7) { - $NZLN_DST=0; return 0; - } elsif ($dd >= ($dow+0)) { + $NZLN_DST=0; return 1; + } elsif ($dd >= ($dow+1)) { if ($timezone) { if ($dow == 0 && $ns < (3600+$timezone*3600)) { - $NZLN_DST=1; return 1; + $NZLN_DST=1; return 0; } else { - $NZLN_DST=0; return 0; + $NZLN_DST=0; return 1; } } else { - if ($dow == 0 && $ns < 3600) { - $NZLN_DST=1; return 1; + if ($dow == 0 && $ns < 7200) { + $NZLN_DST=1; return 0; } else { - $NZLN_DST=0; return 0; + $NZLN_DST=0; return 1; } } } else { - $NZLN_DST=0; return 0; + $NZLN_DST=1; return 0; } } elsif ($mm == 9) { if ($dd < 25) { @@ -1443,6 +1461,7 @@ sub NZLN_dstcalc { sub BZL_dstcalc { #********************************************************************** # TSO-LSF +# BRAZIL # This is returns 1 if Daylight Savings Time is in effect and 0 if # Standard time is in effect. Brazil # Based on Third Sunday October to Last Sunday February at 1 am. diff --git a/bin/ADMIN_area_code_populate.pl b/bin/ADMIN_area_code_populate.pl index e7b7da99..1696a828 100644 --- a/bin/ADMIN_area_code_populate.pl +++ b/bin/ADMIN_area_code_populate.pl @@ -23,7 +23,8 @@ # default path to astguiclient configuration file: $PATHconf = "/etc/astguiclient.conf"; $domain = "http://phonecodes.vicidial.com"; -$URL1 = "$domain/phone_codes_GMT-latest.txt"; +#$URL1 = "$domain/phone_codes_GMT-latest.txt"; +$URL1 = "$domain/phone_codes_GMT-latest-220.txt"; $URL2 = "$domain/GMT_USA_zip-latest.txt"; @@ -47,7 +48,7 @@ if (length($ARGV[0])>1) print " [--load-NANPA-prefix] = Only loads the special NANPA list into the database\n"; print " [--purge-table] = Purges the table to be inserted before inserting\n"; print "\n files used by this script are:\n"; - print " phone_codes_GMT-latest.txt - Phone codes and country codes with time zone data\n"; + print " phone_codes_GMT-latest-220.txt - Phone codes and country codes with time zone data\n"; print " GMT_USA_zip-latest.txt - USA zip code and time zone data\n"; print " NANPA_prefix-latest.txt - North American areacode, prefix and time zone data\n"; @@ -286,8 +287,8 @@ else `wget $URL2`; } - #### BEGIN vicidial_phone_codes population from phone_codes_GMT-latest.txt file #### - open(codefile, "$PATHhome/phone_codes_GMT-latest.txt") || die "can't open $PATHhome/phone_codes_GMT-latest.txt: $!\n"; + #### BEGIN vicidial_phone_codes population from phone_codes_GMT-latest-220.txt file #### + open(codefile, "$PATHhome/phone_codes_GMT-latest-220.txt") || die "can't open $PATHhome/phone_codes_GMT-latest-220.txt: $!\n"; @codefile = ; close(codefile); if ( ($purge_table > 0) && ($#codefile > 10) ) diff --git a/bin/VICIDIAL_IN_new_leads_file.pl b/bin/VICIDIAL_IN_new_leads_file.pl index ddd7807f..cea3d62d 100644 --- a/bin/VICIDIAL_IN_new_leads_file.pl +++ b/bin/VICIDIAL_IN_new_leads_file.pl @@ -8,7 +8,7 @@ # # It is recommended that you run this program on the local Asterisk machine # -# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # # CHANGES @@ -40,6 +40,7 @@ # 90830-0953 - Added forcelistfilename option # 91112-0645 - Added title/alt_phone duplicate checks # 91129-2202 - removed SELECT STAR and formatting fixes +# 100118-0527 - Added new Australian and New Zealand DST schemes (FSO-FSA and LSS-FSA) # $secX = time(); @@ -1247,6 +1248,14 @@ foreach(@FILES) if ($AUST_DST) {$gmt_offset++;} $AC_processed++; } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-FSA/) ) + { + if ($DBX) {print " First Sunday October to First Sunday April\n";} + &AUSE_dstcalc; + if ($DBX) {print " DST: $AUSE_DST\n";} + if ($AUSE_DST) {$area_GMT++;} + $AC_processed++; + } if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) { if ($DBX) {print " First Sunday October to Third Sunday March\n";} @@ -1255,6 +1264,14 @@ foreach(@FILES) if ($NZL_DST) {$gmt_offset++;} $AC_processed++; } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSS-FSA/) ) + { + if ($DBX) {print " Last Sunday September to First Sunday April\n";} + &NZLN_dstcalc; + if ($DBX) {print " DST: $NZLN_DST\n";} + if ($NZLN_DST) {$area_GMT++;} + $AC_processed++; + } if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) { if ($DBX) {print " Third Sunday October to Last Sunday February\n";} @@ -1791,6 +1808,72 @@ sub AUST_dstcalc { +sub AUSE_dstcalc { +#********************************************************************** +# FSO-FSA +# 2008+ AUSTRALIA ONLY (country code 61) +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and first Sunday in April at 1 am. +#********************************************************************** + + $AUSE_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $AUSE_DST=1; return 1; + } elsif ($mm >= 5 && $mm <= 9) { + $AUSE_DST=0; return 0; + } elsif ($mm == 4) { + if ($dd > 7) { + $AUSE_DST=0; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (3600+$timezone*3600)) { + $AUSE_DST=1; return 0; + } else { + $AUSE_DST=0; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $AUSE_DST=1; return 0; + } else { + $AUSE_DST=0; return 1; + } + } + } else { + $AUSE_DST=1; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUSE_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUSE_DST=0; return 0; + } else { + $AUSE_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUSE_DST=0; return 0; + } else { + $AUSE_DST=1; return 1; + } + } + } else { + $AUSE_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + sub NZL_dstcalc { #********************************************************************** # FSO-TSM @@ -1857,6 +1940,74 @@ sub NZL_dstcalc { +sub NZLN_dstcalc { +#********************************************************************** +# LSS-FSA +# 2007+ NEW ZEALAND (country code 64) +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in September and first Sunday in April at 1 am. +#********************************************************************** + + $NZLN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 9) { + $NZLN_DST=1; return 1; + } elsif ($mm >= 5 && $mm <= 9) { + $NZLN_DST=0; return 0; + } elsif ($mm == 4) { + if ($dd > 7) { + $NZLN_DST=0; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (3600+$timezone*3600)) { + $NZLN_DST=1; return 0; + } else { + $NZLN_DST=0; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NZLN_DST=1; return 0; + } else { + $NZLN_DST=0; return 1; + } + } + } else { + $NZLN_DST=1; return 0; + } + } elsif ($mm == 9) { + if ($dd < 25) { + $NZLN_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $NZLN_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZLN_DST=0; return 0; + } else { + $NZLN_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $NZLN_DST=0; return 0; + } else { + $NZLN_DST=1; return 1; + } + } + } else { + $NZLN_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + sub BZL_dstcalc { #********************************************************************** # TSO-LSF diff --git a/extras/UTF8_lead_file.txt b/extras/UTF8_lead_file.txt index 06e3f49a..d0c81500 100644 --- a/extras/UTF8_lead_file.txt +++ b/extras/UTF8_lead_file.txt @@ -1,13 +1,13 @@ 100001|10001|108|1|7275551213|MR|GREEK|P|Ενεργές|249 τηλ. συνδέσεις|||Καταγραμμένων|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|Ελεγχος τηλ.σύνδεσης διάσκεψης -100002|10002|108|1|7275551213|MR|FRENCH|P|Vous êtes|249 maintenant déconnecté|||Numéro|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|VOUS DEVEZ ÊTRE Français -100003|10003|108|1|7275551213|MR|SPANISH|P|Español|249 LA GRABACIÓN DURARÁ|||Inválido|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|Inválido -100004|10004|108|1|7275551213|MR|RUSSIAN|P|языки|249 здравствулте! там|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|добро пожаловать -100005|10005|108|1|7275551213|MR|ARABIC|P|مرحبا|249 مرحبا هناك|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|اللغات -100006|10006|108|1|7275551213|MR|HEBREW|P|שפה, לשון|249 ברכת שלום, שלום, הלו|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|ברכת "ברוך הבא", קריאת ברכה לאורח או לפנים חדשות -100007|10007|108|1|7275551213|MR|BULGARIAN|P|здравей!|249 говор|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|добре дошъл домашно огнище -100007|10007|108|1|7275551213|MR|GERMAN|P|größer|249 Mädchen|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|Mais im Alter von Kartoffel-Käse-Salat-türig -100001|10001|108|1|7275551213|MR|GREEK|P|Ενεργές|249 τηλ. συνδέσεις|||Καταγραμμένων|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|Ελεγχος τηλ.σύνδεσης διάσκεψης -100002|10002|108|1|7275551213|MR|FRENCH|P|Vous êtes|249 maintenant déconnecté|||Numéro|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|VOUS DEVEZ ÊTRE Français +100002|10002|108|44|7275551213|MR|FRENCH|P|Vous êtes|249 maintenant déconnecté|||Numéro|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|England|VOUS DEVEZ ÊTRE Français +100003|10003|108|61|864886000|MR|SPANISH|P|Español|249 LA GRABACIÓN DURARÁ|||Inválido|WA|AUS|33709|USA|M|1970-01-01|7275551212|test@test.com|WestAustralia|Inválido +100004|10004|108|61|740421111|MR|RUSSIAN|P|языки|249 здравствулте! там|||MALDON|QL|AUS|33709|USA|M|1970-01-01|7275551212|test@test.com|Queensland|добро пожаловать +100005|10005|108|61|292507250|MR|ARABIC|P|مرحبا|249 مرحبا هناك|||MALDON|NS|AUS|33709|USA|M|1970-01-01|7275551212|test@test.com|NewSouthWales|اللغات +100006|10006|108|64|93737999|MR|HEBREW|P|שפה, לשון|249 ברכת שלום, שלום, הלו|||MALDON|FL|NZL|33709|USA|M|1970-01-01|7275551212|test@test.com|AuklandNewZealand|ברכת "ברוך הבא", קריאת ברכה לאורח או לפנים חדשות +100007|10007|108|61|362262999|MR|BULGARIAN|P|здравей!|249 говор|||MALDON|TA|AUS|33709|USA|M|1970-01-01|7275551212|test@test.com|Tasmania|добре дошъл домашно огнище +100007|10007|108|39|286955277|MR|GERMAN|P|größer|249 Mädchen|||MALDON|FL|ITA|33709|USA|M|1970-01-01|7275551212|test@test.com|MilanItaly|Mais im Alter von Kartoffel-Käse-Salat-türig +100001|10001|108|61|889466666|MR|GREEK|P|Ενεργές|249 τηλ. συνδέσεις|||Καταγραμμένων|NT|AUS|33709|USA|M|1970-01-01|7275551212|test@test.com|NorthernTerritory|Ελεγχος τηλ.σύνδεσης διάσκεψης +100002|10002|108|61|883026611|MR|FRENCH|P|Vous êtes|249 maintenant déconnecté|||Numéro|SA|AUS|33709|USA|M|1970-01-01|7275551212|test@test.com|SouthAustralia|VOUS DEVEZ ÊTRE Français 100003|10003|108|1|7275551213|MR|SPANISH|P|Español|249 LA GRABACIÓN DURARÁ|||Inválido|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|Inválido 100004|10004|108|1|7275551213|MR|RUSSIAN|P|языки|249 здравствулте! там|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|добро пожаловать 100005|10005|108|1|7275551213|MR|ARABIC|P|مرحبا|249 مرحبا هناك|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|اللغات diff --git a/www/vicidial/AST_DIDstats.php b/www/vicidial/AST_DIDstats.php index 330dacf4..875aacc7 100644 --- a/www/vicidial/AST_DIDstats.php +++ b/www/vicidial/AST_DIDstats.php @@ -402,8 +402,8 @@ else $stmt="select did_route from vicidial_inbound_dids where did_pattern='default';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} - $records_to_grab = mysql_num_rows($rslt); - if ($records_to_grab > 0) + $Drecords_to_grab = mysql_num_rows($rslt); + if ($Drecords_to_grab > 0) { $row=mysql_fetch_row($rslt); $default_route = $row[0]; diff --git a/www/vicidial/listloader.pl b/www/vicidial/listloader.pl index 052d93e0..72094d84 100644 --- a/www/vicidial/listloader.pl +++ b/www/vicidial/listloader.pl @@ -2,7 +2,7 @@ # # listloader.pl version 2.2.0 # -# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell,Joe Johnson LICENSE: AGPLv2 # # # CHANGES @@ -21,6 +21,7 @@ # 80713-0023 - added last_local_call_time field default of 2008-01-01 # 90721-1425 - Added rank and owner as vicidial_list fields # 91112-0616 - Added title/alt-phone duplicate checking +# 100118-0537 - Added new Australian and New Zealand DST schemes (FSO-FSA and LSS-FSA) # ### begin parsing run-time options ### @@ -598,6 +599,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($AUST_DST) {$gmt_offset++;} $AC_processed++; } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-FSA/) ) + { + if ($DBX) {print " First Sunday October to First Sunday April\n";} + &AUSE_dstcalc; + if ($DBX) {print " DST: $AUSE_DST\n";} + if ($AUSE_DST) {$area_GMT++;} + $AC_processed++; + } if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) { if ($DBX) {print " First Sunday October to Third Sunday March\n";} @@ -606,6 +615,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($NZL_DST) {$gmt_offset++;} $AC_processed++; } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSS-FSA/) ) + { + if ($DBX) {print " Last Sunday September to First Sunday April\n";} + &NZLN_dstcalc; + if ($DBX) {print " DST: $NZLN_DST\n";} + if ($NZLN_DST) {$area_GMT++;} + $AC_processed++; + } if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) { if ($DBX) {print " Third Sunday October to Last Sunday February\n";} @@ -1028,6 +1045,72 @@ sub AUST_dstcalc { +sub AUSE_dstcalc { +#********************************************************************** +# FSO-FSA +# 2008+ AUSTRALIA ONLY (country code 61) +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and first Sunday in April at 1 am. +#********************************************************************** + + $AUSE_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $AUSE_DST=1; return 1; + } elsif ($mm >= 5 && $mm <= 9) { + $AUSE_DST=0; return 0; + } elsif ($mm == 4) { + if ($dd > 7) { + $AUSE_DST=0; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (3600+$timezone*3600)) { + $AUSE_DST=1; return 0; + } else { + $AUSE_DST=0; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $AUSE_DST=1; return 0; + } else { + $AUSE_DST=0; return 1; + } + } + } else { + $AUSE_DST=1; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUSE_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUSE_DST=0; return 0; + } else { + $AUSE_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUSE_DST=0; return 0; + } else { + $AUSE_DST=1; return 1; + } + } + } else { + $AUSE_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + sub NZL_dstcalc { #********************************************************************** # FSO-TSM @@ -1094,6 +1177,74 @@ sub NZL_dstcalc { +sub NZLN_dstcalc { +#********************************************************************** +# LSS-FSA +# 2007+ NEW ZEALAND (country code 64) +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in September and first Sunday in April at 1 am. +#********************************************************************** + + $NZLN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 9) { + $NZLN_DST=1; return 1; + } elsif ($mm >= 5 && $mm <= 9) { + $NZLN_DST=0; return 0; + } elsif ($mm == 4) { + if ($dd > 7) { + $NZLN_DST=0; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (3600+$timezone*3600)) { + $NZLN_DST=1; return 0; + } else { + $NZLN_DST=0; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NZLN_DST=1; return 0; + } else { + $NZLN_DST=0; return 1; + } + } + } else { + $NZLN_DST=1; return 0; + } + } elsif ($mm == 9) { + if ($dd < 25) { + $NZLN_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $NZLN_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZLN_DST=0; return 0; + } else { + $NZLN_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $NZLN_DST=0; return 0; + } else { + $NZLN_DST=1; return 1; + } + } + } else { + $NZLN_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + sub BZL_dstcalc { #********************************************************************** # TSO-LSF diff --git a/www/vicidial/listloader_super.pl b/www/vicidial/listloader_super.pl index 9b09bba7..93bfa20e 100644 --- a/www/vicidial/listloader_super.pl +++ b/www/vicidial/listloader_super.pl @@ -2,7 +2,7 @@ # # listloader_super.pl version 2.2.0 # -# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell,Joe Johnson LICENSE: AGPLv2 # # # CHANGES @@ -20,6 +20,7 @@ # 80713-0023 - added last_local_call_time field default of 2008-01-01 # 90721-1341 - Added rank and owner as vicidial_list fields # 91112-0616 - Added title/alt-phone duplicate checking +# 100118-0539 - Added new Australian and New Zealand DST schemes (FSO-FSA and LSS-FSA) # ### begin parsing run-time options ### @@ -600,6 +601,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($AUST_DST) {$gmt_offset++;} $AC_processed++; } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-FSA/) ) + { + if ($DBX) {print " First Sunday October to First Sunday April\n";} + &AUSE_dstcalc; + if ($DBX) {print " DST: $AUSE_DST\n";} + if ($AUSE_DST) {$area_GMT++;} + $AC_processed++; + } if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) { if ($DBX) {print " First Sunday October to Third Sunday March\n";} @@ -608,6 +617,14 @@ foreach $oWkS (@{$oBook->{Worksheet}}) { if ($NZL_DST) {$gmt_offset++;} $AC_processed++; } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSS-FSA/) ) + { + if ($DBX) {print " Last Sunday September to First Sunday April\n";} + &NZLN_dstcalc; + if ($DBX) {print " DST: $NZLN_DST\n";} + if ($NZLN_DST) {$area_GMT++;} + $AC_processed++; + } if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) { if ($DBX) {print " Third Sunday October to Last Sunday February\n";} @@ -1030,6 +1047,72 @@ sub AUST_dstcalc { +sub AUSE_dstcalc { +#********************************************************************** +# FSO-FSA +# 2008+ AUSTRALIA ONLY (country code 61) +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and first Sunday in April at 1 am. +#********************************************************************** + + $AUSE_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $AUSE_DST=1; return 1; + } elsif ($mm >= 5 && $mm <= 9) { + $AUSE_DST=0; return 0; + } elsif ($mm == 4) { + if ($dd > 7) { + $AUSE_DST=0; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (3600+$timezone*3600)) { + $AUSE_DST=1; return 0; + } else { + $AUSE_DST=0; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $AUSE_DST=1; return 0; + } else { + $AUSE_DST=0; return 1; + } + } + } else { + $AUSE_DST=1; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUSE_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUSE_DST=0; return 0; + } else { + $AUSE_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUSE_DST=0; return 0; + } else { + $AUSE_DST=1; return 1; + } + } + } else { + $AUSE_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + sub NZL_dstcalc { #********************************************************************** # FSO-TSM @@ -1096,6 +1179,74 @@ sub NZL_dstcalc { +sub NZLN_dstcalc { +#********************************************************************** +# LSS-FSA +# 2007+ NEW ZEALAND (country code 64) +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in September and first Sunday in April at 1 am. +#********************************************************************** + + $NZLN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 9) { + $NZLN_DST=1; return 1; + } elsif ($mm >= 5 && $mm <= 9) { + $NZLN_DST=0; return 0; + } elsif ($mm == 4) { + if ($dd > 7) { + $NZLN_DST=0; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (3600+$timezone*3600)) { + $NZLN_DST=1; return 0; + } else { + $NZLN_DST=0; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NZLN_DST=1; return 0; + } else { + $NZLN_DST=0; return 1; + } + } + } else { + $NZLN_DST=1; return 0; + } + } elsif ($mm == 9) { + if ($dd < 25) { + $NZLN_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $NZLN_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZLN_DST=0; return 0; + } else { + $NZLN_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $NZLN_DST=0; return 0; + } else { + $NZLN_DST=1; return 1; + } + } + } else { + $NZLN_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + sub BZL_dstcalc { #********************************************************************** # TSO-LSF diff --git a/www/vicidial/new_listloader_superL.php b/www/vicidial/new_listloader_superL.php index 0e36b8de..703df895 100644 --- a/www/vicidial/new_listloader_superL.php +++ b/www/vicidial/new_listloader_superL.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell,Joe Johnson LICENSE: AGPLv2 # # AST GUI lead loader from formatted file # @@ -29,11 +29,12 @@ # 90522-0506 - Security fix # 90721-1339 - Added rank and owner as vicidial_list fields # 91112-0616 - Added title/alt-phone duplicate checking +# 100118-0543 - Added new Australian and New Zealand DST schemes (FSO-FSA and LSS-FSA) # # make sure vicidial_list exists and that your file follows the formatting correctly. This page does not dedupe or do any other lead filtering actions yet at this time. -$version = '2.2.0-33'; -$build = '91112-0616'; +$version = '2.2.0-34'; +$build = '100118-0543'; require("dbconnect.php"); @@ -2107,6 +2108,74 @@ if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) if ($AUST_DST) {$gmt_offset++;} $AC_processed++; } + +if ( (!$AC_processed) and ($dst_range == 'FSO-FSA') ) + { + if ($DBX) {print " Sunday in October to First Sunday in April\n";} + #********************************************************************** + # FSO-FSA + # 2008+ AUSTRALIA ONLY (country code 61) + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and first Sunday in April at 1 am. + #********************************************************************** + + $AUSE_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 or $mm > 10) { + $AUSE_DST=1; + } elseif ($mm >= 5 and $mm <= 9) { + $AUSE_DST=0; + } elseif ($mm == 4) { + if ($dd > 7) { + $AUSE_DST=0; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (3600+$timezone*3600)) { + $AUSE_DST=1; + } else { + $AUSE_DST=0; + } + } else { + if ($dow == 0 and $ns < 7200) { + $AUSE_DST=1; + } else { + $AUSE_DST=0; + } + } + } else { + $AUSE_DST=1; + } + } elseif ($mm == 10) { + if ($dd >= 8) { + $AUSE_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUSE_DST=0; + } else { + $AUSE_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUSE_DST=0; + } else { + $AUSE_DST=1; + } + } + } else { + $AUSE_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUSE_DST\n";} + if ($AUSE_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) { if ($DBX) {print " First Sunday October to Third Sunday March\n";} @@ -2174,6 +2243,75 @@ if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) $AC_processed++; } +if ( (!$AC_processed) and ($dst_range == 'LSS-FSA') ) + { + if ($DBX) {print " Last Sunday in September to First Sunday in April\n";} + #********************************************************************** + # LSS-FSA + # 2007+ NEW ZEALAND (country code 64) + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in September and first Sunday in April at 1 am. + #********************************************************************** + + $NZLN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 9) { + $NZLN_DST=1; + } elseif ($mm >= 5 && $mm <= 9) { + $NZLN_DST=0; + } elseif ($mm == 4) { + if ($dd > 7) { + $NZLN_DST=0; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (3600+$timezone*3600)) { + $NZLN_DST=1; + } else { + $NZLN_DST=0; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NZLN_DST=1; + } else { + $NZLN_DST=0; + } + } + } else { + $NZLN_DST=1; + } + } elseif ($mm == 9) { + if ($dd < 25) { + $NZLN_DST=0; + } elseif ($dd < ($dow+25)) { + $NZLN_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZLN_DST=0; + } else { + $NZLN_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $NZLN_DST=0; + } else { + $NZLN_DST=1; + } + } + } else { + $NZLN_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $NZLN_DST\n";} + if ($NZLN_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) { if ($DBX) {print " Third Sunday October to Last Sunday February\n";} diff --git a/www/vicidial/non_agent_api.php b/www/vicidial/non_agent_api.php index b64ab4c0..bb8807fe 100644 --- a/www/vicidial/non_agent_api.php +++ b/www/vicidial/non_agent_api.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # This script is designed as an API(Application Programming Interface) to allow # other programs to interact with all non-agent-screen VICIDIAL functions @@ -30,10 +30,11 @@ # 91026-1059 - Added AREACODE DNC option # 91203-1140 - Added agent_ingroup_info feature # 91216-0331 - Added duplication check features to add_lead function +# 100118-0543 - Added new Australian and New Zealand DST schemes (FSO-FSA and LSS-FSA) # -$version = '2.2.0-16'; -$build = '91216-0331'; +$version = '2.2.0-17'; +$build = '100118-0543'; require("dbconnect.php"); @@ -2046,6 +2047,74 @@ if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) if ($AUST_DST) {$gmt_offset++;} $AC_processed++; } + +if ( (!$AC_processed) and ($dst_range == 'FSO-FSA') ) + { + if ($DBX) {print " Sunday in October to First Sunday in April\n";} + #********************************************************************** + # FSO-FSA + # 2008+ AUSTRALIA ONLY (country code 61) + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and first Sunday in April at 1 am. + #********************************************************************** + + $AUSE_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 or $mm > 10) { + $AUSE_DST=1; + } elseif ($mm >= 5 and $mm <= 9) { + $AUSE_DST=0; + } elseif ($mm == 4) { + if ($dd > 7) { + $AUSE_DST=0; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (3600+$timezone*3600)) { + $AUSE_DST=1; + } else { + $AUSE_DST=0; + } + } else { + if ($dow == 0 and $ns < 7200) { + $AUSE_DST=1; + } else { + $AUSE_DST=0; + } + } + } else { + $AUSE_DST=1; + } + } elseif ($mm == 10) { + if ($dd >= 8) { + $AUSE_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUSE_DST=0; + } else { + $AUSE_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUSE_DST=0; + } else { + $AUSE_DST=1; + } + } + } else { + $AUSE_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUSE_DST\n";} + if ($AUSE_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) { if ($DBX) {print " First Sunday October to Third Sunday March\n";} @@ -2113,6 +2182,75 @@ if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) $AC_processed++; } +if ( (!$AC_processed) and ($dst_range == 'LSS-FSA') ) + { + if ($DBX) {print " Last Sunday in September to First Sunday in April\n";} + #********************************************************************** + # LSS-FSA + # 2007+ NEW ZEALAND (country code 64) + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in September and first Sunday in April at 1 am. + #********************************************************************** + + $NZLN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 9) { + $NZLN_DST=1; + } elseif ($mm >= 5 && $mm <= 9) { + $NZLN_DST=0; + } elseif ($mm == 4) { + if ($dd > 7) { + $NZLN_DST=0; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (3600+$timezone*3600)) { + $NZLN_DST=1; + } else { + $NZLN_DST=0; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NZLN_DST=1; + } else { + $NZLN_DST=0; + } + } + } else { + $NZLN_DST=1; + } + } elseif ($mm == 9) { + if ($dd < 25) { + $NZLN_DST=0; + } elseif ($dd < ($dow+25)) { + $NZLN_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZLN_DST=0; + } else { + $NZLN_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $NZLN_DST=0; + } else { + $NZLN_DST=1; + } + } + } else { + $NZLN_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $NZLN_DST\n";} + if ($NZLN_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) { if ($DBX) {print " Third Sunday October to Last Sunday February\n";}