From 157e8bdba110b7aac022bd2c2f7b377d3c5b2f85 Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 29 Jun 2004 04:02:45 +0000 Subject: add cust_pay_refund table to refund payments --- httemplate/view/cust_main.cgi | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) (limited to 'httemplate/view') diff --git a/httemplate/view/cust_main.cgi b/httemplate/view/cust_main.cgi index cf899d041..125c51aef 100755 --- a/httemplate/view/cust_main.cgi +++ b/httemplate/view/cust_main.cgi @@ -604,6 +604,7 @@ function cust_credit_areyousure(href) { ? $cust_pay->payinfo_masked : $cust_pay->payinfo; my @cust_bill_pay = $cust_pay->cust_bill_pay; + my @cust_pay_refund = $cust_pay->cust_pay_refund; my $target = "$payby$payinfo"; $payby =~ s/^BILL$/Check #/ if $payinfo; @@ -612,25 +613,42 @@ function cust_credit_areyousure(href) { my $info = $payby ? " ($payby$payinfo)" : ''; my( $pre, $post, $desc, $apply, $ext ) = ( '', '', '', '', '' ); - if ( scalar(@cust_bill_pay) == 0 ) { + if ( scalar(@cust_bill_pay) == 0 + && scalar(@cust_pay_refund) == 0 ) { #completely unapplied $pre = 'Unapplied '; $post = ''; $apply = qq! (apply)'; - } elsif ( scalar(@cust_bill_pay) == 1 && $cust_pay->unapplied == 0 ) { - #applied to one invoice + } elsif ( scalar(@cust_bill_pay) == 1 + && scalar(@cust_pay_refund) == 0 + && $cust_pay->unapplied == 0 ) { + #applied to one invoice, the usual situation $desc = ' applied to Invoice #'. $cust_bill_pay[0]->invnum; + } elsif ( scalar(@cust_bill_pay) == 0 + && scalar(@cust_pay_refund) == 1 + && $cust_pay->unapplied == 0 ) { + #applied to one refund + $desc = ' refunded on '. time2str("%D", $cust_pay_refund[0]->_date); } else { #complicated $desc = '
'; - foreach my $cust_bill_pay (@cust_bill_pay) { - $desc .= '  '. - '$'. $cust_bill_pay->amount. - ' applied to Invoice #'. $cust_bill_pay->invnum. - '
'; - #' on '. time2str("%D", $cust_bill_pay->_date). - + foreach my $app ( sort { $a->_date <=> $b->_date } + ( @cust_bill_pay, @cust_pay_refund ) ) { + if ( $app->isa('FS::cust_bill_pay') ) { + $desc .= '  '. + '$'. $app->amount. + ' applied to Invoice #'. $app->invnum. + '
'; + #' on '. time2str("%D", $cust_bill_pay->_date). + } elsif ( $app->isa('FS::cust_pay_refund') ) { + $desc .= '  '. + '$'. $app->amount. + ' refunded on'. time2str("%D", $app->_date). + '
'; + } else { + die "$app is not a FS::cust_bill_pay or FS::cust_pay_refund"; + } } if ( $cust_pay->unapplied > 0 ) { $desc .= '  '. @@ -684,7 +702,7 @@ function cust_credit_areyousure(href) { } elsif ( scalar(@cust_credit_bill) == 1 && scalar(@cust_credit_refund) == 0 && $cust_credit->credited == 0 ) { - #applied to one invoice + #applied to one invoice, the usual situation $desc = ' applied to Invoice #'. $cust_credit_bill[0]->invnum; } elsif ( scalar(@cust_credit_bill) == 0 && scalar(@cust_credit_refund) == 1 -- cgit v1.2.1