From d7977d0a346e3e5975c44a75b915bb437be66f4f Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 5 Jun 2008 05:06:36 +0000 Subject: payment and credit applications have separate "apply to refund" choices now, and no auto-refund choice in the invoice dropdown. RT#3545 --- httemplate/edit/elements/ApplicationCommon.html | 170 ++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 httemplate/edit/elements/ApplicationCommon.html (limited to 'httemplate/edit/elements') diff --git a/httemplate/edit/elements/ApplicationCommon.html b/httemplate/edit/elements/ApplicationCommon.html new file mode 100644 index 000000000..0e6c49975 --- /dev/null +++ b/httemplate/edit/elements/ApplicationCommon.html @@ -0,0 +1,170 @@ +<%doc> + +Examples: + + #cust_bill_pay + include('elements/ApplicationCommon.html', + 'form_action' => 'process/cust_bill_pay.cgi', + 'src_table' => 'cust_pay', + 'src_thing' => 'payment', + 'dst_table' => 'cust_bill', + 'dst_thing' => 'invoice', + ) + + #cust_credit_bill + include('elements/ApplicationCommon.html', + 'form_action' => 'process/cust_credit_bill.cgi', + 'src_table' => 'cust_credit', + 'src_thing' => 'credit', + 'dst_table' => 'cust_bill', + 'dst_thing' => 'invoice', + ) + + #cust_pay_refund + include('elements/ApplicationCommon.html', + 'form_action' => 'process/cust_pay_refund.cgi', + 'src_table' => 'cust_pay', + 'src_thing' => 'payment', + 'dst_table' => 'cust_refund', + 'dst_thing' => 'refund', + ) + + #cust_credit_refund + include('elements/ApplicationCommon.html', + 'form_action' => 'process/cust_credit_refund.cgi', + 'src_table' => 'cust_credit', + 'src_thing' => 'credit', + 'dst_table' => 'cust_refund', + 'dst_thing' => 'refund', + ) + + +<% include('/elements/header-popup.html', "Apply $src_thing$to" ) %> + +<% include('/elements/error.html') %> + +
+ +<% $src_thing %> #<% $src_pkeyvalue %>
+ + + + + + + + + + + + + + + + + + + +% if ( $src_table eq 'cust_credit' ) { + + + + +% } + +
Date: <% time2str("%D", $src->_date) %>
Amount: <% $money_char %><% $src->amount %>
Unapplied amount: <% $money_char %><% $unapplied %>
Reason: <% $src->reason %>
+
+ + + +Apply to: + + + + + + + + + + + + + +
<% $dst_thing %>: +
Amount: <% $money_char %>
+ +
+
+ +
+ +<% include('/elements/footer.html') %> + +<%init> + +my %opt = @_; + +my $conf = new FS::Conf; +my $money_char = $conf->config('money_char') || '$'; + +my $src_thing = ucfirst($opt{'src_thing'}); +my $src_table = $opt{'src_table'}; +my $src_pkey = dbdef->table($src_table)->primary_key; + +my $dst_thing = ucfirst($opt{'dst_thing'}); +my $dst_table = $opt{'dst_table'}; +my $dst_pkey = dbdef->table($dst_table)->primary_key; +my $dst_unapplied = $dst_table eq 'cust_bill' ? 'owed' : 'unapplied'; + +my $to = $dst_table eq 'cust_refund' ? ' to Refund' : ''; + +my($src_pkeyvalue, $amount, $dst_pkeyvalue); +if ( $cgi->param('error') ) { + $src_pkeyvalue = $cgi->param($src_pkey); + $amount = $cgi->param('amount'); + $dst_pkeyvalue = $cgi->param($dst_pkey); +} else { + my($query) = $cgi->keywords; + $query =~ /^(\d+)$/; + $src_pkeyvalue = $1; + $amount = ''; + $dst_pkeyvalue = ''; +} + +my $otaker = getotaker; + +my $p1 = popurl(1); + +my $src = qsearchs($src_table, { $src_pkey => $src_pkeyvalue } ); +die "$src_thing $src_pkeyvalue not found!" unless $src; + +my $unapplied = $src->unapplied; + +my @dst = sort { $a->_date <=> $b->_date + or $a->$dst_pkey <=> $b->$dst_pkey + } + grep { $_->$dst_unapplied != 0 } + qsearch($dst_table, { 'custnum' => $src->custnum } ); + + -- cgit v1.2.1