summaryrefslogtreecommitdiff
path: root/httemplate/view
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2013-10-12 18:44:52 -0700
committerMark Wells <mark@freeside.biz>2013-10-12 18:44:52 -0700
commit6422e165313ee8d67790007581821217240734fb (patch)
treed2892b8c1aa62f50ee21f1ef1169bc842872cf52 /httemplate/view
parentcd365522ec4e9f1b553bb1b5096c756c1fdb1d01 (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.html28
-rw-r--r--httemplate/view/cust_main/payment_history.html14
-rw-r--r--httemplate/view/cust_main/payment_history/voided_credit.html25
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 1c8db15..e97c141 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') ) {
+ (&nbsp;<%onetime_change_link($cust_pkg)%>&nbsp;)
+ <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 c7bf374..73082ce 100644
--- a/httemplate/view/cust_main/payment_history.html
+++ b/httemplate/view/cust_main/payment_history.html
@@ -270,6 +270,11 @@
% ? sprintf("-&nbsp;$money_char\%.2f", $item->{'credit'})
% : '';
%
+% $credit ||= sprintf( "<DEL>-&nbsp;$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 0000000..0723a72
--- /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>