35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
|
# this repository contains the full copyright notices and license terms.
|
|
|
|
from trytond.model import fields
|
|
from trytond.pool import PoolMeta
|
|
|
|
from .company import price_digits
|
|
|
|
|
|
class Line(metaclass=PoolMeta):
|
|
__name__ = 'timesheet.line'
|
|
|
|
cost_price = fields.Numeric('Cost Price',
|
|
digits=price_digits, required=True, readonly=True)
|
|
|
|
@classmethod
|
|
def default_cost_price(cls):
|
|
# Needed at creation as cost_price is required
|
|
return 0
|
|
|
|
@classmethod
|
|
def preprocess_values(cls, mode, values):
|
|
values = super().preprocess_values(mode, values)
|
|
if mode == 'create':
|
|
# XXX Remove cost_price because proteus set it as default value
|
|
values.pop('cost_price', None)
|
|
return values
|
|
|
|
def compute_fields(self, field_names=None):
|
|
values = super().compute_fields(field_names=field_names)
|
|
cost_price = self.employee.compute_cost_price(date=self.date)
|
|
if getattr(self, 'cost_price', None) != cost_price:
|
|
values['cost_price'] = cost_price
|
|
return values
|