The 18.0 migration of `pos_payment_method_cashdro` (OCA/pos@6a4c251d) kept three uses of APIs removed in 18.0. The module has no tests nor tours and needs a physical drawer to be exercised, so the OCA CI can't catch them: * `_cashdro_url()` reads `order.selected_paymentline`, so `.payment_method` on the resulting `undefined` throws a TypeError on every payment, swallowed into a generic "An error occurred while connecting to the cashdro" dialog. * The `add_paymentline()` patch checks `line.payment_method`, renamed to `payment_method_id`, so the line keeps the default due amount instead of waiting for the amount the customer inserts. * `_loader_params_pos_payment_method()` is the 17.0 loading API, replaced by `_load_pos_data_fields()`. Dead code, so the CashDro credentials never reach the front end. Patched from the outside, as OCA sources are not to be modified. Written to stay harmless once fixed upstream: the Python override only adds the missing fields and the JS patches are idempotent against the fixed code. `upstream/pos_payment_method_cashdro-18.0-fixes.patch` holds the same fixes as a ready to send `git format-patch`, verified with `git apply --check`. This module is temporary and should be removed once that lands in OCA/pos. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
21 lines
1.1 KiB
ReStructuredText
21 lines
1.1 KiB
ReStructuredText
There is nothing to configure: installing the module is enough.
|
|
|
|
To check the three fixes on a PoS with a CashDro terminal:
|
|
|
|
#. Open a PoS session, add a product and go to the payment screen.
|
|
#. Select the CashDro payment method. The payment line must show **0**, not the
|
|
due amount (fix 2).
|
|
#. The drawer must start the operation and ask for the amount, instead of the
|
|
*"An error occurred while connecting to the cashdro"* dialog (fixes 1 and 3).
|
|
#. With no CashDro at hand, the browser console tells fix 1 from fix 3 apart:
|
|
without this module the failure is a ``TypeError: Cannot read properties of
|
|
undefined (reading 'payment_method')``; with it, a network error against the
|
|
configured host.
|
|
|
|
The Python side is covered by the tests. The base module lives outside this
|
|
repo, so the OCA sources have to be on the addons path (see
|
|
``docker-compose.override.yml``, which is local and untracked)::
|
|
|
|
docker-compose run --rm odoo odoo -c /etc/odoo/odoo.conf \
|
|
--addons-path=/mnt/extra-addons,/mnt/oca/pos,/usr/lib/python3/dist-packages/odoo/addons \
|
|
-d odoo -u pos_payment_method_cashdro_fix --test-enable --stop-after-init
|