From 2c9aba7bdc5cf934b8977ce37858d91a8ef6de89 Mon Sep 17 00:00:00 2001 From: sinergia Date: Tue, 4 Apr 2023 00:28:23 -0500 Subject: [PATCH] add payment form --- contract.py | 10 ++++--- maintenance.py | 16 ++++++++-- move.py | 14 ++++----- report/Maintenance_Service.fodt | 53 ++++++++++++++++++++++----------- sale.py | 7 +++-- sale.xml | 12 ++++++++ view/create_contract_form.xml | 2 ++ 7 files changed, 79 insertions(+), 35 deletions(-) diff --git a/contract.py b/contract.py index d59541a..795c1bb 100644 --- a/contract.py +++ b/contract.py @@ -219,8 +219,8 @@ class CreateContractInitial(ModelView, ModelSQL): datetime.date.min)), ('end_date', '=', None), ]) - unit_price = Monetary( - "Unit Price", digits=price_digits, currency='currency') + unit_price = Monetary("Unit Price", digits=price_digits, currency='currency', required=True) + @staticmethod def default_company(): return Transaction().context.get('company') @@ -262,7 +262,8 @@ class CreateContract(Wizard): contact=self.start.contact, start_date=self.start.start_date, end_date=self.start.end_date, - invoice_address=self.start.invoice_address + invoice_address=self.start.invoice_address, + unit_price=self.start.unit_price ) def do_create_contract(self, action): @@ -286,7 +287,8 @@ class CreateContract(Wizard): contract.maintenance_services+=prorogues contract.equipments=equipments contract.state='draft' - contract.price_contract=maintenance_service.sale_origin.sale.total_amount + contract.price_contract=dates['unit_price'] + #contract.price_contract=maintenance_service.sale_origin.sale.total_amount contract.save() else: contract = Contract(party=dates['party'], diff --git a/maintenance.py b/maintenance.py index bc242f0..3793e95 100644 --- a/maintenance.py +++ b/maintenance.py @@ -24,6 +24,7 @@ from trytond.exceptions import UserError _digits = (16, 2) + class MaintenanceService(Workflow, ModelSQL, ModelView): 'Equipment Maintenance Service' __name__ = 'optical_equipment_maintenance.service' @@ -188,9 +189,10 @@ class MaintenanceService(Workflow, ModelSQL, ModelView): def _get_origin(cls): 'Return list of Model names for origin Reference' pool = Pool() - Sale = pool.get('sale.line') + Sale = pool.get('sale.sale') + SaleLine = pool.get('sale.line') - return [Sale.__name__] + return [Sale.__name__, SaleLine.__name__] @classmethod def get_origin(cls): @@ -784,6 +786,14 @@ class MaintenanceLine(ModelSQL, ModelView): if not self.unit or self.unit.category != category: self.unit = self.maintenance_activity.sale_uom + +# class MaintenanceRequest(ModelSQL, ModelView): +# 'Maintenance Request' +# __name__ = 'optical_equipment.maintenance_request' + +# origin = fields.Reference("Sale Origin", selection='get_origin', select=True, +# states={'readonly': True}) + class MaintenanceActivity(ModelView, ModelSQL): 'Maintenance Activitys' @@ -793,7 +803,7 @@ class MaintenanceActivity(ModelView, ModelSQL): product = fields.Many2One('product.product', 'Product', domain=[('maintenance_activity', '=', True)]) - + class ChangePropietaryMaintenance(ModelView): 'Change of Propietary Equipment' __name__ = 'optical_equipment.change_propietary_maintenance.form' diff --git a/move.py b/move.py index 170d8e4..8ab8057 100644 --- a/move.py +++ b/move.py @@ -134,15 +134,15 @@ class ShipmentOut(metaclass=PoolMeta): for shipment in shipments: sale_origin = shipment.outgoing_moves[0].origin.sale.id - saleLine = SaleLine( - type='line', - quantity=1, - unit_price=0, - sale=sale_origin) - saleLine.save() + # saleLine = SaleLine( + # type='line', + # quantity=1, + # unit_price=0, + # sale=sale_origin) + # saleLine.save() maintenanceService = MaintenanceService( sale_date=shipment.outgoing_moves[0].origin.sale.sale_date, - sale_origin=saleLine, + sale_origin=shipment.sales[0], maintenance_type='initial', propietary=shipment.customer.id, propietary_address=shipment.delivery_address.id, diff --git a/report/Maintenance_Service.fodt b/report/Maintenance_Service.fodt index 0395f6b..e7dd2e9 100644 --- a/report/Maintenance_Service.fodt +++ b/report/Maintenance_Service.fodt @@ -1,28 +1,28 @@ - 2022-11-03T17:09:30.5000787642023-03-21T01:18:38.409079360PT1H30M28S25LibreOffice/7.4.6.2$Linux_X86_64 LibreOffice_project/40$Build-2 + 2022-11-03T17:09:30.5000787642023-04-03T16:41:02.805514975PT1H31M30S27LibreOffice/7.4.6.2$Linux_X86_64 LibreOffice_project/40$Build-2 - 36336 + 0 0 - 40836 - 19163 + 30628 + 14372 true false view2 - 11622 - 49465 + 8172 + 16147 0 - 36336 - 40834 - 55497 + 0 + 30626 + 14370 0 1 false - 120 + 160 false false false @@ -91,7 +91,7 @@ true true - 1856148 + 1866001 true false @@ -158,7 +158,7 @@ - + @@ -319,16 +319,16 @@ - + $ - + - $ - + @@ -649,6 +649,22 @@ + + + + + + + + + + + + + + + + @@ -1338,6 +1354,9 @@ <for each="maintenance in records"> <choose test=""> + <when test="maintenance.maintenance_type == 'initial"> + REGISTRO DE MANTENIMIENTO PREVENTIVO + </when> <when test="maintenance.maintenance_type == 'preventive'"> REGISTRO DE MANTENIMIENTO PREVENTIVO </when> @@ -1345,7 +1364,6 @@ REGISTRO DE MANTENIMIENTO CORRECTIVO </when> </choose> - Fecha <format_datetime(datetime.datetime.now(),user.language, '%b/%d/%Y', maintenance.company.timezone)> Consecutivo <maintenance.code> @@ -1389,7 +1407,7 @@ <choose test=""> Trabajo Realizado - + @@ -1401,7 +1419,6 @@ <"SI" if maintenance.initial_operation else "NO"> - 2. Revisión del Equipo: diff --git a/sale.py b/sale.py index 69ec30b..ea3e9c6 100644 --- a/sale.py +++ b/sale.py @@ -78,6 +78,8 @@ class Sale(metaclass=PoolMeta): self.lines= [] if self.sale_type != "maintenance": self.agended = False + elif self.sale_type == "maintenance": + self.invoice_method = 'order' @classmethod def default_agended(self): @@ -175,7 +177,6 @@ class Sale(metaclass=PoolMeta): cls.store_cache(sales) config = Configuration(1) - MaintenanceService = pool.get('optical_equipment_maintenance.service') for sale in sales: if sale.sale_type == 'maintenance': @@ -186,8 +187,8 @@ class Sale(metaclass=PoolMeta): state_agended='no_agenda', propietary=sale.party, propietary_address=sale.shipment_address, - #contract_origin=sale.contract_ref if sale.contract_ref else None, - sale_origin=line, + contract_origin=sale.contract_ref if sale.contract_ref else None, + sale_origin=sale, sale_date=sale.sale_date, state="draft" ) diff --git a/sale.xml b/sale.xml index ca6cb22..851a50e 100644 --- a/sale.xml +++ b/sale.xml @@ -48,4 +48,16 @@ sale.sale,-1 + + Payment + account.statement.line + account.statement.line + optical_equipment/report/Payment.fodt + + + + form_print + account.statement.line,-1 + + diff --git a/view/create_contract_form.xml b/view/create_contract_form.xml index c71c059..f3d2cb4 100644 --- a/view/create_contract_form.xml +++ b/view/create_contract_form.xml @@ -13,5 +13,7 @@ this repository contains the full copyright notices and license terms. -->