Bug 37563: Refund, payout, and discount modals in borrower transactions and Point of Sale have broken/bad formatting of values

This patch corrects formatting of amounts in both the POS and member
    accounting module Payment, Discount, and Payout modals.
It also corrects an issue where amounts of a previous modal show up
    when clicking on the same modal for a different accountline
    the member Accounting page.
Finally, it corrects an issue with the member Accounting Discount
    modal in that an amount without both decimal places will not
    display.

Steps to test:
1) Login to staff client
2) Enable the 'EnablePointOfSale' system preference
3) Enable the 'UseCashRegisters' system preference
4) Open POS module and configure a cash register
5) In the POS module -> 'Configure items for purchase', create some
	items with different costs (divisible by .10, e.g 25 or 1.10, etc.))
6) Use the POS module to make a few transactions
7) Open POS -> 'Cash Summary for [BRANCH]', and open your configured
	register
8) Click 'Issue Refund' and check the formatting of the paid and
	returned to patron numbers
*** Issue A) See that numbers are not formatted with two decimal places
9) Pull up the 'Accounting' tab for a borrower
10) Create at least 3 invoices for different amounts (divisible by .10,
	e.g 25 or 1.10, etc.)
11) Pay TWO of your invoices then open the 'Transactions' tab
12) Create a manual credit for an amount (divisible by .10, e.g 25 or
	1.10, etc.)
13)	Click the 'Apply discount' button on one of your invoices
*** Issue B) No 'Amount charged' appears
14) Click 'Issue refund' for one of the	paid invoices.
*** Issue C) The 'Return to Patron' line does not have 2 decimal places
15) Click 'Issue refund' for another paid invoice
*** Issue D) The 'Amount Paid' shows the amount from the first modal
16) Click 'Apply discount' for one of the unpaid invoices
*** Issue E) The 'Amount charged' line is blank
*** Issue F) The discount line is also blank, should at least have a
	0.00 value
17) Click 'Issue Payout' for your manual credit.
*** Issue G) The 'Return to Patron' line does not have 2 decimal places
18) Apply patch
19) Repeat steps 7 & 8 and check the formatting is correct for issue A
20) Repeat steps 13-17 and check behavior and formatting is correct
	for issues B-G
21) Celebrate that you are done with all the steps and looking at
	numbers, and that all is right in the Koha payment world (maybe)

Sponsored by: Westlake Porter Public Library
Signed-off-by: Barbara Johnson <barbara.johnson@bedfordtx.gov>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
CJ Lynce 2024-08-04 20:33:51 +00:00 committed by Katrin Fischer
parent f4f9edb59a
commit 538c943faa
Signed by: kfischer
GPG key ID: 0EF6E2C03357A834
2 changed files with 9 additions and 9 deletions

View file

@ -439,8 +439,8 @@
var accountline = button.data('accountline'); var accountline = button.data('accountline');
$('#payoutline').val(accountline); $('#payoutline').val(accountline);
var amount = button.data('amount') * -1; var amount = button.data('amount') * -1;
$("#paid + span").replaceWith(amount.format_price()); $("#paid + span").text(amount.format_price());
$("#amount").attr({ "value": amount, "max": amount, "min": 0 }); $("#amount").attr({ "value": amount.format_price(), "max": amount, "min": 0 });
$("#amount, #payout_transaction_type").focus(); $("#amount, #payout_transaction_type").focus();
}); });
@ -453,8 +453,8 @@
var amount = button.data('amount'); var amount = button.data('amount');
var amountoutstanding = button.data('amountoutstanding') || 0; var amountoutstanding = button.data('amountoutstanding') || 0;
var paid = amount - amountoutstanding; var paid = amount - amountoutstanding;
$("#paid + span").replaceWith(paid.format_price()); $("#paid + span").text(paid.format_price());
$("#returned").attr({ "value": paid, "max": paid, "min": 0 }); $("#returned").attr({ "value": paid.format_price(), "max": paid.format_price(), "min": 0 });
var member = button.data('member'); var member = button.data('member');
if ( member === '' ) { if ( member === '' ) {
$("#refund_type option[value='AC']").remove(); $("#refund_type option[value='AC']").remove();
@ -470,9 +470,9 @@
$("#item + span").replaceWith(item); $("#item + span").replaceWith(item);
var accountline = button.data('accountline'); var accountline = button.data('accountline');
$('#discountline').val(accountline); $('#discountline').val(accountline);
var amount = button.data('amount'); var amountoutstanding = button.data('amountoutstanding');
$("#charged + span").replaceWith(amount.format_price()); $("#charged + span").text(amountoutstanding);
$("#discount").attr({ "max": amount, "min": 0 }); $("#discount").attr({ "value": (0).format_price(), "max": amountoutstanding, "min": 0 });
$("#discount").focus(); $("#discount").focus();
}); });

View file

@ -413,8 +413,8 @@
var amount = button.data('amount'); var amount = button.data('amount');
var amountoutstanding = button.data('amountoutstanding') || 0; var amountoutstanding = button.data('amountoutstanding') || 0;
var paid = amount - amountoutstanding; var paid = amount - amountoutstanding;
$("#paid + span").text(paid); $("#paid + span").text(paid.format_price());
$("#returned").attr({ "value": paid, "max": paid }); $("#returned").attr({ "value": paid.format_price(), "max": paid });
var member = button.data('member'); var member = button.data('member');
if ( member === '' ) { if ( member === '' ) {
$("#refund_type option[value='AC']").remove(); $("#refund_type option[value='AC']").remove();