summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjeff <jeff>2007-12-23 22:05:54 +0000
committerjeff <jeff>2007-12-23 22:05:54 +0000
commita35faaccc20e2214d91876744c45322a3a220bb5 (patch)
tree8a4a092bb292b71d59a194c6e4cccfa47630602c
parenta6ae5144ce937bf2a86734543f4ea396758e07fb (diff)
add a reset feature to manual recharges (#1858)
-rw-r--r--FS/FS/part_pkg/flat.pm6
-rw-r--r--FS/FS/part_pkg/prorate.pm7
-rw-r--r--FS/FS/part_pkg/subscription.pm13
-rwxr-xr-xhttemplate/misc/process/recharge_svc.html9
4 files changed, 24 insertions, 11 deletions
diff --git a/FS/FS/part_pkg/flat.pm b/FS/FS/part_pkg/flat.pm
index f5ccd0119..92e72cf8a 100644
--- a/FS/FS/part_pkg/flat.pm
+++ b/FS/FS/part_pkg/flat.pm
@@ -76,12 +76,16 @@ use FS::part_pkg;
' over into current period',
'type' => 'checkbox',
},
+ 'recharge_reset' => { 'name' => 'Reset usage to these values on manual '.
+ 'package recharge',
+ 'type' => 'checkbox',
+ },
},
'fieldorder' => [ 'setup_fee', 'recur_fee', 'unused_credit',
'seconds', 'upbytes', 'downbytes', 'totalbytes',
'recharge_amount', 'recharge_seconds', 'recharge_upbytes',
'recharge_downbytes', 'recharge_totalbytes',
- 'usage_rollover', 'externalid' ],
+ 'usage_rollover', 'recharge_reset', 'externalid' ],
'weight' => 10,
);
diff --git a/FS/FS/part_pkg/prorate.pm b/FS/FS/part_pkg/prorate.pm
index 3dfab37ba..45bbf0153 100644
--- a/FS/FS/part_pkg/prorate.pm
+++ b/FS/FS/part_pkg/prorate.pm
@@ -74,6 +74,11 @@ use FS::part_pkg::flat;
'over into current period',
'type' => 'checkbox',
},
+ 'recharge_reset' => { 'name' => 'Reset usage to these values on manual '.
+ 'package recharge',
+ 'type' => 'checkbox',
+ },
+
#it would be better if this had to be turned on, its confusing
'externalid' => { 'name' => 'Optional External ID',
'default' => '',
@@ -83,7 +88,7 @@ use FS::part_pkg::flat;
'seconds', 'upbyte', 'downbytes', 'totalbytes',
'recharge_amount', 'recharge_seconds', 'recharge_upbytes',
'recharge_downbytes', 'recharge_totalbytes',
- 'usage_rollover', 'externalid', ],
+ 'usage_rollover', 'recharge_reset', 'externalid', ],
'freq' => 'm',
'weight' => 20,
);
diff --git a/FS/FS/part_pkg/subscription.pm b/FS/FS/part_pkg/subscription.pm
index 3e5a41669..c9c472c2d 100644
--- a/FS/FS/part_pkg/subscription.pm
+++ b/FS/FS/part_pkg/subscription.pm
@@ -70,6 +70,11 @@ use FS::part_pkg::flat;
'over into current period',
'type' => 'checkbox',
},
+ 'recharge_reset' => { 'name' => 'Reset usage to these values on manual '.
+ 'package recharge',
+ 'type' => 'checkbox',
+ },
+
#it would be better if this had to be turned on, its confusing
'externalid' => { 'name' => 'Optional External ID',
'default' => '',
@@ -79,13 +84,7 @@ use FS::part_pkg::flat;
'upbytes', 'downbytes', 'totalbytes',
'recharge_amount', 'recharge_seconds', 'recharge_upbytes',
'recharge_downbytes', 'recharge_totalbytes',
- 'externalid' ],
- 'fieldorder' => [ 'setup_fee', 'recur_fee','cutoff_day', 'seconds',
- 'upbytes', 'downbytes', 'totalbytes',
- 'recharge_amount', 'recharge_seconds', 'recharge_upbytes',
- 'recharge_downbytes', 'recharge_totalbytes',
- 'usage_rollover',
- ],
+ 'usage_rollover', 'recharge_reset', 'externalid' ],
'freq' => 'm',
'weight' => 30,
);
diff --git a/httemplate/misc/process/recharge_svc.html b/httemplate/misc/process/recharge_svc.html
index bc916e5da..e540c385c 100755
--- a/httemplate/misc/process/recharge_svc.html
+++ b/httemplate/misc/process/recharge_svc.html
@@ -40,7 +40,8 @@
% } elsif ( $payby =~ /^(CARD|DCRD|CHEK|DCHK|LECB|BILL|COMP)$/ ) {
% my $part_pkg = $svc_acct->cust_svc->cust_pkg->part_pkg;
% $amount = $part_pkg->option('recharge_amount', 1);
-% my %rhash = map { $_ =~ /^recharge_(.*)$/; $1, $part_pkg->option($_, 1) }
+% my %rhash = map { $_ =~ /^recharge_(.*)$/; $1, $part_pkg->option($_) }
+% grep { $part_pkg->option($_, 1) }
% qw ( recharge_seconds recharge_upbytes recharge_downbytes
% recharge_totalbytes );
%
@@ -53,7 +54,11 @@
% $error = $cust_main->charge($amount, "Recharge " . $svc_acct->label,
% $description, $part_pkg->taxclass);
%
-% $error ||= $svc_acct->recharge(\%rhash);
+% if ($part_pkg->option('recharge_reset', 1)) {
+% $error ||= $svc_acct->set_usage(\%rhash);
+% }else{
+% $error ||= $svc_acct->recharge(\%rhash);
+% }
%
% my $old_balance = $cust_main->balance;
% $error ||= $cust_main->bill;