formatting
This commit is contained in:
parent
6c1fac8672
commit
ad067475f8
13 changed files with 1126 additions and 709 deletions
62
mixin.py
62
mixin.py
|
@ -6,7 +6,6 @@
|
|||
from trytond.model import fields
|
||||
from trytond.pyson import Eval, Bool, Or
|
||||
from trytond.pool import Pool
|
||||
from trytond.transaction import Transaction
|
||||
from trytond.exceptions import UserError
|
||||
from trytond.i18n import gettext
|
||||
from trytond.modules.product.uom import uom_conversion_digits
|
||||
|
@ -22,7 +21,8 @@ DEPENDSQ.extend(DEPENDS)
|
|||
class SecondUomMixin(object):
|
||||
""" two fields for second uom: quantity, rate
|
||||
"""
|
||||
quantity_2nd_uom = fields.Numeric(string='Quantity Second UOM',
|
||||
quantity_2nd_uom = fields.Numeric(
|
||||
string='Quantity Second UOM',
|
||||
digits=(16, Eval('quantity2nd_digits', 4)),
|
||||
states={
|
||||
'readonly': Or(
|
||||
|
@ -32,8 +32,10 @@ class SecondUomMixin(object):
|
|||
'required': Bool(Eval('quantity2nd')),
|
||||
'invisible': ~Bool(Eval('quantity2nd')),
|
||||
}, depends=DEPENDSQ+['quantity2nd_digits', 'quantity2nd'])
|
||||
factor_2nd_uom = fields.Function(fields.Numeric(string='Conversion factor',
|
||||
help='Conversion factor between the units of the participating cash books.',
|
||||
factor_2nd_uom = fields.Function(fields.Numeric(
|
||||
string='Conversion factor',
|
||||
help='Conversion factor between the units of the ' +
|
||||
'participating cash books.',
|
||||
digits=uom_conversion_digits,
|
||||
states={
|
||||
'readonly': Or(
|
||||
|
@ -45,15 +47,18 @@ class SecondUomMixin(object):
|
|||
}, depends=DEPENDSQ+['quantity2nd_digits', 'quantity2nd']),
|
||||
'on_change_with_factor_2nd_uom', setter='set_factor_2nd_uom')
|
||||
|
||||
quantity2nd = fields.Function(fields.Many2One(model_name='product.uom',
|
||||
quantity2nd = fields.Function(fields.Many2One(
|
||||
model_name='product.uom',
|
||||
string="2nd UOM", readonly=True), 'on_change_with_quantity2nd')
|
||||
quantity2nd_digits = fields.Function(fields.Integer(string='2nd UOM Digits',
|
||||
readonly=True), 'on_change_with_quantity2nd_digits')
|
||||
quantity2nd_digits = fields.Function(fields.Integer(
|
||||
string='2nd UOM Digits', readonly=True),
|
||||
'on_change_with_quantity2nd_digits')
|
||||
|
||||
def quantize_quantity(self, value):
|
||||
""" quantize for line-quantity
|
||||
"""
|
||||
return Decimal(value).quantize(Decimal(Decimal(1) / 10 ** self.quantity_digits))
|
||||
return Decimal(value).quantize(
|
||||
Decimal(Decimal(1) / 10 ** self.quantity_digits))
|
||||
|
||||
@classmethod
|
||||
def add_2nd_quantity(cls, values, from_uom):
|
||||
|
@ -68,17 +73,18 @@ class SecondUomMixin(object):
|
|||
quantity_2nd_uom = values.get('quantity_2nd_uom', None)
|
||||
|
||||
if (quantity is not None) and (booktransf is not None) and \
|
||||
(from_uom is not None):
|
||||
(from_uom is not None):
|
||||
if quantity_2nd_uom is None:
|
||||
booktransf = Cashbook(booktransf)
|
||||
if booktransf.quantity_uom:
|
||||
if from_uom.id != booktransf.quantity_uom.id:
|
||||
# deny impossible transfer
|
||||
if from_uom.category.id != booktransf.quantity_uom.category.id:
|
||||
if from_uom.category.id != \
|
||||
booktransf.quantity_uom.category.id:
|
||||
raise UserError(gettext(
|
||||
'cashbook_investment.msg_uomcat_mismatch',
|
||||
cat1 = from_uom.category.rec_name,
|
||||
cat2 = booktransf.quantity_uom.category.rec_name,
|
||||
cat1=from_uom.category.rec_name,
|
||||
cat2=booktransf.quantity_uom.category.rec_name,
|
||||
))
|
||||
|
||||
values['quantity_2nd_uom'] = Decimal(UOM.compute_qty(
|
||||
|
@ -87,7 +93,8 @@ class SecondUomMixin(object):
|
|||
booktransf.quantity_uom,
|
||||
round=False,
|
||||
)).quantize(Decimal(
|
||||
Decimal(1) / 10 ** booktransf.quantity_digits)
|
||||
Decimal(1) /
|
||||
10 ** booktransf.quantity_digits)
|
||||
)
|
||||
return values
|
||||
|
||||
|
@ -106,7 +113,7 @@ class SecondUomMixin(object):
|
|||
if line.booktransf is None:
|
||||
continue
|
||||
if (line.cashbook.quantity_uom is None) or \
|
||||
(line.booktransf.quantity_uom is None):
|
||||
(line.booktransf.quantity_uom is None):
|
||||
continue
|
||||
|
||||
if line.cashbook.quantity_uom.id == line.booktransf.quantity_uom.id:
|
||||
|
@ -124,24 +131,27 @@ class SecondUomMixin(object):
|
|||
if len(to_write) > 0:
|
||||
Line2.write(*to_write)
|
||||
|
||||
@fields.depends('booktransf', '_parent_booktransf.quantity_uom', \
|
||||
'quantity_uom', 'quantity_digits', 'quantity', \
|
||||
@fields.depends(
|
||||
'booktransf', '_parent_booktransf.quantity_uom',
|
||||
'quantity_uom', 'quantity_digits', 'quantity',
|
||||
'quantity_2nd_uom', 'factor_2nd_uom')
|
||||
def on_change_booktransf(self):
|
||||
""" update quantity_2nd_uom
|
||||
"""
|
||||
self.on_change_factor_2nd_uom()
|
||||
|
||||
@fields.depends('booktransf', '_parent_booktransf.quantity_uom', \
|
||||
'quantity_uom', 'quantity_digits', 'quantity', \
|
||||
@fields.depends(
|
||||
'booktransf', '_parent_booktransf.quantity_uom',
|
||||
'quantity_uom', 'quantity_digits', 'quantity',
|
||||
'quantity_2nd_uom', 'factor_2nd_uom')
|
||||
def on_change_quantity(self):
|
||||
""" update quantity_2nd_uom
|
||||
"""
|
||||
self.on_change_factor_2nd_uom()
|
||||
|
||||
@fields.depends('booktransf', '_parent_booktransf.quantity_uom', \
|
||||
'quantity_uom', 'quantity_digits', 'quantity', \
|
||||
@fields.depends(
|
||||
'booktransf', '_parent_booktransf.quantity_uom',
|
||||
'quantity_uom', 'quantity_digits', 'quantity',
|
||||
'quantity_2nd_uom', 'factor_2nd_uom')
|
||||
def on_change_factor_2nd_uom(self):
|
||||
""" update quantity_2nd_uom + factor_2nd_uom
|
||||
|
@ -153,7 +163,7 @@ class SecondUomMixin(object):
|
|||
self.factor_2nd_uom = None
|
||||
return
|
||||
if (self.booktransf.quantity_uom is None) or \
|
||||
(self.quantity_uom is None):
|
||||
(self.quantity_uom is None):
|
||||
return
|
||||
|
||||
if self.factor_2nd_uom is None:
|
||||
|
@ -168,8 +178,9 @@ class SecondUomMixin(object):
|
|||
if self.quantity != Decimal('0.0'):
|
||||
self.factor_2nd_uom = (
|
||||
self.quantity_2nd_uom / self.quantity
|
||||
).quantize(Decimal(Decimal(1) / 10 ** uom_conversion_digits[1]))
|
||||
else :
|
||||
).quantize(Decimal(
|
||||
Decimal(1) / 10 ** uom_conversion_digits[1]))
|
||||
else:
|
||||
self.quantity_2nd_uom = self.quantize_quantity(
|
||||
self.quantity * self.factor_2nd_uom)
|
||||
|
||||
|
@ -188,7 +199,8 @@ class SecondUomMixin(object):
|
|||
exp = Decimal(Decimal(1) / 10 ** uom_conversion_digits[1])
|
||||
return (self.quantity_2nd_uom / self.quantity).quantize(exp)
|
||||
|
||||
@fields.depends('booktransf', '_parent_booktransf.quantity_uom', 'quantity_uom')
|
||||
@fields.depends(
|
||||
'booktransf', '_parent_booktransf.quantity_uom', 'quantity_uom')
|
||||
def on_change_with_quantity2nd(self, name=None):
|
||||
""" uom of transfer-target
|
||||
"""
|
||||
|
@ -196,7 +208,7 @@ class SecondUomMixin(object):
|
|||
if self.quantity_uom:
|
||||
if self.booktransf.quantity_uom:
|
||||
if self.quantity_uom.id != \
|
||||
self.booktransf.quantity_uom.id:
|
||||
self.booktransf.quantity_uom.id:
|
||||
return self.booktransf.quantity_uom.id
|
||||
|
||||
@fields.depends('booktransf', '_parent_booktransf.quantity_digits')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue