Bug 36846

Summary: Collected and change variables are set to 0.00 when printing from POS Transaction history
Product: Koha Reporter: Lucas Gass (lukeg) <lucas>
Component: Fines and feesAssignee: Bugs List <koha-bugs>
Status: NEW --- QA Contact: Testopia <testopia>
Severity: normal    
Priority: P5 - low CC: jacob.omara, lisette, martin.renvoize, pedro.amorim, sally.healey, samalau
Version: Main   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: ---
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Circulation function:
Attachments: Bug 36846: PROOF OF ISSUE

Description Lucas Gass (lukeg) 2024-05-13 20:41:14 UTC
TO recreate:
1. Configure your Koha to enable the point of sale system (i.e. enable syspref,
   set up a register, set up an item to sell).
2. Complete a transaction in the POS system.
3. Go to Cash summary for { THIS BRANCH }
4. Click on the line with a link that includes your register name. ( /cgi-bin/koha/pos/register.pl?registerid=X )
5. Click 'Print receipt'.
6. Tendered ( collected ) and Change ( change ) are 0.00
Comment 1 Sam Lau 2024-08-23 15:07:00 UTC
After completing a transaction, if you press the print receipt button at the top on the pos/pay.pl page, the receipt prints fine. That is because we have direct access to the 'collected' and 'change' variables and can pass them in the print receipt href. However, from the register summary page, these variables are now gone, so when we press print, they are both 0. It doesn't appear like these are stored anywhere so I think we would need to add them to the DB in order for this to work.
Comment 2 Jacob O'Mara 2024-11-24 12:43:11 UTC
This seems to also be an issue in accounts->make a payment
The change and tendered variables do not populate.

To recreate:
1. Enable syspref ('FinePaymentAutoPopup')
2. Change the ACCOUNT_CREDIT notice for print to contain:
```
[% USE Price %]
[% PROCESS 'accounts.inc' %]
<table>
  <tr>
    <td colspan="3">Amount tendered: </td>
    <td>[% tendered | $Price %]</td>
  </tr>
  <tr>
    <td colspan="3">Change given: </td>
    <td>[% change | $Price %]</td>
  </tr>
<table>
```
3. Create a Manual invoice for a patron for any amount.
4. Go to pay this charge
5. Tender a greater amount than the amount of the charge
6. Observe the receipt generated has 0 for change given and amount tendered.

So we can actually get the change given to populate correctly with a small patch to modify the expected variable from change to change_given (I've also modified the return variable to change_given in my patch as I believe this is the intended return variable so make sure to amend the notice from <td>[% change | $Price %]</td> to <td>[% change_given | $Price %]</td> to match)


Apply patch
Repeat steps 3-5
See that the change given now populates correctly.

Tendered however is not even passed in to the url so this needs further looking.
Comment 3 Jacob O'Mara 2024-11-24 12:47:50 UTC
Created attachment 174961 [details] [review]
Bug 36846: PROOF OF ISSUE

This patch is a proof of issue and not a fix.