X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FCron%2Fnotify.pm;h=5b0e186adf0ba8f9b2c14db4c20cbc8a9e324fad;hb=7b125e587a4d1ee0aca692e23ea7897f671855ae;hp=622f15f6b4e658ccdf229fa3945262db75edf34c;hpb=c8f56207c0c8ee26b62824064e59d5952c20f70b;p=freeside.git diff --git a/FS/FS/Cron/notify.pm b/FS/FS/Cron/notify.pm index 622f15f6b..5b0e186ad 100644 --- a/FS/FS/Cron/notify.pm +++ b/FS/FS/Cron/notify.pm @@ -3,7 +3,7 @@ package FS::Cron::notify; use strict; use vars qw( @ISA @EXPORT_OK $DEBUG ); use Exporter; -use FS::UID qw( dbh ); +use FS::UID qw( dbh driver_name ); use FS::Record qw(qsearch); use FS::cust_main; use FS::cust_pkg; @@ -22,6 +22,8 @@ sub notify_flat_delay { #we're at now now (and later). my($time) = $^T; + my $integer = driver_name =~ /^mysql/ ? 'SIGNED' : 'INTEGER'; + # select * from cust_pkg where my $where_pkg = <<"END"; where ( cancel is null or cancel = 0 ) @@ -30,23 +32,29 @@ sub notify_flat_delay { 0 < ( select count(*) from part_pkg where cust_pkg.pkgpart = part_pkg.pkgpart and part_pkg.plan = 'flat_delayed' - and 0 < ( select count (*) from part_pkg_option + and 0 < ( select count(*) from part_pkg_option where part_pkg.pkgpart = part_pkg_option.pkgpart and part_pkg_option.optionname = 'recur_notify' - and part_pkg_option.optionvalue > 0 - and 0 <= $time - + cast(part_pkg_option.optionvalue as integer) - * 86400 - - cust_pkg.bill + and CAST( part_pkg_option.optionvalue AS INTEGER ) > 0 + and 0 <= ( $time + + CAST( part_pkg_option.optionvalue AS $integer ) + * 86400 + - cust_pkg.bill + ) and ( cust_pkg.expire is null - or cust_pkg.expire > $time - + cast(part_pkg_option.optionvalue as integer) - * 86400 -/* and ( cust_pkg.adjourn is null - or cust_pkg.adjourn > $time --- Should notify suspended ones + cast(part_pkg_option.optionvalue as integer) - * 86400 -*/ + or cust_pkg.expire > ( $time + + CAST( part_pkg_option.optionvalue AS $integer ) + * 86400 + ) +END + +#/* and ( cust_pkg.adjourn is null +# or cust_pkg.adjourn > $time +#-- Should notify suspended ones + cast(part_pkg_option.optionvalue as $integer) +# * 86400 +#*/ + + $where_pkg .= <<"END"; ) ) ) @@ -54,7 +62,7 @@ sub notify_flat_delay { 0 = ( select count(*) from cust_pkg_option where cust_pkg.pkgnum = cust_pkg_option.pkgnum and cust_pkg_option.optionname = 'impending_recur_notification_sent' - and cust_pkg_option.optionvalue = 1 + and CAST( cust_pkg_option.optionvalue AS INTEGER ) = 1 ) END