Openbravo Issue Tracking System - Retail Modules
View Issue Details
0057633Retail ModulesCash uppublic2025-01-13 16:472025-01-16 16:06
aaroncalero 
migueldejuana 
urgentmajoralways
closedfixed 
5
 
RR24Q4.1RR24Q4.1 
approved
No
No
0057633: InitCashup action should not load a cashup from backoffice if the existing cashup in the state is newer
When a cashup is completed in POS, a new cashup is added to the state and the closed cashup is sent to backoffice for processing. However, the closed cashup is not marked as "processed" until its import entry is processed.

If the POS performs a login before that import entry is processed, the Global.initCashup action (in one of its actionPreparations[*]) calls the backoffice and retrieves the last non-processed cashup.

In this situation, the POS finishes the login process with a cashup that is going to be processed in the server as soon as the import entry is triggered. After performing any action involving that cashup (the Open Till process, a ticket, etc), if the import entry has finished processing, an Error While Importing record will be generated for the related document.

[*] https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/blob/master/web/org.openbravo.retail.posterminal/app/model/business-object/cashup/actions/InitCashup.js#L215 [^]
In a development environment, set a breakpoint inside the saveRecord method of ProcessCashClose.java.

Log in POS or POS2.
Check the Cashup id in the state: OB.App.State.getState().Cashup.id
Navigate to the cashup window and complete the process. The POS will automatically log out. At the same time, the server code will be stopped on the breakpoint; leave the code paused for now.
Check the cashup id again. Verify that the id is new.
In POS, log in again.
Check the cashup id for the third time. Note that the id is the first id again.
Let the server code continue and process the cashup.
Try to complete a ticket. Verify that a record has been created in the Errors While Importing POS Data window

The code that was added as part of previous mitigations should not try to reload the non-processed cashup from backoffice if it is detected that the creationDate of the backoffice cashup is older that the current new cashup in the state.
No tags attached.
blocks defect 0057631 closed migueldejuana InitCashup action should not load a cashup from backoffice if the existing cashup in the state is newer 
Issue History
2025-01-14 07:31migueldejuanaTypedefect => backport
2025-01-14 07:31migueldejuanaTarget Version => RR24Q4.1
2025-01-16 15:58hgbotMerge Request Status => open
2025-01-16 15:58hgbotNote Added: 0174236
2025-01-16 16:05hgbotMerge Request Statusopen => approved
2025-01-16 16:06hgbotNote Added: 0174240
2025-01-16 16:06hgbotResolutionopen => fixed
2025-01-16 16:06hgbotStatusscheduled => closed
2025-01-16 16:06hgbotFixed in Version => RR24Q4.1
2025-01-16 16:06hgbotNote Added: 0174241

Notes
(0174236)
hgbot   
2025-01-16 15:58   
Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/1876 [^]
(0174240)
hgbot   
2025-01-16 16:06   
Merge request merged: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/1876 [^]
(0174241)
hgbot   
2025-01-16 16:06   
Directly closing issue as related merge request is already approved.

Repository: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal [^]
Changeset: a73c78a3b43eaf2872a416875f2e4551f4209382
Author: Sabarinath <s.palanisamy@external.orisha.com>
Date: 16-01-2025 20:26:06
URL: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/commit/a73c78a3b43eaf2872a416875f2e4551f4209382 [^]

Fixed ISSUE-57633: Use Backend Cashup only when it is newer.

---
M web/org.openbravo.retail.posterminal/app/model/business-object/cashup/CashupUtils.js
M web/org.openbravo.retail.posterminal/app/model/business-object/cashup/actions/InitCashup.js
---