summaryrefslogtreecommitdiff
path: root/httemplate/edit/process/REAL_cust_pkg.cgi
diff options
context:
space:
mode:
authorivan <ivan>2009-11-30 00:04:21 +0000
committerivan <ivan>2009-11-30 00:04:21 +0000
commit20c9ad0d871b072d0ed15e461156c0d73307db7c (patch)
treee1780f448bbb600b167c86b4c090d855b42bb418 /httemplate/edit/process/REAL_cust_pkg.cgi
parent752ed76d717d305b12e32fd2a68b1a253f63008d (diff)
UI changes to make it impossible to add a start date to a package that already has a setup fee (can still remove an existing start date causing problems), RT#6712
Diffstat (limited to 'httemplate/edit/process/REAL_cust_pkg.cgi')
-rwxr-xr-xhttemplate/edit/process/REAL_cust_pkg.cgi23
1 files changed, 17 insertions, 6 deletions
diff --git a/httemplate/edit/process/REAL_cust_pkg.cgi b/httemplate/edit/process/REAL_cust_pkg.cgi
index d4ba976c4..22aab44e8 100755
--- a/httemplate/edit/process/REAL_cust_pkg.cgi
+++ b/httemplate/edit/process/REAL_cust_pkg.cgi
@@ -27,14 +27,25 @@ $hash{'last_bill'} =
$hash{'adjourn'} = $cgi->param('adjourn') ? str2time($cgi->param('adjourn')) : '';
$hash{'expire'} = $cgi->param('expire') ? str2time($cgi->param('expire')) : '';
+my @errors = ();
+
+push @errors, '_bill_areyousure'
+ 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
+
+push @errors, '_setup_areyousure'
+ if ! $hash{'setup'} && $old->setup # if the setup date was removed
+ && ! $cgi->param('setup_areyousure'); # and it wasn't confirmed
+
+push @errors, '_start'
+ if $hash{'start_date'} && $old->start_date # if a start date was added
+ && $hash{'setup'}; # but there's a setup date
+
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';
+if ( @errors ) {
+ $error = join(',', @errors);
} else {
$new = new FS::cust_pkg \%hash;
$error = $new->replace($old);