[Astpp-commit] SF.net SVN: astpp:[2188] trunk
Brought to you by:
darrenkw
From: <dar...@us...> - 2008-08-23 16:02:32
|
Revision: 2188 http://astpp.svn.sourceforge.net/astpp/?rev=2188&view=rev Author: darrenkw Date: 2008-08-23 16:02:39 +0000 (Sat, 23 Aug 2008) Log Message: ----------- Commit patch for the following feature request. Will require more testing. [ 2033328 ] Generate invoices on selected time period Modified Paths: -------------- trunk/astpp-common.pl trunk/astpp-generate-invoices.pl Modified: trunk/astpp-common.pl =================================================================== --- trunk/astpp-common.pl 2008-07-03 00:06:16 UTC (rev 2187) +++ trunk/astpp-common.pl 2008-08-23 16:02:39 UTC (rev 2188) @@ -4475,12 +4475,34 @@ } sub osc_charges() { - my ($astpp_db, $osc_db, $config, $account) = @_; + my ($astpp_db, $osc_db, $config, $account, $params) = @_; my ( $invoice_id, $country_id, $zone_id, $tmp, $sql, $row, $cdr_count ); + if ($params->{startdate} && $params->{enddate}) { $tmp = "SELECT COUNT(*) FROM cdrs WHERE cardnum = " . $astpp_db->quote($account) + . " AND status = 0" + . " AND callstart >= DATE(" . $astpp_db->quote($params->{startdate}) . ")" + . " AND callstart <= DATE(" . $astpp_db->quote($params->{enddate}) . ")"; + } elsif ($params->{startdate}) { + $tmp = + "SELECT COUNT(*) FROM cdrs WHERE cardnum = " + . $astpp_db->quote($account) + . " AND status = 0" + . " AND callstart >= DATE(" . $astpp_db->quote($params->{startdate}) . ")"; + } elsif ($params->{enddate}) { + $tmp = + "SELECT COUNT(*) FROM cdrs WHERE cardnum = " + . $astpp_db->quote($account) + . " AND status = 0" + . " AND callstart <= DATE(" . $astpp_db->quote($params->{enddate}) . ")"; + } else { + $tmp = + "SELECT COUNT(*) FROM cdrs WHERE cardnum = " + . $astpp_db->quote($account) . " AND status = 0"; + } + print STDERR "$tmp \n"; $sql = $astpp_db->prepare($tmp); $sql->execute; @@ -4497,10 +4519,35 @@ ( $invoice_id, $country_id, $zone_id ) = &osc_create_invoice($astpp_db, $osc_db, $config, $account); if ($invoice_id) { - $tmp = - "SELECT * FROM cdrs WHERE cardnum = " - . $astpp_db->quote($account) - . " AND status = 0 ORDER BY callstart"; + if ($params->{startdate} && $params->{enddate}) { + $tmp = + "SELECT COUNT(*) FROM cdrs WHERE cardnum = " + . $astpp_db->quote($account) + . " AND status = 0" + . " AND callstart >= DATE(" . $astpp_db->quote($params->{startdate}) . ")" + . " AND callstart <= DATE(" . $astpp_db->quote($params->{enddate}) . ")" + . " ORDER BY callstart"; + } elsif ($params->{startdate}) { + $tmp = + "SELECT COUNT(*) FROM cdrs WHERE cardnum = " + . $astpp_db->quote($account) + . " AND status = 0" + . " AND callstart >= DATE(" . $astpp_db->quote($params->{startdate}) . ")" + . " ORDER BY callstart"; + } elsif ($params->{enddate}) { + $tmp = + "SELECT COUNT(*) FROM cdrs WHERE cardnum = " + . $astpp_db->quote($account) + . " AND status = 0" + . " AND callstart <= DATE(" . $astpp_db->quote($params->{enddate}) . ")" + . " ORDER BY callstart"; + } else { + $tmp = + "SELECT COUNT(*) FROM cdrs WHERE cardnum = " + . $astpp_db->quote($account) + . " AND status = 0" + . " ORDER BY callstart"; + } $sql = $astpp_db->prepare($tmp); $sql->execute; while ( $row = $sql->fetchrow_hashref ) { @@ -4582,12 +4629,39 @@ } sub get_charges() { - my ($astpp_db, $config, $number) = @_; - my ( $sql, @chargelist, $record ); + my ($astpp_db, $config, $account,$params) = @_; + my ( $tmp,$sql, @chargelist, $record ); + if ($params->{startdate} && $params->{enddate}) { + $tmp = + "SELECT COUNT(*) FROM cdrs WHERE cardnum = " + . $astpp_db->quote($account) + . " AND status = 0" + . " AND callstart >= DATE(" . $astpp_db->quote($params->{startdate}) . ")" + . " AND callstart <= DATE(" . $astpp_db->quote($params->{enddate}) . ")" + . " ORDER BY callstart"; + } elsif ($params->{startdate}) { + $tmp = + "SELECT COUNT(*) FROM cdrs WHERE cardnum = " + . $astpp_db->quote($account) + . " AND status = 0" + . " AND callstart >= DATE(" . $astpp_db->quote($params->{startdate}) . ")" + . " ORDER BY callstart"; + } elsif ($params->{enddate}) { + $tmp = + "SELECT COUNT(*) FROM cdrs WHERE cardnum = " + . $astpp_db->quote($account) + . " AND status = 0" + . " AND callstart <= DATE(" . $astpp_db->quote($params->{enddate}) . ")" + . " ORDER BY callstart"; + } else { + $tmp = + "SELECT COUNT(*) FROM cdrs WHERE cardnum = " + . $astpp_db->quote($account) + . " AND status = 0" + . " ORDER BY callstart"; + } $sql = - $astpp_db->prepare( "SELECT * FROM cdrs WHERE cardnum = " - . $astpp_db->quote($number) - . " AND status = 0" ); + $astpp_db->prepare($tmp); $sql->execute; while ( $record = $sql->fetchrow_hashref ) { push @chargelist, $record->{id}; Modified: trunk/astpp-generate-invoices.pl =================================================================== --- trunk/astpp-generate-invoices.pl 2008-07-03 00:06:16 UTC (rev 2187) +++ trunk/astpp-generate-invoices.pl 2008-08-23 16:02:39 UTC (rev 2188) @@ -21,6 +21,9 @@ # 0 0 * 1,7 * /usr/local/astpp/astpp-generate-invoices.pl sweep=4 # 0 0 * 1 * /usr/local/astpp/astpp-generate-invoices.pl sweep=5 # +# To generate invoices only for a specific date range use the startdate & enddate. +# ie startdate=2008-06-01 endate=2008-06-30 +# use POSIX; use POSIX qw(strftime); use DBI; @@ -86,7 +89,7 @@ foreach my $cardno (@cardlist) { my $carddata = &get_account( $astpp_db, $cardno ); if ( $carddata->{posttoexternal} == 1 ) { - my @recordlist = &get_charges($astpp_db, $config, $cardno); + my @recordlist = &get_charges($astpp_db, $config, $cardno,$params); foreach my $record (@recordlist) { my $cdrinfo = &get_charge($record); my $cost; @@ -112,7 +115,7 @@ foreach my $cardno (@cardlist) { my $carddata = &get_account( $astpp_db, $cardno ); if ( $carddata->{posttoexternal} == 1 ) { - my @recordlist = &get_charges($astpp_db, $config, $cardno); + my @recordlist = &get_charges($astpp_db, $config, $cardno,$params); foreach my $record (@recordlist) { my $cdrinfo = &get_charge($record); my $cost; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |