Compare commits
	
		
			4 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 3f721abd7a | |||
| b981dcd670 | |||
| 224c2d65e9 | |||
|  | 0aace73d54 | 
| @@ -1,7 +1,7 @@ | |||||||
| # This file is part of Tryton.  The COPYRIGHT file at the top level of | # This file is part of Tryton.  The COPYRIGHT file at the top level of | ||||||
| # this repository contains the full copyright notices and license terms. | # this repository contains the full copyright notices and license terms. | ||||||
| from trytond.model import ( | from trytond.model import ( | ||||||
|     Workflow, ModelSQL, ModelView,fields, sequence_ordered) |     Workflow, ModelSQL, ModelView, fields, sequence_ordered) | ||||||
| from trytond.pyson import Bool, Eval, If, Id, Equal | from trytond.pyson import Bool, Eval, If, Id, Equal | ||||||
| from trytond.pool import Pool | from trytond.pool import Pool | ||||||
| from trytond.modules.company import CompanyReport | from trytond.modules.company import CompanyReport | ||||||
| @@ -10,21 +10,22 @@ from trytond.transaction  import Transaction | |||||||
| _digits = (16, 2) | _digits = (16, 2) | ||||||
| _states = {'readonly': If(Eval('state') != 'draft', True)} | _states = {'readonly': If(Eval('state') != 'draft', True)} | ||||||
|  |  | ||||||
|  |  | ||||||
| class Calibration(ModelSQL, ModelView): | class Calibration(ModelSQL, ModelView): | ||||||
|     'Calibration of Maintenance' |     'Calibration of Maintenance' | ||||||
|     __name__ = 'optical_equipment.maintenance.calibration' |     __name__ = 'optical_equipment.maintenance.calibration' | ||||||
|  |  | ||||||
|     _states={'readonly': True} |     _states = {'readonly': True} | ||||||
|  |  | ||||||
|     maintenance = fields.Many2One('optical_equipment.maintenance', "Maintenance", ondelete="CASCADE", |     maintenance = fields.Many2One('optical_equipment.maintenance', "Maintenance", ondelete="CASCADE", | ||||||
|                                   select=True, required=True) |                                   required=True) | ||||||
|     graph_dates = fields.Char("Graph Dates", readonly=True) |     graph_dates = fields.Char("Graph Dates", readonly=True) | ||||||
|     diopter = fields.Float("Diopter", states=_states) |     diopter = fields.Float("Diopter", states=_states) | ||||||
|     mean = fields.Float("Mean", states=_states) |     mean = fields.Float("Mean", states=_states) | ||||||
|     dev_std = fields.Float("Standart Desviation", states=_states) |     dev_std = fields.Float("Standart Desviation", states=_states) | ||||||
|     uncertain_type_A = fields.Float("Uncertain Type A", states=_states) |     uncertain_type_A = fields.Float("Uncertain Type A", states=_states) | ||||||
|     uncertain_pattern = fields.Float("Uncertain Pattern", states=_states) |     uncertain_pattern = fields.Float("Uncertain Pattern", states=_states) | ||||||
|     k_c_calibration = fields.Float("K Crt Calibration",states=_states) |     k_c_calibration = fields.Float("K Crt Calibration", states=_states) | ||||||
|     uncertain_U_b1 = fields.Float("U_b1", states=_states) |     uncertain_U_b1 = fields.Float("U_b1", states=_states) | ||||||
|     d_resolution = fields.Float("d_resolution", states=_states) |     d_resolution = fields.Float("d_resolution", states=_states) | ||||||
|     uncertain_U_b2_dig = fields.Float("U_b2", states=_states) |     uncertain_U_b2_dig = fields.Float("U_b2", states=_states) | ||||||
| @@ -37,6 +38,7 @@ class Calibration(ModelSQL, ModelView): | |||||||
|  |  | ||||||
|     state = fields.Char('State') |     state = fields.Char('State') | ||||||
|  |  | ||||||
|  |  | ||||||
| class CalibrationSample(sequence_ordered(), ModelView, ModelSQL): | class CalibrationSample(sequence_ordered(), ModelView, ModelSQL): | ||||||
|     'Samples of Calibration' |     'Samples of Calibration' | ||||||
|     __name__ = 'optical_equipment.maintenance.calibration_sample' |     __name__ = 'optical_equipment.maintenance.calibration_sample' | ||||||
| @@ -48,7 +50,7 @@ class CalibrationSample(sequence_ordered(), ModelView, ModelSQL): | |||||||
|                                      domain=[('product', '=', Eval('product'))], |                                      domain=[('product', '=', Eval('product'))], | ||||||
|                                      depends=['product']) |                                      depends=['product']) | ||||||
|     value_equipment = fields.Float("Value in Equipment", _digits, required=True, |     value_equipment = fields.Float("Value in Equipment", _digits, required=True, | ||||||
|                                    states={'readonly': Eval('value_patterns') == None}) |                                    states={'readonly': Eval('value_patterns') is None}) | ||||||
|     mistake = fields.Float("Mistake", _digits) |     mistake = fields.Float("Mistake", _digits) | ||||||
|     mistake_rate = fields.Float("% Mistake", _digits, |     mistake_rate = fields.Float("% Mistake", _digits, | ||||||
|                                 states={'readonly': True}, |                                 states={'readonly': True}, | ||||||
|   | |||||||
							
								
								
									
										59
									
								
								contract.py
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								contract.py
									
									
									
									
									
								
							| @@ -15,6 +15,7 @@ from trytond.modules.product import price_digits | |||||||
| import datetime | import datetime | ||||||
| from datetime import timedelta, date | from datetime import timedelta, date | ||||||
|  |  | ||||||
|  |  | ||||||
| class Cron(metaclass=PoolMeta): | class Cron(metaclass=PoolMeta): | ||||||
|     __name__ = 'ir.cron' |     __name__ = 'ir.cron' | ||||||
|  |  | ||||||
| @@ -32,17 +33,16 @@ class Contract(Workflow, ModelSQL, ModelView): | |||||||
|     _rec_name = 'number' |     _rec_name = 'number' | ||||||
|     _order_name = 'number' |     _order_name = 'number' | ||||||
|  |  | ||||||
|      |  | ||||||
|     company = fields.Many2One( |     company = fields.Many2One( | ||||||
|         'company.company', "Company", required=True, select=True, |         'company.company', "Company", required=True, | ||||||
|         states={ |         states={ | ||||||
|             'readonly': (Eval('state') != 'draft') | Eval('party', True), |             'readonly': (Eval('state') != 'draft') | Eval('party', True), | ||||||
|             },help="Make the subscription belong to the company.") |         }, help="Make the subscription belong to the company.") | ||||||
|     number = fields.Char( |     number = fields.Char( | ||||||
|         "Number", readonly=True, select=True, |         "Number", readonly=True, | ||||||
|         help="The main identification of the subscription.") |         help="The main identification of the subscription.") | ||||||
|     reference = fields.Char( |     reference = fields.Char( | ||||||
|           "Reference", select=True, |         "Reference", | ||||||
|         help="The identification of an external origin.") |         help="The identification of an external origin.") | ||||||
|     description = fields.Char("Description", |     description = fields.Char("Description", | ||||||
|                               states={ |                               states={ | ||||||
| @@ -52,7 +52,7 @@ class Contract(Workflow, ModelSQL, ModelView): | |||||||
|         'party.party', "Party", required=True, |         'party.party', "Party", required=True, | ||||||
|         states={ |         states={ | ||||||
|             'readonly': (Eval('state') != 'draft') | Eval('party', True), |             'readonly': (Eval('state') != 'draft') | Eval('party', True), | ||||||
|             },help="The party who subscribes.") |         }, help="The party who subscribes.") | ||||||
|     equipment = fields.Many2One('optical_equipment.equipment', "Equipment") |     equipment = fields.Many2One('optical_equipment.equipment', "Equipment") | ||||||
|     contact = fields.Many2One('party.contact_mechanism', "Contact", required=True) |     contact = fields.Many2One('party.contact_mechanism', "Contact", required=True) | ||||||
|     invoice_address = fields.Many2One('party.address', 'Invoice Address', |     invoice_address = fields.Many2One('party.address', 'Invoice Address', | ||||||
| @@ -73,7 +73,6 @@ class Contract(Workflow, ModelSQL, ModelView): | |||||||
|                                'readonly': Eval('state') != 'draft', |                                'readonly': Eval('state') != 'draft', | ||||||
|                            }) |                            }) | ||||||
|  |  | ||||||
|      |  | ||||||
|     maintenance_services = fields.Many2Many('optical_equipment_maintenance.service-equipment.contract', |     maintenance_services = fields.Many2Many('optical_equipment_maintenance.service-equipment.contract', | ||||||
|                                             'contract', 'maintenance_services', "Prorogues", |                                             'contract', 'maintenance_services', "Prorogues", | ||||||
|                                             states={'readonly': Eval('state') != 'draft'}) |                                             states={'readonly': Eval('state') != 'draft'}) | ||||||
| @@ -93,7 +92,6 @@ class Contract(Workflow, ModelSQL, ModelView): | |||||||
|     ], "State", readonly=True, required=False, sort=False, |     ], "State", readonly=True, required=False, sort=False, | ||||||
|         help="The current state of the subscription.") |         help="The current state of the subscription.") | ||||||
|  |  | ||||||
|  |  | ||||||
|     @classmethod |     @classmethod | ||||||
|     def __setup__(cls): |     def __setup__(cls): | ||||||
|         super(Contract, cls).__setup__() |         super(Contract, cls).__setup__() | ||||||
| @@ -109,13 +107,12 @@ class Contract(Workflow, ModelSQL, ModelView): | |||||||
|             ('cancelled', 'draft') |             ('cancelled', 'draft') | ||||||
|         }) |         }) | ||||||
|         cls._buttons.update({ |         cls._buttons.update({ | ||||||
|             'draft': {'invisible': Eval('state').in_(['draft','closed'])}, |             'draft': {'invisible': Eval('state').in_(['draft', 'closed'])}, | ||||||
|             'running': {'invisible': Eval('state').in_(['cancelled', 'running'])}, |             'running': {'invisible': Eval('state').in_(['cancelled', 'running'])}, | ||||||
|             'closed':  {'invisible': Eval('state').in_(['draft','cancelled'])}, |             'closed': {'invisible': Eval('state').in_(['draft', 'cancelled'])}, | ||||||
|             'cancelled': {'invisible': Eval('state').in_(['draft', 'cancelled'])} |             'cancelled': {'invisible': Eval('state').in_(['draft', 'cancelled'])} | ||||||
|         }) |         }) | ||||||
|  |  | ||||||
|  |  | ||||||
|     @staticmethod |     @staticmethod | ||||||
|     def default_company(): |     def default_company(): | ||||||
|         return Transaction().context.get('company') |         return Transaction().context.get('company') | ||||||
| @@ -130,7 +127,7 @@ class Contract(Workflow, ModelSQL, ModelView): | |||||||
|         Config = pool.get('optical_equipment.configuration') |         Config = pool.get('optical_equipment.configuration') | ||||||
|         config = Config(4) |         config = Config(4) | ||||||
|  |  | ||||||
|         if config.contract_sequence != None: |         if config.contract_sequence is not None: | ||||||
|             if not contracts[0].number: |             if not contracts[0].number: | ||||||
|                 try: |                 try: | ||||||
|                     contracts[0].number = config.contract_sequence.get() |                     contracts[0].number = config.contract_sequence.get() | ||||||
| @@ -172,7 +169,6 @@ class Contract(Workflow, ModelSQL, ModelView): | |||||||
|             equipment.state = "uncontrated" |             equipment.state = "uncontrated" | ||||||
|             equipment.save() |             equipment.save() | ||||||
|  |  | ||||||
|  |  | ||||||
|     @classmethod |     @classmethod | ||||||
|     @ModelView.button |     @ModelView.button | ||||||
|     @Workflow.transition('running') |     @Workflow.transition('running') | ||||||
| @@ -184,7 +180,7 @@ class Contract(Workflow, ModelSQL, ModelView): | |||||||
|             equipment.save() |             equipment.save() | ||||||
|  |  | ||||||
|         cls.set_number(contracts) |         cls.set_number(contracts) | ||||||
|         contract.state='running' |         contract.state = 'running' | ||||||
|         contract.save() |         contract.save() | ||||||
|  |  | ||||||
|     @classmethod |     @classmethod | ||||||
| @@ -201,7 +197,8 @@ class ContractMaintenanceServices(ModelSQL): | |||||||
|     'Contract - Maintenance Services' |     'Contract - Maintenance Services' | ||||||
|     __name__ = 'optical_equipment_maintenance.service-equipment.contract' |     __name__ = 'optical_equipment_maintenance.service-equipment.contract' | ||||||
|  |  | ||||||
|     maintenance_services = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service", select=True) |     maintenance_services = fields.Many2One( | ||||||
|  |         'optical_equipment_maintenance.service', "Maintenance Service", ) | ||||||
|     contract = fields.Many2One('optical_equipment.contract', "Contract") |     contract = fields.Many2One('optical_equipment.contract', "Contract") | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -209,8 +206,8 @@ class ContractEquipment(ModelSQL): | |||||||
|     'Optical Equipment - Contract' |     'Optical Equipment - Contract' | ||||||
|     __name__ = 'optical_equipment.contract-optical_equipment.equipment' |     __name__ = 'optical_equipment.contract-optical_equipment.equipment' | ||||||
|  |  | ||||||
|     equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True) |     equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', ) | ||||||
|     contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True) |     contract = fields.Many2One('optical_equipment.contract', 'Contract', ) | ||||||
|  |  | ||||||
|  |  | ||||||
| class ContractReport(CompanyReport): | class ContractReport(CompanyReport): | ||||||
| @@ -237,10 +234,10 @@ class CreateContractInitial(ModelView, ModelSQL): | |||||||
|  |  | ||||||
|     currency = fields.Many2One('currency.currency', 'Currency', required=True) |     currency = fields.Many2One('currency.currency', 'Currency', required=True) | ||||||
|     company = fields.Many2One( |     company = fields.Many2One( | ||||||
|         'company.company', "Company", readonly=True, required=True, select=True, |         'company.company', "Company", readonly=True, required=True, | ||||||
|         states={ |         states={ | ||||||
|             'readonly': (Eval('state') != 'draft') | Eval('party', True), |             'readonly': (Eval('state') != 'draft') | Eval('party', True), | ||||||
|             },help="Make the subscription belong to the company.") |         }, help="Make the subscription belong to the company.") | ||||||
|     party = fields.Many2One( |     party = fields.Many2One( | ||||||
|         'party.party', "Party", required=True, |         'party.party', "Party", required=True, | ||||||
|         help="The party who subscribes.") |         help="The party who subscribes.") | ||||||
| @@ -282,7 +279,6 @@ class CreateContractInitial(ModelView, ModelSQL): | |||||||
|         Date = pool.get('ir.date') |         Date = pool.get('ir.date') | ||||||
|         return Date.today() |         return Date.today() | ||||||
|  |  | ||||||
|      |  | ||||||
|     @fields.depends('party') |     @fields.depends('party') | ||||||
|     def on_change_party(self): |     def on_change_party(self): | ||||||
|         pool = Pool() |         pool = Pool() | ||||||
| @@ -299,13 +295,12 @@ class CreateContract(Wizard): | |||||||
|     __name__ = 'optical_equipment.maintenance.contract' |     __name__ = 'optical_equipment.maintenance.contract' | ||||||
|  |  | ||||||
|     start = StateView('optical_equipment_create.contract', |     start = StateView('optical_equipment_create.contract', | ||||||
|                       'optical_equipment.create_contract_view_form',[ |                       'optical_equipment.create_contract_view_form', [ | ||||||
|                           Button('Cancel', 'end', 'tryton-cancel'), |                           Button('Cancel', 'end', 'tryton-cancel'), | ||||||
|                           Button('Create', 'create_contract', 'tryton-ok', default=True), |                           Button('Create', 'create_contract', 'tryton-ok', default=True), | ||||||
|                       ]) |                       ]) | ||||||
|     create_contract = StateAction('optical_equipment.act_contract_form') |     create_contract = StateAction('optical_equipment.act_contract_form') | ||||||
|  |  | ||||||
|  |  | ||||||
|     def default_start(self, fields): |     def default_start(self, fields): | ||||||
|         if self.record: |         if self.record: | ||||||
|             default = {'party': self.record.propietary.id, |             default = {'party': self.record.propietary.id, | ||||||
| @@ -340,16 +335,16 @@ class CreateContract(Wizard): | |||||||
|             equipments.append(line.equipment.id) |             equipments.append(line.equipment.id) | ||||||
|  |  | ||||||
|         if maintenance_service.contract_origin: |         if maintenance_service.contract_origin: | ||||||
|             contract=maintenance_service.contract_origin |             contract = maintenance_service.contract_origin | ||||||
|             contract.history_equipments+=tuple(equipments) |             contract.history_equipments += tuple(equipments) | ||||||
|             contract.current_equipments=equipments |             contract.current_equipments = equipments | ||||||
|             contract.invoice_address=dates['invoice_address'] |             contract.invoice_address = dates['invoice_address'] | ||||||
|             contract.contact=dates['contact'] |             contract.contact = dates['contact'] | ||||||
|             contract.start_date=dates['start_date'] |             contract.start_date = dates['start_date'] | ||||||
|             contract.end_date=dates['end_date'] |             contract.end_date = dates['end_date'] | ||||||
|             contract.maintenance_services+=prorogues |             contract.maintenance_services += prorogues | ||||||
|             contract.state='draft' |             contract.state = 'draft' | ||||||
|             contract.price_contract=dates['unit_price'] |             contract.price_contract = dates['unit_price'] | ||||||
|         else: |         else: | ||||||
|             contract = Contract(party=dates['party'], |             contract = Contract(party=dates['party'], | ||||||
|                                 invoice_address=dates['invoice_address'], |                                 invoice_address=dates['invoice_address'], | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								diary.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								diary.py
									
									
									
									
									
								
							| @@ -7,7 +7,7 @@ class Diary(ModelSQL, ModelView): | |||||||
|     __name__ = 'optical_equipment_maintenance.diary' |     __name__ = 'optical_equipment_maintenance.diary' | ||||||
|     _rec_name = 'code' |     _rec_name = 'code' | ||||||
|  |  | ||||||
|     code = fields.Char("Code", select=True, states={'readonly': True}) |     code = fields.Char("Code", states={'readonly': True}) | ||||||
|     date_expected = fields.DateTime("Expected Date", required=True) |     date_expected = fields.DateTime("Expected Date", required=True) | ||||||
|     date_estimated = fields.DateTime("Estimated Date") |     date_estimated = fields.DateTime("Estimated Date") | ||||||
|     date_end = fields.DateTime("Date End") |     date_end = fields.DateTime("Date End") | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								equipment.py
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								equipment.py
									
									
									
									
									
								
							| @@ -37,7 +37,7 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView): | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     code = fields.Char( |     code = fields.Char( | ||||||
|         "Code", select=True, states={'readonly': True}) |         "Code", states={'readonly': True}) | ||||||
|  |  | ||||||
|     state = fields.Selection([('draft', "Draft"), |     state = fields.Selection([('draft', "Draft"), | ||||||
|                               ('registred', "Registred"), |                               ('registred', "Registred"), | ||||||
| @@ -119,11 +119,11 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView): | |||||||
|  |  | ||||||
|     maintenance_frequency = fields.Selection(_MAINTENANCE_FREQUENCY, "Maintenance Frequency", |     maintenance_frequency = fields.Selection(_MAINTENANCE_FREQUENCY, "Maintenance Frequency", | ||||||
|                                              depends=['propietary']) |                                              depends=['propietary']) | ||||||
|     purchase_origin = fields.Reference("Purchase Origin", selection='get_origin', select=True, |     purchase_origin = fields.Reference("Purchase Origin", selection='get_origin', | ||||||
|                                        states={'readonly': True}) |                                        states={'readonly': True}) | ||||||
|     sale_destination = fields.Reference("Sale Destination", selection='get_destination', select=True, |     sale_destination = fields.Reference("Sale Destination", selection='get_destination', | ||||||
|                                         states={'readonly': True}) |                                         states={'readonly': True}) | ||||||
|     shipment_destination = fields.Reference("Stock Move", selection='get_shipment', select=True, |     shipment_destination = fields.Reference("Stock Move", selection='get_shipment', | ||||||
|                                             states={'readonly': True}) |                                             states={'readonly': True}) | ||||||
|     rec_name = fields.Function(fields.Char("rec_name"), 'get_rec_name') |     rec_name = fields.Function(fields.Char("rec_name"), 'get_rec_name') | ||||||
|  |  | ||||||
| @@ -354,24 +354,24 @@ class EquipmentMaintenance(ModelSQL, ModelView): | |||||||
|     'Optical Equipment - Equipment - Maintenance' |     'Optical Equipment - Equipment - Maintenance' | ||||||
|     __name__ = 'optical_equipment.maintenance-optical_equipment.equipment' |     __name__ = 'optical_equipment.maintenance-optical_equipment.equipment' | ||||||
|  |  | ||||||
|     equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True) |     equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', ) | ||||||
|     maintenance = fields.Many2One('optical_equipment.maintenance', 'Maintenances', select=True) |     maintenance = fields.Many2One('optical_equipment.maintenance', 'Maintenances', ) | ||||||
|  |  | ||||||
|  |  | ||||||
| class EquipmentContract(ModelSQL, ModelView): | class EquipmentContract(ModelSQL, ModelView): | ||||||
|     'Optical Equipment - Contracs Equipment' |     'Optical Equipment - Contracs Equipment' | ||||||
|     __name__ = 'optical_equipment.contract-optical_equipment.equipment' |     __name__ = 'optical_equipment.contract-optical_equipment.equipment' | ||||||
|  |  | ||||||
|     equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True) |     equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', ) | ||||||
|     contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True) |     contract = fields.Many2One('optical_equipment.contract', 'Contract', ) | ||||||
|  |  | ||||||
|  |  | ||||||
| class EquipmentParty(ModelSQL, ModelView): | class EquipmentParty(ModelSQL, ModelView): | ||||||
|     'Optical Equipment - Party' |     'Optical Equipment - Party' | ||||||
|     __name__ = 'optical_equipment.equipment-party.party' |     __name__ = 'optical_equipment.equipment-party.party' | ||||||
|  |  | ||||||
|     equipment = fields.Many2One('optical_equipment.equipment', "Equipment", select=True) |     equipment = fields.Many2One('optical_equipment.equipment', "Equipment", ) | ||||||
|     party = fields.Many2One('party.party', "Party", select=True) |     party = fields.Many2One('party.party', "Party", ) | ||||||
|  |  | ||||||
|  |  | ||||||
| class ChangePropietary(ModelView): | class ChangePropietary(ModelView): | ||||||
|   | |||||||
| @@ -33,16 +33,16 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): | |||||||
|  |  | ||||||
|     _states = {'readonly': If(Eval('state') != 'draft', True)} |     _states = {'readonly': If(Eval('state') != 'draft', True)} | ||||||
|  |  | ||||||
|     code = fields.Char("Code", readonly=True, select=True) |     code = fields.Char("Code", readonly=True, ) | ||||||
|     reference = fields.Char("Reference", select=True, |     reference = fields.Char("Reference", | ||||||
|                             help="The identification of an external origin.") |                             help="The identification of an external origin.") | ||||||
|     description = fields.Char("Description", states=_states) |     description = fields.Char("Description", states=_states) | ||||||
|     sale_date = fields.Char("Sale Date") |     sale_date = fields.Char("Sale Date") | ||||||
|     contract_origin = fields.Reference( |     contract_origin = fields.Reference( | ||||||
|         "Contract Base", selection='get_origin_contract', select=True, |         "Contract Base", selection='get_origin_contract', | ||||||
|         states={'readonly': If(Eval('state') == 'finished', True)}) |         states={'readonly': If(Eval('state') == 'finished', True)}) | ||||||
|     sale_origin = fields.Reference( |     sale_origin = fields.Reference( | ||||||
|         "Sale Origin", selection='get_origin', select=True, |         "Sale Origin", selection='get_origin', | ||||||
|         states={'readonly': True}) |         states={'readonly': True}) | ||||||
|     company = fields.Many2One('company.company', "Company", readonly=True) |     company = fields.Many2One('company.company', "Company", readonly=True) | ||||||
|     maintenance_type = fields.Selection([('initial', 'Initial'), |     maintenance_type = fields.Selection([('initial', 'Initial'), | ||||||
| @@ -285,12 +285,12 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView): | |||||||
|                'readonly': Eval('state').in_(['finished'])} |                'readonly': Eval('state').in_(['finished'])} | ||||||
|  |  | ||||||
|     service_maintenance = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service", |     service_maintenance = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service", | ||||||
|                                           ondelete='CASCADE', select=True, |                                           ondelete='CASCADE', | ||||||
|                                           domain=[('state', 'in', ['draft', 'in_progress', 'finished']), |                                           domain=[('state', 'in', ['draft', 'in_progress', 'finished']), | ||||||
|                                                   ('propietary', '=', Eval('propietary'))], |                                                   ('propietary', '=', Eval('propietary'))], | ||||||
|                                           states=_states) |                                           states=_states) | ||||||
|     code = fields.Char( |     code = fields.Char( | ||||||
|         "Code", select=True, states={'readonly': True}) |         "Code", states={'readonly': True}) | ||||||
|     maintenance_type = fields.Selection([('initial', 'Initial'), |     maintenance_type = fields.Selection([('initial', 'Initial'), | ||||||
|                                          ('preventive', 'Preventive'), |                                          ('preventive', 'Preventive'), | ||||||
|                                          ('corrective', 'Corrective')], "Maintenance Type", states=_states) |                                          ('corrective', 'Corrective')], "Maintenance Type", states=_states) | ||||||
| @@ -782,7 +782,7 @@ class MaintenanceLine(ModelSQL, ModelView): | |||||||
|         'optical_equipment.maintenance', |         'optical_equipment.maintenance', | ||||||
|         'Maintenance', |         'Maintenance', | ||||||
|         ondelete='CASCADE', |         ondelete='CASCADE', | ||||||
|         select=True) |     ) | ||||||
|     replacement = fields.Many2One('product.product', 'Replacement', ondelete='RESTRICT', |     replacement = fields.Many2One('product.product', 'Replacement', ondelete='RESTRICT', | ||||||
|                                   domain=[('replacement', '=', True)], |                                   domain=[('replacement', '=', True)], | ||||||
|                                   states={'invisible': (If(Eval('line_maintenance_activity') == True, True)) | (If(Eval('line_replace') == False, True)), |                                   states={'invisible': (If(Eval('line_maintenance_activity') == True, True)) | (If(Eval('line_replace') == False, True)), | ||||||
|   | |||||||
							
								
								
									
										86
									
								
								product.py
									
									
									
									
									
								
							
							
						
						
									
										86
									
								
								product.py
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| #This file is part of Tryton.  The COPYRIGHT file at the top level of | # This file is part of Tryton.  The COPYRIGHT file at the top level of | ||||||
| #this repository contains the full copyright notices and license terms | # this repository contains the full copyright notices and license terms | ||||||
| from trytond.pool import Pool, PoolMeta | from trytond.pool import Pool, PoolMeta | ||||||
| from trytond.model import ( | from trytond.model import ( | ||||||
|     ModelView, ModelSQL, fields, Exclude) |     ModelView, ModelSQL, fields, Exclude) | ||||||
| @@ -38,24 +38,25 @@ _EQUIPMENT_TYPE = [ | |||||||
|  |  | ||||||
| NON_MEASURABLE = ['service'] | NON_MEASURABLE = ['service'] | ||||||
|  |  | ||||||
|  |  | ||||||
| class Template(metaclass=PoolMeta): | class Template(metaclass=PoolMeta): | ||||||
|     'Template' |     'Template' | ||||||
|     __name__ = 'product.template' |     __name__ = 'product.template' | ||||||
|  |  | ||||||
|     product = fields.Many2One('optical_equipment.maintenance', "Maintenance Activity", |     product = fields.Many2One('optical_equipment.maintenance', "Maintenance Activity", | ||||||
|                               ondelete='CASCADE', select=True) |                               ondelete='CASCADE', ) | ||||||
|     equipment = fields.Boolean('It is equipment', |     equipment = fields.Boolean('It is equipment', | ||||||
|                                states={'invisible': Eval('type', 'goods') != 'goods', |                                states={'invisible': Eval('type', 'goods') != 'goods', | ||||||
|                                        }) |                                        }) | ||||||
|     maintenance_activity = fields.Boolean('Maintenance Activity', |     maintenance_activity = fields.Boolean('Maintenance Activity', | ||||||
|                                           states={'invisible': Eval('type', 'service') != 'service', |                                           states={'invisible': Eval('type', 'service') != 'service', | ||||||
|                                        'readonly': If(Eval('equipment',True), True) |                                                   'readonly': If(Eval('equipment', True), True) | ||||||
|                                        | If(Eval('replacement',True), True) |                                                   | If(Eval('replacement', True), True) | ||||||
|                                                   }) |                                                   }) | ||||||
|     replacement = fields.Boolean('Replacement', |     replacement = fields.Boolean('Replacement', | ||||||
|                                  states={'invisible': Eval('type', 'goods') != 'goods', |                                  states={'invisible': Eval('type', 'goods') != 'goods', | ||||||
|                                        'readonly': If(Eval('equipment',True), True) |                                          'readonly': If(Eval('equipment', True), True) | ||||||
|                                        | If(Eval('maintenance_activity',True), True) |                                          | If(Eval('maintenance_activity', True), True) | ||||||
|                                          }) |                                          }) | ||||||
|  |  | ||||||
|     maintenance_required = fields.Boolean('Miantenance Required', |     maintenance_required = fields.Boolean('Miantenance Required', | ||||||
| @@ -66,9 +67,9 @@ class Template(metaclass=PoolMeta): | |||||||
|     use = fields.Selection(_USE, 'Use', |     use = fields.Selection(_USE, 'Use', | ||||||
|                            states={'required': Eval('equipment', False)}, |                            states={'required': Eval('equipment', False)}, | ||||||
|                            depends={'equipment'}) |                            depends={'equipment'}) | ||||||
|     biomedical_class = fields.Selection(_BIOMEDICAL_CLASS,'Biomedical Class', |     biomedical_class = fields.Selection(_BIOMEDICAL_CLASS, 'Biomedical Class', | ||||||
|                                         states={'required': Eval('equipment', False)}) |                                         states={'required': Eval('equipment', False)}) | ||||||
|     main_tecnology = fields.Selection(_MAIN_TECNOLOGY,'Main tecnology', |     main_tecnology = fields.Selection(_MAIN_TECNOLOGY, 'Main tecnology', | ||||||
|                                       states={'required': Eval('equipment', False)}) |                                       states={'required': Eval('equipment', False)}) | ||||||
|     calibration = fields.Boolean("Apply calibration") |     calibration = fields.Boolean("Apply calibration") | ||||||
|     observation = fields.Text('Observation') |     observation = fields.Text('Observation') | ||||||
| @@ -86,58 +87,70 @@ class Template(metaclass=PoolMeta): | |||||||
|                                          domain=[('parent', '=', Eval('model_category'))],) |                                          domain=[('parent', '=', Eval('model_category'))],) | ||||||
|  |  | ||||||
|     # Iformation Equipment |     # Iformation Equipment | ||||||
|     origin_country = fields.Many2One('country.country',"Origin Country") |     origin_country = fields.Many2One('country.country', "Origin Country") | ||||||
|     refurbish = fields.Boolean('Refurbish') |     refurbish = fields.Boolean('Refurbish') | ||||||
|     software_required = fields.Boolean("Software Required") |     software_required = fields.Boolean("Software Required") | ||||||
|     software_version = fields.Char("Software version", |     software_version = fields.Char("Software version", | ||||||
|                                    states={'invisible': If(~Eval('software_required'), True)}, |                                    states={'invisible': If(~Eval('software_required'), True)}, | ||||||
|                                    depends={'software_required'}) |                                    depends={'software_required'}) | ||||||
|  |  | ||||||
|     #These are measurements required for the equipments, are in this place |     # These are measurements required for the equipments, are in this place | ||||||
|     # for manage of class 'product.template' |     # for manage of class 'product.template' | ||||||
|  |  | ||||||
|     temperature_min = fields.Float("Temp Min") |     temperature_min = fields.Float("Temp Min") | ||||||
|     temperature_max = fields.Float("Temp Max") |     temperature_max = fields.Float("Temp Max") | ||||||
|     temperature_uom = fields.Many2One('product.uom', 'Temperature UOM', |     temperature_uom = fields.Many2One('product.uom', 'Temperature UOM', | ||||||
|                     domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))], |                                       domain=[ | ||||||
|                     states={'invisible' : If(Eval('temperature_min') == None, True)}) |                                           ('category', '=', Id( | ||||||
|  |                                               'optical_equipment', "uom_cat_temperature"))], | ||||||
|  |                                       states={'invisible': If(Eval('temperature_min') is None, True)}) | ||||||
|     frequency = fields.Float("Frequency") |     frequency = fields.Float("Frequency") | ||||||
|     frequency_uom = fields.Many2One('product.uom', "Frequency UOM", |     frequency_uom = fields.Many2One('product.uom', "Frequency UOM", | ||||||
|                     domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))], |                                     domain=[ | ||||||
|                     states={'invisible' : If(Eval('frequency') == None, True)} |                                         ('category', '=', Id( | ||||||
|  |                                             'optical_equipment', 'uom_cat_frequency'))], | ||||||
|  |                                     states={'invisible': If(Eval('frequency') is None, True)} | ||||||
|                                     ) |                                     ) | ||||||
|     moisture_min = fields.Float("Moisture Min") |     moisture_min = fields.Float("Moisture Min") | ||||||
|     moisture_max = fields.Float("Moisture Max") |     moisture_max = fields.Float("Moisture Max") | ||||||
|     moisture_uom = fields.Many2One('product.uom', "Moisture UOM", |     moisture_uom = fields.Many2One('product.uom', "Moisture UOM", | ||||||
|                     domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))], |                                    domain=[ | ||||||
|                     states={'invisible' : If(Eval('moisture_min') == None, True)}, |                                        ('category', '=', Id( | ||||||
|  |                                            'optical_equipment', 'uom_cat_relative_humedity'))], | ||||||
|  |                                    states={'invisible': If(Eval('moisture_min') is None, True)}, | ||||||
|                                    ) |                                    ) | ||||||
|     electrical_equipment = fields.Boolean("Electrical Equipment") |     electrical_equipment = fields.Boolean("Electrical Equipment") | ||||||
|     frequency = fields.Float("Frequency", |     frequency = fields.Float("Frequency", | ||||||
|                              states={'invisible': ~Bool(Eval('electrical_equipment'))}) |                              states={'invisible': ~Bool(Eval('electrical_equipment'))}) | ||||||
|     frequency_uom = fields.Many2One('product.uom', "Frequency UOM", |     frequency_uom = fields.Many2One('product.uom', "Frequency UOM", | ||||||
|                     domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))], |                                     domain=[ | ||||||
|                     states={'invisible' : If(Eval('frequency') == None, True) | |                                         ('category', '=', Id( | ||||||
|  |                                             'optical_equipment', 'uom_cat_frequency'))], | ||||||
|  |                                     states={'invisible': If(Eval('frequency') is None, True) | | ||||||
|                                             ~Eval('electrical_equipment', True)}, |                                             ~Eval('electrical_equipment', True)}, | ||||||
|                                     ) |                                     ) | ||||||
|     voltageAC = fields.Float("Voltage AC", |     voltageAC = fields.Float("Voltage AC", | ||||||
|                              states={'invisible': ~Bool(Eval('electrical_equipment'))}) |                              states={'invisible': ~Bool(Eval('electrical_equipment'))}) | ||||||
|     voltageAC_uom = fields.Many2One('product.uom', "Voltage AC UOM", |     voltageAC_uom = fields.Many2One('product.uom', "Voltage AC UOM", | ||||||
|                     domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))], |                                     domain=[ | ||||||
|                     states={'invisible' : If(Eval('voltageAC') == None, True) | |                                         ('category', '=', Id( | ||||||
|  |                                             'optical_equipment', 'uom_cat_electrical_tension'))], | ||||||
|  |                                     states={'invisible': If(Eval('voltageAC') is None, True) | | ||||||
|                                             ~Eval('electrical_equipment', True)}, |                                             ~Eval('electrical_equipment', True)}, | ||||||
|                                     ) |                                     ) | ||||||
|     voltageDC = fields.Float("Voltage DC", |     voltageDC = fields.Float("Voltage DC", | ||||||
|                              states={'invisible': ~Bool(Eval('electrical_equipment'))}) |                              states={'invisible': ~Bool(Eval('electrical_equipment'))}) | ||||||
|     voltageDC_uom = fields.Many2One('product.uom', "Voltage DC UOM", |     voltageDC_uom = fields.Many2One('product.uom', "Voltage DC UOM", | ||||||
|                     domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))], |                                     domain=[ | ||||||
|                     states={'invisible' : If(Eval('voltageDC') == None, True) | |                                         ('category', '=', Id( | ||||||
|  |                                             'optical_equipment', 'uom_cat_electrical_tension'))], | ||||||
|  |                                     states={'invisible': If(Eval('voltageDC') is None, True) | | ||||||
|                                             ~Eval('electrical_equipment', True)},) |                                             ~Eval('electrical_equipment', True)},) | ||||||
|  |  | ||||||
|     useful_life = fields.Integer("Useful life") |     useful_life = fields.Integer("Useful life") | ||||||
|     warranty = fields.Integer("Warranty") |     warranty = fields.Integer("Warranty") | ||||||
|  |  | ||||||
|     #### calibration parameters |     # calibration parameters | ||||||
|     use_pattern = fields.Many2One('optical_equipment.use_pattern', "Use Pattern", ondelete='RESTRICT', |     use_pattern = fields.Many2One('optical_equipment.use_pattern', "Use Pattern", ondelete='RESTRICT', | ||||||
|                                   states={'required': Eval('calibration', True)}) |                                   states={'required': Eval('calibration', True)}) | ||||||
|     measuring_range = fields.Selection([ |     measuring_range = fields.Selection([ | ||||||
| @@ -146,23 +159,23 @@ class Template(metaclass=PoolMeta): | |||||||
|     MEP = fields.Float("MEP", states={'required': Eval('calibration', False)},) |     MEP = fields.Float("MEP", states={'required': Eval('calibration', False)},) | ||||||
|     uncertainy_pattern = fields.Float("Uncertainy Pattern", states={'required': Eval('calibration', True)}, |     uncertainy_pattern = fields.Float("Uncertainy Pattern", states={'required': Eval('calibration', True)}, | ||||||
|                                       help="Agregar valores separados por ',' Ej:-5,+5,-10,+10") |                                       help="Agregar valores separados por ',' Ej:-5,+5,-10,+10") | ||||||
|     k_pattern = fields.Char("K Pattern",states={'required': Eval('calibration', False)}, |     k_pattern = fields.Char("K Pattern", states={'required': Eval('calibration', False)}, | ||||||
|                             help="Agregar valores separados por ',' Ej:-5,+5,-10,+10") |                             help="Agregar valores separados por ',' Ej:-5,+5,-10,+10") | ||||||
|     k_pattern_list = fields.One2Many('optical_equipment.product_pattern', 'product', "List of patterns K", |     k_pattern_list = fields.One2Many('optical_equipment.product_pattern', 'product', "List of patterns K", | ||||||
|                                      states={'required': Eval('calibration', False)},) |                                      states={'required': Eval('calibration', False)},) | ||||||
|     resolution_type = fields.Selection([('',""), |     resolution_type = fields.Selection([('', ""), | ||||||
|                                         ('analoga', "Analoga"), |                                         ('analoga', "Analoga"), | ||||||
|                                         ('digital', "Digital")], "Resolution Type", |                                         ('digital', "Digital")], "Resolution Type", | ||||||
|                                        states={'required': Eval('calibration', False)},) |                                        states={'required': Eval('calibration', False)},) | ||||||
|     d_resolution = fields.Float("Resolution d", |     d_resolution = fields.Float("Resolution d", | ||||||
|                                 states={'invisible': If(Eval('resolution_type') != 'digital', True)},) |                                 states={'invisible': If(Eval('resolution_type') != 'digital', True)},) | ||||||
|     analog_resolution = fields.Float("Analog resolution", |     analog_resolution = fields.Float("Analog resolution", | ||||||
|                                 states={'invisible': If(Eval('resolution_type') != 'analoga', True),},) |                                      states={'invisible': If(Eval('resolution_type') != 'analoga', True), },) | ||||||
|     a_factor_resolution = fields.Float("(a) Resolution", |     a_factor_resolution = fields.Float("(a) Resolution", | ||||||
|                                        states={'invisible': If(Eval('resolution_type') != 'analoga', True)},) |                                        states={'invisible': If(Eval('resolution_type') != 'analoga', True)},) | ||||||
|     Usubi = fields.Integer("Usub i",states={'required': Eval('calibration', False)},) |     Usubi = fields.Integer("Usub i", states={'required': Eval('calibration', False)},) | ||||||
|  |  | ||||||
|     #maintenance activities |     # maintenance activities | ||||||
|     initial_operation = fields.Boolean("Verificación inicial de funcionamiento") |     initial_operation = fields.Boolean("Verificación inicial de funcionamiento") | ||||||
|     check_equipment = fields.Boolean("Revisión del Equipo") |     check_equipment = fields.Boolean("Revisión del Equipo") | ||||||
|     check_electric_system = fields.Boolean("Revisión del sistema electríco") |     check_electric_system = fields.Boolean("Revisión del sistema electríco") | ||||||
| @@ -175,7 +188,7 @@ class Template(metaclass=PoolMeta): | |||||||
|     def view_attributes(cls): |     def view_attributes(cls): | ||||||
|         return super(Template, cls).view_attributes() + [ |         return super(Template, cls).view_attributes() + [ | ||||||
|             ('//page[@id="features"]', 'states', { |             ('//page[@id="features"]', 'states', { | ||||||
|                 'invisible': ~Eval('equipment'),}), |                 'invisible': ~Eval('equipment'), }), | ||||||
|             ('//page[@id="calibration"]', 'states', { |             ('//page[@id="calibration"]', 'states', { | ||||||
|                 'invisible': ~Eval('calibration')},), |                 'invisible': ~Eval('calibration')},), | ||||||
|             ('//page[@id="maintenance_activities"]', 'states', { |             ('//page[@id="maintenance_activities"]', 'states', { | ||||||
| @@ -227,19 +240,15 @@ class Template(metaclass=PoolMeta): | |||||||
|     def default_biomedical_class(): |     def default_biomedical_class(): | ||||||
|         return 'n/a' |         return 'n/a' | ||||||
|  |  | ||||||
|  |  | ||||||
|     def default_main_tecnology(): |     def default_main_tecnology(): | ||||||
|         return None |         return None | ||||||
|  |  | ||||||
|  |  | ||||||
|     def default_calibration(): |     def default_calibration(): | ||||||
|         return False |         return False | ||||||
|  |  | ||||||
|  |  | ||||||
|     def default_refurbish(): |     def default_refurbish(): | ||||||
|         return False |         return False | ||||||
|  |  | ||||||
|  |  | ||||||
|     def default_refurbish(): |     def default_refurbish(): | ||||||
|         return False |         return False | ||||||
|  |  | ||||||
| @@ -304,9 +313,9 @@ class Template(metaclass=PoolMeta): | |||||||
|     @fields.depends('equipment', 'replacement') |     @fields.depends('equipment', 'replacement') | ||||||
|     def on_change_equipment(self): |     def on_change_equipment(self): | ||||||
|         if self.equipment: |         if self.equipment: | ||||||
|             self.replacement=False |             self.replacement = False | ||||||
|             self.maintenance_activity=False |             self.maintenance_activity = False | ||||||
|             self.calibration=False |             self.calibration = False | ||||||
|             self.mark_category = None |             self.mark_category = None | ||||||
|             self.model_category = None |             self.model_category = None | ||||||
|             self.reference_category = None |             self.reference_category = None | ||||||
| @@ -381,13 +390,14 @@ class Image(metaclass=PoolMeta): | |||||||
|         return super().copy(images, default=default) |         return super().copy(images, default=default) | ||||||
|  |  | ||||||
|  |  | ||||||
| class UsePattern(ModelSQL,ModelView): | class UsePattern(ModelSQL, ModelView): | ||||||
|     "Use Pattern" |     "Use Pattern" | ||||||
|     __name__ = 'optical_equipment.use_pattern' |     __name__ = 'optical_equipment.use_pattern' | ||||||
|     _rec_name = 'name_pattern' |     _rec_name = 'name_pattern' | ||||||
|  |  | ||||||
|     name_pattern = fields.Char('Name Pattern', required=True) |     name_pattern = fields.Char('Name Pattern', required=True) | ||||||
|  |  | ||||||
|  |  | ||||||
| class Pattern(ModelSQL, ModelView): | class Pattern(ModelSQL, ModelView): | ||||||
|     "Pattern K of equipment" |     "Pattern K of equipment" | ||||||
|     __name__ = 'optical_equipment.product_pattern' |     __name__ = 'optical_equipment.product_pattern' | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user