Openbravo Issue Tracking System - Retail Modules
View Issue Details
0057632Retail ModulesCash uppublic2025-01-13 16:472025-01-16 16:00
aaroncalero 
migueldejuana 
urgentmajoralways
closedfixed 
5
 
RR25Q1RR25Q1 
approved
No
No
0057632: 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 => RR25Q1
2025-01-16 14:23hgbotMerge Request Status => open
2025-01-16 14:23hgbotNote Added: 0174234
2025-01-16 14:36hgbotMerge Request Statusopen => approved
2025-01-16 16:00hgbotNote Added: 0174237
2025-01-16 16:00hgbotResolutionopen => fixed
2025-01-16 16:00hgbotStatusscheduled => closed
2025-01-16 16:00hgbotFixed in Version => RR25Q1
2025-01-16 16:00hgbotNote Added: 0174238

Notes
(0174234)
hgbot   
2025-01-16 14:23   
Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/1875 [^]
(0174237)
hgbot   
2025-01-16 16:00   
Merge request merged: https://gitlab.com/openbravo/product/pmods/org.openbravo.retail.posterminal/-/merge_requests/1875 [^]
(0174238)
hgbot   
2025-01-16 16:00   
Directly closing issue as related merge request is already approved.

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

Fixed ISSUE-57632: 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
---