X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fpayment.cgi;h=4fa3df773b4d9e72d22f095aa851d332d3c1860a;hb=e3414e8ef2f07df0412b5cd645213b34393078ec;hp=2d7307233c680c2743316bd434a05c35c5daec55;hpb=0d8eb2d4d4a372680d0fa564fbfcba0d6674b259;p=freeside.git
diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi
index 2d7307233..4fa3df773 100644
--- a/httemplate/misc/payment.cgi
+++ b/httemplate/misc/payment.cgi
@@ -12,17 +12,24 @@
<& /elements/tr-amount_fee.html,
'amount' => $amount,
- 'process-pkgpart' => scalar($conf->config('manual_process-pkgpart')),
+ 'process-pkgpart' =>
+ scalar($conf->config('manual_process-pkgpart', $cust_main->agentnum)),
'process-display' => scalar($conf->config('manual_process-display')),
'process-skip_first' => $conf->exists('manual_process-skip_first'),
'num_payments' => scalar($cust_main->cust_pay),
- 'surcharge_percentage' => scalar($conf->config('credit-card-surcharge-percentage')),
+ 'surcharge_percentage' =>
+ ( $payby eq 'CARD'
+ ? scalar($conf->config('credit-card-surcharge-percentage', $cust_main->agentnum))
+ : 0
+ ),
&>
- <& /elements/tr-select-discount_term.html,
- 'custnum' => $custnum,
- 'amount_id' => 'amount',
- &>
+% if ( $conf->exists('part_pkg-term_discounts') ) {
+ <& /elements/tr-select-discount_term.html,
+ 'custnum' => $custnum,
+ 'amount_id' => 'amount',
+ &>
+% }
% if ( $payby eq 'CARD' ) {
%
@@ -33,6 +40,8 @@
% $paycvv = $cust_main->paycvv;
% ( $month, $year ) = $cust_main->paydate_monthyear;
% $payname = $cust_main->payname if $cust_main->payname;
+% } elsif ($disable_payauto_default) {
+% $auto = 0;
% }
@@ -41,7 +50,7 @@
- |
+ >
<% mt('Exp.') |h %> |
|
<& /elements/location.html,
- 'object' => $cust_main, #XXX errors???
+ 'object' => $cust_main->bill_location,
'no_asterisks' => 1,
'address1_label' => emt('Card billing address'),
&>
@@ -100,6 +109,8 @@
% $paystate = $cust_main->getfield('paystate');
% $stateid = $cust_main->getfield('stateid');
% $stateid_state = $cust_main->getfield('stateid_state');
+% } elsif ($disable_payauto_default) {
+% $auto = 0;
% }
%
% #false laziness w/{edit,view}/cust_main/billing.html
@@ -113,14 +124,14 @@
<% mt('Account number') |h %> |
- |
+ > |
<% mt('Type') |h %> |
|
<% mt($routing_label) |h %> |
-
+ >
(<% mt('help') |h %>)
|
@@ -128,7 +139,7 @@
<% mt('Branch number') |h %> |
-
+ >
|
% }
@@ -197,11 +208,13 @@
+% my $disallow_no_auto_apply = 0;
% if ( $conf->exists("batch-enable")
% || grep $payby eq $_, $conf->config('batch-enable_payby')
% ) {
%
% if ( grep $payby eq $_, $conf->config('realtime-disable_payby') ) {
+% $disallow_no_auto_apply = 1;
@@ -209,7 +222,7 @@
-
+
<% mt('Add to current batch') |h %>
|
@@ -219,11 +232,52 @@
- payby ne 'DCRD' ) || ( $payby eq 'CHEK' && $cust_main->payby eq 'CHEK' ) ) ? ' CHECKED' : '' %> NAME="auto" VALUE="1" onClick="if (this.checked) { document.OneTrueForm.save.checked=true; }">
+ NAME="auto" VALUE="1" onClick="if (this.checked) { document.OneTrueForm.save.checked=true; }">
<% mt("Charge future payments to this [_1] automatically",$type{$payby}) |h %>
|
+% unless ($disallow_no_auto_apply) {
+% # false laziness with edit/cust_pay.cgi
+
+
+
+ <% mt('Auto-apply to invoices') |h %>
+
+ |
+
+
+% # this can go away if no_auto_apply handling gets added to batch payment processing
+
+
+% }
+
+% if ($auto && $disable_payauto_default) {
+
+% }
+
@@ -251,12 +305,20 @@ my $custnum = $1;
my $cust_main = qsearchs( 'cust_main', { 'custnum'=>$custnum } );
die "unknown custnum $custnum" unless $cust_main;
+my $location = $cust_main->bill_location;
+# no proper error handling on this anyway, but when we have it,
+# remember to repopulate fields in $location
+
my $balance = $cust_main->balance;
my $payinfo = '';
my $conf = new FS::Conf;
+my $auto = ( ( $payby eq 'CARD' && $cust_main->payby ne 'DCRD' ) || ( $payby eq 'CHEK' && $cust_main->payby eq 'CHEK' ) ) ? 1 : 0;
+my $disable_payauto_default = $conf->exists('disable_payauto_default');
+my $possibly_uncheck_auto = ' ONCHANGE="possibly_uncheck_auto()"';
+
#false laziness w/selfservice make_payment.html shortcut for one-country
my %states = map { $_->state => 1 }
qsearch('cust_main_county', {
@@ -266,7 +328,11 @@ my @states = sort { $a cmp $b } keys %states;
my $amount = '';
if ( $balance > 0 ) {
- $amount = $balance;
+ # when configured to do so, amount will only auto-fill with balance
+ # if balance represents a single invoice
+ $amount = $balance
+ unless $conf->exists('manual_process-single_invoice_amount')
+ && ($cust_main->open_cust_bill != 1);
}
my $payunique = "webui-payment-". time. "-$$-". rand() * 2**32;