X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2Fbin%2Ffreeside-prepaidd;h=cb831543597c806dc424c4e89f04483d83684327;hp=73f7523c4b28e208f3e34e1ea1fb7cd7fdb39300;hb=f822e27a1e00594332ffa487a1c284234c5580a6;hpb=7b28c0c12fe5e623324102a5ee4114f42b5ede3e diff --git a/FS/bin/freeside-prepaidd b/FS/bin/freeside-prepaidd index 73f7523c4..cb8315435 100644 --- a/FS/bin/freeside-prepaidd +++ b/FS/bin/freeside-prepaidd @@ -4,6 +4,7 @@ use strict; use FS::Daemon qw(daemonize1 drop_root logfile daemonize2 sigint sigterm); use FS::UID qw(adminsuidsetup); use FS::Record qw(qsearch qsearchs); +use FS::Conf; use FS::cust_pkg; my $user = shift or die &usage; @@ -15,7 +16,7 @@ drop_root(); adminsuidsetup($user); -logfile( "/usr/local/etc/freeside/prepaidd-log.". $FS::UID::datasrc ); +logfile( "%%%FREESIDE_LOG%%%/prepaidd-log.". $FS::UID::datasrc ); daemonize2(); @@ -41,20 +42,33 @@ while (1) { my $work_cust_pkg = $cust_pkg; my $cust_main = $cust_pkg->cust_main; - if ( $cust_main->total_unapplied_payments > 0 - or $cust_main->total_credited > 0 + + #insurance: somehow winding up here without things properly applied... + my $a_error = $cust_main->apply_payments_and_credits; + if ( $a_error ) { + warn "Error applying payments&credits, customer #". $cust_main->custnum; + next; + } + + if ( ( $cust_main->total_unapplied_payments > 0 + || $cust_main->total_unapplied_credits > 0 + ) + && ! FS::Conf->new->exists('prepaid-never_renew') ) { + #this needs a flag to say only do the prepaid packages... # and only try em if the renewal price matches.. but this will do for now my $b_error = $cust_main->bill; if ( $b_error ) { warn "Error billing customer #". $cust_main->custnum; - next; + next; + } + $b_error = $cust_main->apply_payments_and_credits; + if ( $b_error ) { + warn "Error applying payments&credits, customer #". $cust_main->custnum; + next; } - #$b_error = $cust_main->apply_payments_and_credits; - $b_error = $cust_main->apply_payments; - $b_error = $cust_main->apply_credits; $work_cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $work_cust_pkg->pkgnum } ); @@ -74,7 +88,7 @@ while (1) { } die "exiting" if sigterm() || sigint(); - sleep 5; + sleep 60; }