Merge PR #1072 into 15.0

Signed-off-by pedrobaeza
This commit is contained in:
OCA-git-bot
2024-04-23 06:40:29 +00:00
6 changed files with 250 additions and 592 deletions

View File

@@ -7,7 +7,7 @@ Recurring - Contracts Management
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:0c1e852d20b0604611917bf039dc0418561e723b216e811576f2c1deb6c3b742
!! source digest: sha256:e242a5d24ed359e07e817bbd95149d7494e38da4814aa8f4015af8db0e881372
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
@@ -127,6 +127,9 @@ Contributors
* Rafael Blasco
* Víctor Martínez
* Iván Antón <ozono@ozonomultimedia.com>
* `[APSL] <https://www.apsl.tech>`_:
* Antoni Marroig <amarroig@apsl.net>
Maintainers
~~~~~~~~~~~

View File

@@ -1,175 +1,120 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * contract
# * contract
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
# Pedro M. Baeza <pedro.baeza@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-31 14:54+0000\n"
"PO-Revision-Date: 2023-07-24 09:01+0000\n"
"Last-Translator: \"Pedro M. Baeza\" <pedro.baeza@gmail.com>\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
"Language: es\n"
"POT-Creation-Date: 2024-04-12 11:16+0000\n"
"PO-Revision-Date: 2024-04-12 11:16+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: contract
#: model:mail.template,body_html:contract.email_contract_template
msgid ""
"<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-"
"serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; \">\n"
"<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; \">\n"
" <p>Hello <t t-out=\"object.partner_id.name or '' \"/>,</p>\n"
" <p>A new contract has been created: </p>\n"
"\n"
" <p style=\"border-left: 1px solid #8e0000; margin-left: 30px;"
"\">\n"
" <p style=\"border-left: 1px solid #8e0000; margin-left: 30px;\">\n"
" &amp;nbsp;&amp;nbsp;<strong>REFERENCES</strong><br/>\n"
" &amp;nbsp;&amp;nbsp;Contract: <strong t-out=\"object.name"
"\"/><br/>\n"
" &amp;nbsp;&amp;nbsp;Contract: <strong t-out=\"object.name\"/><br/>\n"
" <t t-if=\"object.date_start\">\n"
" &amp;nbsp;&amp;nbsp;Contract Date Start: <t t-out="
"\"object.date_start or ''\"/><br/>\n"
" &amp;nbsp;&amp;nbsp;Contract Date Start: <t t-out=\"object.date_start or ''\"/><br/>\n"
" </t>\n"
"\n"
" <t t-if=\"object.user_id\">\n"
" <t t-if=\"object.user_id.email\">\n"
" &amp;nbsp;&amp;nbsp;Your Contact: <a t-att-href="
"\"'mailto:%s?subject=Contract %s' % (object.user_id.email, object.name)\" t-"
"out=\"object.user_id.name\"/>\n"
" &amp;nbsp;&amp;nbsp;Your Contact: <a t-att-href=\"'mailto:%s?subject=Contract %s' % (object.user_id.email, object.name)\" t-out=\"object.user_id.name\"/>\n"
" </t>\n"
" <t t-else=\"\">\n"
" &amp;nbsp;&amp;nbsp;Your Contact: <t t-out="
"\"object.user_id.name\"/>\n"
" &amp;nbsp;&amp;nbsp;Your Contact: <t t-out=\"object.user_id.name\"/>\n"
" </t>\n"
" </t>\n"
" </p>\n"
"\n"
" <br/>\n"
" <p>If you have any questions, do not hesitate to contact us."
"</p>\n"
" <p>Thank you for choosing <t t-out=\"object.company_id.name "
"or 'us'\"/>!</p>\n"
" <p>If you have any questions, do not hesitate to contact us.</p>\n"
" <p>Thank you for choosing <t t-out=\"object.company_id.name or 'us'\"/>!</p>\n"
" <br/>\n"
" <br/>\n"
" <div style=\"width: 375px; margin: 0px; padding: 0px; "
"background-color: #8E0000; border-top-left-radius: 5px 5px; border-top-right-"
"radius: 5px 5px; background-repeat: repeat no-repeat;\">\n"
" <h3 style=\"margin: 0px; padding: 2px 14px; font-size: "
"12px; color: #DDD;\">\n"
" <strong style=\"text-transform:uppercase;\" t-out="
"\"object.company_id.name\"/></h3>\n"
" <div style=\"width: 375px; margin: 0px; padding: 0px; background-color: #8E0000; border-top-left-radius: 5px 5px; border-top-right-radius: 5px 5px; background-repeat: repeat no-repeat;\">\n"
" <h3 style=\"margin: 0px; padding: 2px 14px; font-size: 12px; color: #DDD;\">\n"
" <strong style=\"text-transform:uppercase;\" t-out=\"object.company_id.name\"/></h3>\n"
" </div>\n"
" <div style=\"width: 347px; margin: 0px; padding: 5px 14px; "
"line-height: 16px; background-color: #F2F2F2;\">\n"
" <span style=\"color: #222; margin-bottom: 5px; display: "
"block; \">\n"
" <address t-field=\"object.company_id.sudo()."
"partner_id\" t-options=\"{&quot;widget&quot;: &quot;contact&quot;, &quot;"
"fields&quot;: [&quot;name&quot;, &quot;address&quot;], &quot;"
"no_marker&quot;: True}\"/>\n"
" <div style=\"width: 347px; margin: 0px; padding: 5px 14px; line-height: 16px; background-color: #F2F2F2;\">\n"
" <span style=\"color: #222; margin-bottom: 5px; display: block; \">\n"
" <address t-field=\"object.company_id.sudo().partner_id\" t-options=\"{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;name&quot;, &quot;address&quot;], &quot;no_marker&quot;: True}\"/>\n"
" </span>\n"
" <t t-if=\"object.company_id.phone\">\n"
" <div style=\"margin-top: 0px; margin-right: 0px; "
"margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; "
"padding-bottom: 0px; padding-left: 0px; \">\n"
" <div style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; \">\n"
" Phone: <t t-out=\"object.company_id.phone\"/>\n"
" </div>\n"
" </t>\n"
" <t t-if=\"object.company_id.website\">\n"
" <div>\n"
" Web: <a t-att-href=\"object.company_id.website\" "
"t-out=\"object.company_id.website\"/>\n"
" Web: <a t-att-href=\"object.company_id.website\" t-out=\"object.company_id.website\"/>\n"
" </div>\n"
" </t>\n"
" </div>\n"
" <br/>\n"
" <a t-att-href=\"'%s/my/contracts/%s?access_token=%s' % "
"(object.get_base_url(), object.id, object.access_token)\" target=\"_blank\" "
"style=\"background-color:#875A7B;padding: 8px 16px 8px 16px; text-"
"decoration: none; color: #fff; border-radius: 5px; font-size:13px;\">View "
"contract</a>\n"
" <a t-att-href=\"'%s/my/contracts/%s?access_token=%s' % (object.get_base_url(), object.id, object.access_token)\" target=\"_blank\" style=\"background-color:#875A7B;padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;\">View contract</a>\n"
" </div>\n"
" "
msgstr ""
"<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-"
"serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; \">\n"
"<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; \">\n"
" <p>Hello <t t-out=\"object.partner_id.name or '' \"/>,</p>\n"
" <p>Se ha creado un nuevo contrato: </p>\n"
"\n"
" <p style=\"border-left: 1px solid #8e0000; margin-left: 30px;"
"\">\n"
" <p style=\"border-left: 1px solid #8e0000; margin-left: 30px;\">\n"
" &amp;nbsp;&amp;nbsp;<strong>REFERENCES</strong><br/>\n"
" &amp;nbsp;&amp;nbsp;Contract: <strong t-out=\"object.name"
"\"/><br/>\n"
" &amp;nbsp;&amp;nbsp;Contract: <strong t-out=\"object.name\"/><br/>\n"
" <t t-if=\"object.date_start\">\n"
" &amp;nbsp;&amp;nbsp;Fecha de inicio del contrato: <t "
"t-out=\"object.date_start or ''\"/><br/>\n"
" &amp;nbsp;&amp;nbsp;Fecha de inicio del contrato: <t t-out=\"object.date_start or ''\"/><br/>\n"
" </t>\n"
"\n"
" <t t-if=\"object.user_id\">\n"
" <t t-if=\"object.user_id.email\">\n"
" &amp;nbsp;&amp;nbsp;Su contacto: <a t-att-href="
"\"'mailto:%s?subject=Contrato %s' % (object.user_id.email, object.name)\" t-"
"out=\"object.user_id.name\"/>\n"
" &amp;nbsp;&amp;nbsp;Su contacto: <a t-att-href=\"'mailto:%s?subject=Contrato %s' % (object.user_id.email, object.name)\" t-out=\"object.user_id.name\"/>\n"
" </t>\n"
" <t t-else=\"\">\n"
" &amp;nbsp;&amp;nbsp;Su contacto: <t t-out="
"\"object.user_id.name\"/>\n"
" &amp;nbsp;&amp;nbsp;Su contacto: <t t-out=\"object.user_id.name\"/>\n"
" </t>\n"
" </t>\n"
" </p>\n"
"\n"
" <br/>\n"
" <p>No dude en ponerse en contacto con nosotros para "
"cualquier aclaración.</p>\n"
" <p>Gracias por escoger <t t-out=\"object.company_id.name or "
"'us'\"/>!</p>\n"
" <p>No dude en ponerse en contacto con nosotros para cualquier aclaración.</p>\n"
" <p>Gracias por escoger <t t-out=\"object.company_id.name or 'us'\"/>!</p>\n"
" <br/>\n"
" <br/>\n"
" <div style=\"width: 375px; margin: 0px; padding: 0px; "
"background-color: #8E0000; border-top-left-radius: 5px 5px; border-top-right-"
"radius: 5px 5px; background-repeat: repeat no-repeat;\">\n"
" <h3 style=\"margin: 0px; padding: 2px 14px; font-size: "
"12px; color: #DDD;\">\n"
" <strong style=\"text-transform:uppercase;\" t-out="
"\"object.company_id.name\"/></h3>\n"
" <div style=\"width: 375px; margin: 0px; padding: 0px; background-color: #8E0000; border-top-left-radius: 5px 5px; border-top-right-radius: 5px 5px; background-repeat: repeat no-repeat;\">\n"
" <h3 style=\"margin: 0px; padding: 2px 14px; font-size: 12px; color: #DDD;\">\n"
" <strong style=\"text-transform:uppercase;\" t-out=\"object.company_id.name\"/></h3>\n"
" </div>\n"
" <div style=\"width: 347px; margin: 0px; padding: 5px 14px; "
"line-height: 16px; background-color: #F2F2F2;\">\n"
" <span style=\"color: #222; margin-bottom: 5px; display: "
"block; \">\n"
" <address t-field=\"object.company_id.sudo()."
"partner_id\" t-options=\"{&quot;widget&quot;: &quot;contact&quot;, &quot;"
"fields&quot;: [&quot;name&quot;, &quot;address&quot;], &quot;"
"no_marker&quot;: True}\"/>\n"
" <div style=\"width: 347px; margin: 0px; padding: 5px 14px; line-height: 16px; background-color: #F2F2F2;\">\n"
" <span style=\"color: #222; margin-bottom: 5px; display: block; \">\n"
" <address t-field=\"object.company_id.sudo().partner_id\" t-options=\"{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;name&quot;, &quot;address&quot;], &quot;no_marker&quot;: True}\"/>\n"
" </span>\n"
" <t t-if=\"object.company_id.phone\">\n"
" <div style=\"margin-top: 0px; margin-right: 0px; "
"margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; "
"padding-bottom: 0px; padding-left: 0px; \">\n"
" <div style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; \">\n"
" Phone: <t t-out=\"object.company_id.phone\"/>\n"
" </div>\n"
" </t>\n"
" <t t-if=\"object.company_id.website\">\n"
" <div>\n"
" Web: <a t-att-href=\"object.company_id.website\" "
"t-out=\"object.company_id.website\"/>\n"
" Web: <a t-att-href=\"object.company_id.website\" t-out=\"object.company_id.website\"/>\n"
" </div>\n"
" </t>\n"
" </div>\n"
" <br/>\n"
" <a t-att-href=\"'%s/my/contracts/%s?access_token=%s' % "
"(object.get_base_url(), object.id, object.access_token)\" target=\"_blank\" "
"style=\"background-color:#875A7B;padding: 8px 16px 8px 16px; text-"
"decoration: none; color: #fff; border-radius: 5px; font-size:13px;\">View "
"contract</a>\n"
" <a t-att-href=\"'%s/my/contracts/%s?access_token=%s' % (object.get_base_url(), object.id, object.access_token)\" target=\"_blank\" style=\"background-color:#875A7B;padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;\">View contract</a>\n"
" </div>\n"
" "
@@ -177,13 +122,11 @@ msgstr ""
#: model:mail.template,body_html:contract.mail_template_contract_modification
msgid ""
"<p>Hello</p>\n"
" <p>We have modifications on the contract that we want to notify "
"you.</p>\n"
" <p>We have modifications on the contract that we want to notify you.</p>\n"
" "
msgstr ""
"<p>Hola,</p>\n"
" <p>Le notificamos que hay nuevas modificaciones en el contrato.</"
"p>\n"
" <p>Le notificamos que hay nuevas modificaciones en el contrato.</p>\n"
" "
#. module: contract
@@ -192,16 +135,14 @@ msgid ""
"<span attrs=\"{'invisible': [('contract_to_invoice_count', '&gt;', 1)]}\">\n"
" contract to invoice\n"
" </span>\n"
" <span attrs=\"{'invisible': "
"[('contract_to_invoice_count', '&lt;=', 1)]}\">\n"
" <span attrs=\"{'invisible': [('contract_to_invoice_count', '&lt;=', 1)]}\">\n"
" contracts to invoice\n"
" </span>"
msgstr ""
"<span attrs=\"{'invisible': [('contract_to_invoice_count', '&gt;', 1)]}\">\n"
" contrato a facturar\n"
" </span>\n"
" <span attrs=\"{'invisible': "
"[('contract_to_invoice_count', '&lt;=', 1)]}\">\n"
" <span attrs=\"{'invisible': [('contract_to_invoice_count', '&lt;=', 1)]}\">\n"
" contratos a facturar\n"
" </span>"
@@ -770,14 +711,12 @@ msgstr "Línea de contrato cancelada: %s"
msgid ""
"Contract line for <strong>%(product)s</strong>\n"
" stopped: <br/>\n"
" - <strong>End</strong>: %(old_end)s -- "
"%(new_end)s\n"
" - <strong>End</strong>: %(old_end)s -- %(new_end)s\n"
" "
msgstr ""
"Línea de contrato para <strong>%(product)s</strong>\n"
" finalizada: <br/>\n"
" - <strong>End</strong>: %(old_end)s -- "
"%(new_end)s\n"
" - <strong>End</strong>: %(old_end)s -- %(new_end)s\n"
" "
#. module: contract
@@ -829,8 +768,7 @@ msgid ""
msgstr ""
"Línea de contrato para <strong>%(product)s</strong>\n"
" suspendida: <br/>\n"
" - <strong>Inicio de la suspensión</strong>: "
"%(new_date_start)s\n"
" - <strong>Inicio de la suspensión</strong>: %(new_date_start)s\n"
" <br/>\n"
" - <strong>Fin de la suspensión</strong>: %(new_date_end)s\n"
" "
@@ -855,11 +793,11 @@ msgstr "Líneas de contrato (fijo)"
#: code:addons/contract/models/contract.py:0
#, python-format
msgid ""
"Contract manually invoiced: <a href=\"#\" data-oe-model=\"%(model_name)s"
"\" data-oe-id=\"%(rec_id)s\">Invoice</a>"
"Contract manually invoiced: <a href=\"#\" data-oe-"
"model=\"%(model_name)s\" data-oe-id=\"%(rec_id)s\">Invoice</a>"
msgstr ""
"Contrato facturado manualmente: <a href=\"#\" data-oe-model="
"\"%(model_name)s\" data-oe-id=\"%(rec_id)s\">Factura</a>"
"Contrato facturado manualmente: <a href=\"#\" data-oe-"
"model=\"%(model_name)s\" data-oe-id=\"%(rec_id)s\">Factura</a>"
#. module: contract
#: model:mail.message.subtype,name:contract.mail_message_subtype_contract_modification
@@ -2333,15 +2271,15 @@ msgid ""
"You can't have a date of next invoice anterior to the start of the contract "
"line '%s'"
msgstr ""
"No puede tener la fecha de la próxima factura anterior al inicio de la línea "
"del contrato '%s'"
"No puede tener la fecha de la próxima factura anterior al inicio de la línea"
" del contrato '%s'"
#. module: contract
#: code:addons/contract/models/contract_line.py:0
#, python-format
msgid ""
"You can't have the end date before the date of last invoice for the contract "
"line '%s'"
"You can't have the end date before the date of last invoice for the contract"
" line '%s'"
msgstr ""
"No puede tener la fecha de finalización anterior a la fecha de la última "
"factura para la línea del contrato '%s'"
@@ -2350,8 +2288,8 @@ msgstr ""
#: code:addons/contract/models/contract_line.py:0
#, python-format
msgid ""
"You can't have the next invoice date before the date of last invoice for the "
"contract line '%s'"
"You can't have the next invoice date before the date of last invoice for the"
" contract line '%s'"
msgstr ""
"No puede tener la próxima fecha de factura anterior a la fecha de la última "
"factura para la línea de contrato '%s'"
@@ -2397,280 +2335,3 @@ msgid ""
msgstr ""
"{{ object.company_id.name }} Contrato (Ref {{ object.name or 'n/a' }}) - "
"Modificaciones"
#~ msgid "SMS Delivery error"
#~ msgstr "Error de entrega de SMS"
#~ msgid ""
#~ "\n"
#~ " <p>Hello</p>\n"
#~ " <p>We have modifications on the contract that we want to "
#~ "notify you.</p>\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ " <p>Hola</p>\n"
#~ " <p>Tenemos modificaciones en el contrato que queremos "
#~ "notificarle.</p>\n"
#~ " "
#~ msgid ""
#~ "\n"
#~ "<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-"
#~ "serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "
#~ "\">\n"
#~ " <p>Hello ${object.partner_id.name or ''},</p>\n"
#~ " <p>A new contract has been created: </p>\n"
#~ "\n"
#~ " <p style=\"border-left: 1px solid #8e0000; margin-left: 30px;\">\n"
#~ " &nbsp;&nbsp;<strong>REFERENCES</strong><br />\n"
#~ " &nbsp;&nbsp;Contract: <strong>${object.name}</strong><br />\n"
#~ " % if object.date_start:\n"
#~ " &nbsp;&nbsp;Contract Date Start: ${object.date_start or ''}<br />\n"
#~ " % endif\n"
#~ "\n"
#~ " % if object.user_id:\n"
#~ " % if object.user_id.email:\n"
#~ " &nbsp;&nbsp;Your Contact: <a href=\"mailto:${object.user_id.email "
#~ "or ''}?subject=Contract%20${object.name}\">${object.user_id.name}</a>\n"
#~ " % else:\n"
#~ " &nbsp;&nbsp;Your Contact: ${object.user_id.name}\n"
#~ " % endif\n"
#~ " % endif\n"
#~ " </p>\n"
#~ "\n"
#~ " <br/>\n"
#~ " <p>If you have any questions, do not hesitate to contact us.</p>\n"
#~ " <p>Thank you for choosing ${object.company_id.name or 'us'}!</p>\n"
#~ " <br/>\n"
#~ " <br/>\n"
#~ " <div style=\"width: 375px; margin: 0px; padding: 0px; background-"
#~ "color: #8E0000; border-top-left-radius: 5px 5px; border-top-right-radius: "
#~ "5px 5px; background-repeat: repeat no-repeat;\">\n"
#~ " <h3 style=\"margin: 0px; padding: 2px 14px; font-size: 12px; "
#~ "color: #DDD;\">\n"
#~ " <strong style=\"text-transform:uppercase;\">${object."
#~ "company_id.name}</strong></h3>\n"
#~ " </div>\n"
#~ " <div style=\"width: 347px; margin: 0px; padding: 5px 14px; line-"
#~ "height: 16px; background-color: #F2F2F2;\">\n"
#~ " <span style=\"color: #222; margin-bottom: 5px; display: block; "
#~ "\">\n"
#~ " ${object.company_id.partner_id.sudo()."
#~ "with_context(show_address=True, html_format=True).name_get()[0][1] | "
#~ "safe}\n"
#~ " </span>\n"
#~ " % if object.company_id.phone:\n"
#~ " <div style=\"margin-top: 0px; margin-right: 0px; margin-"
#~ "bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; "
#~ "padding-bottom: 0px; padding-left: 0px; \">\n"
#~ " Phone: ${object.company_id.phone}\n"
#~ " </div>\n"
#~ " % endif\n"
#~ " % if object.company_id.website:\n"
#~ " <div>\n"
#~ " Web: <a href=\"${object.company_id.website}\">${object."
#~ "company_id.website}</a>\n"
#~ " </div>\n"
#~ " %endif\n"
#~ " <p></p>\n"
#~ " </div>\n"
#~ " <p></p>\n"
#~ " <a href=\"${object.get_base_url()}/my/contracts/${object.id}?"
#~ "access_token=${object.access_token}\" target=\"_blank\" style="
#~ "\"background-color:#875A7B;padding: 8px 16px 8px 16px; text-decoration: "
#~ "none; color: #fff; border-radius: 5px; font-size:13px;\">View contract</"
#~ "a>\n"
#~ "</div>\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-"
#~ "serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "
#~ "\">\n"
#~ " <p>Hola ${object.partner_id.name or ''},</p>\n"
#~ " <p>Se ha creado un nuevo contrato: </p>\n"
#~ "\n"
#~ " <p style=\"border-left: 1px solid #8e0000; margin-left: 30px;\">\n"
#~ " &nbsp;&nbsp;<strong>REFERENCIAS</strong><br />\n"
#~ " &nbsp;&nbsp;Contrato: <strong>${object.name}</strong><br />\n"
#~ " % if object.date_start:\n"
#~ " &nbsp;&nbsp;Fecha inicio contrato: ${object.date_start or ''}<br /"
#~ ">\n"
#~ " % endif\n"
#~ "\n"
#~ " % if object.user_id:\n"
#~ " % if object.user_id.email:\n"
#~ " &nbsp;&nbsp;Su contacto: <a href=\"mailto:${object.user_id.email "
#~ "or ''}?subject=Contract%20${object.name}\">${object.user_id.name}</a>\n"
#~ " % else:\n"
#~ " &nbsp;&nbsp;Su contacto: ${object.user_id.name}\n"
#~ " % endif\n"
#~ " % endif\n"
#~ " </p>\n"
#~ "\n"
#~ " <br/>\n"
#~ " <p>Si tiene alguna pregunta, no dude en contactarnos.</p>\n"
#~ " <p>Gracias por elegir a ${object.company_id.name or 'nosotros'}!</p>\n"
#~ " <br/>\n"
#~ " <br/>\n"
#~ " <div style=\"width: 375px; margin: 0px; padding: 0px; background-"
#~ "color: #8E0000; border-top-left-radius: 5px 5px; border-top-right-radius: "
#~ "5px 5px; background-repeat: repeat no-repeat;\">\n"
#~ " <h3 style=\"margin: 0px; padding: 2px 14px; font-size: 12px; "
#~ "color: #DDD;\">\n"
#~ " <strong style=\"text-transform:uppercase;\">${object."
#~ "company_id.name}</strong></h3>\n"
#~ " </div>\n"
#~ " <div style=\"width: 347px; margin: 0px; padding: 5px 14px; line-"
#~ "height: 16px; background-color: #F2F2F2;\">\n"
#~ " <span style=\"color: #222; margin-bottom: 5px; display: block; "
#~ "\">\n"
#~ " ${object.company_id.partner_id.sudo()."
#~ "with_context(show_address=True, html_format=True).name_get()[0][1] | "
#~ "safe}\n"
#~ " </span>\n"
#~ " % if object.company_id.phone:\n"
#~ " <div style=\"margin-top: 0px; margin-right: 0px; margin-"
#~ "bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; "
#~ "padding-bottom: 0px; padding-left: 0px; \">\n"
#~ " Teléfono: ${object.company_id.phone}\n"
#~ " </div>\n"
#~ " % endif\n"
#~ " % if object.company_id.website:\n"
#~ " <div>\n"
#~ " Web: <a href=\"${object.company_id.website}\">${object."
#~ "company_id.website}</a>\n"
#~ " </div>\n"
#~ " %endif\n"
#~ " <p></p>\n"
#~ " </div>\n"
#~ " <p></p>\n"
#~ " <a href=\"${object.get_base_url()}/my/contracts/${object.id}?"
#~ "access_token=${object.access_token}\" target=\"_blank\" style="
#~ "\"background-color:#875A7B;padding: 8px 16px 8px 16px; text-decoration: "
#~ "none; color: #fff; border-radius: 5px; font-size:13px;\">Ver contrato</"
#~ "a>\n"
#~ "</div>\n"
#~ " "
#~ msgid "${object.company_id.name} Contract (Ref ${object.name or 'n/a'})"
#~ msgstr "${object.company_id.name} Contrato (Ref ${object.name or 'n/a'})"
#~ msgid ""
#~ "${object.company_id.name} Contract (Ref ${object.name or 'n/a'}) - "
#~ "Modifications"
#~ msgstr ""
#~ "${object.company_id.name} Contrato (Ref ${object.name or 'n/a'}) - "
#~ "Modificaciones"
#~ msgid "Contract line Un-canceled: %s<br/>- "
#~ msgstr "Línea de contrato no cancelada: %s<br/>- "
#~ msgid "Contract line canceled: %s<br/>- "
#~ msgstr "Línea de contrato cancelada: %s<br/>- "
#~ msgid ""
#~ "Contract line for <strong>{product}</strong>\n"
#~ " stopped: <br/>\n"
#~ " - <strong>End</strong>: {old_end} -- "
#~ "{new_end}\n"
#~ " "
#~ msgstr ""
#~ "Línea de contrato para <strong>{product}</strong>\n"
#~ " detenida: <br/>\n"
#~ " - <strong>Fin</strong>: {old_end} -- "
#~ "{new_end}\n"
#~ " "
#~ msgid ""
#~ "Contract line for <strong>{product}</strong>\n"
#~ " planned a successor: <br/>\n"
#~ " - <strong>Start</strong>: {new_date_start}\n"
#~ " <br/>\n"
#~ " - <strong>End</strong>: {new_date_end}\n"
#~ " "
#~ msgstr ""
#~ "Línea de contrato para <strong>{product}</strong>\n"
#~ " planeó un sucesor: <br/>\n"
#~ " - <strong>Inicio</strong>: {new_date_start}\n"
#~ " <br/>\n"
#~ " - <strong>Fin</strong>: {new_date_end}\n"
#~ " "
#~ msgid ""
#~ "Contract line for <strong>{product}</strong>\n"
#~ " renewed: <br/>\n"
#~ " - <strong>Start</strong>: {new_date_start}\n"
#~ " <br/>\n"
#~ " - <strong>End</strong>: {new_date_end}\n"
#~ " "
#~ msgstr ""
#~ "Línea de contrato para <strong>{product}</strong>\n"
#~ " renovado: <br/>\n"
#~ " - <strong>Inicio</strong>: {new_date_start}\n"
#~ " <br/>\n"
#~ " - <strong>Fin</strong>: {new_date_end}\n"
#~ " "
#~ msgid ""
#~ "Contract line for <strong>{product}</strong>\n"
#~ " suspended: <br/>\n"
#~ " - <strong>Suspension Start</strong>: {new_date_start}\n"
#~ " <br/>\n"
#~ " - <strong>Suspension End</strong>: {new_date_end}\n"
#~ " "
#~ msgstr ""
#~ "Línea de contrato para <strong>{product}</strong>\n"
#~ " suspendida: <br/>\n"
#~ " - <strong>Inicio Suspensión</strong>: {new_date_start}\n"
#~ " <br/>\n"
#~ " - <strong>Fin Suspensión</strong>: {new_date_end}\n"
#~ " "
#~ msgid ""
#~ "Contract manually invoiced: <a href=\"#\" data-oe-model=\"%s\" data-oe-id="
#~ "\"%s\">Invoice</a>"
#~ msgstr ""
#~ "Contratos facturados manualmente: <a href=\"#\" data-oe-model=\"%s\" data-"
#~ "oe-id=\"%s\">Factura</a>"
#~ msgid "Followers (Channels)"
#~ msgstr "Seguimiento (Canales)"
#~ msgid "Manual renew needed"
#~ msgstr "Renovación manual necesaria"
#~ msgid "Please define a %s journal for the company '%s'."
#~ msgstr "Por favor defina un diario de %s para la compañía '%s'."
#~ msgid "Termination notice date"
#~ msgstr "Fecha de aviso de terminación"
#~ msgid ""
#~ "<span attrs=\"{'invisible': [('contract_to_invoice_count', '&gt;', "
#~ "1)]}\">\n"
#~ " contract to invoice\n"
#~ " </span>\n"
#~ " <span attrs=\"{'invisible': "
#~ "[('contract_to_invoice_count', '&lt;', 1)]}\">\n"
#~ " contracts to invoice\n"
#~ " </span>"
#~ msgstr ""
#~ "<span attrs=\"{'invisible': [('contract_to_invoice_count', '&gt;', "
#~ "1)]}\">\n"
#~ " contrato a facturar\n"
#~ " </span>\n"
#~ " <span attrs=\"{'invisible': "
#~ "[('contract_to_invoice_count', '&lt;', 1)]}\">\n"
#~ " contracts to invoice\n"
#~ " </span>"
#~ msgid "Journal Entries"
#~ msgstr "Asientos contables"
#~ msgid "Last date invoice"
#~ msgstr "Última fecha de factura"
#~ msgid "Contract Order -"
#~ msgstr "Pedido de contrato -"

