X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpayment_history%2Fpayment.html;h=6ec9fdb9612aca2a20687705dba223ca8a2bef09;hb=720cf723d2c8e88760704e2fdc50ebf48e0574f2;hp=b9a06946d77110c3e357267d53cb1c5c90dfbbf8;hpb=d7977d0a346e3e5975c44a75b915bb437be66f4f;p=freeside.git diff --git a/httemplate/view/cust_main/payment_history/payment.html b/httemplate/view/cust_main/payment_history/payment.html index b9a06946d..6ec9fdb96 100644 --- a/httemplate/view/cust_main/payment_history/payment.html +++ b/httemplate/view/cust_main/payment_history/payment.html @@ -4,6 +4,8 @@ my( $cust_pay, %opt ) = @_; +my $date_format = $opt{'date_format'} || '%m/%d/%Y'; + my $conf = new FS::Conf; my $curuser = $FS::CurrentUser::CurrentUser; @@ -33,46 +35,64 @@ $payby =~ s/^MCRD$/Manual credit card/; $payby =~ s/^BILL$//; my $info = $payby ? "($payby$payinfo)" : ''; -my( $pre, $post, $desc, $apply, $ext ) = ( '', '', '', '', '' ); +my $desc = ''; +if ( $opt{'pkg-balances'} && $cust_pay->pkgnum ) { + my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $cust_pay->pkgnum } ); + $desc .= ' for '. $cust_pkg->pkg_label_long; +} + +my %cust_bill_pay_width = ('width' => 392); +my %cust_bill_pay_height = (); +if ($conf->exists('cust_bill_pay_pkg-manual')) { + %cust_bill_pay_width = ('width' => 592); + %cust_bill_pay_height = ('height' => 436); +} + +my( $pre, $post, $apply, $ext ) = ( '', '', '', '' ); if ( scalar(@cust_bill_pay) == 0 && scalar(@cust_pay_refund) == 0 ) { #completely unapplied $pre = 'Unapplied '; $post = ''; if ( $curuser->access_right('Apply payment') ) { - $apply = ' ('. include( '/elements/popup_link.html', - 'label' => 'apply', - 'action' => "${p}edit/cust_bill_pay.cgi?". - $cust_pay->paynum, - 'actionlabel' => 'Apply payment', - 'width' => 392, - #default# 'height' => 336, - ). - ')'; - #XXX if there are any open refunds - $apply.= ' ('. include( '/elements/popup_link.html', - 'label' => 'apply to refund', - 'action' => "${p}edit/cust_pay_refund.cgi?". - $cust_pay->paynum, - 'actionlabel' => 'Apply payment to refund', - 'width' => 392, - #default# 'height' => 336, - ). - ')'; + if ( $cust_pay->cust_main->total_owed > 0 ) { + $apply = ' ('. + include( '/elements/popup_link.html', + 'label' => 'apply', + 'action' => "${p}edit/cust_bill_pay.cgi?". + $cust_pay->paynum, + 'actionlabel' => 'Apply payment', + %cust_bill_pay_width, + %cust_bill_pay_height, + ). + ')'; + } + if ( $cust_pay->cust_main->total_unapplied_refunds > 0 ) { + $apply.= ' ('. + include( '/elements/popup_link.html', + 'label' => 'apply to refund', + 'action' => "${p}edit/cust_pay_refund.cgi?". + $cust_pay->paynum, + 'actionlabel' => 'Apply payment to refund', + 'width' => 392, + #default# 'height' => 336, + ). + ')'; + } } } elsif ( scalar(@cust_bill_pay) == 1 && scalar(@cust_pay_refund) == 0 && $cust_pay->unapplied == 0 ) { #applied to one invoice, the usual situation - $desc = ' '. $cust_bill_pay[0]->applied_to_invoice; + $desc .= ' '. $cust_bill_pay[0]->applied_to_invoice; } 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); + $desc .= ' refunded on '. time2str($date_format, $cust_pay_refund[0]->_date); } else { #complicated - $desc = '
'; + $desc .= '
'; foreach my $app ( sort { $a->_date <=> $b->_date } ( @cust_bill_pay, @cust_pay_refund ) ) { if ( $app->isa('FS::cust_bill_pay') ) { @@ -80,11 +100,11 @@ if ( scalar(@cust_bill_pay) == 0 '$'. $app->amount. ' '. $app->applied_to_invoice. '
'; - #' on '. time2str("%D", $cust_bill_pay->_date). + #' on '. time2str($date_format, $cust_bill_pay->_date). } elsif ( $app->isa('FS::cust_pay_refund') ) { $desc .= '  '. '$'. $app->amount. - ' refunded on '. time2str("%D", $app->_date). + ' refunded on '. time2str($date_format, $app->_date). '
'; } else { die "$app is not a FS::cust_bill_pay or FS::cust_pay_refund"; @@ -95,25 +115,30 @@ if ( scalar(@cust_bill_pay) == 0 '$'. $cust_pay->unapplied. ' unapplied'; if ( $curuser->access_right('Apply payment') ) { - $apply = ' ('. include( '/elements/popup_link.html', - 'label' => 'apply', - 'action' => "${p}edit/cust_bill_pay.cgi?". - $cust_pay->paynum, - 'actionlabel' => 'Apply payment', - 'width' => 392, - #default# 'height' => 336, - ). - ')'; - #XXX if there are any open refunds - $apply.= ' ('. include( '/elements/popup_link.html', - 'label' => 'apply to refund', - 'action' => "${p}edit/cust_pay_refund.cgi?". - $cust_pay->paynum, - 'actionlabel' => 'Apply payment to refund', - 'width' => 392, - #default# 'height' => 336, - ). - ')'; + if ( $cust_pay->cust_main->total_owed > 0 ) { + $apply = ' ('. + include( '/elements/popup_link.html', + 'label' => 'apply', + 'action' => "${p}edit/cust_bill_pay.cgi?". + $cust_pay->paynum, + 'actionlabel' => 'Apply payment', + %cust_bill_pay_width, + %cust_bill_pay_height, + ). + ')'; + } + if ( $cust_pay->cust_main->total_unapplied_refunds > 0 ) { + $apply.= ' ('. + include( '/elements/popup_link.html', + 'label' => 'apply to refund', + 'action' => "${p}edit/cust_pay_refund.cgi?". + $cust_pay->paynum, + 'actionlabel' => 'Apply payment to refund', + 'width' => 392, + #default# 'height' => 336, + ). + ')'; + } } $desc .= '
'; } @@ -129,7 +154,7 @@ my $view = ')'; my $refund = ''; -my $refund_days = $conf->config('card_refund-days') || 120; +my $refund_days = $opt{'card_refund-days'} || 120; if ( $cust_pay->closed !~ /^Y/i && $cust_pay->payby =~ /^(CARD|CHEK)$/ && time-$cust_pay->_date < $refund_days*86400 @@ -169,7 +194,7 @@ if ( $cust_pay->closed !~ /^Y/i my $delete = ''; if ( $cust_pay->closed !~ /^Y/i - && $conf->exists('deletepayments') + && $opt{'deletepayments'} && $curuser->access_right('Delete payment') ) {