From: jeff Date: Sun, 23 Dec 2007 22:05:54 +0000 (+0000) Subject: add a reset feature to manual recharges (#1858) X-Git-Tag: TRIXBOX_2_6~154 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=a35faaccc20e2214d91876744c45322a3a220bb5 add a reset feature to manual recharges (#1858) --- 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;