[freeside-commits] branch master updated. 3f27b7ce7c72b0ff7061baf3586e130b1c9a1569

Jonathan Prykop jonathan at 420.am
Mon Mar 2 15:54:47 PST 2015


The branch, master has been updated
       via  3f27b7ce7c72b0ff7061baf3586e130b1c9a1569 (commit)
      from  1183337f7bcc30422b525ff14c0b67d48f08f07f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 3f27b7ce7c72b0ff7061baf3586e130b1c9a1569
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Mon Mar 2 17:53:51 2015 -0600

    RT#30825: Modernize Bulk payment importing [error handling for mismatched agentnum]

diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm
index 0a36aca..ce8a355 100644
--- a/FS/FS/cust_pay.pm
+++ b/FS/FS/cust_pay.pm
@@ -1175,40 +1175,49 @@ sub process_batch_import {
   my $hashcb = sub {
     my %hash = @_;
     my $custnum = $hash{'custnum'};
+    my $agentnum = $hash{'agentnum'};
     my $agent_custid = $hash{'agent_custid'};
     #standardize date
     $hash{'_date'} = parse_datetime($hash{'_date'})
       if $hash{'_date'} && $hash{'_date'} =~ /\D/;
+    #remove custnum_prefix
+    my $custnum_prefix = $conf->config('cust_main-custnum-display_prefix');
+    my $custnum_length = $conf->config('cust_main-custnum-display_length') || 8;
+    if (
+      $custnum_prefix 
+      && $custnum =~ /^$custnum_prefix(0*([1-9]\d*))$/
+      && length($1) == $custnum_length 
+    ) {
+      $custnum = $2;
+    }
+    # check agentnum against custnum and
     # translate agent_custid into regular custnum
     if ($custnum && $agent_custid) {
       die "can't specify both custnum and agent_custid\n";
-    } elsif ($agent_custid) {
+    } elsif ($agentnum || $agent_custid) {
       # here is the agent virtualization
       my $extra_sql = ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql;
-      my $agentnum = $hash{'agentnum'};
-      my %search = (
-        'agent_custid' => $agent_custid,
-        'agentnum'     => $agentnum,
-      );
+      my %search;
+      $search{'agentnum'} = $agentnum
+        if $agentnum;
+      $search{'agent_custid'} = $agent_custid
+        if $agent_custid;
+      $search{'custnum'} = $custnum
+        if $custnum;
       my $cust_main = qsearchs({
         'table'     => 'cust_main',
         'hashref'   => \%search,
         'extra_sql' => $extra_sql,
       });
-      die "can't find customer with agent_custid $agent_custid\n"
+      die "can't find customer with" .
+        ($agentnum ? " agentnum $agentnum" : '') .
+        ($custnum  ? " custnum $custnum" : '') .
+        ($agent_custid ? " agent_custid $agent_custid" : '') . "\n"
         unless $cust_main;
+      die "mismatched customer number\n"
+        if $custnum && ($custnum ne $cust_main->custnum);
       $custnum = $cust_main->custnum;
     }
-    #remove custnum_prefix
-    my $custnum_prefix = $conf->config('cust_main-custnum-display_prefix');
-    my $custnum_length = $conf->config('cust_main-custnum-display_length') || 8;
-    if (
-      $custnum_prefix 
-      && $custnum =~ /^$custnum_prefix(0*([1-9]\d*))$/
-      && length($1) == $custnum_length 
-    ) {
-      $custnum = $2;
-    }
     $hash{'custnum'} = $custnum;
     delete($hash{'agent_custid'});
     return %hash;
diff --git a/httemplate/elements/select-payby.html b/httemplate/elements/select-payby.html
index 2018874..a976b77 100644
--- a/httemplate/elements/select-payby.html
+++ b/httemplate/elements/select-payby.html
@@ -3,7 +3,7 @@
         <% $onchange %>
 >
 
-% unless ( $opt{'multiple'} || $opt{'no_all'} ) {
+% unless ( $opt{'multiple'} || $opt{'disable_empty'} ) {
     <OPTION VALUE="" <% '' eq $value ? 'SELECTED' : '' %> ><% mt('all') |h %> 
 % }
 
diff --git a/httemplate/misc/cust_pay-import.cgi b/httemplate/misc/cust_pay-import.cgi
index ee0154d..102f842 100644
--- a/httemplate/misc/cust_pay-import.cgi
+++ b/httemplate/misc/cust_pay-import.cgi
@@ -41,7 +41,7 @@ Import a file containing customer payments.
 
 <% include( '/elements/tr-select-payby.html',
      'paybys' => \%paybys,
-     'no_all' => 1,
+     'disable_empty' => 1,
      'label'  => '<B>Payment type</B>',
    )
 %>

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/cust_pay.pm                     |   43 ++++++++++++++++++++-------------
 httemplate/elements/select-payby.html |    2 +-
 httemplate/misc/cust_pay-import.cgi   |    2 +-
 3 files changed, 28 insertions(+), 19 deletions(-)




More information about the freeside-commits mailing list