From 69678d308805f5ca4b171ea0c5ac1da957811aa0 Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 2 Jul 2009 11:22:48 +0000 Subject: settlement cdr processing, RT#5495 --- httemplate/search/cdr.html | 79 ++++++++++++++++++++++++++++++--------- httemplate/search/report_cdr.html | 18 +++++++++ 2 files changed, 79 insertions(+), 18 deletions(-) (limited to 'httemplate/search') diff --git a/httemplate/search/cdr.html b/httemplate/search/cdr.html index cef8ec016..26eac75b3 100644 --- a/httemplate/search/cdr.html +++ b/httemplate/search/cdr.html @@ -64,47 +64,88 @@ my $hashref = {}; my @search = (); +### +# dates +### + +my $str2time_sql = str2time_sql; + +my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi); +push @search, "$str2time_sql calldate) >= $beginning ", + "$str2time_sql calldate) <= $ending"; + +### +# duration / billsec +### + +push @search, FS::UI::Web::parse_lt_gt($cgi, 'duration'); +push @search, FS::UI::Web::parse_lt_gt($cgi, 'billsec'); + +#above here things just push @search +#below here things also have to define $hashref->{} or push @qsearch +my @qsearch = @search; + ### # freesidestatus ### if ( $cgi->param('freesidestatus') eq 'NULL' ) { - my $title = "Unprocessed $title"; + $title = "Unprocessed $title"; $hashref->{'freesidestatus'} = ''; # Record.pm will take care of it push @search, "( freesidestatus IS NULL OR freesidestatus = '' )"; } elsif ( $cgi->param('freesidestatus') =~ /^([\w ]+)$/ ) { - my $title = "Processed $title"; + $title = "Processed $title"; $hashref->{'freesidestatus'} = $1; push @search, "freesidestatus = '$1'"; } ### -# dates +# termpartNstatus ### -my $str2time_sql = str2time_sql; +foreach my $param ( grep /^termpart\d+status$/, $cgi->param ) { -my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi); -push @search, "$str2time_sql calldate) >= $beginning ", - "$str2time_sql calldate) <= $ending"; + my $status = $cgi->param($param); -### -# duration / billsec -### + $param =~ /^termpart(\d+)status$/ or die 'guru meditation 54something'; + my $termpart = $1; -push @search, FS::UI::Web::parse_lt_gt($cgi, 'duration'); -push @search, FS::UI::Web::parse_lt_gt($cgi, 'billsec'); + my $search = ''; + if ( $status eq 'NULL' ) { + + #false lazienss w/cdr_termination.pm (i should be a part_termination method) + my $where_term = + "( cdr.acctid = cdr_termination.acctid AND termpart = $termpart ) "; + #my $join_term = "LEFT JOIN cdr_termination ON ( $where_term )"; + $search = + "NOT EXISTS ( SELECT 1 FROM cdr_termination WHERE $where_term )"; + + } elsif ( $cgi->param('freesidestatus') =~ /^([\w ]+)$/ ) { + + #false lazienss w/cdr_termination.pm (i should be a part_termination method) + my $where_term = + "( cdr.acctid = cdr_termination.acctid AND termpart = $termpart AND status = '$1' ) "; + #my $join_term = "LEFT JOIN cdr_termination ON ( $where_term )"; + $search = + "EXISTS ( SELECT 1 FROM cdr_termination WHERE $where_term )"; + + } + + if ( $search ) { + push @search, $search; + push @qsearch, $search; + } + +} ### # src/dest/charged_party ### -my @qsearch = @search; - if ( $cgi->param('src') =~ /^\s*([\d\-\+\ ]+)\s*$/ ) { ( my $src = $1 ) =~ s/\D//g; $hashref->{'src'} = $src; @@ -122,10 +163,12 @@ if ( $cgi->param('charged_party') =~ /^\s*([\d\-\+\ ]+)\s*$/ ) { #$hashref->{'charged_party'} = $charged_party; #push @search, "charged_party = '$charged_party'"; #XXX countrycode - push @search, " ( charged_party = '$charged_party' - OR charged_party = '1$charged_party' ) "; - push @qsearch, " ( charged_party = '$charged_party' - OR charged_party = '1$charged_party' ) "; + + my $search = " ( charged_party = '$charged_party' + OR charged_party = '1$charged_party' ) "; + + push @search, $search; + push @qsearch, $search; } ### diff --git a/httemplate/search/report_cdr.html b/httemplate/search/report_cdr.html index 28516313b..6a0b89bf8 100644 --- a/httemplate/search/report_cdr.html +++ b/httemplate/search/report_cdr.html @@ -3,6 +3,7 @@
+ +% #if ( ) { # disable for everyone not using termination billing... +% foreach my $termpart ( 1..1 ) { #qsearch('part_termination + + + + + + +% } +% #} + <% include ( '/elements/tr-input-beginning_ending.html' ) %> -- cgit v1.2.1
Status: @@ -14,6 +15,23 @@
Termination Status: + +