updated quick payment entry
[freeside.git] / httemplate / misc / process / batch-cust_pay.cgi
diff --git a/httemplate/misc/process/batch-cust_pay.cgi b/httemplate/misc/process/batch-cust_pay.cgi
new file mode 100644 (file)
index 0000000..1cc6c3b
--- /dev/null
@@ -0,0 +1,40 @@
+<%
+  my $param = $cgi->Vars;
+
+  #my $paybatch = $param->{'paybatch'};
+  my $paybatch = time2str('webbatch-%Y/%m/%d-%T'. "-$$-". rand() * 2**32, time);
+
+  my @cust_pay = ();
+  #my $row = 0;
+  #while ( exists($param->{"custnum$row"}) ) {
+  for ( my $row = 0; exists($param->{"custnum$row"}); $row++ ) {
+    push @cust_pay, new FS::cust_pay {
+                                       'custnum'  => $param->{"custnum$row"},
+                                       'paid'     => $param->{"paid$row"},
+                                       'payby'    => 'BILL',
+                                       'payinfo'  => $param->{"payinfo$row"},
+                                       'paybatch' => $paybatch,
+                                     }
+      if    $param->{"custnum$row"}
+         || $param->{"paid$row"}
+         || $param->{"payinfo$row"};
+    #$row++;
+  }
+
+  my @errors = FS::cust_pay->batch_insert(@cust_pay);
+  my $num_errors = scalar(grep $_, @errors);
+
+  if ( $num_errors ) {
+
+    $cgi->param('error', "$num_errors error". ($num_errors>1 ? 's' : '') );
+
+    my $erow=0;
+    $cgi->param('error'. $erow++, shift @errors) while @errors;
+
+    %><%= $cgi->redirect($p.'batch-cust_pay.html?'. $cgi->query_string)
+
+  %><% } else {
+
+    %><%= $cgi->redirect(popurl(3). "search/cust_pay.cgi?magic=paybatch;paybatch=$paybatch") %>
+
+  <% } %>