From 2cec1a0e7dfdb00a866a3c9a2947f61c1e9fbffd Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Mon, 17 Dec 2012 17:08:25 -0800 Subject: [PATCH] credit application detail report, RT#18676 --- httemplate/search/cust_credit_bill_pkg.html | 37 +++++++- httemplate/search/report_cust_credit_bill_pkg.html | 104 +++++++++++++++++++++ 2 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 httemplate/search/report_cust_credit_bill_pkg.html diff --git a/httemplate/search/cust_credit_bill_pkg.html b/httemplate/search/cust_credit_bill_pkg.html index a57a5ae1a..06fd881a8 100644 --- a/httemplate/search/cust_credit_bill_pkg.html +++ b/httemplate/search/cust_credit_bill_pkg.html @@ -16,6 +16,7 @@ # line item 'Description', + @post_desc_header, #invoice 'Invoice', @@ -34,6 +35,7 @@ ? $_[0]->get('pkg') # possibly use override.pkg : $_[0]->get('itemdesc') # but i think this correct }, + @post_desc, 'invnum', sub { time2str('%b %d %Y', shift->_date ) }, \&FS::UI::Web::cust_fields, @@ -44,6 +46,7 @@ '', #'otaker', '', #reason '', #line item description + @post_desc_null, 'invnum', '_date', #cust fields @@ -54,19 +57,24 @@ '', '', '', + @post_desc_null, $ilink, $ilink, ( map { $_ ne 'Cust. Status' ? $clink : '' } FS::UI::Web::cust_header() ), ], - 'align' => 'rrlllrr'.FS::UI::Web::cust_aligns(), + 'align' => 'rrlll'. + $post_desc_align. + 'rr'. + FS::UI::Web::cust_aligns(), 'color' => [ '', '', '', '', '', + @post_desc_null, '', '', FS::UI::Web::cust_colors(), @@ -77,6 +85,7 @@ '', '', '', + @post_desc_null, '', '', FS::UI::Web::cust_styles(), @@ -86,6 +95,7 @@ <%init> #LOTS of false laziness below w/cust_bill_pkg.cgi +# and a little w/cust_credit.html die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Financial reports'); @@ -98,10 +108,23 @@ my $agentnums_sql = my @where = ( $agentnums_sql ); +if ( $cgi->param('usernum') =~ /^(\d+)$/ ) { + push @where, "cust_credit.usernum = $1"; +} + my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi); push @where, "cust_bill._date >= $beginning", "cust_bill._date <= $ending"; +my($cr_begin, $cr_end) = FS::UI::Web::parse_beginning_ending($cgi, 'credit'); +push @where, "cust_credit._date >= $cr_begin", + "cust_credit._date <= $cr_end"; + +#credit amount? seems more what is expected than the applied amount +my @lt_gt = FS::UI::Web::parse_lt_gt($cgi, 'amount' ); +s/amount/cust_credit.amount/g foreach (@lt_gt); +push @where, @lt_gt; + if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) { push @where, "cust_main.agentnum = $1"; } @@ -432,6 +455,18 @@ push @select, 'part_pkg.pkg' unless $cgi->param('istax'); push @select, 'cust_main.custnum', FS::UI::Web::cust_sql_fields(); +my @post_desc_header = (); +my @post_desc = (); +my @post_desc_null = (); +my $post_desc_align = ''; +if ( $conf->exists('enable_taxclasses') ) { + push @post_desc_header, 'Tax class'; + push @post_desc, 'taxclass'; + push @post_desc_null, ''; + $post_desc_align .= 'l'; + push @select, 'part_pkg.taxclass'; # or should this use override? +} + my $query = { 'table' => 'cust_credit_bill_pkg', 'addl_from' => "$join_cust_bill_pkg diff --git a/httemplate/search/report_cust_credit_bill_pkg.html b/httemplate/search/report_cust_credit_bill_pkg.html new file mode 100644 index 000000000..2b9e1e69d --- /dev/null +++ b/httemplate/search/report_cust_credit_bill_pkg.html @@ -0,0 +1,104 @@ +<& /elements/header.html, mt('Credit application report') &> + +
+ + + emt('Employee: '), + 'access_user' => \%access_user, +&> + +<& /elements/tr-select-agent.html, + curr_value => scalar( $cgi->param('agentnum') ), + #label => emt('Line items for agent: '), + disable_empty => 0, +&> + + + + + + +<& /elements/tr-input-beginning_ending.html, + 'prefix' => 'credit', +&> + +<& /elements/tr-input-lessthan_greaterthan.html, + label => emt('Amount'), + field => 'amount', +&> + + + + + +
+ +
+ + +
+ +<& /elements/footer.html &> +<%init> + +#Financial reports? +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Financial reports'); + +#false laziness w/report_cust_credit.html +my $sth = dbh->prepare("SELECT DISTINCT usernum FROM cust_credit") + or die dbh->errstr; +$sth->execute or die $sth->errstr; +my @usernum = map $_->[0], @{$sth->fetchall_arrayref}; +my %access_user = + map { $_ => qsearchs('access_user',{'usernum'=>$_})->username } + @usernum; + +my $conf = new FS::Conf; + + + -- 2.11.0