fix use of agent_custid in quick payment entry, RT#10035
authormark <mark>
Thu, 23 Sep 2010 23:21:06 +0000 (23:21 +0000)
committermark <mark>
Thu, 23 Sep 2010 23:21:06 +0000 (23:21 +0000)
httemplate/misc/process/batch-cust_pay.cgi
httemplate/misc/xmlhttp-cust_main-search.cgi

index aefc006..e51b9e6 100644 (file)
 %  #my $row = 0;
 %  #while ( exists($param->{"custnum$row"}) ) {
 %  for ( my $row = 0; exists($param->{"custnum$row"}); $row++ ) {
+%    my $custnum = $param->{"custnum$row"};
+%    my $cust_main;
+%    if ( $custnum =~ /^(\d+)$/ and $1 <= 2147483647 ) {
+%      $cust_main = qsearchs({ 
+%        'table'     => 'cust_main',
+%        'hashref'   => { 'custnum' => $1 },
+%        'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
+%      });
+%    }
+%    if ( !$cust_main ) { # not found, try agent_custid
+%      $cust_main = qsearchs({ 
+%        'table'     => 'cust_main',
+%        'hashref'   => { 'agent_custid' => $custnum },
+%        'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
+%      });
+%    }
+%    $custnum = $cust_main->custnum if $cust_main;
+%    # if !$cust_main, then this will throw an error on batch_insert
+%
 %    push @cust_pay, new FS::cust_pay {
-%                      'custnum'        => $param->{"custnum$row"},
+%                      'custnum'        => $custnum,
 %                      'paid'           => $param->{"paid$row"},
 %                      'payby'          => 'BILL',
 %                      'payinfo'        => $param->{"payinfo$row"},
index 26e68b5..615a4bb 100644 (file)
@@ -2,10 +2,10 @@
 % 
 %   my $custnum = $cgi->param('arg');
 %   my $cust_main = '';
-%   if ( $custnum <= 2147483647 ) {
+%   if ( $custnum =~ /^(\d+)$/ and $1 <= 2147483647 ) {
 %     $cust_main = qsearchs({
 %       'table'   => 'cust_main',
-%       'hashref' => { 'custnum' => $custnum },
+%       'hashref' => { 'custnum' => $1 },
 %       'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
 %     });
 %   }