Merge branch 'master' of git.freeside.biz:/home/git/freeside
authorIvan Kohler <ivan@freeside.biz>
Thu, 21 Feb 2013 04:10:34 +0000 (20:10 -0800)
committerIvan Kohler <ivan@freeside.biz>
Thu, 21 Feb 2013 04:10:34 +0000 (20:10 -0800)
httemplate/elements/tr-select-discount_term.html
httemplate/misc/confirm-cust_pkg-edit_dates.html
httemplate/misc/process/payment.cgi

index e9faeb2..d4218f8 100644 (file)
@@ -24,7 +24,9 @@ function change_discount_term(what) {
         id      => 'discount_term',
         options => [ '', @discount_term ],
         labels  => { '' => mt('1 month'), 
-                     map { $_ => mt('[_1] months', $_) } @discount_term },
+                     map { $_ => mt('[_1] months', sprintf('%.0f', $_)) }
+                      @discount_term
+                   },
         curr_value => '',
         onchange => $amount_id ? 'change_discount_term(this)' : '',
       &>
index 27b9a82..8e54852 100755 (executable)
@@ -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, '';
   }
index 506e266..981614e 100644 (file)
@@ -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")