View File

@@ -14,3 +14,6 @@
* Rafael Blasco
* Víctor Martínez
* Iván Antón <ozono@ozonomultimedia.com>
* `[APSL] <https://www.apsl.tech>`_:
* Antoni Marroig <amarroig@apsl.net>

View File

@@ -5,7 +5,7 @@
<field name="name">Contract</field>
<field name="model">contract.contract</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">contract.report_contract_document</field>
<field name="report_name">contract.report_contract_template</field>
<field name="report_file">contract.report_contract</field>
<field name="binding_model_id" ref="model_contract_contract" />
<field name="binding_type">report</field>

View File

@@ -1,209 +1,192 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="report_contract_document">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="web.external_layout">
<t t-set="o" t-value="o.with_context(lang=o.partner_id.lang)" />
<t t-set="address">
<p id="partner_info">
<strong>Partner:</strong>
<t t-call="web.external_layout">
<t t-set="o" t-value="o.with_context(lang=lang)" />
<t t-set="address">
<p id="partner_info">
<strong>Partner:</strong>
</p>
<div
t-field="o.partner_id"
t-options='{"widget": "contact", "fields": ["address", "name", "phone", "mobile", "fax", "email"], "no_marker": true, "phone_icons": true}'
/>
<p t-if="o.partner_id.vat">VAT: <span t-field="o.partner_id.vat" /></p>
</t>
<div class="page">
<div class="oe_structure" />
<div class="row" id="header_info">
<div class="col-3">
<strong>Responsible: </strong>
<p t-field="o.user_id" />
<strong>Contract: </strong>
<p t-field="o.code" />
</div>
</div>
<div class="row" id="invoice_info">
<t t-set="total" t-value="0" />
<div class="col-12">
<p id="services_info">
<strong>Recurring Items</strong>
</p>
<div
t-field="o.partner_id"
t-options='{"widget": "contact", "fields": ["address", "name", "phone", "mobile", "fax", "email"], "no_marker": true, "phone_icons": true}'
/>
<p t-if="o.partner_id.vat">VAT: <span
t-field="o.partner_id.vat"
/></p>
</t>
<div class="page">
<div class="oe_structure" />
<div class="row" id="header_info">
<div class="col-3">
<strong>Responsible: </strong>
<p t-field="o.user_id" />
<strong>Contract: </strong>
<p t-field="o.code" />
</div>
</div>
<div class="row" id="invoice_info">
<t t-set="total" t-value="0" />
<div class="col-12">
<p id="services_info">
<strong>Recurring Items</strong>
</p>
<table class="table table-sm">
<thead>
<tr>
<th>
<strong>Description</strong>
</th>
<th class="text-right">
<strong>Quantity</strong>
</th>
<th class="text-right">
<strong>Unit Price</strong>
</th>
<th class="text-right">
<strong>Price</strong>
</th>
<th class="text-right">
<strong>Date Start</strong>
</th>
</tr>
</thead>
<tbody>
<t t-set="current_subtotal" t-value="0" />
<t t-foreach="o.contract_line_ids" t-as="l">
<table class="table table-sm">
<thead>
<tr>
<th>
<strong>Description</strong>
</th>
<th class="text-right">
<strong>Quantity</strong>
</th>
<th class="text-right">
<strong>Unit Price</strong>
</th>
<th class="text-right">
<strong>Price</strong>
</th>
<th class="text-right">
<strong>Date Start</strong>
</th>
</tr>
</thead>
<tbody>
<t t-set="current_subtotal" t-value="0" />
<t t-foreach="o.contract_line_ids" t-as="l">
<t
t-set="current_subtotal"
t-value="current_subtotal + l.price_subtotal"
/>
<tr
t-att-class="'bg-200 font-weight-bold o_line_section' if l.display_type == 'line_section' else 'font-italic o_line_note' if l.display_type == 'line_note' else ''"
>
<t t-if="not l.display_type">
<td>
<span t-field="l.name" />
</td>
<td class="text-right">
<span t-field="l.quantity" />
</td>
<td class="text-right">
<span
t-field="l.price_unit"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'
/>
</td>
<td class="text-right">
<span
t-field="l.price_subtotal"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'
/>
</td>
<td class="text-right">
<span t-field="l.date_start" />
</td>
<t
t-set="current_subtotal"
t-value="current_subtotal + l.price_subtotal"
t-set="total"
t-value="total + l.price_subtotal"
/>
<tr
t-att-class="'bg-200 font-weight-bold o_line_section' if l.display_type == 'line_section' else 'font-italic o_line_note' if l.display_type == 'line_note' else ''"
>
<t t-if="not l.display_type">
<td>
<span t-field="l.name" />
</td>
<td class="text-right">
<span t-field="l.quantity" />
</td>
<td class="text-right">
<span
t-field="l.price_unit"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'
/>
</td>
<td class="text-right">
<span
t-field="l.price_subtotal"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'
/>
</td>
<td class="text-right">
<span t-field="l.date_start" />
</td>
<t
t-set="total"
t-value="total + l.price_subtotal"
/>
</t>
<t
t-if="l.display_type == 'line_section'"
>
<td colspan="99">
<span t-field="l.name" />
</td>
<t
t-set="current_section"
t-value="l"
/>
<t
t-set="current_subtotal"
t-value="0"
/>
</t>
<t t-if="l.display_type == 'line_note'">
<td colspan="99">
<span t-field="l.name" />
</td>
</t>
</tr>
<t
t-if="current_section and (l_last or o.contract_line_ids[l_index+1].display_type == 'line_section')"
>
<tr class="is-subtotal text-right">
<td colspan="99">
<strong
class="mr16"
>Subtotal</strong>
<span
t-esc="current_subtotal"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'
/>
</td>
</tr>
</t>
</t>
</tbody>
</table>
</div>
</div>
<div
class="row"
id="modification_info"
t-if="o.modification_ids"
>
<div class="col-12">
<p id="modification_info_p">
<strong>Modifications</strong>
</p>
<table class="table table-sm">
<thead>
<tr>
<th name="th_date">Date</th>
<th
name="th_description"
class="text-right"
>Description</th>
<t t-if="l.display_type == 'line_section'">
<td colspan="99">
<span t-field="l.name" />
</td>
<t t-set="current_section" t-value="l" />
<t t-set="current_subtotal" t-value="0" />
</t>
<t t-if="l.display_type == 'line_note'">
<td colspan="99">
<span t-field="l.name" />
</td>
</t>
</tr>
<t
t-if="current_section and (l_last or o.contract_line_ids[l_index+1].display_type == 'line_section')"
>
<tr class="is-subtotal text-right">
<td colspan="99">
<strong class="mr16">Subtotal</strong>
<span
t-esc="current_subtotal"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'
/>
</td>
</tr>
</thead>
<tbody>
<t
t-foreach="o.modification_ids"
t-as="notification_id"
>
<tr>
<td name="td_date">
<span
t-field="notification_id.date"
/>
</td>
<td
name="td_description"
class="text-right"
>
<div
t-field="notification_id.description"
/>
</td>
</tr>
</t>
</tbody>
</table>
</div>
</div>
<div id="total" class="row" name="total">
<div class="col-4 ml-auto">
<table class="table table-sm">
<tr class="border-black o_subtotal" style="">
<td>
<strong>Total</strong>
</t>
</t>
</tbody>
</table>
</div>
</div>
<div class="row" id="modification_info" t-if="o.modification_ids">
<div class="col-12">
<p id="modification_info_p">
<strong>Modifications</strong>
</p>
<table class="table table-sm">
<thead>
<tr>
<th name="th_date">Date</th>
<th
name="th_description"
class="text-right"
>Description</th>
</tr>
</thead>
<tbody>
<t
t-foreach="o.modification_ids"
t-as="notification_id"
>
<tr>
<td name="td_date">
<span t-field="notification_id.date" />
</td>
<td class="text-right">
<span
t-esc="total"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'
<td name="td_description" class="text-right">
<div
t-field="notification_id.description"
/>
</td>
</tr>
</table>
</div>
</div>
</t>
</tbody>
</table>
</div>
</div>
<div id="total" class="row" name="total">
<div class="col-4 ml-auto">
<table class="table table-sm">
<tr class="border-black o_subtotal" style="">
<td>
<strong>Total</strong>
</td>
<td class="text-right">
<span
t-esc="total"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'
/>
</td>
</tr>
</table>
</div>
</div>
<div>
<div class="row mt-4" id="note">
<div>
<div class="row mt-4" id="note">
<div>
<strong>Notes: </strong>
</div>
</div>
<div class="row">
<p t-field="o.note" />
</div>
<strong>Notes: </strong>
</div>
</div>
</t>
<div class="row">
<p t-field="o.note" />
</div>
</div>
</div>
</t>
</template>
<template id="report_contract_template">
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-set="lang" t-value="o.partner_id.lang" />
<t t-call="contract.report_contract_document" t-lang="lang" />
</t>
</t>
</template>

View File

@@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
@@ -366,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:0c1e852d20b0604611917bf039dc0418561e723b216e811576f2c1deb6c3b742
!! source digest: sha256:e242a5d24ed359e07e817bbd95149d7494e38da4814aa8f4015af8db0e881372
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/contract/tree/15.0/contract"><img alt="OCA/contract" src="https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/contract-15-0/contract-15-0-contract"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/contract&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module enables contracts management with recurring
@@ -484,6 +485,13 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
</li>
<li><p class="first">Iván Antón &lt;<a class="reference external" href="mailto:ozono&#64;ozonomultimedia.com">ozono&#64;ozonomultimedia.com</a>&gt;</p>
</li>
<li><p class="first"><a class="reference external" href="https://www.apsl.tech">[APSL]</a>:</p>
<blockquote>
<ul class="simple">
<li>Antoni Marroig &lt;<a class="reference external" href="mailto:amarroig&#64;apsl.net">amarroig&#64;apsl.net</a>&gt;</li>
</ul>
</blockquote>
</li>
</ul>
</div>
<div class="section" id="maintainers">