X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fpayment.cgi;h=7911a5dd9073ec18e6ed13cd3b65cc60b74f0272;hb=95cffb2e514c6117fc3eb111581d387b5d0b4e77;hp=081964e9377843bf6cdb9c0c8759e1cc17450f6b;hpb=dcdf657e77ec7b46dc69e19a849a9c133123db7c;p=freeside.git
diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi
index 081964e93..7911a5dd9 100644
--- a/httemplate/misc/payment.cgi
+++ b/httemplate/misc/payment.cgi
@@ -1,207 +1,248 @@
-%
-% my %type = ( 'CARD' => 'credit card',
-% 'CHEK' => 'electronic check (ACH)',
-% );
-%
-% $cgi->param('payby') =~ /^(CARD|CHEK)$/
-% or die "unknown payby ". $cgi->param('payby');
-% my $payby = $1;
-%
-% $cgi->param('custnum') =~ /^(\d+)$/
-% or die "illegal custnum ". $cgi->param('custnum');
-% my $custnum = $1;
-%
-% my $cust_main = qsearchs( 'cust_main', { 'custnum'=>$custnum } );
-% die "unknown custnum $custnum" unless $cust_main;
-%
-% my $balance = $cust_main->balance;
-%
-% my $payinfo = '';
-%
-% #false laziness w/selfservice make_payment.html shortcut for one-country
-% my $conf = new FS::Conf;
-% my %states = map { $_->state => 1 }
-% qsearch('cust_main_county', {
-% 'country' => $conf->config('countrydefault') || 'US'
-% } );
-% my @states = sort { $a cmp $b } keys %states;
-%
-% my $paybatch = "webui-payment-". time. "-$$-". rand() * 2**32;
-%
-%
+<& /elements/header-cust_main.html, view=>'payment_history', cust_main=>$cust_main &>
+
+
<% emt("Process [_1] payment",$type{$payby}) %>
-<% include( '/elements/header.html', "Process $type{$payby} payment" ) %>
-<% include( '/elements/small_custview.html', $cust_main ) %>
-<% include('/elements/footer.html') %>
+
+
+<& /elements/footer-cust_main.html &>
+<%once>
+
+my %weight = (
+ 1 => 'Primary',
+ 2 => 'Secondary',
+ 3 => 'Tertiary',
+ 4 => 'Fourth',
+ 5 => 'Fifth',
+ 6 => 'Sixth',
+ 7 => 'Seventh',
+);
+
+%once>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Process payment');
+
+my %type = ( 'CARD' => 'credit card',
+ 'CHEK' => 'electronic check (ACH)',
+ );
+
+$cgi->param('payby') =~ /^(CARD|CHEK)$/
+ or die "unknown payby ". $cgi->param('payby');
+my $payby = $1;
+
+my $validate_select_fields = "#payment_option, #invoice, #custpaybynum, ";
+my $validate_input_fields = "#amount, input[name=payname], ";
+if ($payby eq "CHEK") {
+ $validate_input_fields .= "input[name=payinfo1], input[name=payinfo2]";
+ $validate_select_fields .= "select[name=paytype] ";
+}
+elsif ($payby eq "CARD") {
+ $validate_input_fields .= "input[name=payinfo], input[name=paycvv], input[name=address1], #city, #zip";
+ $validate_select_fields .= "#state, #country ";
+}
+
+$cgi->param('custnum') =~ /^(\d+)$/
+ or die "illegal custnum ". $cgi->param('custnum');
+my $custnum = $1;
+
+my $cust_main = qsearchs( 'cust_main', { 'custnum'=>$custnum } );
+die "unknown custnum $custnum" unless $cust_main;
+
+my $balance = $cust_main->balance;
+
+my $payinfo = '';
+
+my $conf = new FS::Conf;
+
+my $payunique = "webui-payment-". time. "-$$-". rand() * 2**32;
+
+%init>