changeset 53c0b88cade5 in modules/account_payment_stripe:default
details: 
https://hg.tryton.org/modules/account_payment_stripe?cmd=changeset&node=53c0b88cade5
description:
        Add approving employee on refunds

        issue11297
        review356071002
diffstat:

 CHANGELOG            |   1 +
 payment.py           |  16 ++++++++++++++++
 view/refund_form.xml |  16 +++++++++-------
 3 files changed, 26 insertions(+), 7 deletions(-)

diffs (93 lines):

diff -r b21f405ccacf -r 53c0b88cade5 CHANGELOG
--- a/CHANGELOG Sun Mar 20 01:02:06 2022 +0100
+++ b/CHANGELOG Sat Mar 26 12:17:01 2022 +0100
@@ -1,3 +1,4 @@
+* Add approving employee on refunds
 * Add setup intent expire delay
 * Add support for Python 3.10
 * Remove support for Python 3.6
diff -r b21f405ccacf -r 53c0b88cade5 payment.py
--- a/payment.py        Sun Mar 20 01:02:06 2022 +0100
+++ b/payment.py        Sat Mar 26 12:17:01 2022 +0100
@@ -18,6 +18,8 @@
     DeactivableMixin, ModelSQL, ModelView, Workflow, dualmethod, fields)
 from trytond.modules.account_payment.exceptions import (
     PaymentValidationError, ProcessError)
+from trytond.modules.company.model import (
+    employee_field, reset_employee, set_employee)
 from trytond.modules.currency.fields import Monetary
 from trytond.pool import Pool, PoolMeta
 from trytond.pyson import Eval
@@ -688,6 +690,10 @@
             'readonly': Eval('state') != 'draft',
             },
         depends=['state'])
+    approved_by = employee_field(
+        "Approved by",
+        states=['approved', 'processing', 'succeeded', 'failed'])
+
     state = fields.Selection([
             ('draft', "Draft"),
             ('approved', "Approved"),
@@ -715,6 +721,9 @@
     currency = fields.Function(
         fields.Many2One('currency.currency', "Currency"),
         'on_change_with_currency')
+    company = fields.Function(
+        fields.Many2One('company.company', "Company"),
+        'on_change_with_company')
 
     @classmethod
     def __setup__(cls):
@@ -752,6 +761,11 @@
         if self.payment and self.payment.currency:
             return self.payment.currency.id
 
+    @fields.depends('payment', '_parent_payment.company')
+    def on_change_with_company(self, name=None):
+        if self.payment and self.payment.company:
+            return self.payment.company.id
+
     @classmethod
     def default_state(cls):
         return 'draft'
@@ -781,12 +795,14 @@
     @classmethod
     @ModelView.button
     @Workflow.transition('draft')
+    @reset_employee('approved_by')
     def draft(cls, refunds):
         pass
 
     @classmethod
     @ModelView.button
     @Workflow.transition('approved')
+    @set_employee('approved_by')
     def approve(cls, refunds):
         pass
 
diff -r b21f405ccacf -r 53c0b88cade5 view/refund_form.xml
--- a/view/refund_form.xml      Sun Mar 20 01:02:06 2022 +0100
+++ b/view/refund_form.xml      Sat Mar 26 12:17:01 2022 +0100
@@ -19,12 +19,14 @@
     <label name="stripe_error_param"/>
     <field name="stripe_error_param"/>
 
-    <group col="4" colspan="4" id="state_buttons">
-        <label name="state"/>
-        <field name="state"/>
-        <group col="-1" colspan="2" id="buttons">
-            <button name="draft"/>
-            <button name="approve"/>
-        </group>
+    <label name="approved_by"/>
+    <field name="approved_by"/>
+    <newline/>
+
+    <label name="state"/>
+    <field name="state"/>
+    <group col="-1" colspan="2" id="buttons">
+        <button name="draft"/>
+        <button name="approve"/>
     </group>
 </form>

Reply via email to