Merge PR #1083 into 17.0

Signed-off-by pedrobaeza
This commit is contained in:
OCA-git-bot
2024-06-04 14:53:29 +00:00
41 changed files with 7168 additions and 0 deletions

109
product_contract/README.rst Normal file
View File

@@ -0,0 +1,109 @@
============================
Recurring - Product Contract
============================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:ad8724fbb6c54e3f450ed7f3b3aa16384ed79b097065f0de96cc56e87eef2e71
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github
:target: https://github.com/OCA/contract/tree/17.0/product_contract
:alt: OCA/contract
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/contract-17-0/contract-17-0-product_contract
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/contract&target_branch=17.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module adds support for products to be linked to contract
templates.
A contract is created on ``sale.order`` confirmation for each different
template used in sale order line where recurrence details are set too.
Contract product are ignored on invoicing process and pass to nothing to
invoice directly.
**Table of contents**
.. contents::
:local:
Usage
=====
To use this module, you need to:
1. Go to Sales -> Products and select or create a product.
2. Check "Is a contract" and select the contract template related to the
product
3. Define default recurrence rules
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/contract/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/contract/issues/new?body=module:%20product_contract%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
-------
* LasLabs
* ACSONE SA/NV
Contributors
------------
- Ted Salmon <tsalmon@laslabs.com>
- Souheil Bejaoui <souheil.bejaoui@acsone.eu>
- `Tecnativa <https://www.tecnativa.com>`__:
- Ernesto Tejeda
- Pedro M. Baeza
- David Jaen <david.jaen.revert@gmail.com>
Maintainers
-----------
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
.. |maintainer-sbejaoui| image:: https://github.com/sbejaoui.png?size=40px
:target: https://github.com/sbejaoui
:alt: sbejaoui
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-sbejaoui|
This module is part of the `OCA/contract <https://github.com/OCA/contract/tree/17.0/product_contract>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -0,0 +1,4 @@
# Copyright 2017 LasLabs Inc.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models

View File

@@ -0,0 +1,23 @@
# Copyright 2017 LasLabs Inc.
# Copyright 2018 ACSONE SA/NV.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Recurring - Product Contract",
"version": "17.0.1.0.0",
"category": "Contract Management",
"license": "AGPL-3",
"author": "LasLabs, " "ACSONE SA/NV, " "Odoo Community Association (OCA)",
"website": "https://github.com/OCA/contract",
"depends": ["product", "contract", "sale"],
"data": [
"wizards/res_config_settings.xml",
"views/contract.xml",
"views/product_template.xml",
"views/sale_order.xml",
],
"installable": True,
"application": False,
"external_dependencies": {"python": ["dateutil"]},
"maintainers": ["sbejaoui"],
}

324
product_contract/i18n/de.po Normal file
View File

@@ -0,0 +1,324 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-27 02:40+0000\n"
"PO-Revision-Date: 2019-10-29 21:33+0000\n"
"Last-Translator: Rudolf Schnapka <rs@techno-flex.de>\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.8\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr "<span class=\"o_stat_text\">Verkaufsaufträge</span>"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr "Auto-Erneuern"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr "Erstelle automatisch Verträge bei Verkaufsauftragbestätigung"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr "Unternehmen"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr "Konfigurationseinstellungen"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Vertrag"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
msgid "Contract Count"
msgstr "Vertragsanzahl"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
msgid "Contract Line"
msgstr "Vertragsposition"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
msgid "Contract Line to replace"
msgstr "Zu ersetzende Vertragsposition"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Vertragsvorlage"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr "Vertragsprodukt hat andere Vertragsvorlage"
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr "Vertragsprodukt muss Dienstleistungsprodukt sein"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Contracts"
msgstr "Verträge"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Create Contracts"
msgstr "Vertrag erstellen"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr "Enddatum"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr "Startdatum"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr "Tag(e)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr "Vorgabemenge"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr "Anzeigename"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr "Abrechnungsintervall"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr "Abrechnungsart"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "Ist ein Vertrag"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr "Monat(e)"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr "Monatsletzter Tag"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
msgid "Need Contract Creation"
msgstr "Vertragsanlage erforderlich"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr "Im Nachhinein bezahlt"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr "Im Voraus bezahlt"
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Produktvorlage"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr "Wiederkehrende Abrechnung"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
#, fuzzy
msgid "Renew Every"
msgstr "Abrechnungsintervall"
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
msgid "Sale Order"
msgstr "Verkaufsauftrag"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
msgid "Sale Order Count"
msgstr "Auftragsanzahl"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
msgid "Sale Order Line"
msgstr "Auftragszeile"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr ""
"Verkaufsauftrag und Vertrag müssen dem gleichen Partner zugeordnet sein"
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "Auftragszeile"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, python-format
msgid "Sales Orders"
msgstr "Verkaufsaufträge"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr "Legen Sie das Intervall für die automatische Rechnungslegung fest."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
#, fuzzy
msgid "Specify Interval for automatic renewal."
msgstr "Legen Sie das Intervall für die automatische Rechnungslegung fest."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr "Legen Sie fest, ob das Datum als Start- oder Enddatum behandelt wird"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr "Abschluss-Vorausbenachrichtigung"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr "Abschluss-Meldungsart"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr "Woche(n)"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr "Jahr(e)"
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

326
product_contract/i18n/es.po Normal file
View File

@@ -0,0 +1,326 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
# enjolras <yo@miguelrevilla.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-10 03:15+0000\n"
"PO-Revision-Date: 2020-06-17 11:28+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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr "<span class=\"o_stat_text\">Pedidos de Venta</span>"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr "Auto-renovación"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr "Crear Contratos Automáticamente en la Confirmación del Pedido de Venta"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr "Compañías"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr "Configuraciones"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Contrato"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
msgid "Contract Count"
msgstr "Cuenta Contrato"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
msgid "Contract Line"
msgstr "Línea de Contrato"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
msgid "Contract Line to replace"
msgstr "Línea de Contrato a Reemplazar"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Plantilla de contrato"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr "El producto del contrato tiene una plantilla de contrato diferente"
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr "El producto del contrato debe ser del tipo de servicio"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Contracts"
msgstr "Contratos"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Create Contracts"
msgstr "Crear Contratos"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr "Fecha de Finalización"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr "Fecha de Inicio"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr "Días"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr "Cantidad Predeterminada"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr "Nombre Para Mostrar"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr "Factura Cada"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr "Tipo de Facturación"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "Es un contrato"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr "Meses"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr "Mes (es) último día"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
msgid "Need Contract Creation"
msgstr "Necesita Creación de Contrato"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr "Pospago"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr "Pagado por Adelantado"
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Plantilla de producto"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr "Facturación Recurrente"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr "Renovar cada"
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr "Renovar cada (días / semana / mes / año)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr "Tipo de renovación"
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
msgid "Sale Order"
msgstr "Pedido de Venta"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
msgid "Sale Order Count"
msgstr "Cuenta Pedido de Venta"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
msgid "Sale Order Line"
msgstr "Línea de Pedido de Venta"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr "La orden de venta y el contrato deben estar vinculados al mismo socio"
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "Línea de pedido de venta"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, python-format
msgid "Sales Orders"
msgstr "Pedidos de Ventas"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr "Especifique el intervalo para la generación automática de facturas."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr "Especifique Intervalo para renovación automática."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
"Especifique si la fecha del proceso es 'desde' o 'hasta' la fecha de "
"facturación"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr "Aviso de terminación antes"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr "Tipo de aviso de Terminación"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr "Semanas"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr "Años"
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr "No puede vender o vender un contrato terminado"
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""
"Debe especificar una plantilla de contrato para el producto '{}' en la "
"compañía '{}'."

326
product_contract/i18n/fi.po Normal file
View File

@@ -0,0 +1,326 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-10 01:44+0000\n"
"PO-Revision-Date: 2018-03-10 01:44+0000\n"
"Last-Translator: Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2018\n"
"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Contract"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
#, fuzzy
msgid "Contract Count"
msgstr "Contract"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
#, fuzzy
msgid "Contract Line"
msgstr "Contract"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
#, fuzzy
msgid "Contract Line to replace"
msgstr "Sopimusmalli"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Sopimusmalli"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Contracts"
msgstr "Contract"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Create Contracts"
msgstr "Contract"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
#, fuzzy
msgid "Need Contract Creation"
msgstr "Sopimusmalli"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
msgid "Sale Order"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
msgid "Sale Order Count"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
msgid "Sale Order Line"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, python-format
msgid "Sales Orders"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

326
product_contract/i18n/fr.po Normal file
View File

@@ -0,0 +1,326 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# leemannd <denis.leemann@camptocamp.com>, 2017
# David BEAL, 2018
# Fabien Bourgeois <fabien@yaltik.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-05-19 02:01+0000\n"
"PO-Revision-Date: 2020-08-17 22:59+0000\n"
"Last-Translator: Grégory Moka Tourisme <gregory@mokatourisme.fr>\n"
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.10\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr "<span class=\"o_stat_text\">Commandes</span>"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr "Renouvellement automatique"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr "Créer automatiquement les contrats à la confirmation de commande"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr "Sociétés"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr "Configuration"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Contrat"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
msgid "Contract Count"
msgstr "Nb de contrats"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
msgid "Contract Line"
msgstr "Ligne de Contrat"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
msgid "Contract Line to replace"
msgstr "Ligne de contrat à remplacer"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Modèle de contrat"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr "L'article a un modèle de contrat différent"
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr "L'article de contrat devrait être de type service"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Contracts"
msgstr "Contrats"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Create Contracts"
msgstr "Créer les contrats"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr "Date de fin"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr "Date de début"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr "Jour(s)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr "Quantité par défaut"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr "Nom affiché"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr "Facturer tous les"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr "Type de facture"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "Est un contrat"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr "Mois"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr "Dernier jour du mois"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
msgid "Need Contract Creation"
msgstr "Nécessite la création d'un contrat"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr "Postpayé"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr "Prépayé"
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Modèle d'article"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr "Trimestre(s)"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr "Fréquence de facturation"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr "Renouveler tous les"
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr "Renouveler tous les (Jours/Semaine/Mois/Année)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr "Type de renouvellement"
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
msgid "Sale Order"
msgstr "Commande"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
msgid "Sale Order Count"
msgstr "Nb de commandes"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
msgid "Sale Order Line"
msgstr "Ligne de commande"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr "La commande et le contrat doivent être liés au même partenaire"
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "Ligne de commande"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, python-format
msgid "Sales Orders"
msgstr "Commandes"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr "Semestre(s)"
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr "Spécifier un intervalle pour la création automatique des factures."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr "Spécifier un intervalle pour le renouvellement automatique."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
"Spécifier si le service est actif \"à partir de\" ou \"jusqu'à\" la date de "
"facturation"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr "Avis de résiliation avant"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr "Type d'avis d'échéance"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr "Semaine(s)"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr "Année(s)"
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr "Vous ne pouvez pas augmenter ou diminuer un contrat résilié"
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""
"Vous devez indiquer un modèle de contrat pour l'article {} de la société {}."

View File

@@ -0,0 +1,330 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# Ashish Deshmukh <ashish.p.deshmukh@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-17 01:05+0000\n"
"PO-Revision-Date: 2017-08-17 01:05+0000\n"
"Last-Translator: Ashish Deshmukh <ashish.p.deshmukh@gmail.com>, 2017\n"
"Language-Team: Hindi (India) (https://www.transifex.com/oca/teams/23907/"
"hi_IN/)\n"
"Language: hi_IN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "अनुबंध"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
#, fuzzy
msgid "Contract Count"
msgstr "अनुबंध"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
#, fuzzy
msgid "Contract Line"
msgstr "अनुबंध"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
#, fuzzy
msgid "Contract Line to replace"
msgstr "अनुबंध टेम्पलेट"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "अनुबंध टेम्पलेट"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Contracts"
msgstr "अनुबंध"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Create Contracts"
msgstr "अनुबंध"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "एक अनुबंध है"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
#, fuzzy
msgid "Need Contract Creation"
msgstr "अनुबंध टेम्पलेट"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "प्रोडक्ट टेम्पलेट"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
#, fuzzy
msgid "Sale Order"
msgstr "बिक्री आदेश"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
#, fuzzy
msgid "Sale Order Count"
msgstr "बिक्री आदेश पंक्ति"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
#, fuzzy
msgid "Sale Order Line"
msgstr "बिक्री आदेश पंक्ति"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "बिक्री आदेश पंक्ति"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, fuzzy, python-format
msgid "Sales Orders"
msgstr "बिक्री आदेश"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

325
product_contract/i18n/hr.po Normal file
View File

@@ -0,0 +1,325 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# Bole <bole@dajmi5.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-10 03:15+0000\n"
"PO-Revision-Date: 2019-12-02 16:28+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>\n"
"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 3.9.1\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr "<span class=\"o_stat_text\">Ponude</span>"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr "Automatski obnovi"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr "Automatski kreiraj ugovore pri potvrdi ponude"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr "Tvrtke"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr "Postavke"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Ugovor"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
msgid "Contract Count"
msgstr "Broj ugovora"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
msgid "Contract Line"
msgstr "Stavka ugovora"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
msgid "Contract Line to replace"
msgstr "Stavka ugovora za zamijeniti"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Predložak ugovora"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr "Predložak proizvoda ima drugačiji predložak ugovora pridružen"
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr "Predložak ugovora bi trebao biti tipa Usluga"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Contracts"
msgstr "modul: product_contract"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Create Contracts"
msgstr "Kreiraj ugovore"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr "Završni datum"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr "Početni datum"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr "Dan(a)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr "Zadana količina"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr "Naziv"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr "Račun svakih"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr "Tip računa"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "Je ugovor"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr "Mjesec(i)"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr "Mjesec(i) zadnji dan"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
msgid "Need Contract Creation"
msgstr "Potrebno kreiranje Ugovora"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr "Plaćanje poslje"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr "Plaćanje prije"
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Predložak proizvoda"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr "Ponavljajući računi"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
#, fuzzy
msgid "Renew Every"
msgstr "Račun svakih"
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
msgid "Sale Order"
msgstr "Ponuda"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
msgid "Sale Order Count"
msgstr "Broj ponuda"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
msgid "Sale Order Line"
msgstr "Stavka ponude"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr "Ponuda i Ugovor bi trebali biti vezani na istog partnera"
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "Stavka ponude"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, python-format
msgid "Sales Orders"
msgstr "Ponude"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr "Definirajte interval za automatsko generiranje računa."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
#, fuzzy
msgid "Specify Interval for automatic renewal."
msgstr "Definirajte interval za automatsko generiranje računa."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
"Definirajte da li je datum obrade Početni datum ili Završni datum perioda"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr "Obavijest o raskidu prije"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr "Tip obavjesti o raskidu"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr "Tjedan(a)"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr "Godina(e)"
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

View File

@@ -0,0 +1,332 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
# Bole <bole@dajmi5.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-17 01:39+0000\n"
"PO-Revision-Date: 2017-06-17 01:39+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>, 2017\n"
"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/"
"hr_HR/)\n"
"Language: hr_HR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Ugovor"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
#, fuzzy
msgid "Contract Count"
msgstr "Ugovor"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
#, fuzzy
msgid "Contract Line"
msgstr "Ugovor"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
#, fuzzy
msgid "Contract Line to replace"
msgstr "Predložak ugovora"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Predložak ugovora"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Contracts"
msgstr "Ugovor"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Create Contracts"
msgstr "Ugovor"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "Je ugovor"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
#, fuzzy
msgid "Need Contract Creation"
msgstr "Predložak ugovora"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Predložak proizvoda"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
#, fuzzy
msgid "Sale Order"
msgstr "Prodajni nalog"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
#, fuzzy
msgid "Sale Order Count"
msgstr "Stavka prodajnog naloga"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
#, fuzzy
msgid "Sale Order Line"
msgstr "Stavka prodajnog naloga"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "Stavka prodajnog naloga"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, fuzzy, python-format
msgid "Sales Orders"
msgstr "Prodajni nalog"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

326
product_contract/i18n/it.po Normal file
View File

@@ -0,0 +1,326 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# Lorenzo Battistini <lorenzo.battistini@agilebg.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-27 02:40+0000\n"
"PO-Revision-Date: 2023-04-18 16:33+0000\n"
"Last-Translator: Francesco Foresti <francesco.foresti@ooops404.com>\n"
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14.1\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr "<span class=\"o_stat_text\">Ordini di vendita</span>"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr "Rinnovo automatico"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr "Crea automaticamente contratti alla conferma dell'ordine di vendita"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr "Aziende"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr "Impostazioni di configurazione"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Contratto"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
msgid "Contract Count"
msgstr "Conto di Contratto"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
msgid "Contract Line"
msgstr "Riga contratto"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
msgid "Contract Line to replace"
msgstr "Riga di contratto da sostituire"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Template di contratto"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr "Il prodotto contratto ha un diverso template di contratto"
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr "Il prodotto di contratto dovrebbe essere di tipo servizio"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Contracts"
msgstr "Contratti"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Create Contracts"
msgstr "Crea Contratti"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr "Data di fine"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr "Data di inizio"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr "Giorno(i)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr "Quantità standard"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr "Fattura ogni"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr "Tipo di fatturazione"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "è un contratto"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr "Mese(i)"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr "Ultimo giorno mese(i)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
msgid "Need Contract Creation"
msgstr "Necessita creazione contratto"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr "Post pagato"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr "Pre pagato"
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Modello prodotto"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr "Trimestre/i"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr "Fatturazione ricorrente"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr "Rinnovare ogni"
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr "Rinnovare ogni (giorno/settimana/mese/anno)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr "Tipo rinnovo"
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
msgid "Sale Order"
msgstr "Ordine di vendita"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
msgid "Sale Order Count"
msgstr "Conteggio ordine di vendita"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
msgid "Sale Order Line"
msgstr "Riga ordine di vendita"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr ""
"L'ordine di vendita e il contratto dovrebbero essere collegati allo stesso "
"partner"
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "Riga ordine di vendita"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, python-format
msgid "Sales Orders"
msgstr "Ordini di vendita"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr "Semestre/i"
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr "Specifica un intervallo per la generazione automatica della fattura."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr "Specificare l'intervallo per il rinnovo automatico."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
"Specifica se la data di elaborazione è 'dalla' o 'alla' data di fatturazione"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr "Notifica termine prima di"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr "Tipo notifica termine"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr "Settimana(e)"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr "Anno(i)"
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr "Non puoi fare upsell o downsell di un contratto terminato"
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""
"Devi specificare un modello di contratto per il prodotto '{}' nell'azienda "
"'{}'."

330
product_contract/i18n/nl.po Normal file
View File

@@ -0,0 +1,330 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# Erwin van der Ploeg <erwin@odooexperts.nl>, 2017
# lfreeke <lfreeke@therp.nl>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-06 03:17+0000\n"
"PO-Revision-Date: 2018-01-06 03:17+0000\n"
"Last-Translator: lfreeke <lfreeke@therp.nl>, 2018\n"
"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Contract"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
#, fuzzy
msgid "Contract Count"
msgstr "Contract"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
#, fuzzy
msgid "Contract Line"
msgstr "Contract"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
#, fuzzy
msgid "Contract Line to replace"
msgstr "Contractsjabloon"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Contractsjabloon"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Contracts"
msgstr "Contract"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Create Contracts"
msgstr "Contract"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "Is een contract"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
#, fuzzy
msgid "Need Contract Creation"
msgstr "Contractsjabloon"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Productsjabloon"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
#, fuzzy
msgid "Sale Order"
msgstr "Verkooporder"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
#, fuzzy
msgid "Sale Order Count"
msgstr "Verkooporderregel"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
#, fuzzy
msgid "Sale Order Line"
msgstr "Verkooporderregel"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "Verkooporderregel"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, fuzzy, python-format
msgid "Sales Orders"
msgstr "Verkooporder"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

View File

@@ -0,0 +1,330 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# Peter Hageman <hageman.p@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-09 01:10+0000\n"
"PO-Revision-Date: 2017-06-09 01:10+0000\n"
"Last-Translator: Peter Hageman <hageman.p@gmail.com>, 2017\n"
"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/"
"teams/23907/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Contract"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
#, fuzzy
msgid "Contract Count"
msgstr "Contract"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
#, fuzzy
msgid "Contract Line"
msgstr "Contract"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
#, fuzzy
msgid "Contract Line to replace"
msgstr "Contractsjabloon"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Contractsjabloon"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Contracts"
msgstr "Contract"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Create Contracts"
msgstr "Contract"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "Is een contract"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
#, fuzzy
msgid "Need Contract Creation"
msgstr "Contractsjabloon"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Productsjabloon"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
#, fuzzy
msgid "Sale Order"
msgstr "Verkooporder"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
#, fuzzy
msgid "Sale Order Count"
msgstr "Verkooporderregel"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
#, fuzzy
msgid "Sale Order Line"
msgstr "Verkooporderregel"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "Verkooporderregel"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, fuzzy, python-format
msgid "Sales Orders"
msgstr "Verkooporder"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

View File

@@ -0,0 +1,339 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
msgid "Contract Count"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
msgid "Contract Line"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:0
#, python-format
msgid "Contract product has different contract template"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:0
#, python-format
msgid "Contract product should be service type"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Contracts"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Create Contracts"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr ""
#. module: product_contract
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__auto_renew_rule_type__daily
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__recurring_rule_type__daily
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__termination_notice_rule_type__daily
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__auto_renew_rule_type__daily
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__recurring_rule_type__daily
msgid "Day(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__display_name
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
#: model:ir.model.fields,field_description:product_contract.field_product_template__display_name
#: model:ir.model.fields,field_description:product_contract.field_res_company__display_name
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__display_name
#: model:ir.model.fields,field_description:product_contract.field_sale_order__display_name
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__display_name
msgid "Display Name"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__id
#: model:ir.model.fields,field_description:product_contract.field_contract_line__id
#: model:ir.model.fields,field_description:product_contract.field_product_template__id
#: model:ir.model.fields,field_description:product_contract.field_res_company__id
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__id
#: model:ir.model.fields,field_description:product_contract.field_sale_order__id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__id
msgid "ID"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract____last_update
#: model:ir.model.fields,field_description:product_contract.field_contract_line____last_update
#: model:ir.model.fields,field_description:product_contract.field_product_template____last_update
#: model:ir.model.fields,field_description:product_contract.field_res_company____last_update
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings____last_update
#: model:ir.model.fields,field_description:product_contract.field_sale_order____last_update
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line____last_update
msgid "Last Modified on"
msgstr ""
#. module: product_contract
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__auto_renew_rule_type__monthly
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__recurring_rule_type__monthly
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__termination_notice_rule_type__monthly
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__auto_renew_rule_type__monthly
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__recurring_rule_type__monthly
msgid "Month(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__recurring_rule_type__monthlylastday
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__recurring_rule_type__monthlylastday
msgid "Month(s) last day"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
msgid "Need Contract Creation"
msgstr ""
#. module: product_contract
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__recurring_invoicing_type__post-paid
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__recurring_invoicing_type__post-paid
msgid "Post-paid"
msgstr ""
#. module: product_contract
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__recurring_invoicing_type__pre-paid
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__recurring_invoicing_type__pre-paid
msgid "Pre-paid"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr ""
#. module: product_contract
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__recurring_rule_type__quarterly
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__recurring_rule_type__quarterly
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
msgid "Sale Order Count"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
msgid "Sale Order Line"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:0
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/contract.py:0
#, python-format
msgid "Sales Orders"
msgstr ""
#. module: product_contract
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__recurring_rule_type__semesterly
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__recurring_rule_type__semesterly
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr ""
#. module: product_contract
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__auto_renew_rule_type__weekly
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__recurring_rule_type__weekly
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__termination_notice_rule_type__weekly
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__auto_renew_rule_type__weekly
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__recurring_rule_type__weekly
msgid "Week(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__auto_renew_rule_type__yearly
#: model:ir.model.fields.selection,name:product_contract.selection__product_template__recurring_rule_type__yearly
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__auto_renew_rule_type__yearly
#: model:ir.model.fields.selection,name:product_contract.selection__sale_order_line__recurring_rule_type__yearly
msgid "Year(s)"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:0
#: code:addons/product_contract/models/sale_order_line.py:0
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:0
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

325
product_contract/i18n/pt.po Normal file
View File

@@ -0,0 +1,325 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# Pedro Castro Silva <pedrocs@sossia.pt>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-15 01:24+0000\n"
"PO-Revision-Date: 2020-02-18 19:13+0000\n"
"Last-Translator: alvarorib <alvaro.ribeiro@exo.pt>\n"
"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Weblate 3.10\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr "<span class=\"o_stat_text\">Encomendas de Venda</span>"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr "Auto Renovação"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr "Criar Contratos Automaticamente na Confirmação da Encomenda de Venda"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr "Empresas"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr "Configurações"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Contrato"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
msgid "Contract Count"
msgstr "Contagem de Contratos"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
msgid "Contract Line"
msgstr "Linha de Contrato"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
msgid "Contract Line to replace"
msgstr "Linha de Contrato a substituir"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Modelo de Contrato"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr "Produtos do tipo Contrato têm diferentes modelos contratuais"
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr "Os produtos do tipo contrato devem ser do tipo Serviço"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Contracts"
msgstr "Contratos"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Create Contracts"
msgstr "Criar Contratos"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr "Data de Fim"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr "Data de Início"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr "Dia(s)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr "Quantidade Predefinida"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr "Nome a Apresentar"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr "Faturar a Cada"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr "Tipo de faturação"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "É um Contrato"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr "Mes(es)"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr "Mes(es) no último dia"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
msgid "Need Contract Creation"
msgstr "Necessário Criação de Contrato"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr "Pós-pago"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr "Pré-pago"
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Modelo de Artigo"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr "Faturação Recorrente"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
#, fuzzy
msgid "Renew Every"
msgstr "Faturar a Cada"
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
msgid "Sale Order"
msgstr "Encomenda de Venda"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
msgid "Sale Order Count"
msgstr "Nº de Encomendas de Venda"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
msgid "Sale Order Line"
msgstr "Linha de Encomenda de Venda"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr "A encomenda e o contrato deviam estar ligados ao mesmo parceiro"
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "Linha de Encomenda de Venda"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, python-format
msgid "Sales Orders"
msgstr "Encomendas de Venda"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr "Especifique o intervalo para a geração automática de faturas."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
#, fuzzy
msgid "Specify Interval for automatic renewal."
msgstr "Especifique o intervalo para a geração automática de faturas."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
"Especifique se o processamento da data é 'a partir da' ou 'até à' data de "
"faturação"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr "Aviso de Rescisão Antes"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr "Tipo de Aviso de Rescisão"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr "Semana(s)"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr "Ano(s)"
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

View File

@@ -0,0 +1,326 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
# falexandresilva <falexandresilva@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-06-13 02:40+0000\n"
"PO-Revision-Date: 2020-08-10 16:59+0000\n"
"Last-Translator: Fernando Colus <fcolus1@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/"
"23907/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.10\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr "<span class=\"o_stat_text\">Ordens de Venda</span>"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr "Renovação Automática"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr "Criar Contratos Automaticamente Na Confirmação da Ordem de Venda"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr "Empresas"
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr "Definições de Configuração"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Contrato"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
msgid "Contract Count"
msgstr "Número de Contratos"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
msgid "Contract Line"
msgstr "Linha de Contrato"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
msgid "Contract Line to replace"
msgstr "Linha do contrato para substituir"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Modelo do Contrato"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr "O produto do contrato tem um modelo de contrato diferente"
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr "O produto do contrato deve ser do tipo serviço"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Contracts"
msgstr "Contratos"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Create Contracts"
msgstr "Criar Contratos"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr "Data Final"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr "Data Inicial"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr "Dia(s)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr "Quantidade Padrão"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr "Exibir Nome"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr "Faturar a Cada"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr "Tipo de Fatuamento"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "É um contrato"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr "Mês(es)"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr "Último dia do Mês(es)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
msgid "Need Contract Creation"
msgstr "Necessidade de Criação de Contrato"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr "Pós-pago"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr "Pré-pago"
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Modelo de Produto"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr "Trimestre(s)"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr "Faturamento Recorrente"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr "Renovar a Cada"
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr "Renovar a cada (Dias/Semana/Mês/Ano)"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr "Tipo de renovação"
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
msgid "Sale Order"
msgstr "Pedido de Venda"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
msgid "Sale Order Count"
msgstr "Contagem de Ordem de Venda"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
msgid "Sale Order Line"
msgstr "Linha da Ordem de Venda"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr "Ordem de Venda e contrato devem ser relacionadas ao mesmo parceiro"
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "Linha do Pedido de Venda"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, python-format
msgid "Sales Orders"
msgstr "Ordens de Venda"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr "Semestre(s)"
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr "Especifique o intervalo para geração automática da fatura."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr "Especifique o intervalo para renovação automática."
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
"Especifique se o processo de data é 'de' ou 'para' a data de faturamento"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr "Aviso de Rescisão Anterior"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr "Tipo de Aviso de Rescisão"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr "Semana(s)"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr "Ano(s)"
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr "Não se pode adicionar ou remover ao contrato terminado"
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""
"Você deve especificar um modelo de contrato para o produto '{}' na empresa "
"'{}'."

328
product_contract/i18n/ru.po Normal file
View File

@@ -0,0 +1,328 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# nek, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-17 03:26+0000\n"
"PO-Revision-Date: 2018-03-17 03:26+0000\n"
"Last-Translator: nek, 2018\n"
"Language-Team: Russian (https://www.transifex.com/oca/teams/23907/ru/)\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
"%100>=11 && n%100<=14)? 2 : 3);\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Договор"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
#, fuzzy
msgid "Contract Count"
msgstr "Договор"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
#, fuzzy
msgid "Contract Line"
msgstr "Договор"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
#, fuzzy
msgid "Contract Line to replace"
msgstr "Шаблон Договора"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Шаблон Договора"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Contracts"
msgstr "Договор"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Create Contracts"
msgstr "Договор"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "Это Договор"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
#, fuzzy
msgid "Need Contract Creation"
msgstr "Шаблон Договора"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Шаблон Продукта"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
msgid "Sale Order"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
msgid "Sale Order Count"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
msgid "Sale Order Line"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, python-format
msgid "Sales Orders"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

329
product_contract/i18n/tr.po Normal file
View File

@@ -0,0 +1,329 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# Ediz Duman <neps1192@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-04-21 01:48+0000\n"
"PO-Revision-Date: 2018-04-21 01:48+0000\n"
"Last-Translator: Ediz Duman <neps1192@gmail.com>, 2017\n"
"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Sözleşme"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
#, fuzzy
msgid "Contract Count"
msgstr "Sözleşme"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
#, fuzzy
msgid "Contract Line"
msgstr "Sözleşme"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
#, fuzzy
msgid "Contract Line to replace"
msgstr "Sözleşme Şablonu"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr "Sözleşme Şablonu"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Contracts"
msgstr "Sözleşme"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Create Contracts"
msgstr "Sözleşme"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr "Sözleşmeli"
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
#, fuzzy
msgid "Need Contract Creation"
msgstr "Sözleşme Şablonu"
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr "Ürün Şablonu"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
#, fuzzy
msgid "Sale Order"
msgstr "Satış Siparişi"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
#, fuzzy
msgid "Sale Order Count"
msgstr "Satış Sipariş Satırı"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
#, fuzzy
msgid "Sale Order Line"
msgstr "Satış Sipariş Satırı"
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr "Satış Sipariş Satırı"
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, fuzzy, python-format
msgid "Sales Orders"
msgstr "Satış Siparişi"
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

View File

@@ -0,0 +1,325 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_contract
#
# Translators:
# Ediz Duman <neps1192@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-27 02:40+0000\n"
"PO-Revision-Date: 2017-04-27 02:40+0000\n"
"Last-Translator: Ediz Duman <neps1192@gmail.com>, 2017\n"
"Language-Team: Turkish (Turkey) (https://www.transifex.com/oca/teams/23907/"
"tr_TR/)\n"
"Language: tr_TR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.contract_contract_customer_form_view
msgid "<span class=\"o_stat_text\">Sale Orders</span>"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_auto_renew
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_auto_renew
msgid "Auto Renew"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_res_company__create_contract_at_sale_order_confirmation
#: model:ir.model.fields,field_description:product_contract.field_res_config_settings__create_contract_at_sale_order_confirmation
#: model_terms:ir.ui.view,arch_db:product_contract.res_config_settings_form_view
msgid "Automatically Create Contracts At Sale Order Confirmation"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_company
msgid "Companies"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_id
#: model_terms:ir.ui.view,arch_db:product_contract.product_template_form_contract_view
msgid "Contract"
msgstr "Sözleşme"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__contract_count
#, fuzzy
msgid "Contract Count"
msgstr "Sözleşme"
#. module: product_contract
#: model:ir.model,name:product_contract.model_contract_line
#, fuzzy
msgid "Contract Line"
msgstr "Sözleşme"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_line_id
msgid "Contract Line to replace"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_product_template__property_contract_template_id
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__contract_template_id
msgid "Contract Template"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:266
#, python-format
msgid "Contract product has different contract template"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/product_template.py:79
#, python-format
msgid "Contract product should be service type"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Contracts"
msgstr "Sözleşme"
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
#, fuzzy
msgid "Create Contracts"
msgstr "Sözleşme"
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_end
msgid "Date End"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__date_start
msgid "Date Start"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Day(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__default_qty
#: model:ir.model.fields,field_description:product_contract.field_product_template__default_qty
msgid "Default Quantity"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__display_name
msgid "Display Name"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_rule_type
msgid "Invoice Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Invoicing type"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__is_contract
#: model:ir.model.fields,field_description:product_contract.field_product_template__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__is_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__is_contract
msgid "Is a contract"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Month(s) last day"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_sale_order__need_contract_creation
msgid "Need Contract Creation"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Post-paid"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_invoicing_type:0
#: selection:sale.order.line,recurring_invoicing_type:0
msgid "Pre-paid"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_product_template
msgid "Product Template"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Quarter(s)"
msgstr ""
#. module: product_contract
#: model_terms:ir.ui.view,arch_db:product_contract.view_order_form
msgid "Recurrence Invoicing"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew Every"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_interval
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_interval
msgid "Renew every (Days/Week/Month/Year)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,field_description:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Renewal type"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order
msgid "Sale Order"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_contract__sale_order_count
msgid "Sale Order Count"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_contract_line__sale_order_line_id
msgid "Sale Order Line"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order_line.py:250
#, python-format
msgid "Sale Order and contract should be linked to the same partner"
msgstr ""
#. module: product_contract
#: model:ir.model,name:product_contract.model_sale_order_line
msgid "Sales Order Line"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/contract.py:34
#, python-format
msgid "Sales Orders"
msgstr ""
#. module: product_contract
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Semester(s)"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_rule_type
msgid "Specify Interval for automatic invoice generation."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_product_template__auto_renew_rule_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__auto_renew_rule_type
msgid "Specify Interval for automatic renewal."
msgstr ""
#. module: product_contract
#: model:ir.model.fields,help:product_contract.field_product_product__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_product_template__recurring_invoicing_type
#: model:ir.model.fields,help:product_contract.field_sale_order_line__recurring_invoicing_type
msgid "Specify if process date is 'from' or 'to' invoicing date"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_interval
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_interval
msgid "Termination Notice Before"
msgstr ""
#. module: product_contract
#: model:ir.model.fields,field_description:product_contract.field_product_product__termination_notice_rule_type
#: model:ir.model.fields,field_description:product_contract.field_product_template__termination_notice_rule_type
msgid "Termination Notice type"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:product.template,termination_notice_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Week(s)"
msgstr ""
#. module: product_contract
#: selection:product.template,auto_renew_rule_type:0
#: selection:product.template,recurring_rule_type:0
#: selection:sale.order.line,auto_renew_rule_type:0
#: selection:sale.order.line,recurring_rule_type:0
msgid "Year(s)"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:29
#: code:addons/product_contract/models/sale_order_line.py:80
#, python-format
msgid "You can't upsell or downsell a terminated contract"
msgstr ""
#. module: product_contract
#: code:addons/product_contract/models/sale_order.py:93
#, python-format
msgid "You must specify a contract template for '{}' product in '{}' company."
msgstr ""

View File

@@ -0,0 +1,11 @@
# Copyright 2017 LasLabs Inc.
# Copyright 2018 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import contract
from . import contract_line
from . import product_template
from . import sale_order
from . import sale_order_line
from . import res_company
from . import res_config_settings

View File

@@ -0,0 +1,38 @@
# Copyright 2018 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
from odoo.exceptions import AccessError
from odoo.tools.translate import _
class ContractContract(models.Model):
_inherit = "contract.contract"
sale_order_count = fields.Integer(compute="_compute_sale_order_count")
@api.depends("contract_line_ids")
def _compute_sale_order_count(self):
for rec in self:
try:
order_count = len(
rec.contract_line_ids.mapped("sale_order_line_id.order_id")
)
except AccessError:
order_count = 0
rec.sale_order_count = order_count
def action_view_sales_orders(self):
self.ensure_one()
orders = self.contract_line_ids.mapped("sale_order_line_id.order_id")
action = {
"name": _("Sales Orders"),
"view_mode": "tree,form",
"res_model": "sale.order",
"type": "ir.actions.act_window",
"domain": [("id", "in", orders.ids)],
}
if len(orders) == 1:
# If there is only one order, open it directly
action.update({"view_mode": "form", "res_id": orders.id})
return action

View File

@@ -0,0 +1,77 @@
# Copyright 2017 LasLabs Inc.
# Copyright 2018 ACSONE SA/NV.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import Command, api, fields, models
class ContractLine(models.Model):
_inherit = "contract.line"
_rec_name = "display_name"
sale_order_line_id = fields.Many2one(
comodel_name="sale.order.line",
string="Sale Order Line",
required=False,
copy=False,
)
def _prepare_invoice_line(self):
res = super()._prepare_invoice_line()
if self.sale_order_line_id and res:
res["sale_line_ids"] = [Command.set([self.sale_order_line_id.id])]
return res
def _get_auto_renew_rule_type(self):
"""monthly last day don't make sense for auto_renew_rule_type"""
self.ensure_one()
if self.recurring_rule_type == "monthlylastday":
return "monthly"
return self.recurring_rule_type
@api.onchange("product_id")
def _onchange_product_id_recurring_info(self):
for rec in self:
rec.date_start = fields.Date.today()
if rec.product_id.is_contract:
rec.update(
{
"is_auto_renew": rec.product_id.is_auto_renew,
"auto_renew_interval": rec.product_id.auto_renew_interval,
"auto_renew_rule_type": rec.product_id.auto_renew_rule_type,
"termination_notice_interval": (
rec.product_id.termination_notice_interval
),
"termination_notice_rule_type": (
rec.product_id.termination_notice_rule_type
),
}
)
def _set_recurrence_field(self, field):
res = super()._set_recurrence_field(field)
for record in self:
if record.product_id.is_contract and field in record.product_id:
record[field] = record.product_id[field]
return res
@api.depends(
"contract_id.recurring_rule_type", "contract_id.line_recurrence", "product_id"
)
def _compute_recurring_rule_type(self):
return super()._compute_recurring_rule_type()
@api.depends(
"contract_id.recurring_invoicing_type",
"contract_id.line_recurrence",
"product_id",
)
def _compute_recurring_invoicing_type(self):
return super()._compute_recurring_invoicing_type()
@api.depends(
"contract_id.recurring_interval", "contract_id.line_recurrence", "product_id"
)
def _compute_recurring_interval(self):
return super()._compute_recurring_interval()

View File

@@ -0,0 +1,79 @@
# Copyright 2017 LasLabs Inc.
# Copyright 2018 ACSONE SA/NV.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
class ProductTemplate(models.Model):
_inherit = "product.template"
is_contract = fields.Boolean("Is a contract")
property_contract_template_id = fields.Many2one(
comodel_name="contract.template",
string="Contract Template",
company_dependent=True,
)
default_qty = fields.Integer(string="Default Quantity", default=1)
recurring_rule_type = fields.Selection(
[
("daily", "Day(s)"),
("weekly", "Week(s)"),
("monthly", "Month(s)"),
("monthlylastday", "Month(s) last day"),
("quarterly", "Quarter(s)"),
("semesterly", "Semester(s)"),
("yearly", "Year(s)"),
],
default="monthly",
string="Invoice Every",
help="Specify Interval for automatic invoice generation.",
)
recurring_invoicing_type = fields.Selection(
[("pre-paid", "Pre-paid"), ("post-paid", "Post-paid")],
default="pre-paid",
string="Invoicing type",
help="Specify if process date is 'from' or 'to' invoicing date",
)
is_auto_renew = fields.Boolean(string="Auto Renew", default=False)
termination_notice_interval = fields.Integer(
default=1, string="Termination Notice Before"
)
termination_notice_rule_type = fields.Selection(
[("daily", "Day(s)"), ("weekly", "Week(s)"), ("monthly", "Month(s)")],
default="monthly",
string="Termination Notice type",
)
auto_renew_interval = fields.Integer(
default=1,
string="Renew Every",
help="Renew every (Days/Week/Month/Year)",
)
auto_renew_rule_type = fields.Selection(
[
("daily", "Day(s)"),
("weekly", "Week(s)"),
("monthly", "Month(s)"),
("yearly", "Year(s)"),
],
default="yearly",
string="Renewal type",
help="Specify Interval for automatic renewal.",
)
def write(self, vals):
if "is_contract" in vals and vals["is_contract"] is False:
for company in self.env["res.company"].search([]):
self.with_company(company).write(
{"property_contract_template_id": False}
)
return super().write(vals)
@api.constrains("is_contract", "type")
def _check_contract_product_type(self):
"""
Contract product should be service type
"""
if any([product.is_contract and product.type != "service" for product in self]):
raise ValidationError(_("Contract product should be service type"))

View File

@@ -0,0 +1,13 @@
# Copyright 2019 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class ResCompany(models.Model):
_inherit = "res.company"
create_contract_at_sale_order_confirmation = fields.Boolean(
string="Automatically Create Contracts At Sale Order Confirmation",
default=True,
)

View File

@@ -0,0 +1,12 @@
# Copyright 2019 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
create_contract_at_sale_order_confirmation = fields.Boolean(
related="company_id.create_contract_at_sale_order_confirmation", readonly=False
)

View File

@@ -0,0 +1,148 @@
# Copyright 2017 LasLabs Inc.
# Copyright 2018 ACSONE SA/NV.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
class SaleOrder(models.Model):
_inherit = "sale.order"
is_contract = fields.Boolean(string="Is a contract", compute="_compute_is_contract")
contract_count = fields.Integer(compute="_compute_contract_count")
need_contract_creation = fields.Boolean(compute="_compute_need_contract_creation")
@api.constrains("state")
def _check_contact_is_not_terminated(self):
for rec in self:
if rec.state not in (
"sale",
"done",
"cancel",
) and rec.order_line.filtered("contract_id.is_terminated"):
raise ValidationError(
_("You can't upsell or downsell a terminated contract")
)
@api.depends("order_line.contract_id", "state")
def _compute_need_contract_creation(self):
self.update({"need_contract_creation": False})
for rec in self:
if rec.state in ("sale", "done"):
line_to_create_contract = rec.order_line.filtered(
lambda r: not r.contract_id and r.product_id.is_contract
)
line_to_update_contract = rec.order_line.filtered(
lambda r: r.contract_id
and r.product_id.is_contract
and r
not in r.contract_id.contract_line_ids.mapped("sale_order_line_id")
)
if line_to_create_contract or line_to_update_contract:
rec.need_contract_creation = True
@api.depends("order_line")
def _compute_is_contract(self):
self.is_contract = any(self.order_line.mapped("is_contract"))
def _prepare_contract_value(self, contract_template):
self.ensure_one()
return {
"name": f"{contract_template.name}: {self.name}",
"partner_id": self.partner_id.id,
"company_id": self.company_id.id,
"contract_template_id": contract_template.id,
"user_id": self.user_id.id,
"payment_term_id": self.payment_term_id.id,
"fiscal_position_id": self.fiscal_position_id.id,
"invoice_partner_id": self.partner_invoice_id.id,
"line_recurrence": True,
}
def action_create_contract(self):
contract_model = self.env["contract.contract"]
contracts = []
for rec in self.filtered("is_contract"):
line_to_create_contract = rec.order_line.filtered(
lambda r: not r.contract_id and r.product_id.is_contract
)
line_to_update_contract = rec.order_line.filtered(
lambda r: r.contract_id
and r.product_id.is_contract
and r
not in r.contract_id.contract_line_ids.mapped("sale_order_line_id")
)
contract_templates = self.env["contract.template"]
for order_line in line_to_create_contract:
contract_template = order_line.product_id.with_company(
rec.company_id
).property_contract_template_id
if not contract_template:
raise ValidationError(
_(
"You must specify a contract "
"template for '%(product_name)s' product "
"in '%(company_name)s' company."
)
% {
"product_name": order_line.product_id.name,
"company_name": rec.company_id.name,
}
)
contract_templates |= contract_template
for contract_template in contract_templates:
order_lines = line_to_create_contract.filtered(
lambda r, template=contract_template: r.product_id.with_company(
r.order_id.company_id
).property_contract_template_id
== template
)
contract = contract_model.create(
rec._prepare_contract_value(contract_template)
)
contracts.append(contract.id)
contract._onchange_contract_template_id()
contract._onchange_contract_type()
order_lines.create_contract_line(contract)
order_lines.write({"contract_id": contract.id})
for line in line_to_update_contract:
line.create_contract_line(line.contract_id)
return contract_model.browse(contracts)
def action_confirm(self):
"""If we have a contract in the order, set it up"""
self.filtered(
lambda order: (order.company_id.create_contract_at_sale_order_confirmation)
).action_create_contract()
return super().action_confirm()
@api.depends("order_line")
def _compute_contract_count(self):
for rec in self:
rec.contract_count = len(rec.order_line.mapped("contract_id"))
def action_show_contracts(self):
self.ensure_one()
action = self.env["ir.actions.act_window"]._for_xml_id(
"contract.action_customer_contract"
)
contracts = (
self.env["contract.line"]
.search([("sale_order_line_id", "in", self.order_line.ids)])
.mapped("contract_id")
)
action["domain"] = [
("contract_line_ids.sale_order_line_id", "in", self.order_line.ids)
]
if len(contracts) == 1:
# If there is only one contract, open it directly
action.update(
{
"res_id": contracts.id,
"view_mode": "form",
"views": filter(lambda view: view[1] == "form", action["views"]),
}
)
return action

View File

@@ -0,0 +1,271 @@
# Copyright 2017 LasLabs Inc.
# Copyright 2017 ACSONE SA/NV.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from dateutil.relativedelta import relativedelta
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
class SaleOrderLine(models.Model):
_inherit = "sale.order.line"
is_contract = fields.Boolean(
string="Is a contract", related="product_id.is_contract"
)
contract_id = fields.Many2one(
comodel_name="contract.contract", string="Contract", copy=False
)
contract_template_id = fields.Many2one(
comodel_name="contract.template",
string="Contract Template",
compute="_compute_contract_template_id",
)
recurring_rule_type = fields.Selection(
[
("daily", "Day(s)"),
("weekly", "Week(s)"),
("monthly", "Month(s)"),
("monthlylastday", "Month(s) last day"),
("quarterly", "Quarter(s)"),
("semesterly", "Semester(s)"),
("yearly", "Year(s)"),
],
default="monthly",
string="Invoice Every",
copy=False,
)
recurring_invoicing_type = fields.Selection(
[("pre-paid", "Pre-paid"), ("post-paid", "Post-paid")],
default="pre-paid",
string="Invoicing type",
help="Specify if process date is 'from' or 'to' invoicing date",
copy=False,
)
date_start = fields.Date()
date_end = fields.Date()
contract_line_id = fields.Many2one(
comodel_name="contract.line",
string="Contract Line to replace",
required=False,
copy=False,
)
is_auto_renew = fields.Boolean(
string="Auto Renew",
compute="_compute_auto_renew",
default=False,
store=True,
readonly=False,
)
auto_renew_interval = fields.Integer(
default=1,
string="Renew Every",
compute="_compute_auto_renew",
store=True,
readonly=False,
help="Renew every (Days/Week/Month/Year)",
)
auto_renew_rule_type = fields.Selection(
[
("daily", "Day(s)"),
("weekly", "Week(s)"),
("monthly", "Month(s)"),
("yearly", "Year(s)"),
],
default="yearly",
compute="_compute_auto_renew",
store=True,
readonly=False,
string="Renewal type",
help="Specify Interval for automatic renewal.",
)
@api.constrains("contract_id")
def _check_contact_is_not_terminated(self):
for rec in self:
if (
rec.order_id.state not in ("sale", "done", "cancel")
and rec.contract_id.is_terminated
):
raise ValidationError(
_("You can't upsell or downsell a terminated contract")
)
@api.depends("product_id", "order_id.company_id")
def _compute_contract_template_id(self):
for rec in self:
rec.contract_template_id = rec.product_id.with_company(
rec.order_id.company_id
).property_contract_template_id
def _get_auto_renew_rule_type(self):
"""monthly last day don't make sense for auto_renew_rule_type"""
self.ensure_one()
if self.recurring_rule_type == "monthlylastday":
return "monthly"
return self.recurring_rule_type
def _get_date_end(self):
self.ensure_one()
contract_line_model = self.env["contract.line"]
date_end = (
self.date_start
+ contract_line_model.get_relative_delta(
self._get_auto_renew_rule_type(),
int(self.product_uom_qty),
)
- relativedelta(days=1)
)
return date_end
@api.depends("product_id")
def _compute_auto_renew(self):
for rec in self:
if rec.product_id.is_contract:
rec.product_uom_qty = rec.product_id.default_qty
rec.recurring_rule_type = rec.product_id.recurring_rule_type
rec.recurring_invoicing_type = rec.product_id.recurring_invoicing_type
rec.date_start = rec.date_start or fields.Date.today()
rec.date_end = rec._get_date_end()
rec.is_auto_renew = rec.product_id.is_auto_renew
if rec.is_auto_renew:
rec.auto_renew_interval = rec.product_id.auto_renew_interval
rec.auto_renew_rule_type = rec.product_id.auto_renew_rule_type
@api.onchange("date_start", "product_uom_qty", "recurring_rule_type")
def onchange_date_start(self):
for rec in self.filtered("product_id.is_contract"):
rec.date_end = rec._get_date_end() if rec.date_start else False
def _get_contract_line_qty(self):
"""Returns the amount that will be placed in new contract lines."""
self.ensure_one()
# The quantity in the generated contract line is the quantity of
# product requested in the order, since they correspond to the most common
# use cases.
# Other use cases are easy to implement by overriding this method.
return self.product_uom_qty
def _prepare_contract_line_values(
self, contract, predecessor_contract_line_id=False
):
"""
:param contract: related contract
:param predecessor_contract_line_id: contract line to replace id
:return: new contract line dict
"""
self.ensure_one()
recurring_next_date = self.env[
"contract.line"
]._compute_first_recurring_next_date(
self.date_start or fields.Date.today(),
self.recurring_invoicing_type,
self.recurring_rule_type,
1,
)
termination_notice_interval = self.product_id.termination_notice_interval
termination_notice_rule_type = self.product_id.termination_notice_rule_type
return {
"sequence": self.sequence,
"product_id": self.product_id.id,
"name": self.name,
"quantity": self._get_contract_line_qty(),
"uom_id": self.product_uom.id,
"price_unit": self.price_unit,
"discount": self.discount,
"date_end": self.date_end,
"date_start": self.date_start or fields.Date.today(),
"recurring_next_date": recurring_next_date,
"recurring_interval": 1,
"recurring_invoicing_type": self.recurring_invoicing_type,
"recurring_rule_type": self.recurring_rule_type,
"is_auto_renew": self.is_auto_renew,
"auto_renew_interval": self.auto_renew_interval,
"auto_renew_rule_type": self.auto_renew_rule_type,
"termination_notice_interval": termination_notice_interval,
"termination_notice_rule_type": termination_notice_rule_type,
"contract_id": contract.id,
"sale_order_line_id": self.id,
"predecessor_contract_line_id": predecessor_contract_line_id,
"analytic_distribution": self.analytic_distribution,
}
def create_contract_line(self, contract):
contract_line_model = self.env["contract.line"]
contract_line = self.env["contract.line"]
predecessor_contract_line = False
for rec in self:
if rec.contract_line_id:
# If the upsell/downsell line start at the same date or before
# the contract line to replace supposed to start, we cancel
# the one to be replaced. Otherwise we stop it.
if rec.date_start <= rec.contract_line_id.date_start:
# The contract will handel the contract line integrity
# An exception will be raised if we try to cancel an
# invoiced contract line
rec.contract_line_id.cancel()
elif (
not rec.contract_line_id.date_end
or rec.date_start <= rec.contract_line_id.date_end
):
rec.contract_line_id.stop(rec.date_start - relativedelta(days=1))
predecessor_contract_line = rec.contract_line_id
if predecessor_contract_line:
new_contract_line = contract_line_model.create(
rec._prepare_contract_line_values(
contract, predecessor_contract_line.id
)
)
predecessor_contract_line.successor_contract_line_id = new_contract_line
else:
new_contract_line = contract_line_model.create(
rec._prepare_contract_line_values(contract)
)
contract_line |= new_contract_line
return contract_line
@api.constrains("contract_id")
def _check_contract_sale_partner(self):
for rec in self:
if rec.contract_id:
if rec.order_id.partner_id != rec.contract_id.partner_id:
raise ValidationError(
_(
"Sale Order and contract should be "
"linked to the same partner"
)
)
@api.constrains("product_id", "contract_id")
def _check_contract_sale_contract_template(self):
for rec in self:
if rec.contract_id:
if (
rec.contract_id.contract_template_id
and rec.contract_template_id != rec.contract_id.contract_template_id
):
raise ValidationError(
_("Contract product has different contract template")
)
def _compute_invoice_status(self):
res = super()._compute_invoice_status()
self.filtered("contract_id").update({"invoice_status": "no"})
return res
def invoice_line_create(self, invoice_id, qty):
return super(
SaleOrderLine, self.filtered(lambda line: not line.contract_id)
).invoice_line_create(invoice_id, qty)
@api.depends("qty_invoiced", "qty_delivered", "product_uom_qty", "state")
def _compute_qty_to_invoice(self):
"""
sale line linked to contracts must not be invoiced from sale order
"""
res = super()._compute_qty_to_invoice()
self.filtered("product_id.is_contract").update({"qty_to_invoice": 0.0})
return res

View File

@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@@ -0,0 +1,6 @@
- Ted Salmon \<<tsalmon@laslabs.com>\>
- Souheil Bejaoui \<<souheil.bejaoui@acsone.eu>\>
- [Tecnativa](https://www.tecnativa.com):
- Ernesto Tejeda
- Pedro M. Baeza
- David Jaen \<<david.jaen.revert@gmail.com>\>

View File

@@ -0,0 +1,8 @@
This module adds support for products to be linked to contract
templates.
A contract is created on `sale.order` confirmation for each different
template used in sale order line where recurrence details are set too.
Contract product are ignored on invoicing process and pass to nothing to
invoice directly.

View File

@@ -0,0 +1,6 @@
To use this module, you need to:
1. Go to Sales -\> Products and select or create a product.
2. Check "Is a contract" and select the contract template related to
the product
3. Define default recurrence rules

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,449 @@
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>Recurring - Product Contract</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="recurring-product-contract">
<h1 class="title">Recurring - Product Contract</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:ad8724fbb6c54e3f450ed7f3b3aa16384ed79b097065f0de96cc56e87eef2e71
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.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/17.0/product_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-17-0/contract-17-0-product_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=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module adds support for products to be linked to contract
templates.</p>
<p>A contract is created on <tt class="docutils literal">sale.order</tt> confirmation for each different
template used in sale order line where recurrence details are set too.</p>
<p>Contract product are ignored on invoicing process and pass to nothing to
invoice directly.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#usage" id="toc-entry-1">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-6">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-1">Usage</a></h1>
<p>To use this module, you need to:</p>
<ol class="arabic simple">
<li>Go to Sales -&gt; Products and select or create a product.</li>
<li>Check “Is a contract” and select the contract template related to the
product</li>
<li>Define default recurrence rules</li>
</ol>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/contract/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/contract/issues/new?body=module:%20product_contract%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#toc-entry-3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-4">Authors</a></h2>
<ul class="simple">
<li>LasLabs</li>
<li>ACSONE SA/NV</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<ul class="simple">
<li>Ted Salmon &lt;<a class="reference external" href="mailto:tsalmon&#64;laslabs.com">tsalmon&#64;laslabs.com</a>&gt;</li>
<li>Souheil Bejaoui &lt;<a class="reference external" href="mailto:souheil.bejaoui&#64;acsone.eu">souheil.bejaoui&#64;acsone.eu</a>&gt;</li>
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Ernesto Tejeda</li>
<li>Pedro M. Baeza</li>
</ul>
</li>
<li>David Jaen &lt;<a class="reference external" href="mailto:david.jaen.revert&#64;gmail.com">david.jaen.revert&#64;gmail.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-6">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
<p><a class="reference external image-reference" href="https://github.com/sbejaoui"><img alt="sbejaoui" src="https://github.com/sbejaoui.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/contract/tree/17.0/product_contract">OCA/contract</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,6 @@
# Copyright 2017 LasLabs Inc.
# Copyright 2018 ACSONE SA/NV.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import test_product
from . import test_sale_order

View File

@@ -0,0 +1,39 @@
# Copyright 2017 LasLabs Inc.
# Copyright 2018 ACSONE SA/NV.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo.exceptions import ValidationError
from odoo.tests.common import TransactionCase
class TestProductTemplate(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.env = cls.env(
context=dict(
cls.env.context,
tracking_disable=True,
no_reset_password=True,
)
)
cls.service_product = cls.env.ref("product.product_product_1")
cls.consu_product = cls.env.ref("product.product_product_5")
cls.contract = cls.env["contract.template"].create({"name": "Test"})
def test_change_is_contract(self):
"""It should verify that the property_contract_template_id
field value is removed for all the companies when
is_contract is set to False"""
self.service_product.is_contract = True
self.service_product.property_contract_template_id = self.contract.id
self.service_product.is_contract = False
self.assertEqual(len(self.service_product.property_contract_template_id), 0)
def test_check_contract_product_type(self):
"""
It should raise ValidationError on change of is_contract to True
for consu product
"""
with self.assertRaises(ValidationError):
self.consu_product.is_contract = True

View File

@@ -0,0 +1,372 @@
# Copyright 2017 LasLabs Inc.
# Copyright 2018 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from dateutil.relativedelta import relativedelta
from odoo.exceptions import UserError, ValidationError
from odoo.fields import Date
from odoo.tests.common import TransactionCase
class TestSaleOrder(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.env = cls.env(
context=dict(
cls.env.context,
tracking_disable=True,
no_reset_password=True,
)
)
cls.product1 = cls.env.ref("product.product_product_1")
cls.product2 = cls.env.ref("product.product_product_2")
cls.sale = cls.env.ref("sale.sale_order_2")
cls.contract_template1 = cls.env["contract.template"].create(
{"name": "Template 1"}
)
cls.contract_template2 = cls.env["contract.template"].create(
{
"name": "Template 2",
"contract_line_ids": [
(
0,
0,
{
"product_id": cls.product2.id,
"name": "Services from #START# to #END#",
"quantity": 1,
"uom_id": cls.product2.uom_id.id,
"price_unit": 100,
"discount": 50,
"recurring_rule_type": "yearly",
"recurring_interval": 1,
},
)
],
}
)
cls.product1.with_company(cls.sale.company_id).write(
{
"is_contract": True,
"default_qty": 12,
"recurring_rule_type": "monthlylastday",
"recurring_invoicing_type": "post-paid",
"property_contract_template_id": cls.contract_template1.id,
}
)
cls.product2.with_company(cls.sale.company_id).write(
{
"is_contract": True,
"property_contract_template_id": cls.contract_template2.id,
}
)
cls.order_line1 = cls.sale.order_line.filtered(
lambda line: line.product_id == cls.product1
)
cls.order_line1.date_start = "2018-01-01"
cls.order_line1.product_uom_qty = 12
pricelist = cls.sale.partner_id.property_product_pricelist.id
cls.contract = cls.env["contract.contract"].create(
{
"name": "Test Contract 2",
"partner_id": cls.sale.partner_id.id,
"pricelist_id": pricelist,
"contract_type": "sale",
"line_recurrence": True,
"contract_template_id": cls.contract_template1.id,
"contract_line_ids": [
(
0,
0,
{
"product_id": cls.product1.id,
"name": "Services from #START# to #END#",
"quantity": 1,
"uom_id": cls.product1.uom_id.id,
"price_unit": 100,
"discount": 50,
"recurring_rule_type": "monthly",
"recurring_interval": 1,
"date_start": "2016-02-15",
"recurring_next_date": "2016-02-29",
},
)
],
}
)
cls.contract_line = cls.contract.contract_line_ids[0]
def test_compute_is_contract(self):
"""Sale Order should have is_contract true if one of its lines is
contract"""
self.assertTrue(self.sale.is_contract)
def test_action_confirm(self):
"""It should create a contract for each contract template used in
order_line"""
self.order_line1._compute_auto_renew()
self.sale.action_confirm()
contracts = self.sale.order_line.mapped("contract_id")
self.assertEqual(len(contracts), 2)
self.assertEqual(
self.order_line1.contract_id.contract_template_id,
self.contract_template1,
)
contract_line = self.order_line1.contract_id.contract_line_ids
self.assertEqual(contract_line.date_start, Date.to_date("2018-01-01"))
self.assertEqual(contract_line.date_end, Date.to_date("2018-12-31"))
self.assertEqual(contract_line.recurring_next_date, Date.to_date("2018-01-31"))
def test_change_sale_company(self):
self.assertTrue(self.sale.company_id)
other_company = self.env["res.company"].create(
{"name": "other company", "parent_id": self.sale.company_id.id}
)
with self.assertRaises(UserError):
self.sale.company_id = other_company
self.sale.action_confirm()
def test_change_sale_company_2(self):
"""Contract company must be the sale order company."""
self.assertTrue(self.sale.company_id)
self.sale.action_confirm()
contracts = self.sale.order_line.mapped("contract_id")
self.assertEqual(contracts.mapped("company_id"), self.sale.company_id)
def test_sale_order_invoice_status(self):
"""
sale line linked to contracts must not be invoiced from sale order
"""
self.sale.action_confirm()
self.assertEqual(self.order_line1.invoice_status, "no")
invoice = self.order_line1.contract_id.recurring_create_invoice()
self.assertTrue(invoice)
self.assertEqual(
self.order_line1.qty_invoiced, self.order_line1.product_uom_qty
)
self.assertEqual(self.order_line1.qty_to_invoice, 0)
def test_action_confirm_without_contract_creation(self):
"""It should create a contract for each contract template used in
order_line"""
self.sale.company_id.create_contract_at_sale_order_confirmation = False
self.order_line1._compute_auto_renew()
self.sale.action_confirm()
self.assertEqual(len(self.sale.order_line.mapped("contract_id")), 0)
self.assertTrue(self.sale.need_contract_creation)
self.sale.action_create_contract()
self.assertEqual(len(self.sale.order_line.mapped("contract_id")), 2)
self.assertFalse(self.sale.need_contract_creation)
self.assertEqual(
self.order_line1.contract_id.contract_template_id,
self.contract_template1,
)
contract_line = self.order_line1.contract_id.contract_line_ids
self.assertEqual(contract_line.date_start, Date.to_date("2018-01-01"))
self.assertEqual(contract_line.date_end, Date.to_date("2018-12-31"))
self.assertEqual(contract_line.recurring_next_date, Date.to_date("2018-01-31"))
def test_sale_contract_count(self):
"""It should count contracts as many different contract template used
in order_line"""
self.order_line1._compute_auto_renew()
self.sale.action_confirm()
self.assertEqual(self.sale.contract_count, 2)
def test_onchange_product(self):
"""It should get recurrence invoicing info to the sale line from
its product"""
self.order_line1._compute_auto_renew()
self.assertEqual(
self.order_line1.recurring_rule_type,
self.product1.recurring_rule_type,
)
self.assertEqual(
self.order_line1.recurring_invoicing_type,
self.product1.recurring_invoicing_type,
)
self.assertEqual(self.order_line1.date_end, Date.to_date("2018-12-31"))
def test_check_contract_sale_partner(self):
"""Can't link order line to a partner contract different then the
order one"""
contract2 = self.env["contract.contract"].create(
{
"name": "Contract",
"contract_template_id": self.contract_template2.id,
"partner_id": self.sale.partner_id.id,
"line_recurrence": True,
}
)
with self.assertRaises(ValidationError):
self.order_line1.contract_id = contract2
def test_check_contract_sale_contract_template(self):
"""Can't link order line to a contract with different contract
template then the product one"""
contract1 = self.env["contract.contract"].create(
{
"name": "Contract",
"partner_id": self.env.user.partner_id.id,
"contract_template_id": self.contract_template1.id,
"line_recurrence": True,
}
)
with self.assertRaises(ValidationError):
self.order_line1.contract_id = contract1
def test_no_contract_proudct(self):
"""it should create contract for only product contract"""
self.product1.is_contract = False
self.sale.action_confirm()
self.assertFalse(self.order_line1.contract_id)
def test_sale_order_line_invoice_status(self):
"""Sale order line for contract product should have nothing to
invoice as status"""
self.order_line1._compute_auto_renew()
self.sale.action_confirm()
self.assertEqual(self.order_line1.invoice_status, "no")
def test_sale_order_invoice_status_2(self):
"""Sale order with only contract product should have nothing to
invoice status directtly"""
self.sale.order_line.filtered(
lambda line: not line.product_id.is_contract
).unlink()
self.order_line1._compute_auto_renew()
self.sale.action_confirm()
self.assertEqual(self.sale.invoice_status, "no")
def test_sale_order_create_invoice(self):
"""Should not invoice contract product on sale order create invoice"""
self.product2.is_contract = False
self.product2.invoice_policy = "order"
self.order_line1._compute_auto_renew()
self.sale.action_confirm()
self.sale._create_invoices()
self.assertEqual(len(self.sale.invoice_ids), 1)
invoice_line = self.sale.invoice_ids.invoice_line_ids.filtered(
lambda line: line.product_id.is_contract
)
self.assertEqual(len(invoice_line), 0)
def test_link_contract_invoice_to_sale_order(self):
"""It should link contract invoice to sale order"""
self.order_line1._compute_auto_renew()
self.sale.action_confirm()
invoice = self.order_line1.contract_id.recurring_create_invoice()
self.assertTrue(invoice in self.sale.invoice_ids)
def test_contract_upsell(self):
"""Should stop contract line at sale order line start date"""
self.order_line1.contract_id = self.contract
self.order_line1.contract_line_id = self.contract_line
self.contract_line.date_end = Date.today() + relativedelta(months=4)
self.contract_line.is_auto_renew = True
self.order_line1.date_start = "2018-06-01"
self.order_line1._compute_auto_renew()
self.sale.action_confirm()
self.assertEqual(self.contract_line.date_end, Date.to_date("2018-05-31"))
self.assertFalse(self.contract_line.is_auto_renew)
new_contract_line = self.env["contract.line"].search(
[("sale_order_line_id", "=", self.order_line1.id)]
)
self.assertEqual(
self.contract_line.successor_contract_line_id, new_contract_line
)
self.assertEqual(
new_contract_line.predecessor_contract_line_id, self.contract_line
)
def test_contract_upsell_2(self):
"""Should stop contract line at sale order line start date"""
self.order_line1.contract_id = self.contract
self.order_line1.contract_line_id = self.contract_line
self.contract_line.write(
{
"date_start": "2018-06-01",
"recurring_next_date": "2018-06-01",
"date_end": False,
}
)
self.order_line1.date_start = "2018-06-01"
self.order_line1._compute_auto_renew()
self.sale.action_confirm()
self.assertFalse(self.contract_line.date_end)
self.assertTrue(self.contract_line.is_canceled)
def test_onchange_product_id_recurring_info(self):
self.product2.write(
{
"recurring_rule_type": "monthly",
"recurring_invoicing_type": "pre-paid",
"is_auto_renew": True,
"default_qty": 12,
"termination_notice_interval": "6",
"termination_notice_rule_type": "weekly",
}
)
self.contract_line.write(
{
"date_start": Date.today(),
"date_end": Date.today() + relativedelta(years=1),
"recurring_next_date": Date.today(),
"product_id": self.product2.id,
}
)
self.contract_line._onchange_product_id_recurring_info()
self.assertEqual(self.contract_line.recurring_rule_type, "monthly")
self.assertEqual(self.contract_line.recurring_invoicing_type, "pre-paid")
self.assertEqual(self.contract_line.recurring_interval, 1)
self.assertEqual(self.contract_line.is_auto_renew, True)
self.assertEqual(self.contract_line.auto_renew_interval, 1)
self.assertEqual(self.contract_line.auto_renew_rule_type, "yearly")
self.assertEqual(self.contract_line.termination_notice_interval, 6)
self.assertEqual(self.contract_line.termination_notice_rule_type, "weekly")
def test_action_show_contracts(self):
self.sale.action_confirm()
action = self.sale.action_show_contracts()
self.assertEqual(
self.env["contract.contract"].search(action["domain"]),
self.sale.order_line.mapped("contract_id"),
)
def test_check_contact_is_not_terminated(self):
self.contract.is_terminated = True
with self.assertRaises(ValidationError):
self.order_line1.contract_id = self.contract
def test_check_contact_is_not_terminated_1(self):
self.order_line1.contract_id = self.contract
self.sale.action_confirm()
self.contract.is_terminated = True
self.sale._action_cancel()
with self.assertRaises(ValidationError):
self.sale.action_draft()
self.contract.is_terminated = False
self.sale.action_draft()
def test_order_lines_with_the_same_contract_template(self):
"""It should create one contract with two lines grouped by contract
template"""
self.product2.with_company(self.sale.company_id).write(
{
"is_contract": True,
"property_contract_template_id": self.contract_template1.id,
}
)
self.sale.order_line._compute_auto_renew()
self.sale.action_confirm()
contracts = self.sale.order_line.mapped("contract_id")
self.assertEqual(len(contracts), 1)
self.assertEqual(len(contracts.contract_line_ids), 2)
contracts = (
self.env["contract.line"]
.search([("sale_order_line_id", "in", self.sale.order_line.ids)])
.mapped("contract_id")
)
self.assertEqual(len(contracts), 1)

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2018 ACSONE SA/NV.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>
<record id="contract_contract_customer_form_view" model="ir.ui.view">
<field name="model">contract.contract</field>
<field name="inherit_id" ref="contract.contract_contract_customer_form_view" />
<field name="arch" type="xml">
<xpath expr="//div[@name='button_box']" position="inside">
<button
class="oe_stat_button"
name="action_view_sales_orders"
type="object"
icon="fa-edit"
invisible="sale_order_count == 0"
>
<div class="o_field_widget o_stat_info">
<span class="o_stat_value">
<field name="sale_order_count" />
</span>
<span class="o_stat_text">Sale Orders</span>
</div>
</button>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2017 LasLabs Inc.
Copyright 2018 ACSONE SA/NV.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>
<record id="product_template_form_contract_view" model="ir.ui.view">
<field name="name">account.invoice.select.contract</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view" />
<field name="arch" type="xml">
<xpath expr="//div[@name='options']" position="inside">
<div invisible="type != 'service'">
<field name="is_contract" />
<label for="is_contract" />
</div>
</xpath>
<xpath expr="//notebook" position="inside">
<page
string="Contract"
name="contract"
invisible="is_contract == False"
>
<group>
<field name="property_contract_template_id" />
</group>
<group name="recurrence_info">
<group>
<field name="recurring_rule_type" />
</group>
<group>
<field name="default_qty" />
<field name="recurring_invoicing_type" />
</group>
</group>
<group>
<field name="is_auto_renew" />
</group>
<group>
<group invisible="is_auto_renew == False">
<label for="auto_renew_interval" />
<div>
<field
name="auto_renew_interval"
class="oe_inline"
nolabel="1"
required="is_auto_renew == True"
/>
<field
name="auto_renew_rule_type"
class="oe_inline"
nolabel="1"
required="is_auto_renew == True"
/>
</div>
</group>
<group invisible="is_auto_renew == False">
<label for="termination_notice_interval" />
<div>
<field
name="termination_notice_interval"
class="oe_inline"
nolabel="1"
required="is_auto_renew == True"
/>
<field
name="termination_notice_rule_type"
class="oe_inline"
nolabel="1"
required="is_auto_renew == True"
/>
</div>
</group>
</group>
</page>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2018 ACSONE SA/NV.
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>
<record id="view_order_form" model="ir.ui.view">
<field name="name">sale.order.form (in product_contract)</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form" />
<field name="arch" type="xml">
<xpath expr="//header" position="inside">
<field name="need_contract_creation" invisible="1" />
<button
name="action_create_contract"
string="Create Contracts"
type="object"
class="oe_highlight"
invisible="need_contract_creation == False"
/>
</xpath>
<xpath expr="//div[@name='button_box']" position="inside">
<button
name="action_show_contracts"
type="object"
icon="fa-book"
class="oe_stat_button"
insivible="is_contract != True or state not in ['sale', 'done'] or contract_count == 0"
>
<field string="Contracts" name="contract_count" widget="statinfo" />
</button>
</xpath>
<xpath expr="//field[@name='order_line']" position="before">
<field name="is_contract" invisible="1" />
</xpath>
<xpath
expr="//field[@name='order_line']/form//field[@name='product_id']"
position="after"
>
<field name="contract_template_id" invisible="1" />
<field
name="contract_id"
options='{"no_create": True}'
invisible="is_contract == False"
domain="['|',('contract_template_id','=',contract_template_id), ('contract_template_id','=',False), ('partner_id','=',parent.partner_id), ('is_terminated','=',False),
]"
/>
<field
name="contract_line_id"
invible="is_contract == False"
domain="[('contract_id','=',contract_id)]"
/>
</xpath>
<xpath
expr="//field[@name='order_line']/form//field[@name='tax_id']/parent::group"
position="after"
>
<field name="is_contract" invisible="1" />
<separator
colspan="4"
string="Recurrence Invoicing"
invisible="is_contract == False"
/>
<group invisible="is_contract == False">
<field name="recurring_rule_type" />
</group>
<group invisible="is_contract == False">
<field name="recurring_invoicing_type" />
</group>
<group invisible="is_contract == False">
<field name="date_start" required="is_contract == True" />
</group>
<group invisible="is_contract == False">
<field name="date_end" required="is_contract == True" />
</group>
<group invisible="is_contract == False">
<field name="is_auto_renew" />
</group>
<group invisible="is_auto_renew == False">
<label for="auto_renew_interval" />
<div>
<field
name="auto_renew_interval"
class="oe_inline"
nolabel="1"
required="is_auto_renew == True"
/>
<field
name="auto_renew_rule_type"
class="oe_inline"
nolabel="1"
required="is_auto_renew == True"
/>
</div>
</group>
</xpath>
<xpath
expr="//field[@name='order_line']/tree//field[@name='price_total']"
position="after"
>
<field
name="date_start"
column_invisible="parent.is_contract == False"
/>
<field name="date_end" column_invisible="parent.is_contract == False" />
</xpath>
<xpath expr="//field[@name='order_line']/tree" position="attributes">
<attribute name="editable" />
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2019 ACSONE SA/NV
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="res_config_settings_form_view">
<field name="name">res.config.settings.form (in product_contract)
</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="sale.res_config_settings_view_form" />
<field name="arch" type="xml">
<xpath
expr="//block[@name='invoicing_setting_container']"
position="inside"
>
<setting
id="create_contract_at_sale_order_confirmation"
title="Automatically Create Contracts At Sale Order Confirmation"
>
<field name="create_contract_at_sale_order_confirmation" />
</setting>
</xpath>
</field>
</record>
</odoo>

2
requirements.txt Normal file
View File

@@ -0,0 +1,2 @@
# generated from manifests external_dependencies
python-dateutil