Openbravo Issue Tracking System - Retail Modules |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0039393 | Retail Modules | Web POS | public | 2018-09-05 12:20 | 2018-10-22 18:20 |
|
Reporter | marvintm | |
Assigned To | migueldejuana | |
Priority | urgent | Severity | major | Reproducibility | random |
Status | closed | Resolution | fixed | |
Platform | | OS | 5 | OS Version | |
Product Version | | |
Target Version | RR18Q3.2 | Fixed in Version | RR18Q3.2 | |
Merge Request Status | |
Review Assigned To | marvintm |
OBNetwork customer | No |
Support ticket | |
Regression level | |
Regression date | |
Regression introduced in release | |
Regression introduced by commit | |
Triggers an Emergency Pack | No |
|
Summary | 0039393: Receipt object is global and therefore can be modified after the user has confirmed that the ticket should be processed |
Description | Currently the receipt object is global, accessible by different asynchronous processes, and therefore as the process to complete the receipt is asynchronous, it is possible that modifications happen after the user has confirmed that the ticket should be processed.
It is not possible to avoid the execution of parallel asynchronous processes. However, it is possible to avoid that the execution of these processes changes the information of the current receipt, by cloning the information of the ticket synchronously when the ticket completion process starts, so that from that point on, the cloned ticket is used to execute the completion process. |
Steps To Reproduce | Due to the nature of the issue, the main problems it causes are only visible randomly in different ways. An example of an issue caused indirectly by this problem is the following:
https://issues.openbravo.com/view.php?id=39219 [^] |
Proposed Solution | - Ticket should be cloned in a synchronized way at the start of the ticket completion process.
- The clone of the ticket should be used by the remaining actions in the ticket completion process.
- Even though the WebSQL database could in theory be a problem as it is another global point shared by all processes, so another process could save, and therefore overwrite the ticket with incorrect or outdated information in theory, in practice this should no longer be possible due to the implementation of the "hasbeenmodified" check while saving the record, which should prevent this problem from happening. |
Additional Information | |
Tags | No tags attached. |
Relationships | blocks | design defect | 0039228 | | closed | migueldejuana | Receipt object is global and therefore can be modified after the user has confirmed that the ticket should be processed |
|
Attached Files | |
|
Issue History |
Date Modified | Username | Field | Change |
2018-10-03 09:26 | migueldejuana | Type | design defect => backport |
2018-10-03 09:26 | migueldejuana | Target Version | => RR18Q3.2 |
2018-10-03 10:32 | hgbot | Checkin | |
2018-10-03 10:32 | hgbot | Note Added: 0107130 | |
2018-10-03 10:32 | hgbot | Status | scheduled => resolved |
2018-10-03 10:32 | hgbot | Resolution | open => fixed |
2018-10-03 10:32 | hgbot | Fixed in SCM revision | http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/cfb6a93c38e8961d10cd7364d1337287a255a182 [^] => http://code.openbravo.com/retail/backports/3.0RR18Q3.2/org.openbravo.mobile.core/rev/0c4165dc7b42df58fad18c8efcba47f70f84d6a4 [^] |
2018-10-03 10:35 | hgbot | Checkin | |
2018-10-03 10:35 | hgbot | Note Added: 0107131 | |
2018-10-03 10:35 | hgbot | Fixed in SCM revision | http://code.openbravo.com/retail/backports/3.0RR18Q3.2/org.openbravo.mobile.core/rev/0c4165dc7b42df58fad18c8efcba47f70f84d6a4 [^] => http://code.openbravo.com/retail/backports/3.0RR18Q3.2/org.openbravo.retail.posterminal/rev/e3f0b5b5a9d827f9e0dd49b110674599cf8cdfbc [^] |
2018-10-04 11:54 | hgbot | Checkin | |
2018-10-04 11:54 | hgbot | Note Added: 0107155 | |
2018-10-04 11:54 | hgbot | Fixed in SCM revision | http://code.openbravo.com/retail/backports/3.0RR18Q3.2/org.openbravo.retail.posterminal/rev/e3f0b5b5a9d827f9e0dd49b110674599cf8cdfbc [^] => http://code.openbravo.com/retail/backports/3.0RR18Q3.2/org.openbravo.retail.posterminal/rev/262b20c76539e953ea7bf0d6b5e6039961ef2690 [^] |
2018-10-19 12:14 | marvintm | Status | resolved => closed |
2018-10-19 12:14 | marvintm | Fixed in Version | => RR18Q3.2 |
2018-10-22 14:31 | hgbot | Checkin | |
2018-10-22 14:31 | hgbot | Note Added: 0107482 | |
2018-10-22 14:31 | hgbot | Status | closed => resolved |
2018-10-22 14:31 | hgbot | Fixed in SCM revision | http://code.openbravo.com/retail/backports/3.0RR18Q3.2/org.openbravo.retail.posterminal/rev/262b20c76539e953ea7bf0d6b5e6039961ef2690 [^] => http://code.openbravo.com/erp/pmods/org.openbravo.retail.stockvalidation/rev/4c5f7e3fdd0ded3fdc6b8c3444e6d447624829e5 [^] |
2018-10-22 18:20 | marvintm | Status | resolved => closed |
Notes |
|
(0107130)
|
hgbot
|
2018-10-03 10:32
|
|
Repository: retail/backports/3.0RR18Q3.2/org.openbravo.mobile.core
Changeset: 0c4165dc7b42df58fad18c8efcba47f70f84d6a4
Author: Miguel de Juana <miguel.dejuana <at> openbravo.com>
Date: Wed Oct 03 10:31:54 2018 +0200
URL: http://code.openbravo.com/retail/backports/3.0RR18Q3.2/org.openbravo.mobile.core/rev/0c4165dc7b42df58fad18c8efcba47f70f84d6a4 [^]
Fixed issue 0039393: Receipt object is global and therefore can be modified after the user has confirmed that the ticket should be processed
- Instead of do a get and then an update, do directly and update checking the column hasbeenpaid instead of the json.
---
M web/org.openbravo.mobile.core/source/data/ob-dal.js
---
|
|
|
(0107131)
|
hgbot
|
2018-10-03 10:35
|
|
Repository: retail/backports/3.0RR18Q3.2/org.openbravo.retail.posterminal
Changeset: e3f0b5b5a9d827f9e0dd49b110674599cf8cdfbc
Author: Miguel de Juana <miguel.dejuana <at> openbravo.com>
Date: Wed Oct 03 10:35:21 2018 +0200
URL: http://code.openbravo.com/retail/backports/3.0RR18Q3.2/org.openbravo.retail.posterminal/rev/e3f0b5b5a9d827f9e0dd49b110674599cf8cdfbc [^]
Fixed issue 0039393: Receipt object is global and therefore can be modified after the user has confirmed that the ticket should be processed
- Remove unnedeed save after the order is frozen
- Freeze the receipt to avoid overridding the object before sending it to the backend.
- Keep the diff validation (diffReceipt)
- Do a clearWith with frozenReceipt over receipt to set al values and launch all changes events
- Launch triggers over receipt to launch listeners
- Do the clearWith of the frozenReceipt before creating next order
- Save before in the code in Multiorders Layaways coming from server
- Do not save locally quotations and cancel orders
- Do not save frozenReceiptif hasbeenpaid='Y'
. Set again diffReceipt with the frozenReceipt
- Do not save frozenReceipt after sync it
- Restore receipt, frozenReceipt is just to send it to the server
---
M web/org.openbravo.retail.posterminal/js/components/modalmultiorders.js
M web/org.openbravo.retail.posterminal/js/data/dataordersave.js
M web/org.openbravo.retail.posterminal/js/model/order.js
M web/org.openbravo.retail.posterminal/js/pointofsale/view/pointofsale.js
M web/org.openbravo.retail.posterminal/js/utils/ticketCloseUtils.js
---
|
|
|
(0107155)
|
hgbot
|
2018-10-04 11:54
|
|
|
|
(0107482)
|
hgbot
|
2018-10-22 14:31
|
|
Repository: erp/pmods/org.openbravo.retail.stockvalidation
Changeset: 4c5f7e3fdd0ded3fdc6b8c3444e6d447624829e5
Author: Miguel de Juana <miguel.dejuana <at> openbravo.com>
Date: Thu Sep 27 10:37:47 2018 +0200
URL: http://code.openbravo.com/erp/pmods/org.openbravo.retail.stockvalidation/rev/4c5f7e3fdd0ded3fdc6b8c3444e6d447624829e5 [^]
Fixed issue 39393: Receipt object is global and therefore can be modified after the user has confirmed that the ticket should be processed
- We do a clearWith using frozenReceipt and this launches again stockvalidation. Avoid this
---
M web/org.openbravo.retail.stockvalidation/js/modals.js
---
|
|