From b62c64027ececc23b2e6ff471a6c648259bbb01f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 21 Aug 2021 09:09:56 +0200 Subject: [PATCH] Add monetary field issue10598 review338511002 --- purchase.py | 39 +++++-------------- view/purchase_requisition_form.xml | 2 +- view/purchase_requisition_line_form.xml | 4 +- view/purchase_requisition_line_list.xml | 4 +- ...urchase_requisition_line_list_sequence.xml | 4 +- view/purchase_requisition_tree.xml | 2 +- 6 files changed, 18 insertions(+), 37 deletions(-) diff --git a/purchase.py b/purchase.py index 3fe0fd9285..2e6353f084 100644 --- a/purchase.py +++ b/purchase.py @@ -16,6 +16,7 @@ from trytond.tools import grouped_slice, firstline from trytond.modules.company.model import ( employee_field, set_employee, reset_employee) +from trytond.modules.currency.fields import Monetary from trytond.modules.product import price_digits, round_price @@ -127,15 +128,11 @@ class PurchaseRequisition(Workflow, ModelSQL, ModelView): | (Eval('lines', [0]) & Eval('currency'))), }, depends=_depends) - currency_digits = fields.Function( - fields.Integer('Currency Digits'), 'on_change_with_currency_digits') total_amount = fields.Function( - fields.Numeric('Total', digits=(16, Eval('currency_digits', 2)), - depends=['currency_digits']), + Monetary("Total", currency='currency', digits='currency'), 'get_amount') - total_amount_cache = fields.Numeric( - 'Total Cache', digits=(16, Eval('currency_digits', 2)), - depends=['currency_digits']) + total_amount_cache = Monetary( + "Total Cache", currency='currency', digits='currency') lines = fields.One2Many( 'purchase.requisition.line', 'requisition', 'Lines', states=_states, depends=_depends) @@ -248,21 +245,6 @@ class PurchaseRequisition(Workflow, ModelSQL, ModelView): if company: return Company(company).currency.id - @classmethod - def default_currency_digits(cls): - Company = Pool().get('company.company') - company = Transaction().context.get('company') - if company: - company = Company(company) - return company.currency.digits - return 2 - - @fields.depends('currency') - def on_change_with_currency_digits(self, name=None): - if self.currency: - return self.currency.digits - return 2 - @fields.depends('lines', 'currency') def on_change_with_total_amount(self): self.total_amount = Decimal('0.0') @@ -476,15 +458,14 @@ class PurchaseRequisitionLine(sequence_ordered(), ModelSQL, ModelView): depends=['product'] + _depends) unit_digits = fields.Function( fields.Integer('Unit Digits'), 'on_change_with_unit_digits') - unit_price = fields.Numeric( - 'Unit Price', digits=price_digits, states=_states, depends=_depends) + unit_price = Monetary( + 'Unit Price', currency='currency', digits=price_digits, + states=_states, depends=_depends) currency = fields.Function(fields.Many2One('currency.currency', 'Currency'), 'on_change_with_currency') - amount = fields.Function( - fields.Numeric('Amount', - digits=( - 16, Eval('_parent_requisition', {}).get('currency_digits', 2)), - depends=_depends), 'on_change_with_amount') + amount = fields.Function(Monetary( + "Amount", currency='currency', digits='currency'), + 'on_change_with_amount') purchase_requests = fields.One2Many( 'purchase.request', 'origin', 'Purchase Request', readonly=True) purchase_requisition_state = fields.Function(fields.Selection( diff --git a/view/purchase_requisition_form.xml b/view/purchase_requisition_form.xml index 92e3284dd9..577211ea91 100644 --- a/view/purchase_requisition_form.xml +++ b/view/purchase_requisition_form.xml @@ -22,7 +22,7 @@ this repository contains the full copyright notices and license terms. -->