diff options
Diffstat (limited to 'httemplate/misc')
-rwxr-xr-x | httemplate/misc/confirm-cust_pkg-edit_dates.html | 10 | ||||
-rw-r--r-- | httemplate/misc/process/payment.cgi | 10 |
2 files changed, 17 insertions, 3 deletions
diff --git a/httemplate/misc/confirm-cust_pkg-edit_dates.html b/httemplate/misc/confirm-cust_pkg-edit_dates.html index 27b9a82f4..8e548527a 100755 --- a/httemplate/misc/confirm-cust_pkg-edit_dates.html +++ b/httemplate/misc/confirm-cust_pkg-edit_dates.html @@ -63,7 +63,7 @@ if ( $hash{'setup'} != $cust_pkg->get('setup') ) { } else { push @confirm, ''; } - } elsif ( $cust_pkg->get('setup') ) { + } elsif ( $hash{'setup'} and !$cust_pkg->get('setup') ) { my $text = 'Add a setup date of [_1]'; $text .= ' to this and all its supplemental packages' if @supp_pkgs; $text .= '.'; @@ -110,7 +110,7 @@ if ( $hash{'last_bill'} != $cust_pkg->get('last_bill') ) { # Bill date change if ( $hash{'bill'} != $cust_pkg->get('bill') ) { my $bill = time2str($date_format, $hash{'bill'}); - $bill = 'the current day' if !$hash{'bill'}; # or 'the end of today'?... + $bill = 'today' if !$hash{'bill'}; # or 'the end of today'?... my $name = 'next bill date'; $name = 'end of the prepaid period' if $part_pkg->is_prepaid; push @changes, mt('Set the [_1] to [_2].', $name, $bill); @@ -119,6 +119,12 @@ if ( $hash{'bill'} != $cust_pkg->get('bill') ) { push @confirm, mt('The customer will be charged for the interval from [_1] until now.', $bill); + } elsif ( !$hash{'bill'} and ($hash{'last_bill'} or $hash{'setup'}) ) { + my $last_bill = + time2str($date_format, $hash{'last_bill'} || $hash{'setup'}); + push @confirm, + mt('The customer will be charged for the interval from [_1] until now.', + $last_bill); } else { push @confirm, ''; } diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi index 506e26684..981614e76 100644 --- a/httemplate/misc/process/payment.cgi +++ b/httemplate/misc/process/payment.cgi @@ -210,7 +210,15 @@ if ( $cgi->param('save') ) { $new->set( 'paycvv' => ''); } - $new->set( $_ => $cgi->param($_) ) foreach @{$payby2fields{$payby}}; + if ( $payby eq 'CARD' ) { + my $bill_location = FS::cust_location->new; + $bill_location->set( $_ => $cgi->param($_) ) + foreach @{$payby2fields{$payby}}; + $new->set('bill_location' => $bill_location); + # will do nothing if the fields are all unchanged + } else { + $new->set( $_ => $cgi->param($_) ) foreach @{$payby2fields{$payby}}; + } my $error = $new->replace($cust_main); errorpage("payment processed successfully, but error saving info: $error") |