[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.
|