From 42b2438fa057f80cc35beff6a7668a52cf3ecfb8 Mon Sep 17 00:00:00 2001 From: raskolnikov Date: Mon, 27 Feb 2023 10:46:56 -0500 Subject: [PATCH] add payments, quote_number in sale --- account.xml | 16 + configuration_equipment.py | 8 +- locale/es.po | 4 + report/Payment.fodt | Bin 0 -> 58749 bytes report/Sale.fodt | 761 ++++++----- report/Sale_Internal.fodt | 1179 +++++++++-------- sale.py | 31 +- sale.xml | 9 + tryton.cfg | 1 + view/optical_equipment_configuration_form.xml | 3 + view/sale_form.xml | 4 + view/sale_tree.xml | 11 + 12 files changed, 1084 insertions(+), 943 deletions(-) create mode 100644 account.xml create mode 100644 report/Payment.fodt create mode 100644 view/sale_tree.xml diff --git a/account.xml b/account.xml new file mode 100644 index 0000000..dbd7dbe --- /dev/null +++ b/account.xml @@ -0,0 +1,16 @@ + + + + + Pagos + account.move.line + account.move.line + optical_equipment/report/Payment.fodt + + + + form_print + account.move.line,-1 + + diff --git a/configuration_equipment.py b/configuration_equipment.py index 4398084..b5e281f 100644 --- a/configuration_equipment.py +++ b/configuration_equipment.py @@ -1,8 +1,10 @@ from trytond.model import ( ModelSingleton, ModelSQL, ModelView, fields) from trytond.pyson import Id +from trytond.modules.company.model import ( + CompanyMultiValueMixin, CompanyValueMixin) -class Configuration(ModelSingleton, ModelSQL, ModelView): +class Configuration(ModelSingleton, ModelSQL, ModelView, CompanyMultiValueMixin): 'Equipment Configuration' __name__='optical_equipment.configuration' @@ -28,3 +30,7 @@ class Configuration(ModelSingleton, ModelSQL, ModelView): moisture_uom = fields.Many2One('product.uom', "Moisture UOM", domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))], depends=['moisture_min']) + sale_quote_number = fields.Many2One('ir.sequence', "Sale Quote Number", + domain=[ + ('sequence_type', '=', Id('sale','sequence_type_sale')) + ]) diff --git a/locale/es.po b/locale/es.po index ff11aa3..42dab13 100644 --- a/locale/es.po +++ b/locale/es.po @@ -698,6 +698,10 @@ msgctxt "field:optical_equipment_maintenance.service,description:" msgid "Description" msgstr "Descripción" +msgctxt "field:sale.sale,quote_number:" +msgid "Quote Number" +msgstr "Cotización #" + msgctxt "field:sale.sale,description:sale." msgid "Description" msgstr "Tiempo de Entrega" diff --git a/report/Payment.fodt b/report/Payment.fodt new file mode 100644 index 0000000000000000000000000000000000000000..7ba8c0c58f58a680f8bbbb23ca1029f7f11881da GIT binary patch literal 58749 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 TiuUs}Ld4aF=-1Mhf2RHm3364$ literal 0 HcmV?d00001 diff --git a/report/Sale.fodt b/report/Sale.fodt index a65f5e9..d15e7c1 100644 --- a/report/Sale.fodt +++ b/report/Sale.fodt @@ -1,10 +1,10 @@ - LibreOffice/7.3.7.2$Linux_X86_64 LibreOffice_project/30$Build-22008-06-07T15:28:222009-01-10T16:03:331PT0S + LibreOffice/7.3.7.2$Linux_X86_64 LibreOffice_project/30$Build-22008-06-07T15:28:222009-01-10T16:03:331PT0S - 26331 + 0 0 27077 12467 @@ -13,12 +13,12 @@ view2 - 8327 - 17776 + 18413 + 6255 0 - 26331 + 0 27076 - 38797 + 12465 0 0 false @@ -88,7 +88,7 @@ true true - 3065572 + 3088350 true false @@ -591,669 +591,696 @@ - - + - - + + + + + + - + - + - + - + + + + + - + - + + + + + - + - + - + - + + + + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + - - + + - - + + + - + + - - + + - + - + - + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + - + + + + + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + @@ -1412,7 +1439,7 @@ - + /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgK CgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkL EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAAR @@ -2074,7 +2101,7 @@ COTIZACIÓN ESTADO DE BORRADOR </when> <when test="sale.state == 'quotation'"> - COTIZACIÓN N°: <sale.number> + COTIZACIÓN N°: <sale.quote_number> </when> <otherwise test=""> ORDEN DE COMPRA N°: <sale.number> @@ -2106,41 +2133,43 @@ <for each="sale in records"> + <choose test=""> + <when test="sale.quote_number != None or sale.number != None"> - Fecha: <format_date(sale.sale_date or today, sale.party.lang)> + Fecha: <format_date(sale.sale_date or today, sale.party.lang)> - - - NIT: 901091201-1 - Regimen Común - Actividad Economica 4659 - CARRERA 16 No 52-85 PISO 4 - Tel: 601-7049417 - 3208197664 - BOGOTA + + + NIT: 901091201-1 + Regimen Común + Actividad Economica 4659 + CARRERA 16 No 52-85 PISO 4 + Tel: 601-7049417 - 3208197664 + BOGOTA - Cotizado a: <sale.party.name> - <if test="sale.party.tax_identifier"> - Nit o Cedula: <sale.party.tax_identifier.code> - </if> - Dirección: <sale.invoice_address.street> - Ciudad: <sale.invoice_address.subdivision_municipality.name> - Telefono: <sale.contact.value> + Cotizado a: <sale.party.name> + <if test="sale.party.tax_identifier"> + Nit o Cedula: <sale.party.tax_identifier.code> + </if> + Dirección: <sale.invoice_address.street> + Ciudad: <sale.invoice_address.subdivision_municipality.name> + Telefono: <sale.contact.value> - - Somos SMART VISION, la compañía que está revolucionando el mercado óptico en Colombia, ofrecemos productos y servicios ópticos con la mejor calidad y tecnología de punta. Nuestra mayor prioridad es satisfacer las necesidades de nuestros clientes - Agradecemos sinceramente el habernos elegido como opción; a continuación, relacionamos los productos solicitados. - " SMART VISION cambia tu forma de ver el mundo" + + Somos SMART VISION, la compañía que está revolucionando el mercado óptico en Colombia, ofrecemos productos y servicios ópticos con la mejor calidad y tecnología de punta. Nuestra mayor prioridad es satisfacer las necesidades de nuestros clientes + Agradecemos sinceramente el habernos elegido como opción; a continuación, relacionamos los productos solicitados. + " SMART VISION cambia tu forma de ver el mundo" @@ -2154,37 +2183,37 @@ - Descripción + Descripción - Modelo + Modelo - Marca + Marca - Origen + Origen - Garantia + Garantia - Cantidad + Cantidad - Precio u/n + Precio u/n - IVA + IVA - Total + Total - <for each="line in sale.lines"> + <for each="line in sale.lines"> @@ -2197,7 +2226,7 @@ - <choose test=""> + <choose test=""> @@ -2210,7 +2239,7 @@ - <when test="line.type == 'line'"> + <when test="line.type == 'line'"> @@ -2223,61 +2252,61 @@ - <if test="line.product"> - <line.product.rec_name> - </if> - <if test="line.description"> - <for each="description in line.description.split('\n')"> - <description> - </for> - </if> + <if test="line.product"> + <line.product.rec_name> + </if> + <if test="line.description"> + <for each="description in line.description.split('\n')"> + <description> + </for> + </if> - <if test="line.product"> - <if test="line.product.model_category"> - <line.product.model_category.name> - </if> - </if> + <if test="line.product"> + <if test="line.product.model_category"> + <line.product.model_category.name> + </if> + </if> - <if test="line.product"> - <if test="line.product.mark_category"> - <line.product.mark_category.name> - </if> - </if> + <if test="line.product"> + <if test="line.product.mark_category"> + <line.product.mark_category.name> + </if> + </if> - <if test="line.product"> - <if test="line.product.origin_country"> - <line.product.origin_country.name> - </if> - </if> + <if test="line.product"> + <if test="line.product.origin_country"> + <line.product.origin_country.name> + </if> + </if> - <if test="line.product"> - <if test="line.product.warranty"> - <line.product.warranty>Meses - </if> - </if> + <if test="line.product"> + <if test="line.product.warranty"> + <line.product.warranty>Meses + </if> + </if> - <format_number_symbol(line.quantity, sale.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, sale.party.lang)> + <format_number_symbol(line.quantity, sale.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, sale.party.lang)> - <format_currency(line.unit_price, sale.party.lang, sale.currency)> + <format_currency(line.unit_price, sale.party.lang, sale.currency)> - <for each="tax in line.taxes"> - <tax.description> - </for> + <for each="tax in line.taxes"> + <tax.description> + </for> - <format_currency(line.amount, sale.party.lang, sale.currency)> + <format_currency(line.amount, sale.party.lang, sale.currency)> - </when> + </when> @@ -2288,9 +2317,10 @@ + - <when test="line.type == 'subtotal'"> + <when test="line.type == 'subtotal'"> @@ -2303,10 +2333,10 @@ - <for each="description in (line.description or '').split('\n')"> - <description> - </for> - <format_currency(line.amount, sale.party.lang, sale.currency)> + <for each="description in (line.description or '').split('\n')"> + <description> + </for> + <format_currency(line.amount, sale.party.lang, sale.currency)> @@ -2319,7 +2349,7 @@ - </when> + </when> @@ -2332,7 +2362,7 @@ - <when test="line.type == 'title'"> + <when test="line.type == 'title'"> @@ -2345,9 +2375,9 @@ - <for each="description in (line.description or '').split('\n')"> - <description> - </for> + <for each="description in (line.description or '').split('\n')"> + <description> + </for> @@ -2360,7 +2390,7 @@ - </when> + </when> @@ -2373,7 +2403,7 @@ - <otherwise test=""> + <otherwise test=""> @@ -2386,9 +2416,9 @@ - <for each="description in (line.description or '').split('\n')"> - <description> - </for> + <for each="description in (line.description or '').split('\n')"> + <description> + </for> @@ -2440,7 +2470,7 @@ - Total antes Impuestos: + Total antes Impuestos: @@ -2448,14 +2478,14 @@ - <format_currency(sale.untaxed_amount, sale.party.lang, sale.currency)> + <format_currency(sale.untaxed_amount, sale.party.lang, sale.currency)> - Total impuestos: + Total impuestos: @@ -2463,15 +2493,14 @@ - <format_currency(sale.tax_amount, sale.party.lang, sale.currency)> + <format_currency(sale.tax_amount, sale.party.lang, sale.currency)> - - Total: + Total: @@ -2479,7 +2508,7 @@ - <format_currency(sale.total_amount, sale.party.lang, sale.currency)> + <format_currency(sale.total_amount, sale.party.lang, sale.currency)> @@ -2487,36 +2516,34 @@ <for each="comment in (sale.comment or '').split('\n')"> </for> - CONDICIONES DE NEGOCIACION Y PAGO: - Tiempo de entrega: <sale.description> - 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 - - Manifiesto de importación (si aplica) - - Hoja de vida de cada equipo - - Certificado de calibración (Para equipos usados) - Otras condiciones: - - El costo del envío es responsabilidad del comprador (para otras ciudades diferentes a Bogotá). - - Garantía no incluye bombillos o piezas de desgaste por uso. - - Con el envío de los equipos se entregarán las hojas de vida. - - La Factura de venta definitiva será entregada al confirmar el pago total. - - OBSERVACIONES ADICIONALES - - <sale.comment> - - VIGENCIA DE LA COTIZACIÓN: 30 Días - </for> - Cordialmente + CONDICIONES DE NEGOCIACION Y PAGO: + Tiempo de entrega: <sale.description> + 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 + - Manifiesto de importación (si aplica) + - Hoja de vida de cada equipo + - Certificado de calibración (Para equipos usados) + Otras condiciones: + - El costo del envío es responsabilidad del comprador (para otras ciudades diferentes a Bogotá). + - Garantía no incluye bombillos o piezas de desgaste por uso. + - Con el envío de los equipos se entregarán las hojas de vida. + - La Factura de venta definitiva será entregada al confirmar el pago total. + + OBSERVACIONES ADICIONALES + - <sale.comment> + + VIGENCIA DE LA COTIZACIÓN: 30 Días + Cordialmente - - + iVBORw0KGgoAAAANSUhEUgAABA4AAAI+CAYAAAA8dEjXAAKLKElEQVR4nOz9B4Bd13UeCn97 n3PvnV4ADHolwQawgypUBWXKsmRZcgMSx3qOXCIlTpzELY5f/j+Did9L3OTYUiyHcpEtK3YC qFik1QtAkaIosYoEwAIQvc8Mps9t55z91lp7n5kLYFBIAkRbH3lw5557et3ft9f6Vuycg0Kh @@ -5609,18 +5636,22 @@ - - - - JESUS ANTONIO GIRALDO GARCIA - C.E.O. (Gerente General) + + + + JESUS ANTONIO GIRALDO GARCIA + C.E.O. (Gerente General) - + - + </when> + </choose> + </for> + + \ No newline at end of file diff --git a/report/Sale_Internal.fodt b/report/Sale_Internal.fodt index 872c6bc..c464a46 100644 --- a/report/Sale_Internal.fodt +++ b/report/Sale_Internal.fodt @@ -1,28 +1,28 @@ - LibreOffice/7.3.7.2$Linux_X86_64 LibreOffice_project/30$Build-22008-06-07T15:28:222009-01-10T16:03:331PT0S + LibreOffice/7.3.7.2$Linux_X86_64 LibreOffice_project/30$Build-22008-06-07T15:28:222009-01-10T16:03:331PT0S - 27728 + 3969 0 - 24370 - 11208 + 31454 + 14058 true false view2 - 2191 - 11843 + 5733 + 12919 0 - 27728 - 24368 - 38934 + 3969 + 31452 + 18025 0 0 false - 200 + 160 false false false @@ -88,7 +88,7 @@ true true - 3288030 + 3502437 true false @@ -163,14 +163,14 @@ - + - + @@ -183,18 +183,18 @@ - + - + - + @@ -218,16 +218,16 @@ - - + + - - + + @@ -235,8 +235,8 @@ - - + + @@ -245,22 +245,22 @@ - + - + - + - + @@ -268,7 +268,7 @@ - + @@ -278,160 +278,160 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + $ - + - $ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -507,7 +507,7 @@ - + @@ -530,713 +530,739 @@ - + + + + + - + - + + + + + - + - + + + + - + - + + + + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + - - + + - - + + - - - + + + - - - + + + - + - + + + + + + + + + + + + + - + + + + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - + - + - - - - - - - - - - - - - - - - - - + + + - - - + + + - + + + + + + + + + + + + + + + + - - + + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - - + + - - + + - + - + - + - + - + - - + + - - + + - - + + - + - + - + - + - - + + - - - - - - - - - - - - - - - - - + + - + + - - - + + - - - + + + - + + - - + + - - + + + - + + - - + + - + - + - + + + + + + + + + + + + + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - + - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + - + + + + + + + + + - - + + + + + + + + + + - - + + - - + + - - + + - + - + - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + - - + + - - - - + + + - - - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + + + + + @@ -1358,23 +1384,26 @@ + + + - + - + - - + + - + - + @@ -1395,7 +1424,7 @@ - + /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgK CgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkL EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAAR @@ -2057,7 +2086,7 @@ COTIZACIÓN ESTADO DE BORRADOR </when> <when test="sale.state == 'quotation'"> - COTIZACIÓN N°: <sale.number> + COTIZACIÓN N°: <sale.quote_number> </when> <otherwise test=""> ORDEN DE COMPRA N°: <sale.number> @@ -2089,41 +2118,43 @@ <for each="sale in records"> + <choose test=""> + <when test="sale.quote_number != None or sale.number != None"> - Fecha: <format_date(sale.sale_date or today, sale.party.lang)> + Fecha: <format_date(sale.sale_date or today, sale.party.lang)> - - - NIT: 901091201-1 - Regimen Común - Actividad Economica 4659 - CARRERA 16 No 52-85 PISO 4 - Tel: 601-7049417 - 3208197664 - BOGOTA + + + NIT: 901091201-1 + Regimen Común + Actividad Economica 4659 + CARRERA 16 No 52-85 PISO 4 + Tel: 601-7049417 - 3208197664 + BOGOTA - Cotizado a: <sale.party.name> - <if test="sale.party.tax_identifier"> - Nit o Cedula: <sale.party.tax_identifier.code> - </if> - Dirección: <sale.invoice_address.street> - Ciudad: <sale.invoice_address.subdivision_municipality.name> - Telefono: <sale.contact.value> + Cotizado a: <sale.party.name> + <if test="sale.party.tax_identifier"> + Nit o Cedula: <sale.party.tax_identifier.code> + </if> + Dirección: <sale.invoice_address.street> + Ciudad: <sale.invoice_address.subdivision_municipality.name> + Telefono: <sale.contact.value> - - Somos SMART VISION, la compañía que está revolucionando el mercado óptico en Colombia, ofrecemos productos y servicios ópticos con la mejor calidad y tecnología de punta. Nuestra mayor prioridad es satisfacer las necesidades de nuestros clientes - Agradecemos sinceramente el habernos elegido como opción; a continuación, relacionamos los productos solicitados. - " SMART VISION cambia tu forma de ver el mundo" + + Somos SMART VISION, la compañía que está revolucionando el mercado óptico en Colombia, ofrecemos productos y servicios ópticos con la mejor calidad y tecnología de punta. Nuestra mayor prioridad es satisfacer las necesidades de nuestros clientes + Agradecemos sinceramente el habernos elegido como opción; a continuación, relacionamos los productos solicitados. + " SMART VISION cambia tu forma de ver el mundo" @@ -2135,34 +2166,34 @@ - Descripción + Descripción - Modelo + Modelo - Marca + Marca - Origen + Origen - Garantia + Garantia - Cantidad + Cantidad - Precio u/n + Precio u/n - Total + Total - <for each="line in sale.lines"> + <for each="line in sale.lines"> @@ -2175,7 +2206,7 @@ - <choose test=""> + <choose test=""> @@ -2188,7 +2219,7 @@ - <when test="line.type == 'line'"> + <when test="line.type == 'line'"> @@ -2201,87 +2232,58 @@ - <if test="line.product"> - <line.product.rec_name> - </if> - <if test="line.description"> - <for each="description in line.description.split('\n')"> - <description> - </for> - </if> + <if test="line.product"> + <line.product.rec_name> + </if> + <if test="line.description"> + <for each="description in line.description.split('\n')"> + <description> + </for> + </if> - <if test="line.product"> - <if test="line.product.model_category"> - <line.product.model_category.name> - </if> - </if> + <if test="line.product"> + <if test="line.product.model_category"> + <line.product.model_category.name> + </if> + </if> - <if test="line.product"> - <if test="line.product.mark_category"> - <line.product.mark_category.name> - </if> - </if> + <if test="line.product"> + <if test="line.product.mark_category"> + <line.product.mark_category.name> + </if> + </if> - <if test="line.product"> - <if test="line.product.origin_country"> - <line.product.origin_country.name> - </if> - </if> + <if test="line.product"> + <if test="line.product.origin_country"> + <line.product.origin_country.name> + </if> + </if> - <if test="line.product"> - <if test="line.product.warranty"> - <line.product.warranty>Meses - </if> - </if> + <if test="line.product"> + <if test="line.product.warranty"> + <line.product.warranty>Meses + </if> + </if> - <format_number_symbol(line.quantity, sale.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, sale.party.lang)> + <format_number_symbol(line.quantity, sale.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, sale.party.lang)> - <format_currency(line.unit_price, sale.party.lang, sale.currency)> + <format_currency(line.unit_price, sale.party.lang, sale.currency)> - <format_currency(line.amount, sale.party.lang, sale.currency)> + <format_currency(line.amount, sale.party.lang, sale.currency)> - - - </when> - - - - - - - - - - - - - <when test="line.type == 'subtotal'"> - - - - - - - - - - - <for each="description in (line.description or '').split('\n')"> - <description> - </for> - <format_currency(line.amount, sale.party.lang, sale.currency)> + </when> @@ -2294,7 +2296,7 @@ - </when> + <when test="line.type == 'subtotal'"> @@ -2307,7 +2309,10 @@ - <when test="line.type == 'title'"> + <for each="description in (line.description or '').split('\n')"> + <description> + </for> + <format_currency(line.amount, sale.party.lang, sale.currency)> @@ -2320,7 +2325,7 @@ - </when> + </when> @@ -2333,7 +2338,7 @@ - <otherwise test=""> + <when test="line.type == 'title'"> @@ -2346,9 +2351,35 @@ - <for each="description in (line.description or '').split('\n')"> - <description> - </for> + </when> + + + + + + + + + + + + + <otherwise test=""> + + + + + + + + + + + + + <for each="description in (line.description or '').split('\n')"> + <description> + </for> @@ -2400,7 +2431,7 @@ - Total antes Impuestos: + Total antes Impuestos: @@ -2409,13 +2440,13 @@ - <format_currency(sale.untaxed_amount, sale.party.lang, sale.currency)> + <format_currency(sale.untaxed_amount, sale.party.lang, sale.currency)> - Total impuestos: + Total impuestos: @@ -2424,13 +2455,13 @@ - <format_currency(sale.tax_amount, sale.party.lang, sale.currency)> + <format_currency(sale.tax_amount, sale.party.lang, sale.currency)> - Total: + Total: @@ -2439,45 +2470,44 @@ - <format_currency(sale.total_amount, sale.party.lang, sale.currency)> + <format_currency(sale.total_amount, sale.party.lang, sale.currency)> - + <for each="comment in (sale.comment or '').split('\n')"> </for> - - CONDICIONES DE NEGOCIACION Y PAGO: - Tiempo de entrega: <sale.description> - 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 - - Manifiesto de importación (si aplica) - - Hoja de vida de cada equipo - - Certificado de calibración (Para equipos usados) - Otras condiciones: - - El costo del envío es responsabilidad del comprador (para otras ciudades diferentes a Bogotá). - - Garantía no incluye bombillos o piezas de desgaste por uso. - - Con el envío de los equipos se entregarán las hojas de vida. - - La Factura de venta definitiva será entregada al confirmar el pago total. - - OBSERVACIONES ADICIONALES - - <sale.comment> - - VIGENCIA DE LA COTIZACIÓN: 30 Días - </for> - Cordialmente + + CONDICIONES DE NEGOCIACION Y PAGO: + Tiempo de entrega: <sale.description> + 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 + - Manifiesto de importación (si aplica) + - Hoja de vida de cada equipo + - Certificado de calibración (Para equipos usados) + Otras condiciones: + - El costo del envío es responsabilidad del comprador (para otras ciudades diferentes a Bogotá). + - Garantía no incluye bombillos o piezas de desgaste por uso. + - Con el envío de los equipos se entregarán las hojas de vida. + - La Factura de venta definitiva será entregada al confirmar el pago total. + + OBSERVACIONES ADICIONALES + - <sale.comment> + + VIGENCIA DE LA COTIZACIÓN: 30 Días + Cordialmente - + iVBORw0KGgoAAAANSUhEUgAABA4AAAI+CAYAAAA8dEjXAAKLKElEQVR4nOz9B4Bd13UeCn97 n3PvnV4ADHolwQawgypUBWXKsmRZcgMSx3qOXCIlTpzELY5f/j+Did9L3OTYUiyHcpEtK3YC qFik1QtAkaIosYoEwAIQvc8Mps9t55z91lp7n5kLYFBIAkRbH3lw5557et3ft9f6Vuycg0Kh @@ -5570,18 +5600,21 @@ - - - - - JESUS ANTONIO GIRALDO GARCIA - C.E.O. (Gerente General) + + + + + JESUS ANTONIO GIRALDO GARCIA + C.E.O. (Gerente General) - + + </when> + </choose> + </for> diff --git a/sale.py b/sale.py index 6276ac6..09ca378 100644 --- a/sale.py +++ b/sale.py @@ -19,7 +19,7 @@ class Sale(metaclass=PoolMeta): 'Sale' __name__ = 'sale.sale' - + quote_number = fields.Char("Quote Number", readonly=True) sale_type = fields.Selection([('maintenance', 'Maintenance'), ('equipments', 'Equipments'), ('replaces', 'Replaces')], "Sale Type", required=True, @@ -112,14 +112,36 @@ class Sale(metaclass=PoolMeta): return Shipment(**values) + + @classmethod + def set_quote_number(cls, sales): + ''' + Fill the number field with the sale sequence + ''' + pool = Pool() + Config = pool.get('optical_equipment.configuration') + config = Config(1) + for sale in sales: + if config.equipment_sequence != None: + if not sale.quote_number: + try: + sale.quote_number = config.sale_quote_number.get() + cls.save(sales) + except UserError: + raise UserError(str('Validation Error')) + else: + raise UserError(gettext('optical_equipment.msg_not_sequence_quote')) + @classmethod @ModelView.button @Workflow.transition('quotation') def quote(cls, sales): pool = Pool() AdvancePaymentCondition = pool.get('sale.advance_payment.condition') - super(Sale, cls).quote(sales) - + for sale in sales: + sale.check_for_quotation() + cls.set_quote_number(sales) + for sale in sales: sale.set_advance_payment_term() cls.save(sales) @@ -156,7 +178,8 @@ class Sale(metaclass=PoolMeta): maintenanceService.save() sale.agended = True sale.save() - + + cls.set_number(sales) with transaction.set_context( queue_scheduled_at=config.sale_process_after, queue_batch=context.get('queue_batch', True)): diff --git a/sale.xml b/sale.xml index cf518a4..b32a34b 100644 --- a/sale.xml +++ b/sale.xml @@ -1,6 +1,11 @@ + + sale.sale + + sale_tree + sale.sale @@ -11,6 +16,10 @@ product_list_sale_line + + Sale Quote + + Sale Equipments sale.sale diff --git a/tryton.cfg b/tryton.cfg index 42816ab..faf31cb 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -20,6 +20,7 @@ depends: xml: address.xml party.xml + account.xml product.xml equipment.xml contract.xml diff --git a/view/optical_equipment_configuration_form.xml b/view/optical_equipment_configuration_form.xml index 91eeb02..75ea28e 100644 --- a/view/optical_equipment_configuration_form.xml +++ b/view/optical_equipment_configuration_form.xml @@ -16,6 +16,9 @@ this repository contains the full copyright notices and license terms. -->