diff --git a/report/Calibration.fodt b/report/Calibration.fodt index d992b2f..dfce0fe 100644 --- a/report/Calibration.fodt +++ b/report/Calibration.fodt @@ -1,24 +1,24 @@ - 2022-10-11T16:28:51.1019484802022-11-09T16:09:59.035898686PT4H10M58S48LibreOffice/7.3.6.2$Linux_X86_64 LibreOffice_project/30$Build-2 + 2022-10-11T16:28:51.1019484802022-11-10T10:33:37.950760187PT4H15M46S51LibreOffice/7.3.6.2$Linux_X86_64 LibreOffice_project/30$Build-2 - 5290 + 34309 0 34851 - 15291 + 16028 true false view2 - 19819 - 14568 + 8631 + 46434 0 - 5290 + 34309 34849 - 20579 + 50336 0 1 false @@ -88,7 +88,7 @@ true true - 4127259 + 4274060 true false @@ -507,61 +507,65 @@ + + + + - - - - - + + + + + - + - + - + - + - + - - - - + + + + - + - + - + - + - + @@ -569,10 +573,10 @@ - + - + @@ -580,22 +584,22 @@ - + - + - + - + - + @@ -603,51 +607,51 @@ - + - + - + - + - + - + - + - + - - - - + + + + - + - + - + @@ -655,51 +659,59 @@ - + - + - + - + - + - + - + - + - + - + - - - - + + + + + + + + + + + + @@ -707,13 +719,21 @@ - + - + - + + + + + + + + + @@ -721,7 +741,15 @@ - + + + + + + + + + @@ -729,164 +757,173 @@ - + - + - + - + - + - + - - - - - - - - - - - - - + + - + - + - + - + - + - + + + + + + + + + + + + + + + + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - + - + + - + + - + + - - + + + - + - - + + - + - + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + - + - + - + - + + + + - + - - - - - + + + @@ -943,23 +980,35 @@ - + - + - + - + - + + + + + + + + + + + + + @@ -968,9 +1017,6 @@ - - - @@ -994,7 +1040,7 @@ - + /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgK CgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkL EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAAR @@ -1652,7 +1698,8 @@ Smart Vision S.A.S NIT 901091201 DIRECCIÓN Carrera 16 # 52-85 piso 4 - TELÉFONOS +57 320 8197664 + TELÉFONOS 601-7049417 + MOVIL +57 320 8197664 E – MAIL smartvisioncolombia@gmail.com @@ -1673,16 +1720,16 @@ - <for each="maintenance in records"> + <for each="maintenance in records"> - Fecha: <format_datetime(datetime.datetime.now(),user.language, '%b/%d/%Y', maintenance.company.timezone)> + Fecha: <format_datetime(datetime.datetime.now(),user.language, '%b/%d/%Y', maintenance.company.timezone)> - Consecutivo: <maintenance.code> + Consecutivo: <maintenance.code> @@ -1690,11 +1737,11 @@ - Señores: <maintenance.propietary.name> - Documento: <"NIT" if maintenance.propietary.tax_identifier.type=="31" else "CC"><maintenance.propietary.tax_identifier.code> - Ciudad: <maintenance.propietary_address.subdivision_municipality.name> - Dirección: <maintenance.propietary_address.street> - + Señores: <maintenance.propietary.name> + Documento: <"NIT" if maintenance.propietary.tax_identifier.type=="31" else "CC"><maintenance.propietary.tax_identifier.code> + Ciudad: <maintenance.propietary_address.subdivision_municipality.name> + Dirección: <maintenance.propietary_address.street> + @@ -1702,7 +1749,7 @@ - Asunto: Certificación de calibración + Asunto: Certificación de calibración @@ -1711,23 +1758,23 @@ - Método de calibración: Comparación - Rango de medición: Dioptrias - Patrón utilizado: Lentes de caja de pruebas, material de vidrio - División de escala: 0,25 D - Sitio de medición: Consultorio + Método de calibración: Comparación + Rango de medición: Dioptrias + Patrón utilizado: Lentes de caja de pruebas, material de vidrio + División de escala: 0,25 D + Sitio de medición: Consultorio - Equipo: <maintenance.equipment.product.name> - Marca: <maintenance.equipment.mark_category.name> - Modelo: <maintenance.equipment.model_category.name> - Referencia: <maintenance.equipment.reference_category.name> - Serie: <maintenance.equipment.serial> + Equipo: <maintenance.equipment.product.name> + Marca: <maintenance.equipment.mark_category.name> + Modelo: <maintenance.equipment.model_category.name> + Referencia: <maintenance.equipment.reference_category.name> + Serie: <maintenance.equipment.serial> - + @@ -1735,7 +1782,7 @@ - Condiciones Ambientales + Condiciones Ambientales @@ -1743,90 +1790,90 @@ - Temperatura Min + Temperatura Min - <str(maintenance.temperature_min) + str(maintenance.temperature_uom.symbol) if maintenance.temperature_min else ""> + <str(maintenance.temperature_min) + str(maintenance.temperature_uom.symbol) if maintenance.temperature_min else ""> - Humedad Min + Humedad Min - <str(maintenance.moisture_min) + str(maintenance.equipment.product.moisture_uom.symbol) if maintenance.moisture_min else ""> + <str(maintenance.moisture_min) + str(maintenance.equipment.product.moisture_uom.symbol) if maintenance.moisture_min else ""> - Temperatura Max + Temperatura Max - <str(maintenance.temperature_max) + str(maintenance.temperature_uom.symbol) if maintenance.temperature_max else ""> + <str(maintenance.temperature_max) + str(maintenance.temperature_uom.symbol) if maintenance.temperature_max else ""> - Humedad Max + Humedad Max - <str(maintenance.moisture_max) + str(maintenance.equipment.product.moisture_uom.symbol) if maintenance.moisture_max else ""> + <str(maintenance.moisture_max) + str(maintenance.equipment.product.moisture_uom.symbol) if maintenance.moisture_max else ""> - - - + + + - Medida Tomadas + Medida Tomadas - Patrón + Patrón - Valor en Equipo + Valor en Equipo - % Error + % Error - <for each="line in maintenance.lines_calibration"> + <for each="line in maintenance.lines_calibration"> - <line.value_patterns.pattern> + <line.value_patterns.pattern> - <line.value_equipment> + <line.value_equipment> - <line.mistake_rate>% + <line.mistake_rate>% - </for> + </for> - - - Resultados de calibración: - - La incertidumbre expandida de la medición se ha obtenido multiplicando la incertidumbre combinada por el factor de cobertura K calculado conforme a los grados de libertad y el factor de Student para una probabilidad del 95% - + + + Resultados de calibración: + + La incertidumbre expandida de la medición se ha obtenido multiplicando la incertidumbre combinada por el factor de cobertura K calculado conforme a los grados de libertad y el factor de Student para una probabilidad del 95% + @@ -1835,53 +1882,53 @@ - Dioptria + Dioptria - Desviación estándar + Desviación estándar - Promedio + Promedio - Incertidumbre Expandida + Incertidumbre Expandida - Estado + Estado - <for each="line in maintenance.calibration_total"> + <for each="line in maintenance.calibration_total"> - + - <line.diopter> + <line.diopter> - <line.dev_std> + <line.dev_std> - <line.mean> + <line.mean> - <line.uncertain_expanded> + <line.uncertain_expanded> - <line.state> + <line.state> - </for> + </for> @@ -1890,7 +1937,7 @@ - Este certificado de calibración no podrá ser reproducido. + Este certificado de calibración no podrá ser reproducido. @@ -1898,25 +1945,23 @@ - + - + Texto 1: - - Este certificado expresa fielmente el resultado de las mediciones realizadas. Los resultados contenidos en el presente certificado se refieren al momento y condiciones en que se realizaron las mediciones. No nos responsabilizamos de los perjuicios que pueden derivarse del uso inadecuado de los instrumentos calibrados. El usuario es responsable de la recalibración de sus instrumentos a intervalos apropiados. - - Calibrado por : <maintenance.service_maintenance.technical.party.name> - - - - - - - <maintenance.service_maintenance.technical.party.name> - <maintenance.service_maintenance.technical.party.tax_identifier.code> - </for> + + Este certificado expresa fielmente el resultado de las mediciones realizadas. Los resultados contenidos en el presente certificado se refieren al momento y condiciones en que se realizaron las mediciones. No nos responsabilizamos de los perjuicios que pueden derivarse del uso inadecuado de los instrumentos calibrados. El usuario es responsable de la recalibración de sus instrumentos a intervalos apropiados + + + + + + ANTHONY STIVEN RODRIGUEZ FONSECA + INVIMA : RH-202208-01301 + + </for> diff --git a/report/Sale.fodt b/report/Sale.fodt index 270397f..509b4a9 100644 --- a/report/Sale.fodt +++ b/report/Sale.fodt @@ -1,24 +1,24 @@ - LibreOffice/7.3.6.2$Linux_X86_64 LibreOffice_project/30$Build-22008-06-07T15:28:222009-01-10T16:03:331PT0S + LibreOffice/7.3.6.2$Linux_X86_64 LibreOffice_project/30$Build-22008-06-07T15:28:222009-01-10T16:03:331PT0S - 49465 + 74507 0 24396 - 11737 + 10705 true false view2 - 2203 - 69307 + 2300 + 78620 0 - 49465 + 74507 24395 - 61200 + 85210 0 0 false @@ -88,7 +88,7 @@ true true - 2772055 + 2880055 true false @@ -163,7 +163,7 @@ - + @@ -314,16 +314,16 @@ - + $ - + - $ - + @@ -1164,8 +1164,9 @@ - - + + + @@ -2350,6 +2351,7 @@ Forma de pago: <sale.payment_term.name if sale.payment_term else ""> Medios de pago: Efectivo, Consignación o transferencia a la cuenta corriente Bancolombia # 053813599-86 a nombre de SMART VISION SAS + DOCUMENTACIÓN ENTREGADA CON LOS EQUIPOS - Factura - Certificado de capacitación @@ -2374,7 +2376,7 @@ - ______________________________________ + JESUS ANTONIO GIRALDO GARCIA C.E.O. (Gerente General) diff --git a/sale.py b/sale.py index 1d48e3c..e960080 100644 --- a/sale.py +++ b/sale.py @@ -1,7 +1,7 @@ from trytond.pool import Pool, PoolMeta from trytond.model import ModelView, ModelSQL, fields from trytond.modules.currency.fields import Monetary -from trytond.pyson import Eval, Bool, If, Get +from trytond.pyson import Eval, Bool, If, Get, Equal from decimal import Decimal from trytond.modules.product import price_digits from trytond.transaction import Transaction @@ -19,6 +19,7 @@ class Sale(metaclass=PoolMeta): 'Sale' __name__ = 'sale.sale' + sale_type = fields.Selection([('maintenance', 'Maintenance'), ('equipments', 'Equipments'), ('replaces', 'Replaces')], "Sale Type", required=True, @@ -44,11 +45,32 @@ class Sale(metaclass=PoolMeta): 'invisible': (Eval('sale_type') != 'maintenance'), 'readonly': True}) + total_invoices = fields.Function(fields.Boolean("Invoices"), 'number_invoices') + + @classmethod def __setup__(cls): super(Sale, cls).__setup__() cls.contact.states['required']=True - + cls._buttons.update({ + 'draft': { + 'invisible': (Eval('state').in_( + ['cancelled', 'draft'])) | (Eval('shipment_state') == 'sent')}}) + + cls._transitions |= set(( + ('draft', 'quotation'), + ('quotation', 'confirmed'), + ('confirmed', 'processing'), + ('confirmed', 'draft'), + ('processing', 'processing'), + ('processing', 'done'), + ('done', 'processing'), + ('draft', 'cancelled'), + ('quotation', 'cancelled'), + ('quotation', 'draft'), + ('cancelled', 'draft'), + ('processing', 'draft') + )) @fields.depends('lines', 'sale_type', 'agended') def on_chage_sale_type(self): self.lines= [] @@ -60,7 +82,7 @@ class Sale(metaclass=PoolMeta): return False @classmethod - def _get_origin(cls): + def _get_origin_contract(cls): 'Return list of Model names for origin Reference' pool = Pool() Contract = pool.get('optical_equipment.contract') @@ -71,9 +93,19 @@ class Sale(metaclass=PoolMeta): def get_origin_contract(cls): Model = Pool().get('ir.model') get_name = Model.get_name - models = cls._get_origin() + models = cls._get_origin_contract() + return [(None, '')] + [(m, get_name(m)) for m in models] - + + + @fields.depends('invoices') + def number_invoices(self, name): + number_invoices = len(self.invoices) + if number_invoices > 0: + return True + else: + return False + @classmethod @ModelView.button @Workflow.transition('confirmed') @@ -87,8 +119,11 @@ class Sale(metaclass=PoolMeta): cls.store_cache(sales) config = Configuration(1) + MaintenanceService = pool.get('optical_equipment_maintenance.service') for sale in sales: + invoices = Eval('sale.invoices') + #raise UserError(str((invoices))) if sale.sale_type == 'maintenance': for line in sale.lines: maintenanceService = MaintenanceService( @@ -139,7 +174,6 @@ class SaleLine(metaclass=PoolMeta): [('replacement', '=', True), ('maintenance_activity', '=', True)], [])) cls.quantity.states['readonly'] = Eval('_parent_sale.sale_type') == 'equipments' - def on_change_with_unit_digits(self, name=None): if self.unit: