[freeside-commits] branch master updated. 12560fb5a69ddace43dc267b44894acb5352c98c
Mark Wells
mark at 420.am
Sun Jan 31 21:18:25 PST 2016
The branch, master has been updated
via 12560fb5a69ddace43dc267b44894acb5352c98c (commit)
via 7643e364c22eeca302f09a87ea968175ce01985b (commit)
from c5dd9bdf09dff2b5cc6d9a9681894664fe5147ef (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 12560fb5a69ddace43dc267b44894acb5352c98c
Author: Mark Wells <mark at freeside.biz>
Date: Sun Jan 31 21:07:08 2016 -0800
unused_credit flag for cancellation reasons, #27911
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm
index 6dcd740..0b60ed7 100644
--- a/FS/FS/cust_pkg.pm
+++ b/FS/FS/cust_pkg.pm
@@ -969,13 +969,28 @@ sub cancel {
}
}
+ # if a reasonnum was passed, get the actual reason object so we can check
+ # unused_credit
+
+ my $reason;
+ if ($options{'reason'} =~ /^\d+$/) {
+ $reason = FS::reason->by_key($options{'reason'});
+ }
+
unless ($date) {
- # credit remaining time if appropriate
+ # credit remaining time if any of these are true:
+ # - unused_credit => 1 was passed (this happens when canceling a package
+ # for a package change when unused_credit_change is set)
+ # - no unused_credit option, and there is a cancel reason, and the cancel
+ # reason says to credit the package
+ # - no unused_credit option, and the package definition says to credit the
+ # package on cancellation
my $do_credit;
if ( exists($options{'unused_credit'}) ) {
$do_credit = $options{'unused_credit'};
- }
- else {
+ } elsif ( defined($reason) && $reason->unused_credit ) {
+ $do_credit = 1;
+ } else {
$do_credit = $self->part_pkg->option('unused_credit_cancel', 1);
}
if ( $do_credit ) {
diff --git a/FS/FS/reason.pm b/FS/FS/reason.pm
index e62bf34..d87911e 100644
--- a/FS/FS/reason.pm
+++ b/FS/FS/reason.pm
@@ -56,7 +56,7 @@ suspensions but not others. DEPRECATED.
whether to bill the unsuspend package immediately ('') or to wait until
the customer's next invoice ('Y').
-=item unused_credit - 'Y' or ''. For suspension reasons only (for now).
+=item unused_credit - 'Y' or ''. For suspension or cancellation reasons.
If enabled, the customer will be credited for their remaining time on
suspension.
@@ -125,23 +125,30 @@ sub check {
;
return $error if $error;
- if ( $self->reasontype->class eq 'S' ) {
+ my $class = $self->reasontype->class;
+
+ if ( $class eq 'S' ) {
$error = $self->ut_numbern('unsuspend_pkgpart')
|| $self->ut_foreign_keyn('unsuspend_pkgpart', 'part_pkg', 'pkgpart')
|| $self->ut_flag('unsuspend_hold')
- || $self->ut_flag('unused_credit')
|| $self->ut_foreign_keyn('feepart', 'part_fee', 'feepart')
|| $self->ut_flag('fee_on_unsuspend')
|| $self->ut_flag('fee_hold')
;
return $error if $error;
} else {
- foreach (qw(unsuspend_pkgpart unsuspend_hold unused_credit feepart
+ foreach (qw(unsuspend_pkgpart unsuspend_hold feepart
fee_on_unsuspend fee_hold)) {
$self->set($_ => '');
}
}
+ if ( $class eq 'S' or $class eq 'C' ) {
+ $error = $self->ut_flag('unused_credit');
+ } else {
+ $self->set('unused_credit', '');
+ }
+
$self->SUPER::check;
}
diff --git a/httemplate/elements/tr-select-reason.html b/httemplate/elements/tr-select-reason.html
index 93949ba..97466f1 100755
--- a/httemplate/elements/tr-select-reason.html
+++ b/httemplate/elements/tr-select-reason.html
@@ -120,6 +120,13 @@ Example:
&>
% } # scalar(@types)
+% if ( $class eq 'C' ) {
+ <& tr-checkbox.html,
+ label => 'Credit the unused portion of service when canceling',
+ field => $id.'_new_unused_credit',
+ value => 'Y'
+ &>
+% }
% if ( $class eq 'S' ) {
<& tr-checkbox.html,
label => 'Credit the unused portion of service when suspending',
commit 7643e364c22eeca302f09a87ea968175ce01985b
Author: Mark Wells <mark at freeside.biz>
Date: Sun Jan 31 16:48:33 2016 -0800
continue removing pay* fields from cust_main
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index 4a885d2..f1c4e08 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -1652,7 +1652,6 @@ sub tables_hashref {
['agentnum'], ['refnum'], ['classnum'], ['usernum'],
[ 'custbatch' ],
[ 'referral_custnum' ],
- [ 'payby' ], [ 'paydate' ],
[ 'archived' ],
[ 'ship_locationnum' ],
[ 'bill_locationnum' ],
diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm
index bffda56..395c6d0 100644
--- a/FS/FS/Upgrade.pm
+++ b/FS/FS/Upgrade.pm
@@ -297,7 +297,7 @@ sub upgrade {
# decrypt inadvertantly-encrypted payinfo where payby != CARD,DCRD,CHEK,DCHK
# kind of a weird spot for this, but it's better than duplicating
# all this code in each class...
- my @decrypt_tables = qw( cust_main cust_pay_void cust_pay cust_refund cust_pay_pending );
+ my @decrypt_tables = qw( cust_payby cust_pay_void cust_pay cust_refund cust_pay_pending );
foreach my $table ( @decrypt_tables ) {
my @objects = qsearch({
'table' => $table,
-----------------------------------------------------------------------
Summary of changes:
FS/FS/Schema.pm | 1 -
FS/FS/Upgrade.pm | 2 +-
FS/FS/cust_pkg.pm | 21 ++++++++++++++++++---
FS/FS/reason.pm | 15 +++++++++++----
httemplate/elements/tr-select-reason.html | 7 +++++++
5 files changed, 37 insertions(+), 9 deletions(-)
More information about the freeside-commits
mailing list