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>