diff options
author | Mark Wells <mark@freeside.biz> | 2013-10-12 18:44:52 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2013-10-12 18:44:52 -0700 |
commit | 6422e165313ee8d67790007581821217240734fb (patch) | |
tree | d2892b8c1aa62f50ee21f1ef1169bc842872cf52 /httemplate/view | |
parent | cd365522ec4e9f1b553bb1b5096c756c1fdb1d01 (diff) |
allow changing package class of one-time charges post-billing, #25342
Diffstat (limited to 'httemplate/view')
-rw-r--r-- | httemplate/view/cust_main/packages/package.html | 28 | ||||
-rw-r--r-- | httemplate/view/cust_main/payment_history.html | 14 | ||||
-rw-r--r-- | httemplate/view/cust_main/payment_history/voided_credit.html | 25 |
3 files changed, 62 insertions, 5 deletions
diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html index 1c8db15f4..e97c141d2 100644 --- a/httemplate/view/cust_main/packages/package.html +++ b/httemplate/view/cust_main/packages/package.html @@ -21,17 +21,22 @@ <TD COLSPAN=2> <FONT SIZE=-1> -% unless ( $cust_pkg->get('cancel') || $opt{no_links} ) { +% if ( $part_pkg->freq eq '0' and !$opt{no_links} ) { +% # One-time charge. Nothing you can do with this, unless: +% if ( $curuser->access_right('Modify one-time charge') ) { + ( <%onetime_change_link($cust_pkg)%> ) + <BR> +% } +% +% } elsif ( !$cust_pkg->get('cancel') and !$opt{no_links} ) { % % if ( $change_from ) { % # This is the target package for a future change. % # Nothing you can do with it besides modify/cancel the % # future change, and that's on the current package. -% } elsif ( $supplemental or $part_pkg->freq eq '0' ) { +% } elsif ( $supplemental ) { % # Supplemental packages can't be changed independently. -% # One-time charges don't need to be changed. -% # For both of those, we only show "Add comments", -% # and "Add invoice details". +% # Show only "Add comments" and "Add invoice details". % } else { % # the usual case: links to change package definition, % # discount, and customization @@ -320,6 +325,19 @@ sub pkg_change_link { ); } +sub onetime_change_link { + my $cust_pkg = shift; + my $pkgnum = $cust_pkg->pkgnum; + include( '/elements/popup_link-cust_pkg.html', + 'action' => $p. "edit/quick-charge.html?change_pkgnum=$pkgnum", + 'label' => emt('Modify one-time charge'), + 'actionlabel' => emt('Modify'), + 'cust_pkg' => $cust_pkg, + 'width' => 690, + 'height' => 380, + ); +} + sub pkg_change_location_link { my $cust_pkg = shift; my $pkgpart = $cust_pkg->pkgpart; diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html index c7bf3748c..73082ce96 100644 --- a/httemplate/view/cust_main/payment_history.html +++ b/httemplate/view/cust_main/payment_history.html @@ -270,6 +270,11 @@ % ? sprintf("- $money_char\%.2f", $item->{'credit'}) % : ''; % +% $credit ||= sprintf( "<DEL>- $money_char\%.2f</DEL>", +% $item->{'void_credit'} +% ) +% if exists($item->{'void_credit'}); +% % my $refund = exists($item->{'refund'}) % ? sprintf("$money_char\%.2f", $item->{'refund'}) % : ''; @@ -469,6 +474,15 @@ foreach my $cust_pay_void ($cust_main->cust_pay_void) { } +#voided credits +foreach my $cust_credit_void ($cust_main->cust_credit_void) { + push @history, { + 'date' => $cust_credit_void->_date, + 'desc' => include('payment_history/voided_credit.html', $cust_credit_void, %opt ), + 'void_credit' => $cust_credit_void->amount, + }; +} + #declined payments foreach my $cust_pay_pending ($cust_main->cust_pay_pending_attempt) { push @history, { diff --git a/httemplate/view/cust_main/payment_history/voided_credit.html b/httemplate/view/cust_main/payment_history/voided_credit.html new file mode 100644 index 000000000..0723a7282 --- /dev/null +++ b/httemplate/view/cust_main/payment_history/voided_credit.html @@ -0,0 +1,25 @@ +<DEL><% emt("Credit by [_1]", $cust_credit_void->otaker, $reason ) %>\ +<% $reason |h %></DEL> +<I> +<% emt("voided [_1]", time2str($date_format, $cust_credit_void->void_date) )%> +% my $void_user = $cust_credit_void->void_access_user; +% if ($void_user) { +<% emt('by [_1]', $void_user->username) %> +% } +<% $void_reason |h %> +</I> +<%init> + +my( $cust_credit_void, %opt ) = @_; + +my $date_format = $opt{'date_format'} || '%m/%d/%Y'; + +my $curuser = $FS::CurrentUser::CurrentUser; + +#my $unvoid = ''; # not yet available +my $reason = $cust_credit_void->reason; +$reason = " ($reason)" if $reason; + +my $void_reason = $cust_credit_void->void_reason; +$void_reason = " ($void_reason)" if $void_reason; +</%init> |