Raf Geens 11848e672c [FIX] point_of_sale: Wait for cancellation to finish before starting a new transaction
Previously, when cancelling an Ingenico transaction, the cancellation
was considered done from the POS' point of view even though it hadn't
actually finished on the terminal yet. Starting a new transaction from
the POS meant it would fail and the POS and terminal's states would get
out of sync.

In an enterprise PR for the pos_iot module, a fix was made so the
cancellation request is only considered done when the terminal has
confirmed that.

In the case of pressing cancel on a payment line, this means that the
button will block and remain in a loading state with a spinner until
the operation finishes. After this the user can press the retry button
the payment line.

There are two other workflows where waiting for the cancel operation to
finish wasn't done until now, and that's what this PR is for.

The first is when a transaction was requested and the
back button was pressed in the UI. This cancels the active transactions.
If you wait a while after pressing the back button, the UI will be
notified when the cancellation finishes, and the payment line's state
will be updated in the local db, even if it's not visible on screen.
When you go back to the payment screen, you'll be able to retry the
transaction again. In V13, if after pressing the back button you
immediately go back to the payment screen, you'll see the spinner of the
wait for the cancellation, but it would never update. That's because
while the local db gets updated when the cancellation finishes, the
payment screen lines didn't get refreshed. Hence in V13 a call was added to
`stop_electronic_payment` that re-renders the payment lines (if we are
present on the payment screen) once the cancellation finishes. In V14
the UI will already correctly update on its own, so no change is required.

The second case is when a transaction is requested and the user deletes
the payment line. This used to happen immediately without waiting for
anything. This PR changes that so the line goes to the `waitingCancel`
state instead, and will only be deleted once the operation finishes. If
there's nothing to be cancelled, the line will get deleted immediately
like before.

opw-2525010

closes odoo/odoo#78414

X-original-commit: 8c1f5dd711a074412b707d30ba3ff3f42945d8a0
Related: odoo/enterprise#21710
Signed-off-by: Raf Geens <raf-odoo@users.noreply.github.com>
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
2021-10-14 21:25:05 +00:00
2021-10-13 22:10:30 +00:00
…
…
…
2021-10-07 17:59:53 +00:00

Build Status Tech Doc Help Nightly Builds

Odoo

Odoo is a suite of web based open source business apps.

The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...

Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.

Getting started with Odoo

For a standard installation please follow the Setup instructions from the documentation.

To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials

S
Description
No description provided
Readme LGPL-3.0
3.4 GiB
Languages
Python 49.6%
JavaScript 47.8%
SCSS 2%
CSS 0.3%
HTML 0.2%