X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2Fbin%2Ffreeside-cdrd;fp=FS%2Fbin%2Ffreeside-cdrd;h=882fd5402a50502e2e06a7d0df9a5d86e8c965e3;hp=ef420b53b72fd08498ae636d244db4ed787ba2a7;hb=e95a136f9dae69525dd926ce4d3314e407a567c9;hpb=a20987ec5ea35450afbf311829e48e507099dad4 diff --git a/FS/bin/freeside-cdrd b/FS/bin/freeside-cdrd index ef420b53b..882fd5402 100644 --- a/FS/bin/freeside-cdrd +++ b/FS/bin/freeside-cdrd @@ -1,7 +1,7 @@ #!/usr/bin/perl -w use strict; -use FS::Daemon qw(daemonize1 drop_root logfile daemonize2 sigint sigterm); +use FS::Daemon ':all'; #daemonize1 drop_root daemonize2 myexit logfile sig* use FS::UID qw(adminsuidsetup); use FS::Record qw(qsearch ); #qsearchs); #use FS::cdr; @@ -20,6 +20,9 @@ logfile( "%%%FREESIDE_LOG%%%/cdrd-log.". $FS::UID::datasrc ); daemonize2(); +die "not running; no voip_cdr package defs w/ bill_every_call and customer pkgs" + unless _shouldrun(); + #-- my $addl_from = @@ -66,7 +69,7 @@ while (1) { $found = 1; - my $work_cust_pkg = $cust_pkg; + #my $work_cust_pkg = $cust_pkg; my $cust_main = $cust_pkg->cust_main; @@ -81,13 +84,35 @@ while (1) { } - die "exiting" if sigterm() || sigint(); + myexit() if sigterm() || sigint(); sleep 5; # unless $found; } #-- +sub _shouldrun { + + my $extra_sql = + ' AND 0 < ( SELECT COUNT(*) FROM cust_pkg + WHERE cust_pkg.pkgpart = part_pkg.pkgpart + AND ( cust_pkg.cancel IS NULL OR cust_pkg.cancel = 0 ) + ) + '; + + my @part_pkg = + grep $_->option('bill_every_call', 'hush'), + qsearch({ + 'table' => 'part_pkg', + 'hashref' => { 'plan' => 'voip_cdr' }, + 'extra_sql' => $extra_sql, + }) + ; + + scalar(@part_pkg); + +} + sub usage { die "Usage:\n\n freeside-prepaidd user\n"; }