From b5d01cc02bf18534d2d3dadd1c8fbc300ed80aca Mon Sep 17 00:00:00 2001 From: Sergi Almacellas Abellana Date: Mon, 29 Jun 2015 16:32:08 +0200 Subject: [PATCH] Add description on milestone type and copy it to milestones --- locale/ca_ES.po | 14 +++- locale/es_ES.po | 84 +++++++++++++++++++ milestone.py | 8 +- ...ount_invoice_milestone_manual_scenario.rst | 9 ++ view/account_invoice_milestone_type_form.xml | 2 + 5 files changed, 114 insertions(+), 3 deletions(-) diff --git a/locale/ca_ES.po b/locale/ca_ES.po index fb44b35..cde67a6 100644 --- a/locale/ca_ES.po +++ b/locale/ca_ES.po @@ -554,6 +554,10 @@ msgctxt "field:account.invoice.milestone.type,days:" msgid "Number of Days" msgstr "Número de dies" +msgctxt "field:account.invoice.milestone.type,description:" +msgid "Description" +msgstr "Descripció" + msgctxt "field:account.invoice.milestone.type,divisor:" msgid "Divisor" msgstr "Divisor" @@ -692,6 +696,14 @@ msgctxt "help:account.invoice.milestone.group,total_amount:" msgid "The Untaxed Amount of all Group's Sales" msgstr "La base imposable de totes les vendes del grup" +msgctxt "help:account.invoice.milestone.type,description:" +msgid "" +"It will be used to prepare the description field of invoice lines.\n" +"You can use the next tags and they will be replaced by these fields from the sale's related to milestone: {sale_description}, {sale_reference}." +msgstr "" +"S'utilitzarà per preparar el camp de descripció de les línies de factura.\n" +"Pot utilitzar les següents etiquetes i es reemplaçaran pels camps corresponents de les vendes relacionades a la fita: {sale_description}, {sale_reference}." + msgctxt "help:account.invoice.milestone.type,sequence:" msgid "Use to order lines in ascending order" msgstr "Serveix per ordenar les línies de forma ascendent." @@ -1090,7 +1102,6 @@ msgctxt "selection:account.invoice.milestone.type,month:" msgid "September" msgstr "Setembre" -#, fuzzy msgctxt "selection:account.invoice.milestone.type,trigger:" msgid "" msgstr " " @@ -1107,7 +1118,6 @@ msgctxt "selection:account.invoice.milestone.type,trigger:" msgid "On Order Fully Sent" msgstr "Al enviar completament la venda" -#, fuzzy msgctxt "selection:account.invoice.milestone.type,weekday:" msgid "" msgstr " " diff --git a/locale/es_ES.po b/locale/es_ES.po index 576233e..c9644dc 100644 --- a/locale/es_ES.po +++ b/locale/es_ES.po @@ -553,6 +553,10 @@ msgctxt "field:account.invoice.milestone.type,days:" msgid "Number of Days" msgstr "Número de días" +msgctxt "field:account.invoice.milestone.type,description:" +msgid "Description" +msgstr "Descripción" + msgctxt "field:account.invoice.milestone.type,divisor:" msgid "Divisor" msgstr "Divisor" @@ -689,6 +693,14 @@ msgctxt "help:account.invoice.milestone.group,total_amount:" msgid "The Untaxed Amount of all Group's Sales" msgstr "La base imponible de todas las ventas del grupo" +msgctxt "help:account.invoice.milestone.type,description:" +msgid "" +"It will be used to prepare the description field of invoice lines.\n" +"You can use the next tags and they will be replaced by these fields from the sale's related to milestone: {sale_description}, {sale_reference}." +msgstr "" +"Se usará para preparar la descripción de las líneas de factura.\n" +"Puede usar las siguientes etiquetas que se reemplazarán por los campos correspondientes de las ventas asociadas al hito: {sale_description}, {sale_reference}." + msgctxt "help:account.invoice.milestone.type,sequence:" msgid "Use to order lines in ascending order" msgstr "Sirve para ordenar las líneas de forma ascendente." @@ -862,9 +874,21 @@ msgctxt "selection:account.invoice.milestone,kind:" msgid "System" msgstr "Sistema" +#, fuzzy msgctxt "selection:account.invoice.milestone,month:" msgid "" msgstr "" +"- VARIADOR FRECUENCIA:\n" +"\n" +"Instalación de un variador de frecuencia conectado al nuevo cuadro de maniobra. El variador de frecuencia consiste en un dispositivo electrónico que actúa sobre el motor suministrando la tensión y frecuencia necesaria adecuada para cada situación, consiguiendo así muchas ventajas:\n" +"\n" +"AHORRO ENERGÉTICO: Realiza las arrancadas suaves y de forma progresiva con lo que se evitan los picos de corriente con la consiguiente reducción en el consumo eléctrico. \n" +"\n" +"CONFORT: Realiza las arrancadas y paradas progresivamente ofreciendo así siempre un mayor confort durante el trayecto de uso del ascensor \n" +"\n" +"PRECISIÓN: Con esta tecnología se garantiza la parada a nivel de planta con un margen de +-2mm.\n" +"\n" +"INTELIGENTE: El variador se adapta a la carga actual de la cabina y ofrece sólo la energía necesaria para realizar este trayecto evitando así un mayor consumo eléctrico en casos innecesarios." msgctxt "selection:account.invoice.milestone,month:" msgid "April" @@ -938,9 +962,21 @@ msgctxt "selection:account.invoice.milestone,state:" msgid "Succeeded" msgstr "Con éxito" +#, fuzzy msgctxt "selection:account.invoice.milestone,trigger:" msgid "" msgstr "" +"- VARIADOR FRECUENCIA:\n" +"\n" +"Instalación de un variador de frecuencia conectado al nuevo cuadro de maniobra. El variador de frecuencia consiste en un dispositivo electrónico que actúa sobre el motor suministrando la tensión y frecuencia necesaria adecuada para cada situación, consiguiendo así muchas ventajas:\n" +"\n" +"AHORRO ENERGÉTICO: Realiza las arrancadas suaves y de forma progresiva con lo que se evitan los picos de corriente con la consiguiente reducción en el consumo eléctrico. \n" +"\n" +"CONFORT: Realiza las arrancadas y paradas progresivamente ofreciendo así siempre un mayor confort durante el trayecto de uso del ascensor \n" +"\n" +"PRECISIÓN: Con esta tecnología se garantiza la parada a nivel de planta con un margen de +-2mm.\n" +"\n" +"INTELIGENTE: El variador se adapta a la carga actual de la cabina y ofrece sólo la energía necesaria para realizar este trayecto evitando así un mayor consumo eléctrico en casos innecesarios." msgctxt "selection:account.invoice.milestone,trigger:" msgid "On % sent" @@ -954,9 +990,21 @@ msgctxt "selection:account.invoice.milestone,trigger:" msgid "On Order Fully Sent" msgstr "Al enviar completamente el pedido" +#, fuzzy msgctxt "selection:account.invoice.milestone,weekday:" msgid "" msgstr "" +"- VARIADOR FRECUENCIA:\n" +"\n" +"Instalación de un variador de frecuencia conectado al nuevo cuadro de maniobra. El variador de frecuencia consiste en un dispositivo electrónico que actúa sobre el motor suministrando la tensión y frecuencia necesaria adecuada para cada situación, consiguiendo así muchas ventajas:\n" +"\n" +"AHORRO ENERGÉTICO: Realiza las arrancadas suaves y de forma progresiva con lo que se evitan los picos de corriente con la consiguiente reducción en el consumo eléctrico. \n" +"\n" +"CONFORT: Realiza las arrancadas y paradas progresivamente ofreciendo así siempre un mayor confort durante el trayecto de uso del ascensor \n" +"\n" +"PRECISIÓN: Con esta tecnología se garantiza la parada a nivel de planta con un margen de +-2mm.\n" +"\n" +"INTELIGENTE: El variador se adapta a la carga actual de la cabina y ofrece sólo la energía necesaria para realizar este trayecto evitando así un mayor consumo eléctrico en casos innecesarios." msgctxt "selection:account.invoice.milestone,weekday:" msgid "Friday" @@ -1030,9 +1078,21 @@ msgctxt "selection:account.invoice.milestone.type,kind:" msgid "System" msgstr "Sistema" +#, fuzzy msgctxt "selection:account.invoice.milestone.type,month:" msgid "" msgstr "" +"- VARIADOR FRECUENCIA:\n" +"\n" +"Instalación de un variador de frecuencia conectado al nuevo cuadro de maniobra. El variador de frecuencia consiste en un dispositivo electrónico que actúa sobre el motor suministrando la tensión y frecuencia necesaria adecuada para cada situación, consiguiendo así muchas ventajas:\n" +"\n" +"AHORRO ENERGÉTICO: Realiza las arrancadas suaves y de forma progresiva con lo que se evitan los picos de corriente con la consiguiente reducción en el consumo eléctrico. \n" +"\n" +"CONFORT: Realiza las arrancadas y paradas progresivamente ofreciendo así siempre un mayor confort durante el trayecto de uso del ascensor \n" +"\n" +"PRECISIÓN: Con esta tecnología se garantiza la parada a nivel de planta con un margen de +-2mm.\n" +"\n" +"INTELIGENTE: El variador se adapta a la carga actual de la cabina y ofrece sólo la energía necesaria para realizar este trayecto evitando así un mayor consumo eléctrico en casos innecesarios." msgctxt "selection:account.invoice.milestone.type,month:" msgid "April" @@ -1082,9 +1142,21 @@ msgctxt "selection:account.invoice.milestone.type,month:" msgid "September" msgstr "Septiembre" +#, fuzzy msgctxt "selection:account.invoice.milestone.type,trigger:" msgid "" msgstr "" +"- VARIADOR FRECUENCIA:\n" +"\n" +"Instalación de un variador de frecuencia conectado al nuevo cuadro de maniobra. El variador de frecuencia consiste en un dispositivo electrónico que actúa sobre el motor suministrando la tensión y frecuencia necesaria adecuada para cada situación, consiguiendo así muchas ventajas:\n" +"\n" +"AHORRO ENERGÉTICO: Realiza las arrancadas suaves y de forma progresiva con lo que se evitan los picos de corriente con la consiguiente reducción en el consumo eléctrico. \n" +"\n" +"CONFORT: Realiza las arrancadas y paradas progresivamente ofreciendo así siempre un mayor confort durante el trayecto de uso del ascensor \n" +"\n" +"PRECISIÓN: Con esta tecnología se garantiza la parada a nivel de planta con un margen de +-2mm.\n" +"\n" +"INTELIGENTE: El variador se adapta a la carga actual de la cabina y ofrece sólo la energía necesaria para realizar este trayecto evitando así un mayor consumo eléctrico en casos innecesarios." msgctxt "selection:account.invoice.milestone.type,trigger:" msgid "On % sent" @@ -1098,9 +1170,21 @@ msgctxt "selection:account.invoice.milestone.type,trigger:" msgid "On Order Fully Sent" msgstr "Al enviar completamente el pedido" +#, fuzzy msgctxt "selection:account.invoice.milestone.type,weekday:" msgid "" msgstr "" +"- VARIADOR FRECUENCIA:\n" +"\n" +"Instalación de un variador de frecuencia conectado al nuevo cuadro de maniobra. El variador de frecuencia consiste en un dispositivo electrónico que actúa sobre el motor suministrando la tensión y frecuencia necesaria adecuada para cada situación, consiguiendo así muchas ventajas:\n" +"\n" +"AHORRO ENERGÉTICO: Realiza las arrancadas suaves y de forma progresiva con lo que se evitan los picos de corriente con la consiguiente reducción en el consumo eléctrico. \n" +"\n" +"CONFORT: Realiza las arrancadas y paradas progresivamente ofreciendo así siempre un mayor confort durante el trayecto de uso del ascensor \n" +"\n" +"PRECISIÓN: Con esta tecnología se garantiza la parada a nivel de planta con un margen de +-2mm.\n" +"\n" +"INTELIGENTE: El variador se adapta a la carga actual de la cabina y ofrece sólo la energía necesaria para realizar este trayecto evitando así un mayor consumo eléctrico en casos innecesarios." msgctxt "selection:account.invoice.milestone.type,weekday:" msgid "Friday" diff --git a/milestone.py b/milestone.py index 929b025..e425a19 100644 --- a/milestone.py +++ b/milestone.py @@ -220,6 +220,11 @@ class AccountInvoiceMilestoneType(ModelSQL, ModelView): months = fields.Integer('Number of Months', required=True) weeks = fields.Integer('Number of Weeks', required=True) days = fields.Integer('Number of Days', required=True) + description = fields.Text('Description', + help='It will be used to prepare the description field of invoice ' + 'lines.\nYou can use the next tags and they will be replaced by these ' + 'fields from the sale\'s related to milestone: {sale_description}, ' + '{sale_reference}.') @classmethod def __setup__(cls): @@ -330,7 +335,8 @@ class AccountInvoiceMilestoneType(ModelSQL, ModelView): elif self.invoice_method == 'remainder': milestone.sales_to_invoice = [sale] - for fname in ('day', 'month', 'weekday', 'months', 'weeks', 'days'): + for fname in ('day', 'month', 'weekday', 'months', 'weeks', 'days', + 'description'): setattr(milestone, fname, getattr(self, fname)) return milestone diff --git a/tests/account_invoice_milestone_manual_scenario.rst b/tests/account_invoice_milestone_manual_scenario.rst index 123a3a5..52f172e 100644 --- a/tests/account_invoice_milestone_manual_scenario.rst +++ b/tests/account_invoice_milestone_manual_scenario.rst @@ -238,10 +238,12 @@ Create Milestone Group Type:: >>> fixed_type.amount = Decimal('100.0') >>> fixed_type.currency = currency >>> fixed_type.days = 5 + >>> fixed_type.description = 'Advancement' >>> remainder = group_type.lines.new() >>> remainder.invoice_method = 'remainder' >>> remainder.kind = 'manual' >>> remainder.months = 1 + >>> remainder.description = 'Once finished' >>> group_type.save() @@ -281,9 +283,13 @@ Create a Sale with lines with service products and goods products:: >>> fixed_milestone, = [x for x in group.milestones if x.invoice_method == 'amount'] >>> fixed_milestone.invoice_method u'amount' + >>> fixed_milestone.description + u'Advancement' >>> fixed_milestone.amount Decimal('100.00') >>> fixed_milestone.click('confirm') + >>> remainder.description + 'Once finished' >>> reminder.click('confirm') >>> group.reload() >>> group.total_amount @@ -307,6 +313,9 @@ Create a Invoice for the milestone:: >>> invoice = fixed_milestone.invoice >>> invoice.untaxed_amount Decimal('100.00') + >>> invoice_line, = invoice.lines + >>> invoice_line.description + u'Advancement' >>> group.reload() >>> group.invoiced_amount Decimal('100.000') diff --git a/view/account_invoice_milestone_type_form.xml b/view/account_invoice_milestone_type_form.xml index afe7822..53ca8c2 100644 --- a/view/account_invoice_milestone_type_form.xml +++ b/view/account_invoice_milestone_type_form.xml @@ -32,6 +32,8 @@