warn and require confirmation when editing next bill dates to a date in the past...
authorivan <ivan>
Wed, 22 Dec 2004 14:06:45 +0000 (14:06 +0000)
committerivan <ivan>
Wed, 22 Dec 2004 14:06:45 +0000 (14:06 +0000)
httemplate/edit/REAL_cust_pkg.cgi
httemplate/edit/process/REAL_cust_pkg.cgi

index d9b7579..9cbab2a 100755 (executable)
@@ -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";
index 3d697dd..84d0cc1 100755 (executable)
@@ -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);