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 @@
+
+