summaryrefslogtreecommitdiff
path: root/httemplate/edit
diff options
context:
space:
mode:
authorivan <ivan>2004-12-22 14:06:45 +0000
committerivan <ivan>2004-12-22 14:06:45 +0000
commit0715590a107d7e17a37b2f4235b6c8a540783d1e (patch)
tree0b4b6867d2a16ffacd0a6941c8c6688243872745 /httemplate/edit
parent5073a0d77b624018600f7fc01c7da2fee2849c18 (diff)
warn and require confirmation when editing next bill dates to a date in the past, closes; Bug#430
Diffstat (limited to 'httemplate/edit')
-rwxr-xr-xhttemplate/edit/REAL_cust_pkg.cgi9
-rwxr-xr-xhttemplate/edit/process/REAL_cust_pkg.cgi14
2 files changed, 20 insertions, 3 deletions
diff --git a/httemplate/edit/REAL_cust_pkg.cgi b/httemplate/edit/REAL_cust_pkg.cgi
index d9b7579f6..9cbab2a16 100755
--- a/httemplate/edit/REAL_cust_pkg.cgi
+++ b/httemplate/edit/REAL_cust_pkg.cgi
@@ -1,12 +1,19 @@
<!-- mason kludge -->
<%
-# <!-- $Id: REAL_cust_pkg.cgi,v 1.7 2003-11-19 12:21:09 ivan Exp $ -->
+# <!-- $Id: REAL_cust_pkg.cgi,v 1.8 2004-12-22 14:06:45 ivan Exp $ -->
my $error ='';
my $pkgnum = '';
if ( $cgi->param('error') ) {
$error = $cgi->param('error');
$pkgnum = $cgi->param('pkgnum');
+ if ( $error eq '_bill_areyousure' ) {
+ my $bill = $cgi->param('bill');
+ $error = "You are attempting to set the next bill date to $bill, which is
+ in the past. This will charge the customer for the interval
+ from $bill until now. Are you sure you want to do this? ".
+ '<INPUT TYPE="checkbox" NAME="bill_areyousure" VALUE="1">';
+ }
} else {
my($query) = $cgi->keywords;
$query =~ /^(\d+)$/ or die "no pkgnum";
diff --git a/httemplate/edit/process/REAL_cust_pkg.cgi b/httemplate/edit/process/REAL_cust_pkg.cgi
index 3d697ddfd..84d0cc129 100755
--- a/httemplate/edit/process/REAL_cust_pkg.cgi
+++ b/httemplate/edit/process/REAL_cust_pkg.cgi
@@ -8,9 +8,19 @@ $hash{'bill'} = $cgi->param('bill') ? str2time($cgi->param('bill')) : '';
$hash{'last_bill'} =
$cgi->param('last_bill') ? str2time($cgi->param('last_bill')) : '';
$hash{'expire'} = $cgi->param('expire') ? str2time($cgi->param('expire')) : '';
-my $new = new FS::cust_pkg \%hash;
-my $error = $new->replace($old);
+my $new;
+my $error;
+if ( $hash{'bill'} != $old->bill # if the next bill date was changed
+ && $hash{'bill'} < time # to a date in the past
+ && ! $cgi->param('bill_areyousure') # and it wasn't confirmed
+ )
+{
+ $error = '_bill_areyousure';
+} else {
+ $new = new FS::cust_pkg \%hash;
+ $error = $new->replace($old);
+}
if ( $error ) {
$cgi->param('error', $error);