From 221c887cb6c78bb8e40789456dc9687465f65a63 Mon Sep 17 00:00:00 2001 From: sinergia Date: Thu, 6 Oct 2022 00:26:24 -0500 Subject: [PATCH] changes finished --- configuration_equipment.py | 3 + contract.py | 68 +++++-- contract.xml | 46 ++++- equipment.py | 2 +- locale/es.po | 189 +++++++++++++++++- maintenance.py | 28 ++- product.py | 20 +- view/contract_form.xml | 12 +- view/optical_equipment_configuration_form.xml | 3 + 9 files changed, 311 insertions(+), 60 deletions(-) diff --git a/configuration_equipment.py b/configuration_equipment.py index faeaf33..a9e40dd 100644 --- a/configuration_equipment.py +++ b/configuration_equipment.py @@ -16,3 +16,6 @@ class Configuration(ModelSingleton, ModelSQL, ModelView): agended_sequence = fields.Many2One('ir.sequence', "Agended Sequence", domain=[('sequence_type', '=', Id('optical_equipment', 'sequence_type_agended')) ]) + contract_sequence = fields.Many2One('ir.sequence', "Contract Sequence", + domain=[('sequence_type', '=', Id('optical_equipment', 'sequence_type_contract')) + ]) diff --git a/contract.py b/contract.py index 1389dd0..0ff6091 100644 --- a/contract.py +++ b/contract.py @@ -15,12 +15,12 @@ import datetime from datetime import timedelta -class Contract(ModelSQL, ModelView): +class Contract(Workflow, ModelSQL, ModelView): 'Contracts' __name__ = 'optical_equipment.contract' company = fields.Many2One( - 'company.company', "Company", readonly=True, required=True, select=True, + 'company.company', "Company", required=True, select=True, states={ 'readonly': (Eval('state') != 'draft') | Eval('party', True), },help="Make the subscription belong to the company.") @@ -35,30 +35,34 @@ class Contract(ModelSQL, ModelView): 'readonly': Eval('state') != 'draft', }) party = fields.Many2One( - 'party.party', "Party", readonly=True, required=True, - help="The party who subscribes.") - contact = fields.Many2One('party.contact_mechanism', "Contact", readonly=True) - invoice_address = fields.Many2One('party.address', 'Invoice Address', readonly=True, - required=True, domain=[('party', '=', Eval('party'))]) - start_date = fields.Date("Start Date", readonly=True, required=False,) - end_date = fields.Date( - "End Date", readonly=True, - domain=['OR', - ('end_date', '>=', If( - Bool(Eval('start_date')), - Eval('start_date', datetime.date.min), - datetime.date.min)), - ('end_date', '=', None), - ], + 'party.party', "Party", required=True, states={ - 'readonly': Eval('state') != 'draft', - } - ) + 'readonly': (Eval('state') != 'draft') | Eval('party', True), + },help="The party who subscribes.") + contact = fields.Many2One('party.contact_mechanism', "Contact", readonly=True, required=True) + invoice_address = fields.Many2One('party.address', 'Invoice Address', + required=True, domain=[('party', '=', Eval('party'))], + states={ + 'readonly': (Eval('state') != 'draft') | Eval('party', True), + }) + start_date = fields.Date("Start Date", required=True,) + end_date = fields.Date("End Date", + domain=['OR', + ('end_date', '>=', If( + Bool(Eval('start_date')), + Eval('start_date', datetime.date.min), + datetime.date.min)), + ('end_date', '=', None), + ], + states={ + 'readonly': Eval('state') != 'draft', + }) maintenance_services = fields.Many2Many('optical_equipment_maintenance.service-equipment.contract', 'contract', 'maintenance_services', "Prorogues") + equipments = fields.Many2Many('optical_equipment.contract-optical_equipment.equipment', 'contract', 'equipment') + #equipments = fields.One2Many('optical_equipment.equipment', "contract_history", "Equipments") state = fields.Selection([ ('draft', "Draft"), - ('quotation', "Quotation"), ('running', "Running"), ('closed', "Closed"), ('cancelled', "Cancelled"), @@ -69,6 +73,16 @@ class Contract(ModelSQL, ModelView): @classmethod def __setup__(cls): super(Contract, cls).__setup__() + cls._transitions = ({ + ('draft', 'running'), + ('running', 'closed'), + ('running', 'cancelled'), + }) + cls._buttons.update({ + 'running': {'invisible': Eval('state').in_(['cancelled', 'running'])}, + 'cancelled': {'invisible': Eval('state').in_(['draft', 'cancelled'])} + }) + @staticmethod def default_company(): @@ -78,6 +92,18 @@ class Contract(ModelSQL, ModelView): def default_state(): return 'draft' + @classmethod + @ModelView.button + @Workflow.transition('running') + def running(cls, contracts): + pass + + @classmethod + @ModelView.button + @Workflow.transition('cancelled') + def cancelled(cls, contracts): + pass + class ContractMaintenanceServices(ModelSQL): diff --git a/contract.xml b/contract.xml index 76c81f9..59f5a10 100644 --- a/contract.xml +++ b/contract.xml @@ -35,15 +35,6 @@ - - Quotation - - - - - Running @@ -93,7 +84,42 @@ Quotation Are you sure you want to quote these subscription? - --> + --> + + running + Run + + + + cancelled + Cancel + + + + Contract Administration + + + + + + + Contract + + + + + + + + + + + Contract + + - + + +