add splitline
This commit is contained in:
parent
90fbfa3fde
commit
b9b500624e
13 changed files with 299 additions and 27 deletions
66
splitline.py
Normal file
66
splitline.py
Normal file
|
@ -0,0 +1,66 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# This file is part of the cashbook-module from m-ds.de for Tryton.
|
||||
# The COPYRIGHT file at the top level of this repository contains the
|
||||
# full copyright notices and license terms.
|
||||
|
||||
|
||||
from trytond.pool import PoolMeta, Pool
|
||||
from trytond.model import fields
|
||||
from trytond.pyson import Eval, Or
|
||||
from .mixin import SecondUomMixin
|
||||
|
||||
|
||||
STATES = {
|
||||
'readonly': Or(
|
||||
Eval('state', '') != 'edit',
|
||||
Eval('state_cashbook', '') != 'open',
|
||||
),
|
||||
'required': Eval('feature', '') == 'asset',
|
||||
'invisible': Eval('feature', '') != 'asset',
|
||||
}
|
||||
DEPENDS=['state', 'state_cashbook', 'feature']
|
||||
|
||||
|
||||
class SplitLine(SecondUomMixin, metaclass=PoolMeta):
|
||||
__name__ = 'cashbook.split'
|
||||
|
||||
quantity = fields.Numeric(string='Quantity',
|
||||
digits=(16, Eval('quantity_digits', 4)),
|
||||
states=STATES, depends=DEPENDS+['quantity_digits'])
|
||||
quantity_digits = fields.Function(fields.Integer(string='Digits',
|
||||
readonly=True, states={'invisible': True}),
|
||||
'on_change_with_quantity_digits')
|
||||
quantity_uom = fields.Function(fields.Many2One(string='Symbol',
|
||||
readonly=True, model_name='product.uom'),
|
||||
'on_change_with_quantity_uom')
|
||||
|
||||
@fields.depends('line', '_parent_line.cashbook')
|
||||
def on_change_with_quantity_uom(self, name=None):
|
||||
""" get quantity-unit of asset
|
||||
"""
|
||||
if self.line:
|
||||
if self.line.cashbook.quantity_uom:
|
||||
return self.cashbook.quantity_uom.id
|
||||
|
||||
@fields.depends('line', '_parent_line.cashbook')
|
||||
def on_change_with_quantity_digits(self, name=None):
|
||||
""" get digits from cashbook
|
||||
"""
|
||||
if self.line:
|
||||
return self.line.cashbook.quantity_digits
|
||||
return 4
|
||||
|
||||
@classmethod
|
||||
def add_2nd_unit_values(cls, values):
|
||||
""" extend create-values
|
||||
"""
|
||||
Line2 = Pool().get('cashbook.line')
|
||||
|
||||
values = super(SplitLine, cls).add_2nd_unit_values(values)
|
||||
line = Line2(values.get('line', None))
|
||||
|
||||
if line:
|
||||
values.update(cls.add_2nd_quantity(values, line.cashbook.quantity_uom))
|
||||
return values
|
||||
|
||||
# end SplitLine
|
Loading…
Add table
Add a link
Reference in a new issue