add cust_pay_refund table to refund payments
[freeside.git] / httemplate / edit / process / cust_bill_pay.cgi
index f0d4033..0025b16 100755 (executable)
@@ -1,22 +1,7 @@
 <%
-#<!-- $Id: cust_bill_pay.cgi,v 1.1 2001-12-18 19:30:31 ivan Exp $ -->
-
-use strict;
-use vars qw( $cgi $custnum $paynum $new $error );
-use CGI;
-use CGI::Carp qw(fatalsToBrowser);
-use FS::UID qw(cgisuidsetup getotaker);
-use FS::CGI qw(popurl);
-use FS::Record qw(qsearchs fields);
-use FS::cust_pay;
-use FS::cust_bill_pay;
-use FS::cust_main;
-
-$cgi = new CGI;
-cgisuidsetup($cgi);
 
 $cgi->param('paynum') =~ /^(\d*)$/ or die "Illegal paynum!";
-$paynum = $1;
+my $paynum = $1;
 
 my $cust_pay = qsearchs('cust_pay', { 'paynum' => $paynum } )
   or die "No such paynum";
@@ -26,14 +11,26 @@ my $cust_main = qsearchs('cust_main', { 'custnum' => $cust_pay->custnum } )
 
 my $custnum = $cust_main->custnum;
 
-$new = new FS::cust_bill_pay ( {
-  map {
-    $_, scalar($cgi->param($_));
-  #} qw(custnum _date amount invnum)
-  } fields('cust_bill_pay')
-} );
+my $new;
+if ($cgi->param('invnum') =~ /^Refund$/) {
+  $new = new FS::cust_refund ( {
+    'reason'  => 'Refunding payment', #enter reason in UI
+    'refund'  => $cgi->param('amount'),
+    'payby'   => 'BILL',
+    #'_date'   => $cgi->param('_date'),
+    'payinfo' => 'Cash', #enter payinfo in UI
+    'paynum' => $paynum,
+  } );
+} else {
+  $new = new FS::cust_bill_pay ( {
+    map {
+      $_, scalar($cgi->param($_));
+    #} qw(custnum _date amount invnum)
+    } fields('cust_bill_pay')
+  } );
+}
 
-$error=$new->insert;
+my $error = $new->insert;
 
 if ( $error ) {
   $cgi->param('error', $error);