From 8dffe325d99a65e964fe7dd1f7e5953f9dbf15c1 Mon Sep 17 00:00:00 2001 From: sinergia Date: Wed, 15 Jun 2022 21:20:12 -0500 Subject: [PATCH] add model, purchaseLine, add model equipment --- __init__.py | 4 ++- equipment.py | 33 ++++++++++++++++++++++ equipment.xml | 36 ++++++++++++++++++++++++ product.py | 12 ++++---- purchase.py | 50 +++++++++++++++++++++++++++++++-- purchase.xml | 12 ++++++++ tryton.cfg | 5 +++- view/optical_equipment_form.xml | 41 +++++++++++++++++++++++++++ view/optical_equipment_tree.xml | 23 +++++++++++++++ view/purchase_line_form.xml | 13 +++++++++ view/template_form.xml | 4 +++ 11 files changed, 222 insertions(+), 11 deletions(-) create mode 100644 equipment.py create mode 100644 equipment.xml create mode 100644 purchase.xml create mode 100644 view/optical_equipment_form.xml create mode 100644 view/optical_equipment_tree.xml create mode 100644 view/purchase_line_form.xml diff --git a/__init__.py b/__init__.py index 2be1e7c..86bd7d6 100644 --- a/__init__.py +++ b/__init__.py @@ -1,9 +1,11 @@ from trytond.pool import Pool -from . import product, sale, equipment +from . import product, sale, purchase, equipment def register(): Pool.register( product.Template, + purchase.Purchase, + purchase.Line, sale.SaleLine, equipment.OpticalEquipment, module='optical_equipment', type_='model') diff --git a/equipment.py b/equipment.py new file mode 100644 index 0000000..b294d95 --- /dev/null +++ b/equipment.py @@ -0,0 +1,33 @@ +from trytond.model import ModelSQL, ModelView, fields + + +class OpticalEquipment(ModelSQL, ModelView): + 'Optical Equipment' + __name__ = "optical.equipment" + + company = fields.Many2One('company.company', "Company") + location = fields.Many2One('stock.location', "Location") + party = fields.Many2One('party.party', "Party") + party_address = fields.Many2One('party.address', "Party Address") + #origin = fields.reference("Origin", selection='get_origin', select=True) + product = fields.Many2One('product.product', "Product") + refurbish = fields.Boolean("Refurbish") + type = fields.Char('type') + risk = fields.Char('Type risk') + use = fields.Char('Use') + biomedical_class = fields.Char('Biomedical Class') + main_tecnology = fields.Char('Main tecnology') + 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) + 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) + + @staticmethod + def get_origin(): + return None diff --git a/equipment.xml b/equipment.xml new file mode 100644 index 0000000..a77673e --- /dev/null +++ b/equipment.xml @@ -0,0 +1,36 @@ + + + + + + + Equipments + optical.equipment + + + optical.equipment + tree + optical_equipment_tree + + + optical.equipment + form + optical_equipment_form + + + + + + + + + + + + + + diff --git a/product.py b/product.py index f0d12e9..9f22427 100644 --- a/product.py +++ b/product.py @@ -45,18 +45,18 @@ class Template(metaclass=PoolMeta): observation = fields.Text('Observation') 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) + "Software version", size=None) useful_life = fields.Char( - "Useful life", size=None, required=True) + "Useful life", size=None) warranty = fields.Char( - "Warranty", size=None, required=True) + "Warranty", size=None) serial = fields.Char( - "Serial", size=None, required=True) + "Serial", size=None) health_register = fields.Char( - "Serial", size=None, required=True) + "Health_Register", size=None) refurbish = fields.Boolean('Refurbish') @staticmethod diff --git a/purchase.py b/purchase.py index 4bd791b..fdf9961 100644 --- a/purchase.py +++ b/purchase.py @@ -1,8 +1,52 @@ #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 trytond.model import ModelView, ModelSQL +from trytond.pool import Pool, PoolMeta +from trytond.model import ModelView, ModelSQL, fields +from trytond.exceptions import UserError +class Purchase(metaclass=PoolMeta): + __name__ = 'purchase.purchase' -class PurchaseLine(ModelSQL, ModelView, metaclass=PoolMeta): - 'PurchaseLine' + @classmethod + @ModelView.button + def process(cls, purchases): + raise UserError(str("lento lento")) + pool = Pool() + Line = pool.get('purchase.line') + lines = [] + process, done = [], [] + cls.lock(purchases) + for purchase in purchases: + if purchase.state not in {'confirmed', 'processing', 'done'}: + continue + purchase.create_invoice() + purchase.set_invoice_state() + purchase.create_move('in') + return_moves = purchase.create_move('return') + if return_moves: + purchase.create_return_shipment(return_moves) + purchase.set_shipment_state() + + for line in purchase.lines: + line.set_actual_quantity() + lines.append(line) + + if purchase.is_done(): + if purchase.state != 'done': + if purchase.state == 'confirmed': + process.append(purchase) + done.append(purchase) + elif purchase.state != 'processing': + process.append(purchase) + Line.save(lines) + if process: + cls.proceed(process) + if done: + cls.do(done) + +class Line(metaclass=PoolMeta): __name__ = 'purchase.line' + + serial_equipment = fields.Char("Serial", size=None, required=True) + refurbish = fields.Boolean("Refurbish") + diff --git a/purchase.xml b/purchase.xml new file mode 100644 index 0000000..88f41a7 --- /dev/null +++ b/purchase.xml @@ -0,0 +1,12 @@ + + + + + + purchase.line + + purchase_line_form + + + diff --git a/tryton.cfg b/tryton.cfg index 75a9e9e..bf9211c 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -5,9 +5,12 @@ depends: party company product + purchase sale + stock country xml: product.xml equipment.xml - sale.xml \ No newline at end of file + sale.xml + purchase.xml \ No newline at end of file diff --git a/view/optical_equipment_form.xml b/view/optical_equipment_form.xml new file mode 100644 index 0000000..faeddb4 --- /dev/null +++ b/view/optical_equipment_form.xml @@ -0,0 +1,41 @@ + + +
+