From b0e0ee3d52b1164ca5bd925bffdf4d795576219d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 19 Mar 2022 22:31:21 +0100 Subject: [PATCH] Permit to edit amount for manual payment in processing Payment processed manually can have mistakes in the amount. So by going back to processing, the user can edit the amount. issue11176 review387791003 --- CHANGELOG | 1 + payment.py | 16 +++++++++++++++- payment.xml | 10 ++++++++++ view/payment_form.xml | 1 + 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 152f0196c7..f2f6225810 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Permit to edit amount for manual payment in processing * Use reference field for statement line relation * Do not create dunning for line with pending payment * Add support for Python 3.10 diff --git a/payment.py b/payment.py index 5e0770b0fc..7c86340265 100644 --- a/payment.py +++ b/payment.py @@ -305,7 +305,13 @@ class Payment(Workflow, ModelSQL, ModelView): date = fields.Date('Date', required=True, states=_STATES, depends=_DEPENDS) amount = Monetary( "Amount", currency='currency', digits='currency', required=True, - states=_STATES, depends=_DEPENDS) + states={ + 'readonly': ~Eval('state').in_( + If(Eval('process_method') == 'manual', + ['draft', 'processing'], + ['draft'])), + }, + depends=['state', 'process_method']) line = fields.Many2One('account.move.line', 'Line', ondelete='RESTRICT', domain=[ ('move.company', '=', Eval('company', -1)), @@ -405,6 +411,13 @@ class Payment(Workflow, ModelSQL, ModelView): 'icon': 'tryton-forward', 'depends': ['state'], }, + 'proceed': { + 'invisible': ( + ~Eval('state').in_(['succeeded', 'failed']) + | (Eval('process_method') != 'manual')), + 'icon': 'tryton-back', + 'depends': ['state', 'process_method'], + }, 'succeed': { 'invisible': ~Eval('state').in_( ['processing', 'failed']), @@ -559,6 +572,7 @@ class Payment(Workflow, ModelSQL, ModelView): return group @classmethod + @ModelView.button @Workflow.transition('processing') def proceed(cls, payments): assert all(p.group for p in payments) diff --git a/payment.xml b/payment.xml index 2e4c7d9ce8..63f97fa98f 100644 --- a/payment.xml +++ b/payment.xml @@ -390,6 +390,16 @@ this repository contains the full copyright notices and license terms. --> + + proceed + Processing + + + + + + + succeed Succeed diff --git a/view/payment_form.xml b/view/payment_form.xml index 017ffe827c..bc078a52b7 100644 --- a/view/payment_form.xml +++ b/view/payment_form.xml @@ -41,6 +41,7 @@ this repository contains the full copyright notices and license terms. -->