X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FCron%2Fnotify.pm;h=dcc7b30fe215fadece0316421c5b9d6b82aad9d8;hb=01978afbd19eeebf30398df3d61052f14824d794;hp=23cf920b2dd9d74029cc9ba971db86360097e33e;hpb=c648976f0b7975f2328ebd7ba8c711fad0ca4195;p=freeside.git diff --git a/FS/FS/Cron/notify.pm b/FS/FS/Cron/notify.pm index 23cf920b2..dcc7b30fe 100644 --- a/FS/FS/Cron/notify.pm +++ b/FS/FS/Cron/notify.pm @@ -4,7 +4,7 @@ use strict; use vars qw( @ISA @EXPORT_OK $DEBUG ); use Exporter; use FS::UID qw( dbh driver_name ); -use FS::Record qw(qsearch); +use FS::Record qw(qsearch qsearchs); use FS::cust_main; use FS::cust_pkg; @@ -21,6 +21,8 @@ sub notify_flat_delay { #we're at now now (and later). my($time) = $^T; + my $conf = new FS::Conf; + my $error = ''; my $integer = driver_name =~ /^mysql/ ? 'SIGNED' : 'INTEGER'; @@ -35,7 +37,7 @@ sub notify_flat_delay { 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 CAST( part_pkg_option.optionvalue AS INTEGER ) > 0 and 0 <= ( $time + CAST( part_pkg_option.optionvalue AS $integer ) * 86400 @@ -62,7 +64,7 @@ END 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 @@ -101,14 +103,22 @@ END push @cust_pkgs, $cust_pkg[0]; shift @cust_pkg; } - my $error = - $cust_main->notify( 'impending_recur_template', + my $msgnum = $conf->config('impending_recur_msgnum',$cust_main->agentnum); + if ( $msgnum ) { + my $msg_template = qsearchs('msg_template', { msgnum => $msgnum }); + $cust_main->setfield('packages', \\@packages); + $cust_main->setfield('recurdates', \\@recurdates); + $error = $msg_template->send('cust_main' => $cust_main); + } + else { + $error = $cust_main->notify( 'impending_recur_template', 'extra_fields' => { 'packages' => \@packages, 'recurdates' => \@recurdates, 'package' => $packages[0], 'recurdate' => $recurdates[0], }, ); + } #if $msgnum warn "Error notifying, custnum ". $cust_main->custnum. ": $error" if $error; unless ($error) {