Bugzilla – Attachment 93934 Details for
Bug 23788
Writing off multiple fees allows 'overpayment' of those fees
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 23788: Recalculate ammount due for selected accountlines
Bug-23788-Recalculate-ammount-due-for-selected-acc.patch (text/plain), 3.44 KB, created by
Kyle M Hall (khall)
on 2019-10-09 17:16:49 UTC
(
hide
)
Description:
Bug 23788: Recalculate ammount due for selected accountlines
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2019-10-09 17:16:49 UTC
Size:
3.44 KB
patch
obsolete
>From c3e929e5d0e72c27e6531912a18ad6154ce063f2 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 9 Oct 2019 13:08:10 -0400 >Subject: [PATCH] Bug 23788: Recalculate ammount due for selected accountlines > >Individual fees cannot be overpaid of over-written off, but it's possible to 'overpay' a writeoff of selected fees. > >Test Plan: >1) Create 3 fees >2) Pick 2 and choose "Write off selected" >3) Write off more than the total amount of those fees >4) Apply this patch set >5) Restart all the things! >6) Try again, you should no longer be able to! >--- > members/paycollect.pl | 39 ++++++++++++++++++++++++--------------- > 1 file changed, 24 insertions(+), 15 deletions(-) > >diff --git a/members/paycollect.pl b/members/paycollect.pl >index e76953caa5..8a51c68445 100755 >--- a/members/paycollect.pl >+++ b/members/paycollect.pl >@@ -69,9 +69,9 @@ my $total_due = $account->outstanding_debits->total_outstanding; > > my $total_paid = $input->param('paid'); > >-my $selected_lines = $input->param('selected'); >+my $selected_lines = $input->param('selected'); # comes from pay.pl > my $pay_individual = $input->param('pay_individual'); >-my $selected_accts = $input->param('selected_accts'); >+my $selected_accts = $input->param('selected_accts'); # comes from paycollect.pl > my $payment_note = uri_unescape scalar $input->param('payment_note'); > my $payment_type = scalar $input->param('payment_type'); > my $accountlines_id; >@@ -128,7 +128,6 @@ if ( $pay_individual || $writeoff_individual ) { > payment_note => $payment_note, > ); > } elsif ($selected_lines) { >- $total_due = $input->param('amt'); > $template->param( > selected_accts => $selected_lines, > amt => $total_due, >@@ -181,18 +180,28 @@ if ( $total_paid and $total_paid ne '0.00' ) { > { order_by => 'date' } > ); > >- $payment_id = $account->pay( >- { >- type => $type, >- amount => $total_paid, >- library_id => $library_id, >- lines => \@lines, >- note => $note, >- interface => C4::Context->interface, >- payment_type => $payment_type, >- cash_register => $registerid >- } >- ); >+ $total_due = 0; # Reset and recalculate total due >+ map { $total_due += $_->amountoutstanding } @lines; >+ >+ if ( $total_paid > $total_due ) { >+ $template->param( >+ error_over => 1, >+ total_due => $total_due >+ ); >+ } else { >+ $payment_id = $account->pay( >+ { >+ type => $type, >+ amount => $total_paid, >+ library_id => $library_id, >+ lines => \@lines, >+ note => $note, >+ interface => C4::Context->interface, >+ payment_type => $payment_type, >+ cash_register => $registerid >+ } >+ ); >+ } > } > else { > my $note = $input->param('selected_accts_notes'); >-- >2.21.0 (Apple Git-122)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 23788
:
93932
|
93933
|
93934
|
93935
|
93936
|
94276
|
94277
|
94278
|
94786
|
94787
|
94788
|
94789
|
95232
|
95233
|
95234