parent
10cf1c8148
commit
0a3a40c489
|
@ -8,6 +8,8 @@ from trytond.pyson import Eval
|
|||
from trytond.transaction import Transaction
|
||||
from trytond.exceptions import UserError
|
||||
from trytond.i18n import gettext
|
||||
from trytond.modules.company.model import (
|
||||
CompanyMultiValueMixin, CompanyValueMixin)
|
||||
|
||||
|
||||
class Template(metaclass=PoolMeta):
|
||||
|
@ -18,17 +20,15 @@ class Template(metaclass=PoolMeta):
|
|||
|
||||
class Production(metaclass=PoolMeta):
|
||||
__name__ = 'production'
|
||||
|
||||
quality_templates = fields.Function(fields.One2Many(
|
||||
'product.template-quality.template', None, "Quality Templates"),
|
||||
'product.template-quality.template', None, "Quality Templates"),
|
||||
'get_quality_templates')
|
||||
|
||||
quality_tests = fields.One2Many('quality.test', 'document', 'Quality Tests',
|
||||
quality_tests = fields.One2Many('quality.test', 'document', "Quality Tests",
|
||||
context={
|
||||
'default_quality_templates': Eval('quality_templates'),
|
||||
},
|
||||
depends=['quality_templates'])
|
||||
time_since_quality_control = fields.DateTime('Time since quality control',
|
||||
time_since_quality_control = fields.DateTime("Time since quality control",
|
||||
readonly=True)
|
||||
|
||||
def get_quality_templates(self, name):
|
||||
|
@ -66,20 +66,18 @@ class Production(metaclass=PoolMeta):
|
|||
|
||||
to_save = []
|
||||
for production in productions:
|
||||
for quality_template in production.quality_templates:
|
||||
total_time_since_quality_control = (datetime.now() -
|
||||
production.time_since_quality_control).seconds/60
|
||||
if (total_time_since_quality_control >=
|
||||
quality_template.interval):
|
||||
for quality_contol in range(int(
|
||||
total_time_since_quality_control/
|
||||
quality_template.interval)):
|
||||
total_time_since_quality_control = (datetime.now() -
|
||||
production.time_since_quality_control).seconds / 60
|
||||
for qt in production.quality_templates:
|
||||
interval = qt.interval
|
||||
if (total_time_since_quality_control >= interval):
|
||||
start = int(total_time_since_quality_control / interval)
|
||||
for quality_contol in range(start):
|
||||
test = QualityTest()
|
||||
test.document = production
|
||||
test.templates = [quality_template.quality_template]
|
||||
test.company = quality_template.company
|
||||
test.templates = [qt.quality_template]
|
||||
test.company = qt.company
|
||||
to_save.append(test)
|
||||
|
||||
production.time_since_quality_control = datetime.now()
|
||||
|
||||
cls.save(productions)
|
||||
|
@ -91,20 +89,18 @@ class Production(metaclass=PoolMeta):
|
|||
def create_quality_tests_worker(cls):
|
||||
productions = cls.search([
|
||||
('state','=','running')
|
||||
])
|
||||
])
|
||||
|
||||
for production in productions:
|
||||
with Transaction().set_context(queue_name='production'):
|
||||
cls.__queue__.create_quality_tests([production])
|
||||
|
||||
|
||||
class ProductionTemplate(ModelSQL, ModelView):
|
||||
class ProductionTemplate(ModelSQL, ModelView, CompanyValueMixin):
|
||||
"Production Template"
|
||||
__name__ = 'product.template-quality.template'
|
||||
|
||||
template = fields.Many2One('product.template', "Template",required=True,
|
||||
template = fields.Many2One('product.template', "Template", required=True,
|
||||
ondelete="CASCADE")
|
||||
company = fields.Many2One('company.company', "Company", required=True)
|
||||
interval = fields.Integer("Interval", required=True,
|
||||
help="Interval in minutes")
|
||||
quality_template = fields.Many2One('quality.template', "Quality Template",
|
||||
|
@ -112,4 +108,4 @@ class ProductionTemplate(ModelSQL, ModelView):
|
|||
|
||||
@classmethod
|
||||
def default_company(cls):
|
||||
return Transaction().context.get('company')
|
||||
return Transaction().context.get('company')
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
[tryton]
|
||||
version=5.4.0
|
||||
depends:
|
||||
company
|
||||
production
|
||||
quality_control
|
||||
extras_depend:
|
||||
|
|
Loading…
Reference in New Issue