X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Felements%2Fcust_pay_or_refund.html;h=ce513ab15ed3e150eb9e41af7b550a73c18753d9;hb=379c06ccd4b984bfa8130d98f862799239a8d00c;hp=7bebe7f40f998c43ab3726f6cf2fd40d80f8896b;hpb=8d953e7c2f94dc007d94da74650d27c5a74cc792;p=freeside.git diff --git a/httemplate/search/elements/cust_pay_or_refund.html b/httemplate/search/elements/cust_pay_or_refund.html index 7bebe7f40..ce513ab15 100755 --- a/httemplate/search/elements/cust_pay_or_refund.html +++ b/httemplate/search/elements/cust_pay_or_refund.html @@ -39,7 +39,7 @@ Examples: ) -<& search.html, +<& grouped-search.html, 'title' => $title, # XXX: translate 'name_singular' => $name_singular, 'query' => $sql_query, @@ -54,6 +54,16 @@ Examples: 'link_onclicks' => \@link_onclicks, 'color' => \@color, 'style' => \@style, + + 'group_column' => 'payby', + 'group_label' => 'payby_name', + 'subtotal' => { 'paid' => 'sum(paid)' }, + 'subtotal_row' => [ 'Subtotal', + sub { sprintf($money, $_[0]->paid) }, + ], + 'total_row' => [ 'Total', + sub { sprintf("$money", $_[0]->paid) }, + ], &> <%init> @@ -61,6 +71,9 @@ my %opt = @_; my $curuser = $FS::CurrentUser::CurrentUser; +my $conf = FS::Conf->new; +my $money = ($conf->config('money_char') || '$') . '%.2f'; + die "access denied" unless $curuser->access_right('Financial reports'); @@ -165,7 +178,7 @@ push @header, "\u$name_singular", $align .= 'rr'; push @links, '', ''; push @fields, 'payby_payinfo_pretty', - sub { sprintf('$%.2f', shift->$amount_field() ) }, + sub { sprintf($money, shift->$amount_field() ) }, ; push @link_onclicks, $sub_receipt, ''; push @sort_fields, '', $amount_field; @@ -174,7 +187,7 @@ if ( $unapplied ) { push @header, emt('Unapplied'); $align .= 'r'; push @links, ''; - push @fields, sub { sprintf('$%.2f', shift->unapplied_amount) }; + push @fields, sub { sprintf($money, shift->unapplied_amount) }; push @sort_fields, ''; } @@ -252,14 +265,10 @@ if ( $cgi->param('magic') ) { $title = $part_referral->referral. " $title"; } - # cust_classnum (false laziness w/ elements/cust_main_dayranges.html, prepaid_income.html, cust_bill_pay.html, cust_bill_pkg.html cust_bill_pkg_referral.html, unearned_detail.html, cust_credit.html, cust_credit_refund.html, cust_main::Search::search_sql) - if ( grep { $_ eq 'cust_classnum' } $cgi->param ) { - my @classnums = grep /^\d*$/, $cgi->param('cust_classnum'); - push @search, 'COALESCE( cust_main.classnum, 0) IN ( '. - join(',', map { $_ || '0' } @classnums ). - ' )' - if @classnums; - } + # cust_classnum - standard matching + push @search, $m->comp('match-classnum', + param => 'cust_classnum', field => 'cust_main.classnum' + ); if ( $cgi->param('custnum') =~ /^(\d+)$/ ) { push @search, "$table.custnum = $1"; @@ -321,7 +330,6 @@ if ( $cgi->param('magic') ) { } elsif ( $cardtype eq 'Discover' ) { - my $conf = new FS::Conf; my $country = $conf->config('countrydefault') || 'US'; $search = @@ -402,7 +410,8 @@ if ( $cgi->param('magic') ) { if ( $cgi->param('payinfo') ) { $cgi->param('payinfo') =~ /^\s*(\d+)\s*$/ or die "illegal payinfo ". $cgi->param('payinfo'); - push @search, "$table.payinfo = '$1'"; + my $regexp = regexp_sql(); + push @search, "$table.payinfo $regexp '^0*$1\$'"; } if ( $cgi->param('ccpay') =~ /^([\w-:]+)$/ ) { @@ -436,7 +445,7 @@ if ( $cgi->param('magic') ) { "$table.void_date <= $v_ending"; } - push @search, FS::UI::Web::parse_lt_gt($cgi, "$table.$amount_field" ); + push @search, FS::UI::Web::parse_lt_gt($cgi, $amount_field, $table); $orderby = '_date'; @@ -538,6 +547,7 @@ if ( $cgi->param('magic') ) { } else { #hmm... is this still used? + warn "undefined search magic"; $cgi->param('payinfo') =~ /^\s*(\d+)\s*$/ or die "illegal payinfo"; my $payinfo = $1;