changeset 994ab0494b59 in modules/account_payment:default
details:
https://hg.tryton.org/modules/account_payment?cmd=changeset&node=994ab0494b59
description:
Add employee on payments for some states
issue9677
review359451002
diffstat:
CHANGELOG | 2 ++
payment.py | 18 +++++++++++++++++-
tests/scenario_account_payment.rst | 21 ++++++++++++++++++++-
view/payment_form.xml | 7 +++++++
4 files changed, 46 insertions(+), 2 deletions(-)
diffs (153 lines):
diff -r ac6d7bc33d63 -r 994ab0494b59 CHANGELOG
--- a/CHANGELOG Sat Apr 10 23:46:23 2021 +0200
+++ b/CHANGELOG Sun Apr 11 10:48:26 2021 +0200
@@ -1,3 +1,5 @@
+* Add employee on payments for some states
+
Version 5.8.0 - 2020-11-02
* Bug fixes (see mercurial logs for details)
* Remove support for Python 3.5
diff -r ac6d7bc33d63 -r 994ab0494b59 payment.py
--- a/payment.py Sat Apr 10 23:46:23 2021 +0200
+++ b/payment.py Sun Apr 11 10:48:26 2021 +0200
@@ -17,7 +17,8 @@
from trytond.tools import sortable_values
from trytond.wizard import Wizard, StateView, StateAction, Button
from trytond.pool import Pool
-
+from trytond.modules.company.model import (
+ employee_field, set_employee, reset_employee)
from .exceptions import OverpayWarning
KINDS = [
@@ -311,6 +312,14 @@
process_method = fields.Function(
fields.Selection('get_process_methods', "Process Method"),
'on_change_with_process_method', searcher='search_process_method')
+ approved_by = employee_field(
+ "Approved by",
+ states=['approved', 'processing', 'succeeded', 'failed'])
+ succeeded_by = employee_field(
+ "Success Noted by", states=['succeeded', 'processing'])
+ failed_by = employee_field(
+ "Failure Noted by",
+ states=['failed', 'processing'])
state = fields.Selection([
('draft', 'Draft'),
('approved', 'Approved'),
@@ -446,6 +455,9 @@
else:
default = default.copy()
default.setdefault('group', None)
+ default.setdefault('approved_by')
+ default.setdefault('succeeded_by')
+ default.setdefault('failed_by')
return super().copy(payments, default=default)
@classmethod
@@ -460,12 +472,14 @@
@classmethod
@ModelView.button
@Workflow.transition('draft')
+ @reset_employee('approved_by', 'succeeded_by', 'failed_by')
def draft(cls, payments):
pass
@classmethod
@ModelView.button
@Workflow.transition('approved')
+ @set_employee('approved_by')
def approve(cls, payments):
pass
@@ -497,12 +511,14 @@
@classmethod
@ModelView.button
@Workflow.transition('succeeded')
+ @set_employee('succeeded_by')
def succeed(cls, payments):
pass
@classmethod
@ModelView.button
@Workflow.transition('failed')
+ @set_employee('failed_by')
def fail(cls, payments):
pass
diff -r ac6d7bc33d63 -r 994ab0494b59 tests/scenario_account_payment.rst
--- a/tests/scenario_account_payment.rst Sat Apr 10 23:46:23 2021 +0200
+++ b/tests/scenario_account_payment.rst Sun Apr 11 10:48:26 2021 +0200
@@ -22,6 +22,20 @@
>>> _ = create_company()
>>> company = get_company()
+Set employee::
+
+ >>> User = Model.get('res.user')
+ >>> Party = Model.get('party.party')
+ >>> Employee = Model.get('company.employee')
+ >>> employee_party = Party(name="Employee")
+ >>> employee_party.save()
+ >>> employee = Employee(party=employee_party)
+ >>> employee.save()
+ >>> user = User(config.user)
+ >>> user.employees.append(employee)
+ >>> user.employee = employee
+ >>> user.save()
+
Create fiscal year::
>>> fiscalyear = create_fiscalyear(company)
@@ -46,7 +60,6 @@
Create parties::
- >>> Party = Model.get('party.party')
>>> customer = Party(name='Customer')
>>> customer.save()
>>> supplier = Party(name='Supplier')
@@ -81,6 +94,8 @@
Decimal('50.00')
>>> payment.amount = Decimal('20.00')
>>> payment.click('approve')
+ >>> payment.approved_by == employee
+ True
>>> payment.state
'approved'
>>> process_payment = Wizard('account.payment.process', [payment])
@@ -106,6 +121,8 @@
Success the payment and recheck the payment group::
>>> payment.click('succeed')
+ >>> payment.succeeded_by == employee
+ True
>>> payment.state
'succeeded'
>>> group.reload()
@@ -139,6 +156,8 @@
Decimal('0.00')
>>> payment.reload()
>>> payment.click('fail')
+ >>> payment.failed_by == employee
+ True
>>> payment.state
'failed'
>>> payment.group.payment_complete
diff -r ac6d7bc33d63 -r 994ab0494b59 view/payment_form.xml
--- a/view/payment_form.xml Sat Apr 10 23:46:23 2021 +0200
+++ b/view/payment_form.xml Sun Apr 11 10:48:26 2021 +0200
@@ -28,6 +28,13 @@
<field name="group"/>
<label name="origin"/>
<field name="origin"/>
+ <newline/>
+ <label name="approved_by"/>
+ <field name="approved_by"/>
+ <label name="succeeded_by"/>
+ <field name="succeeded_by"/>
+ <label name="failed_by"/>
+ <field name="failed_by"/>
</page>
</notebook>
<group col="4" colspan="4" id="state_buttons">