diff --git a/__init__.py b/__init__.py index 86bd7d6..04c82c4 100644 --- a/__init__.py +++ b/__init__.py @@ -4,6 +4,7 @@ from . import product, sale, purchase, equipment def register(): Pool.register( product.Template, + product.Product, purchase.Purchase, purchase.Line, sale.SaleLine, diff --git a/equipment.py b/equipment.py index b294d95..36b5166 100644 --- a/equipment.py +++ b/equipment.py @@ -12,7 +12,7 @@ class OpticalEquipment(ModelSQL, ModelView): #origin = fields.reference("Origin", selection='get_origin', select=True) product = fields.Many2One('product.product', "Product") refurbish = fields.Boolean("Refurbish") - type = fields.Char('type') + equipment_type = fields.Char('type') risk = fields.Char('Type risk') use = fields.Char('Use') biomedical_class = fields.Char('Biomedical Class') @@ -20,13 +20,13 @@ class OpticalEquipment(ModelSQL, ModelView): calibration = fields.Boolean("Apply calibration") mark_category = fields.Many2One('product.category', 'Mark') model_category = fields.Many2One('product.category', "Model") - reference = fields.Char("Reference", size=None, required=True) + reference = fields.Char("Reference", size=None) origin_country = fields.Many2One('country.country',"Origin Country") - software_version = fields.Char("Software version", size=None, required=True) - useful_life = fields.Char("Useful life", size=None, required=True) - warranty = fields.Char("Warranty", size=None, required=True) - serial = fields.Char("Serial", size=None, required=True) - health_register = fields.Char("Serial", size=None, required=True) + software_version = fields.Char("Software version", size=None) + useful_life = fields.Char("Useful life", size=None) + warranty = fields.Char("Warranty", size=None) + serial = fields.Char("Serial", size=None) + health_register = fields.Char("Health Register", size=None) @staticmethod def get_origin(): diff --git a/product.py b/product.py index 9f22427..4dfc338 100644 --- a/product.py +++ b/product.py @@ -1,11 +1,16 @@ #This file is part of Tryton. The COPYRIGHT file at the top level of #txhis repository contains the full copyright notices and license terms +from sql import Literal +from sql.operators import Equal from trytond.pool import Pool, PoolMeta -from trytond.model import ModelView, ModelSQL, fields +from trytond.model import ( + ModelView, ModelSQL, fields, Exclude) from trytond.pyson import If, Eval + + _RISK = [('uno', 'I'), ('dosA', 'IIA'), ('dosB', 'IIB')] @@ -99,3 +104,5 @@ class Template(metaclass=PoolMeta): 'invisible': ~Eval('equipment'), })] +class Product(metaclass=PoolMeta): + __name__ = 'product.product' diff --git a/purchase.py b/purchase.py index fdf9961..f9bbe09 100644 --- a/purchase.py +++ b/purchase.py @@ -10,14 +10,15 @@ class Purchase(metaclass=PoolMeta): @classmethod @ModelView.button def process(cls, purchases): - raise UserError(str("lento lento")) pool = Pool() + Equipment = pool.get('optical.equipment') + #raise UserError(str(type(Equipment))) Line = pool.get('purchase.line') lines = [] process, done = [], [] cls.lock(purchases) for purchase in purchases: - if purchase.state not in {'confirmed', 'processing', 'done'}: + """if purchase.state not in {'confirmed', 'processing', 'done'}: continue purchase.create_invoice() purchase.set_invoice_state() @@ -26,11 +27,29 @@ class Purchase(metaclass=PoolMeta): if return_moves: purchase.create_return_shipment(return_moves) purchase.set_shipment_state() - + """ + #raise UserError(str(dir(purchase))) + #equipment = Equipment() for line in purchase.lines: - line.set_actual_quantity() + #raise UserError(str(dir(line))) + equipment = Equipment( + company=line.company, + equipment_type=line.product.equipment_type, + party_address=line.address_equipment, + product=line.product, + risk=line.product.risk, + use=line.product.use, + biomedical_class=line.product.biomedical_class, + calibration=line.product.calibration, + refurbish=line.refurbish, + serial=line.serial_equipment, + software_version=line.product.software_version, + ) + equipment.save() + #raise UserError(str([equipment.serial, equipment.software_version])) + """ line.set_actual_quantity() lines.append(line) - + if purchase.is_done(): if purchase.state != 'done': if purchase.state == 'confirmed': @@ -42,11 +61,12 @@ class Purchase(metaclass=PoolMeta): if process: cls.proceed(process) if done: - cls.do(done) - + cls.do(done)""" + class Line(metaclass=PoolMeta): __name__ = 'purchase.line' + address_equipment = fields.Many2One('party.address', "Direccion") serial_equipment = fields.Char("Serial", size=None, required=True) refurbish = fields.Boolean("Refurbish") diff --git a/sale.py b/sale.py index 1943e82..827fe70 100644 --- a/sale.py +++ b/sale.py @@ -5,3 +5,17 @@ from trytond.model import ModelView, ModelSQL, fields class SaleLine(metaclass=PoolMeta): 'SaleLine' __name__ = 'sale.line' + + address_equipment = fields.Many2One('party.address', "Direccion") + + @classmethod + @ModelView.button + def process(cls, sales): + states = {'confirmed', 'processing', 'done'} + sales = [s for s in sales if s.state in states] + cls.lock(sales) + cls._process_invoice(sales) + cls._process_shipment(sales) + cls._process_invoice_shipment_states(sales) + cls._process_state(sales) + diff --git a/sale.xml b/sale.xml index 2e63451..706765d 100644 --- a/sale.xml +++ b/sale.xml @@ -1,4 +1,4 @@ - + diff --git a/view/optical_equipment_form.xml b/view/optical_equipment_form.xml index faeddb4..3a76d1e 100644 --- a/view/optical_equipment_form.xml +++ b/view/optical_equipment_form.xml @@ -12,8 +12,8 @@