sequence in equipments

This commit is contained in:
sinergia 2022-07-07 10:53:15 -05:00
parent 0fe894d10f
commit ffaed5fe49

View File

@ -2,15 +2,13 @@ from collections import defaultdict
from trytond.pool import Pool from trytond.pool import Pool
from trytond.model import ( from trytond.model import (
Workflow, ModelSQL, ModelView, Unique, fields) Workflow, ModelSQL, ModelView, Unique, fields)
from trytond.pyson import Eval from trytond.pyson import Eval, If
from trytond.exceptions import UserError from trytond.exceptions import UserError
class OpticalEquipment(Workflow, ModelSQL, ModelView): class OpticalEquipment(Workflow, ModelSQL, ModelView):
'Optical Equipment' 'Optical Equipment'
__name__ = 'optical_equipment.equipment' __name__ = 'optical_equipment.equipment'
code_readonly = fields.Function(
fields.Boolean("Code Readonly"), 'get_code_readonly')
code = fields.Char( code = fields.Char(
"Code", select=True,states={'readonly': True }) "Code", select=True,states={'readonly': True })
@ -54,10 +52,6 @@ class OpticalEquipment(Workflow, ModelSQL, ModelView):
states={'readonly': True}) states={'readonly': True})
current_subscription = fields.Many2One('sale.subscription') current_subscription = fields.Many2One('sale.subscription')
@staticmethod
def get_origin():
return None
@classmethod @classmethod
def __setup__(cls): def __setup__(cls):
@ -72,32 +66,30 @@ class OpticalEquipment(Workflow, ModelSQL, ModelView):
('registred', 'contrated'), ('registred', 'contrated'),
}) })
cls._buttons.update({ cls._buttons.update({
'draft': {}, 'draft': {
'registred': {}}) 'invisible': Eval('state') == 'draft'},
'registred': {
'invisible': Eval('state').in_(['registred', 'contrated'])}}
)
def default_code_readonly(cls): @classmethod
def set_code(cls, equipments):
pool = Pool() pool = Pool()
Configuration = pool.get('optical_equipment.configuration') Config = pool.get('optical_equipment.configuration')
config = Configuration(1) config = Config(1)
return bool(config.equipment_sequence) for equipment in equipments:
if not equipment.code:
def get_code_readonly(self, name): try:
return self.default_code_readonly() equipment.code = config.equipment_sequence.get()
equipment.state = 'registred'
cls.save(equipments) #Revisar
except UserError:
raise UserError(str('Validation Error'))
@classmethod @classmethod
def default_state(cls): def default_state(cls):
return 'draft' return 'draft'
@classmethod
def _new_code(cls):
pool = Pool()
Configuration = pool.get('optical_equipment.configuration')
config = Configuration(1)
sequence = config.equipment_sequence
if sequence:
return sequence.get()
@classmethod @classmethod
@ModelView.button @ModelView.button
@Workflow.transition('draft') @Workflow.transition('draft')
@ -109,4 +101,7 @@ class OpticalEquipment(Workflow, ModelSQL, ModelView):
@ModelView.button @ModelView.button
@Workflow.transition('registred') @Workflow.transition('registred')
def registred(cls, equipments): def registred(cls, equipments):
pass #raise UserError(str(equipments))
cls.set_code(equipments)
#state = 'registred'