Merge PR #309 into 15.0

Signed-off-by dreispt
This commit is contained in:
OCA-git-bot
2022-10-01 15:43:40 +00:00
40 changed files with 5450 additions and 0 deletions

129
rma_sale/README.rst Normal file
View File

@@ -0,0 +1,129 @@
=============================================================
Return Merchandise Authorization Management - Link with Sales
=============================================================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
:alt: Production/Stable
.. |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%2Frma-lightgray.png?logo=github
:target: https://github.com/OCA/rma/tree/14.0/rma_sale
:alt: OCA/rma
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/rma-14-0/rma-14-0-rma_sale
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/145/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
This module allows you to link a sales order to an RMA.
This can be done by creating an RMA from scratch and selecting the sales
order, creating one or more RMAs from a sales order form view or from a sales
order web portal page.
**Table of contents**
.. contents::
:local:
Usage
=====
To use this module, you need to:
#. Go to *RMA > Orders* and create a new RMA.
#. Select a sales order to be linked to the RMA if you want.
#. Now you can do the rest of the instructions described in the
*readme* of the rma module.
If you want to create one or more RMAs from a sale order:
#. Go to *Sales > Orders > Orders*.
#. Create a new sales order or select an existing one.
#. If the sales order is in 'Sales Order' state you can see in the status bar
a button labeled 'Create RMA', click it and a wizard will appear.
#. Modify the data at your convenience and click on 'Accept' button.
#. As many RMAs as lines with quantity greater than zero will be created.
Those RMAs will be linked to the sales order.
The customer can also create RMAs from a sales order portal page:
#. Go to a confirmed sales order portal page.
#. In the left sidebar you can see a button named 'Request RMAs'.
#. By clicking on this button a popup will appear to allow you to define
the quantity per product and delivery order line.
#. Click on the 'Request RMAs' button and RMAs will be created linked to
the sales order.
Known issues / Roadmap
======================
* When you try to request an RMA from a Sales Order in the portal,
a popup appears and the inputs for the quantity doesn't allow
decimal numbers. It would be good to have a component that allows
that and at the same time keeps the constraint of not allowing a
number greater than the order line product quantity.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/rma/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/rma/issues/new?body=module:%20rma_sale%0Aversion:%2014.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
~~~~~~~
* Tecnativa
Contributors
~~~~~~~~~~~~
* `Tecnativa <https://www.tecnativa.com>`_:
* Ernesto Tejeda
* Pedro M. Baeza
* David Vidal
* Chafique Delli <chafique.delli@akretion.com>
* Giovanni Serra - Ooops <giovanni@ooops404.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-ernestotejeda| image:: https://github.com/ernestotejeda.png?size=40px
:target: https://github.com/ernestotejeda
:alt: ernestotejeda
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-ernestotejeda|
This module is part of the `OCA/rma <https://github.com/OCA/rma/tree/14.0/rma_sale>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

5
rma_sale/__init__.py Normal file
View File

@@ -0,0 +1,5 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import controllers
from . import models
from . import wizard

29
rma_sale/__manifest__.py Normal file
View File

@@ -0,0 +1,29 @@
# Copyright 2020 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Return Merchandise Authorization Management - Link with Sales",
"summary": "Sale Order - Return Merchandise Authorization (RMA)",
"version": "15.0.1.0.0",
"development_status": "Production/Stable",
"category": "RMA",
"website": "https://github.com/OCA/rma",
"author": "Tecnativa, Odoo Community Association (OCA)",
"maintainers": ["ernestotejeda"],
"license": "AGPL-3",
"depends": ["rma", "sale_stock"],
"data": [
"security/ir.model.access.csv",
"views/report_rma.xml",
"views/rma_views.xml",
"views/sale_views.xml",
"views/sale_portal_template.xml",
"views/res_config_settings_views.xml",
"wizard/sale_order_rma_wizard_views.xml",
],
"assets": {
"web.assets_frontend": [
"/rma_sale/static/src/js/rma_portal_form.js",
"/rma_sale/static/src/scss/rma_sale.scss",
],
},
}

View File

@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import rma_portal
from . import sale_portal

View File

@@ -0,0 +1,12 @@
# Copyright 2020 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo.addons.rma.controllers.main import PortalRma
class PortalRma(PortalRma):
def _get_filter_domain(self, kw):
res = super()._get_filter_domain(kw)
if "sale_id" in kw:
res.append(("order_id", "=", int(kw["sale_id"])))
return res

View File

@@ -0,0 +1,115 @@
# Copyright 2020 Tecnativa - Ernesto Tejeda
# Copyright 2022 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import _, http
from odoo.exceptions import AccessError, MissingError
from odoo.http import request
from odoo.addons.sale.controllers.portal import CustomerPortal
class CustomerPortal(CustomerPortal):
@http.route(
["/my/orders/<int:order_id>/requestrma"],
type="http",
auth="public",
methods=["POST"],
website=True,
)
def request_rma(self, order_id, access_token=None, **post):
try:
order_sudo = self._document_check_access(
"sale.order", order_id, access_token=access_token
)
except (AccessError, MissingError):
return request.redirect("/my")
order_obj = request.env["sale.order"]
wizard_obj = request.env["sale.order.rma.wizard"]
wizard_line_field_types = {
f: d["type"] for f, d in wizard_obj.line_ids.fields_get().items()
}
# Set wizard line vals
mapped_vals = {}
custom_vals = {}
partner_shipping_id = post.pop("partner_shipping_id", False)
for name, value in post.items():
try:
row, field_name = name.split("-", 1)
if wizard_line_field_types.get(field_name) == "many2one":
value = int(value) if value else False
mapped_vals.setdefault(row, {}).update({field_name: value})
# Catch possible form custom fields to add them to the RMA
# description values
except ValueError:
custom_vals.update({name: value})
# If no operation is filled, no RMA will be created
line_vals = [
(0, 0, vals) for vals in mapped_vals.values() if vals.get("operation_id")
]
# Create wizard an generate rmas
order = order_obj.browse(order_id).sudo()
location_id = order.warehouse_id.rma_loc_id.id
# Add custom fields text
custom_description = ""
if custom_vals:
custom_description = r"<br \>---<br \>"
custom_description += r"<br \>".join(
["{}: {}".format(x, y) for x, y in custom_vals.items()]
)
wizard = wizard_obj.with_context(active_id=order_id).create(
{
"line_ids": line_vals,
"location_id": location_id,
"partner_shipping_id": partner_shipping_id,
"custom_description": custom_description,
}
)
user_has_group_portal = request.env.user.has_group(
"base.group_portal"
) or request.env.user.has_group("base.group_public")
rma = wizard.sudo().create_rma(from_portal=True)
for rec in rma:
rec.origin += _(" (Portal)")
# Add the user as follower of the created RMAs so they can later view them.
rma.message_subscribe([request.env.user.partner_id.id])
# Subscribe the user to the notification subtype so he receives the confirmation
# note.
rma.message_follower_ids.filtered(
lambda x: x.partner_id == request.env.user.partner_id
).subtype_ids += request.env.ref("rma.mt_rma_notification")
if len(rma) == 0:
route = order_sudo.get_portal_url()
elif len(rma) == 1:
route = rma._get_share_url() if user_has_group_portal else rma.access_url
else:
route = (
order._get_share_url()
if user_has_group_portal
else "/my/rmas?sale_id=%d" % order_id
)
return request.redirect(route)
@http.route(
["/my/requestrma/<int:order_id>"], type="http", auth="public", website=True
)
def request_sale_rma(self, order_id, access_token=None, **kw):
"""Request RMA on a single page"""
try:
order_sudo = self._document_check_access(
"sale.order", order_id, access_token=access_token
)
except (AccessError, MissingError):
return request.redirect("/my")
if order_sudo.state in ("draft", "sent", "cancel"):
return request.redirect("/my")
values = {
"sale_order": order_sudo,
"page_name": "request_rma",
"default_url": order_sudo.get_portal_url(),
"token": access_token,
"partner_id": order_sudo.partner_id.id,
}
if order_sudo.company_id:
values["res_company"] = order_sudo.company_id
return request.render("rma_sale.request_rma_single_page", values)

496
rma_sale/i18n/es.po Normal file
View File

@@ -0,0 +1,496 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * rma_sale
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-07-01 04:40+0000\n"
"PO-Revision-Date: 2020-10-06 14:16+0000\n"
"Last-Translator: David Vidal <david.vidal@tecnativa.com>\n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10\n"
#. module: rma_sale
#: code:addons/rma_sale/controllers/sale_portal.py:0
#, python-format
msgid " (Portal)"
msgstr " (Portal)"
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " has been created."
msgstr " ha sido creado."
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " have been created."
msgstr " han sido creados."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "&amp;times;"
msgstr "&amp;times;"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-check\"/> Request RMAs"
msgstr "<i class=\"fa fa-check\"/> Solicitar RMAs"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_template
msgid "<i class=\"fa fa-reply\"/> Request RMAs"
msgstr "<i class=\"fa fa-reply\"/> Solicitar RMAs"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-times\"/> Cancel"
msgstr "<i class=\"fa fa-times\"/> Cancelar"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-truck\"/> Choose a delivery address"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
"specific.\" groups=\"base.group_multi_company\"/>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid ""
"<span class=\"fa fa-reply\" role=\"img\" aria-label=\"RMA\" title=\"RMA\"/>"
msgstr ""
"<span class=\"fa fa-reply\" role=\"img\" aria-label=\"RMA\" title=\"RMA\"/>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid "<span>RMA</span>"
msgstr "<span>RMA</span>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Requested operation:</strong>"
msgstr "<strong>Operación solicitada:</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Requested operation</strong>"
msgstr "<strong>Operación solicitada:</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Sale order:</strong>"
msgstr "<strong>Orden de venta:</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Sale order</strong>"
msgstr "<strong>Orden de venta</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Accept"
msgstr "Aceptar"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_move_ids
msgid "Allowed Move"
msgstr "Movimientos permitido"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_picking_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_picking_ids
msgid "Allowed Picking"
msgstr "Albaranes permitidos"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_product_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_product_ids
msgid "Allowed Product"
msgstr "Producto Permitido"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Cancel"
msgstr "Cancelar"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid "Category"
msgstr "Categoría"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Close"
msgstr "Cerrar"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Comment anything relevant to the return, like serial numbers, a description "
"of the issue, etc"
msgstr ""
"Comente cualquier asunto relevante relacionado con la devolución, como "
"números de serie, descripción del problema, etc"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__commercial_partner_id
msgid "Commercial entity"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_company
msgid "Companies"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid ""
"Conversion between Units of Measure can only occur if they belong to the "
"same category. The conversion will be made based on the ratios."
msgstr ""
"La conversión entre las unidades de medidas sólo pueden ocurrir si "
"pertenecen a la misma categoría. La conversión se basará en los ratios "
"establecidos."
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
#, python-format
msgid "Create RMA"
msgstr "Crear RMA"
#. module: rma_sale
#: model:ir.actions.act_window,name:rma_sale.sale_order_create_rma_action
msgid "Create RMAs"
msgstr "Crear RMAs"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_date
msgid "Created on"
msgstr "Creado el"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Custom Description"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Delivery"
msgstr "Entrega"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__picking_id
msgid "Delivery order"
msgstr "Orden de entrega"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__description
msgid "Description"
msgstr "Descripción"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__display_name
msgid "Display Name"
msgstr "Nombre mostrado"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,help:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid ""
"From the frontend sale order page go to a single RMA page creation instead "
"of the usual popup"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid "Full page RMA creation"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__id
msgid "ID"
msgstr "ID"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "If no requested operation is set, the RMA won't be correctly fulfilled"
msgstr ""
"Si no se establece operación solicitada, el RMA no se procesará correctamente"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard____last_update
msgid "Last Modified on"
msgstr "Última modificación en"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_uid
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_date
msgid "Last Updated on"
msgstr "Última actualización el"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__line_ids
msgid "Lines"
msgstr "Líneas"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__move_id
msgid "Move"
msgstr "Movimiento"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__order_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__order_id
msgid "Order"
msgstr "Orden"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__picking_id
msgid "Origin Delivery"
msgstr "Orden de Entrega"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__move_id
msgid "Origin move"
msgstr "Movimiento"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__product_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__product_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Product"
msgstr "Producto"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__quantity
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Quantity"
msgstr "Cantidad"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_rma
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
msgid "RMA"
msgstr "RMA"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_count
msgid "RMA count"
msgstr "Cantidad de RMAs"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__location_id
msgid "RMA location"
msgstr "Ubicación de RMA"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.request_rma_single_page
msgid "RMA request for order"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_ids
msgid "RMAs"
msgstr "RMAs"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Request RMAs"
msgstr "Solicitar RMAs"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__operation_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Requested operation"
msgstr "Operación solicitada"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__sale_line_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__sale_line_id
msgid "Sale Line"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__order_id
msgid "Sale Order"
msgstr "Pedido de venta"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line_rma_wizard
msgid "Sale Order Line Rma Wizard"
msgstr "Linea de Asistente de Orden de Venta - RMA "
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_rma_wizard
msgid "Sale Order Rma Wizard"
msgstr "Asistente de Orden de Venta - RMA"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line
msgid "Sales Order Line"
msgstr "Línea de pedido de venta"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Select the product quantity and the requested operation"
msgstr "Selecciones la cantidad de producto y la operación solicitada"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Shipping Address"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Show portal RMA request in a single page"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Single page RMA request"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_stock_move
msgid "Stock Move"
msgstr "Movimiento de existencias"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "The limit will decrease when the units in other RMAs are confirmed"
msgstr ""
"El límite disminuirá cuando las unidades de otros RMAs sean confirmadas"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_id
msgid "Unit of Measure"
msgstr "Unidad de medida"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Use the comment button to add relevant information regarding the RMA, like "
"returned serial numbers or a description of the issue"
msgstr ""
"Utilice el botón de comentarios para añadir información relevante "
"relacionada con el RMA, como números de serie devueltos o una descripción "
"del problema"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Values coming from portal RMA request form custom fields"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"When we hit the RMA request button from the portal sale page, open in a "
"single page instead of a popup."
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Will be used to return the goods when the RMA is completed"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__wizard_id
msgid "Wizard"
msgstr "Asistente"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You can only return as much product units as you received for this order"
msgstr ""
"Solo puede devolver tanta cantidad de producto como usted recibió en el "
"pedido original"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "You can send a message in every RMA sent"
msgstr "Puede mandar un mensaje en cada RMA enviado"
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#, python-format
msgid "You may only create RMAs from a confirmed or done sale order."
msgstr "Solo puedes crear RMAs desde una orden de venta confirmada o hecha."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You're about to perform an RMA request. Our team will process it an will "
"reach you once it's validated. Keep in mind that:"
msgstr ""
"Va a realizar una petición de RMA. Nuestro equipo la procesará y se pondrá "
"en contacto con usted una vez validad. Tenga en cuenta que:"
#~ msgid ""
#~ "<span>\n"
#~ " If an RMA has already been created for a "
#~ "product in this sales order, it will not\n"
#~ " be possible to create another one from "
#~ "the web portal.\n"
#~ " </span>"
#~ msgstr ""
#~ "<span>\n"
#~ " Si ya se ha creado un RMA para un "
#~ "producto de esta orden de venta, no será\n"
#~ " posible crear otro desde el portal web.\n"
#~ " </span>"
#~ msgid "Domain Move"
#~ msgstr "Dominio de movimientos"
#~ msgid "Domain Picking"
#~ msgstr "Dominio de entregas"
#~ msgid "Domain Product"
#~ msgstr "Dominio de productos"
#, fuzzy
#~| msgid "Delivery"
#~ msgid "Is Sale Delivery"
#~ msgstr "Es entrega de orden de venta"

489
rma_sale/i18n/it.po Normal file
View File

@@ -0,0 +1,489 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * rma_sale
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-04-04 11:05+0000\n"
"Last-Translator: Samuele Mariani <samuele@ooops404.com>\n"
"Language-Team: none\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.3.2\n"
#. module: rma_sale
#: code:addons/rma_sale/controllers/sale_portal.py:0
#, python-format
msgid " (Portal)"
msgstr " (Portale)"
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " has been created."
msgstr " è stato creato."
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " have been created."
msgstr " è stato creato."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "&amp;times;"
msgstr "&amp;volte;"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-check\"/> Request RMAs"
msgstr "<i class=\"fa fa-check\"/> Richiesta RMA"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_template
msgid "<i class=\"fa fa-reply\"/> Request RMAs"
msgstr "<i class=\"fa fa-reply\"/> Richiesta RMA"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-times\"/> Cancel"
msgstr "<i class=\"fa fa-times\"/> Annulla"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-truck\"/> Choose a delivery address"
msgstr "<i class=\"fa fa-truck\"/> Scegli un indirizzo di consegna"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
"specific.\" groups=\"base.group_multi_company\"/>"
msgstr ""
"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
"specific.\" groups=\"base.group_multi_company\"/>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid "<span class=\"fa fa-reply\" role=\"img\" aria-label=\"RMA\" title=\"RMA\"/>"
msgstr ""
"<span class=\"fa fa-reply\" role=\"img\" aria-label=\"RMA\" title=\"RMA\"/>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid "<span>RMA</span>"
msgstr "<span>RMA</span>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Requested operation:</strong>"
msgstr "<strong>Operazione richiesta:</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Requested operation</strong>"
msgstr "<strong>Operazione richiesta</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Sale order:</strong>"
msgstr "<strong>Ordine di vendita:</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Sale order</strong>"
msgstr "<strong>Ordine di vendita</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Accept"
msgstr "Accettare"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_move_ids
msgid "Allowed Move"
msgstr "Movimento consentito"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_picking_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_picking_ids
msgid "Allowed Picking"
msgstr "Trasferimento consentito"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_product_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_product_ids
msgid "Allowed Product"
msgstr "Prodotto consentito"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Cancel"
msgstr "Annulla"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid "Category"
msgstr "Categoria"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Close"
msgstr "Chiudere"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Comment anything relevant to the return, like serial numbers, a description "
"of the issue, etc"
msgstr ""
"Commenta qualsiasi cosa rilevante per il reso, come numeri di serie, una "
"descrizione del problema, ecc"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__commercial_partner_id
msgid "Commercial entity"
msgstr "Entità commerciale"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_company
msgid "Companies"
msgstr "Aziende"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_config_settings
msgid "Config Settings"
msgstr "Impostazioni di Configurazione"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid ""
"Conversion between Units of Measure can only occur if they belong to the "
"same category. The conversion will be made based on the ratios."
msgstr ""
"La conversione tra Unità di Misura può avvenire solo se appartengono alla "
"stessa categoria. La conversione verrà effettuata in base ai rapporti."
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
#, python-format
msgid "Create RMA"
msgstr "Crea RMA"
#. module: rma_sale
#: model:ir.actions.act_window,name:rma_sale.sale_order_create_rma_action
msgid "Create RMAs"
msgstr "RMA Creati"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_uid
msgid "Created by"
msgstr "Creato da"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_date
msgid "Created on"
msgstr "Creato il"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Custom Description"
msgstr "Descrizione personalizzata"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Delivery"
msgstr "Consegna"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__picking_id
msgid "Delivery order"
msgstr "Ordine di consegna"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__description
msgid "Description"
msgstr "Descrizione"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__display_name
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__display_name
#: model:ir.model.fields,field_description:rma_sale.field_rma__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__display_name
#: model:ir.model.fields,field_description:rma_sale.field_stock_move__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,help:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid ""
"From the frontend sale order page go to a single RMA page creation instead "
"of the usual popup"
msgstr ""
"Dalla pagina dell'ordine di vendita nel frontend vai alla creazione di una "
"singola pagina RMA invece del solito popup"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid "Full page RMA creation"
msgstr "Creazione RMA pagina intera"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__id
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__id
#: model:ir.model.fields,field_description:rma_sale.field_rma__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__id
#: model:ir.model.fields,field_description:rma_sale.field_stock_move__id
msgid "ID"
msgstr "ID"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "If no requested operation is set, the RMA won't be correctly fulfilled"
msgstr ""
"Se nessuna operazione richiesta è impostata, l'RMA non sarà completato "
"correttamente"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company____last_update
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings____last_update
#: model:ir.model.fields,field_description:rma_sale.field_rma____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard____last_update
#: model:ir.model.fields,field_description:rma_sale.field_stock_move____last_update
msgid "Last Modified on"
msgstr "Ultima modifica il"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_uid
msgid "Last Updated by"
msgstr "Ultimo aggiornamento da"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_date
msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__line_ids
msgid "Lines"
msgstr "Righe"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__move_id
msgid "Move"
msgstr "Spostare"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__order_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__order_id
msgid "Order"
msgstr "Ordine"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__picking_id
msgid "Origin Delivery"
msgstr "Origine consegna"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__move_id
msgid "Origin move"
msgstr "Origine movimento"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__product_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__product_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Product"
msgstr "Prodotto"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__quantity
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Quantity"
msgstr "Quantità"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_rma
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
msgid "RMA"
msgstr "RMA"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_count
msgid "RMA count"
msgstr "Conteggio RMA"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__location_id
msgid "RMA location"
msgstr "Ubicazione RMA"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.request_rma_single_page
msgid "RMA request for order"
msgstr "Richiesta RMA per ordine"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_ids
msgid "RMAs"
msgstr "RMA"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Request RMAs"
msgstr "Richiesta RMA"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__operation_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Requested operation"
msgstr "Operazioni richieste"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__sale_line_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__sale_line_id
msgid "Sale Line"
msgstr "Righe di vendita"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__order_id
msgid "Sale Order"
msgstr "Ordine di vendita"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line_rma_wizard
msgid "Sale Order Line Rma Wizard"
msgstr "Procedura guidata riga ordine di vendita Rma"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_rma_wizard
msgid "Sale Order Rma Wizard"
msgstr "Procedura guidata ordine di vendita Rma"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order
msgid "Sales Order"
msgstr "Ordine di vendita"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line
msgid "Sales Order Line"
msgstr "Righe ordine di vendita"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Select the product quantity and the requested operation"
msgstr "Seleziona la quantità prodotto e l'operazione richiesta"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Shipping Address"
msgstr "Indirizzo di spedizione"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Show portal RMA request in a single page"
msgstr "Mostra il portale della richiesta RMA in una singola pagina"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Single page RMA request"
msgstr "Richiesta RMA a singola pagina"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_stock_move
msgid "Stock Move"
msgstr "Movimento delle scorte"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "The limit will decrease when the units in other RMAs are confirmed"
msgstr "Il limite diminuirà quando le unità in altri RMA saranno confermate"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_id
msgid "Unit of Measure"
msgstr "Unità di misura"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Use the comment button to add relevant information regarding the RMA, like "
"returned serial numbers or a description of the issue"
msgstr ""
"Usa il pulsante commento per aggiungere informazioni rilevanti riguardo "
"l'RMA, come numeri seriali resi o una descrizione dell'errore"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Values coming from portal RMA request form custom fields"
msgstr ""
"Valori provenienti dai campi personalizzati del modulo di richiesta RMA del "
"portale"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"When we hit the RMA request button from the portal sale page, open in a "
"single page instead of a popup."
msgstr ""
"Quando premiamo il pulsante di richiesta RMA dalla pagina di vendita del "
"portale, apriamo in una singola pagina anziché in un popup."
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Will be used to return the goods when the RMA is completed"
msgstr "Verrà utilizzato per restituire la merce una volta completato l'RMA"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__wizard_id
msgid "Wizard"
msgstr "Procedura guidata"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You can only return as much product units as you received for this order"
msgstr ""
"Puoi restituire solo le unità di prodotto che hai ricevuto per questo ordine"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "You can send a message in every RMA sent"
msgstr "Puoi inviare un messaggio in ogni RMA inviato"
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#, python-format
msgid "You may only create RMAs from a confirmed or done sale order."
msgstr "Puoi creare RMA solo da un ordine di vendita confermato o concluso."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You're about to perform an RMA request. Our team will process it an will "
"reach you once it's validated. Keep in mind that:"
msgstr ""
"Stai per eseguire una richiesta RMA. Il nostro team lo elaborerà e ti "
"arriverà una volta convalidato. Tieni presente che:"

464
rma_sale/i18n/nl.po Normal file
View File

@@ -0,0 +1,464 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * rma_sale
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-12-13 23:19+0000\n"
"Last-Translator: Bosd <c5e2fd43-d292-4c90-9d1f-74ff3436329a@anonaddy.me>\n"
"Language-Team: none\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"
"X-Generator: Weblate 4.3.2\n"
#. module: rma_sale
#: code:addons/rma_sale/controllers/sale_portal.py:0
#, python-format
msgid " (Portal)"
msgstr " (Portal)"
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " has been created."
msgstr " is aangemaakt."
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " have been created."
msgstr " is aangemaakt."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "&amp;times;"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-check\"/> Request RMAs"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_template
msgid "<i class=\"fa fa-reply\"/> Request RMAs"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-times\"/> Cancel"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-truck\"/> Choose a delivery address"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
"specific.\" groups=\"base.group_multi_company\"/>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid ""
"<span class=\"fa fa-reply\" role=\"img\" aria-label=\"RMA\" title=\"RMA\"/>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid "<span>RMA</span>"
msgstr "<span>RMA</span>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Requested operation:</strong>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Requested operation</strong>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Sale order:</strong>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Sale order</strong>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Accept"
msgstr "Accepteer"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_move_ids
msgid "Allowed Move"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_picking_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_picking_ids
msgid "Allowed Picking"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_product_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_product_ids
msgid "Allowed Product"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Cancel"
msgstr "Annuleren"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid "Category"
msgstr "Categorie"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Close"
msgstr "Sluiten"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Comment anything relevant to the return, like serial numbers, a description "
"of the issue, etc"
msgstr ""
"Relevante opmerking voor de retour zending zoals; serie nummers, "
"probleemomschrijving, etc"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__commercial_partner_id
msgid "Commercial entity"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_company
msgid "Companies"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid ""
"Conversion between Units of Measure can only occur if they belong to the "
"same category. The conversion will be made based on the ratios."
msgstr ""
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
#, python-format
msgid "Create RMA"
msgstr "RMA aanmaken"
#. module: rma_sale
#: model:ir.actions.act_window,name:rma_sale.sale_order_create_rma_action
msgid "Create RMAs"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_uid
msgid "Created by"
msgstr "Aangemaakt door"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_date
msgid "Created on"
msgstr "Aangemaakt op"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Custom Description"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Delivery"
msgstr "Levering"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__picking_id
msgid "Delivery order"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__description
msgid "Description"
msgstr "Omschrijving"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__display_name
msgid "Display Name"
msgstr "Weergavenaam"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,help:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid ""
"From the frontend sale order page go to a single RMA page creation instead "
"of the usual popup"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid "Full page RMA creation"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__id
msgid "ID"
msgstr "ID"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "If no requested operation is set, the RMA won't be correctly fulfilled"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard____last_update
msgid "Last Modified on"
msgstr "Laatst bijgewerkt op"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_uid
msgid "Last Updated by"
msgstr "Laatste update door"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_date
msgid "Last Updated on"
msgstr "Laatste update op"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__line_ids
msgid "Lines"
msgstr "Regels"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__move_id
msgid "Move"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__order_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__order_id
msgid "Order"
msgstr "Bestelling"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__picking_id
msgid "Origin Delivery"
msgstr "Originele levering"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__move_id
msgid "Origin move"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__product_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__product_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Product"
msgstr "Product"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__quantity
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Quantity"
msgstr "Aantal"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_rma
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
msgid "RMA"
msgstr "RMA"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_count
msgid "RMA count"
msgstr "RMA aantal"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__location_id
msgid "RMA location"
msgstr "RMA Locatie"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.request_rma_single_page
msgid "RMA request for order"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_ids
msgid "RMAs"
msgstr "RMA's"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Request RMAs"
msgstr "aangevraagde RMA's"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__operation_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
#, fuzzy
msgid "Requested operation"
msgstr "Verzochte handeling"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__sale_line_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__sale_line_id
msgid "Sale Line"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__order_id
msgid "Sale Order"
msgstr "Verkoop order"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line_rma_wizard
msgid "Sale Order Line Rma Wizard"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_rma_wizard
msgid "Sale Order Rma Wizard"
msgstr "Verkooporder retour gids"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order
msgid "Sales Order"
msgstr "Verkooporder"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line
msgid "Sales Order Line"
msgstr "verkoopregel"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Select the product quantity and the requested operation"
msgstr "Selecteer het productaantal en de gewenste handeling"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Shipping Address"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Show portal RMA request in a single page"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Single page RMA request"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_stock_move
msgid "Stock Move"
msgstr "Voorraad aanpassing"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "The limit will decrease when the units in other RMAs are confirmed"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_id
#, fuzzy
msgid "Unit of Measure"
msgstr "Grootheid"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Use the comment button to add relevant information regarding the RMA, like "
"returned serial numbers or a description of the issue"
msgstr ""
"Gebruik de onderstaande opmerkingen knop om relevante informatie over de RMA "
"in te vullen, zoals serienummer of een omschrijving van het probleem"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Values coming from portal RMA request form custom fields"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"When we hit the RMA request button from the portal sale page, open in a "
"single page instead of a popup."
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Will be used to return the goods when the RMA is completed"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__wizard_id
msgid "Wizard"
msgstr "gids"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You can only return as much product units as you received for this order"
msgstr ""
"U kunt maximaal het aantal producten retourneren als dat u in deze "
"bestelling heeft ontvangen"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
#, fuzzy
msgid "You can send a message in every RMA sent"
msgstr "U kunt een bericht sturen in elke RMA zending"
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#, python-format
msgid "You may only create RMAs from a confirmed or done sale order."
msgstr "U mag alleen een RMA maken van bevestigde of afgehandelde verkopen."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
#, fuzzy
msgid ""
"You're about to perform an RMA request. Our team will process it an will "
"reach you once it's validated. Keep in mind that:"
msgstr ""
"U staat op het punt een RMA verzoek in te dienen. Ons team zal de aanvraag "
"verwerken. Let op dat:"

492
rma_sale/i18n/pt.po Normal file
View File

@@ -0,0 +1,492 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * rma_sale
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-10-28 02:36+0000\n"
"Last-Translator: Pedro Castro Silva <pedrocs@exo.pt>\n"
"Language-Team: none\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 4.3.2\n"
#. module: rma_sale
#: code:addons/rma_sale/controllers/sale_portal.py:0
#, python-format
msgid " (Portal)"
msgstr " (Portal)"
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " has been created."
msgstr " foi criado(a)."
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " have been created."
msgstr " foi criado(a)."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "&amp;times;"
msgstr "&amp;times;"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-check\"/> Request RMAs"
msgstr "<i class=\"fa fa-check\"/> Requerer RMAs"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_template
msgid "<i class=\"fa fa-reply\"/> Request RMAs"
msgstr "<i class=\"fa fa-reply\"/> Requerer RMAs"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-times\"/> Cancel"
msgstr "<i class=\"fa fa-times\"/> Cancelar"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-truck\"/> Choose a delivery address"
msgstr "<i class=\"fa fa-truck\"/> Escolha um endereço de entrega"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
"specific.\" groups=\"base.group_multi_company\"/>"
msgstr ""
"<span class=\"fa fa-lg fa-building-o\" title=\"Estes valores são específicos "
"por empresa.\" groups=\"base.group_multi_company\"/>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid "<span class=\"fa fa-reply\" role=\"img\" aria-label=\"RMA\" title=\"RMA\"/>"
msgstr ""
"<span class=\"fa fa-reply\" role=\"img\" aria-label=\"RMA\" title=\"RMA\"/>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid "<span>RMA</span>"
msgstr "<span>RMA</span>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Requested operation:</strong>"
msgstr "<strong>Operação Requerida:</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Requested operation</strong>"
msgstr "<strong>Operação Requerida</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Sale order:</strong>"
msgstr "<strong>Encomenda de Venda:</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Sale order</strong>"
msgstr "<strong>Encomenda de Venda</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Accept"
msgstr "Aceitar"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_move_ids
msgid "Allowed Move"
msgstr "Movimentação Autorizada"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_picking_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_picking_ids
msgid "Allowed Picking"
msgstr "Picking Autorizado"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_product_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_product_ids
msgid "Allowed Product"
msgstr "Produto Autorizado"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Cancel"
msgstr "Cancelar"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid "Category"
msgstr "Categoria"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Close"
msgstr "Encerrar"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Comment anything relevant to the return, like serial numbers, a description "
"of the issue, etc"
msgstr ""
"Comente qualquer coisa relevante para a devolução, como números de série, "
"uma descrição do problema, etc"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__commercial_partner_id
msgid "Commercial entity"
msgstr "Entidade comercial"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_company
msgid "Companies"
msgstr "Empresas"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_config_settings
msgid "Config Settings"
msgstr "Parâmetros de Configuração"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid ""
"Conversion between Units of Measure can only occur if they belong to the "
"same category. The conversion will be made based on the ratios."
msgstr ""
"Conversões entre Unidades de Medida só podem ocorrer se pertencerem à mesma "
"categoria. A conversão será feita com base nos coeficientes."
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
#, python-format
msgid "Create RMA"
msgstr "Criar RMA"
#. module: rma_sale
#: model:ir.actions.act_window,name:rma_sale.sale_order_create_rma_action
msgid "Create RMAs"
msgstr "Criar RMAs"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_uid
msgid "Created by"
msgstr "Criado por"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_date
msgid "Created on"
msgstr "Criado em"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Custom Description"
msgstr "Descrição Personalizada"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Delivery"
msgstr "Entrega"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__picking_id
msgid "Delivery order"
msgstr "Ordem de Entrega"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__description
msgid "Description"
msgstr "Descrição"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__display_name
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__display_name
#: model:ir.model.fields,field_description:rma_sale.field_rma__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__display_name
#: model:ir.model.fields,field_description:rma_sale.field_stock_move__display_name
msgid "Display Name"
msgstr "Nome a Exibir"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,help:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid ""
"From the frontend sale order page go to a single RMA page creation instead "
"of the usual popup"
msgstr ""
"A partir da página de pedidos de venda de frontend, vá para uma única página "
"de RMA em vez do habitual popup"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid "Full page RMA creation"
msgstr "Criação de RMA de página completa"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__id
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__id
#: model:ir.model.fields,field_description:rma_sale.field_rma__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__id
#: model:ir.model.fields,field_description:rma_sale.field_stock_move__id
msgid "ID"
msgstr "ID"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "If no requested operation is set, the RMA won't be correctly fulfilled"
msgstr ""
"Se nenhuma operação solicitada for definida, a RMA não será cumprida "
"corretamente"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company____last_update
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings____last_update
#: model:ir.model.fields,field_description:rma_sale.field_rma____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard____last_update
#: model:ir.model.fields,field_description:rma_sale.field_stock_move____last_update
msgid "Last Modified on"
msgstr "Última Modificação em"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_uid
msgid "Last Updated by"
msgstr "Última Actualização por"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_date
msgid "Last Updated on"
msgstr "Última Actualização em"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__line_ids
msgid "Lines"
msgstr "Linhas"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__move_id
msgid "Move"
msgstr "Movimento"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__order_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__order_id
msgid "Order"
msgstr "Encomenda"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__picking_id
msgid "Origin Delivery"
msgstr "Origem da Entrega"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__move_id
msgid "Origin move"
msgstr "Origem da Movimentação"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__product_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__product_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Product"
msgstr "Produto"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__quantity
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Quantity"
msgstr "Quantidade"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_rma
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
msgid "RMA"
msgstr "RMA"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_count
msgid "RMA count"
msgstr "Contagem de RMA"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__location_id
msgid "RMA location"
msgstr "Localização do RMA"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.request_rma_single_page
msgid "RMA request for order"
msgstr "Pedido de RMA de encomenda"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_ids
msgid "RMAs"
msgstr "RMAs"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Request RMAs"
msgstr "Requisição de RMAs"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__operation_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Requested operation"
msgstr "Operação Requisitada"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__sale_line_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__sale_line_id
msgid "Sale Line"
msgstr "Linha de Venda"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__order_id
msgid "Sale Order"
msgstr "Encomenda de Venda"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line_rma_wizard
msgid "Sale Order Line Rma Wizard"
msgstr "Assistente da Linha de RMA da Encomenda de Venda"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_rma_wizard
msgid "Sale Order Rma Wizard"
msgstr "Assistente da RMA da Encomenda de Venda"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order
msgid "Sales Order"
msgstr "Encomenda de Venda"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line
msgid "Sales Order Line"
msgstr "Linha de Encomenda de Venda"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Select the product quantity and the requested operation"
msgstr "Selecione a quantidade de produto e a operação solicitada"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Shipping Address"
msgstr "Endereço de Envio"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Show portal RMA request in a single page"
msgstr "Mostrar pedido de RMA do portal numa única página"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Single page RMA request"
msgstr "Pedido de RMA de página única"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_stock_move
msgid "Stock Move"
msgstr "Movimento de Stock"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "The limit will decrease when the units in other RMAs are confirmed"
msgstr "O limite irá diminuir quando as unidades noutras RMAs forem confirmadas"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_id
msgid "Unit of Measure"
msgstr "Unidade de Medida"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Use the comment button to add relevant information regarding the RMA, like "
"returned serial numbers or a description of the issue"
msgstr ""
"Use o botão de comentário para adicionar informações relevantes sobre a RMA, "
"como números de série devolvidos ou uma descrição do problema"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Values coming from portal RMA request form custom fields"
msgstr ""
"Valores provenientes de campos personalizados do formulário de solicitação "
"de RMA do portal"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"When we hit the RMA request button from the portal sale page, open in a "
"single page instead of a popup."
msgstr ""
"Quando pressionamos o botão de solicitação de RMA da página de venda do "
"portal, abrimos numa única página em vez de um popup."
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Will be used to return the goods when the RMA is completed"
msgstr "Será usado para devolver a mercadoria quando a RMA for concluída"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__wizard_id
msgid "Wizard"
msgstr "Assistente"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You can only return as much product units as you received for this order"
msgstr ""
"Só pode devolver tantas unidades de produto quanto as que recebeu para esta "
"encomenda"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "You can send a message in every RMA sent"
msgstr "Você pode enviar uma mensagem em cada RMA enviada"
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#, python-format
msgid "You may only create RMAs from a confirmed or done sale order."
msgstr ""
"Você só pode criar RMAs a partir de uma encomanda de venda confirmada ou "
"concluída."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You're about to perform an RMA request. Our team will process it an will "
"reach you once it's validated. Keep in mind that:"
msgstr ""
"Você está prestes a realizar um pedido de RMA. A nossa equipa irá processá-"
"lo e entrará em contacto assim que for validado. Tenha presente que:"

472
rma_sale/i18n/pt_BR.po Normal file
View File

@@ -0,0 +1,472 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * rma_sale
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-07-22 18:19+0000\n"
"Last-Translator: Fernando Colus <fcolus1@gmail.com>\n"
"Language-Team: none\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: rma_sale
#: code:addons/rma_sale/controllers/sale_portal.py:0
#, python-format
msgid " (Portal)"
msgstr " (Portal)"
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " has been created."
msgstr " foi criado(a)."
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " have been created."
msgstr " foi criado(a)."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "&amp;times;"
msgstr "&amp;tempos;"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-check\"/> Request RMAs"
msgstr "<i class=\"fa fa-check\"/> Requerer RMAs"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_template
msgid "<i class=\"fa fa-reply\"/> Request RMAs"
msgstr "<i class=\"fa fa-reply\"/> Requerer RMAs"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-times\"/> Cancel"
msgstr "<i class=\"fa fa-times\"/> Cancelar"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-truck\"/> Choose a delivery address"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
"specific.\" groups=\"base.group_multi_company\"/>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid ""
"<span class=\"fa fa-reply\" role=\"img\" aria-label=\"RMA\" title=\"RMA\"/>"
msgstr ""
"<span class=\"fa fa-reply\" role=\"img\" aria-label=\"RMA\" title=\"RMA\"/>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid "<span>RMA</span>"
msgstr "<span>RMA</span>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Requested operation:</strong>"
msgstr "<strong>Operação Requerida:</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Requested operation</strong>"
msgstr "<strong>Operação Requerida</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Sale order:</strong>"
msgstr "<strong>Pedido de Venda:</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Sale order</strong>"
msgstr "<strong>Pedido de Venda</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Accept"
msgstr "Aceitar"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_move_ids
msgid "Allowed Move"
msgstr "Movimentação Autorizada"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_picking_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_picking_ids
msgid "Allowed Picking"
msgstr "Coleta Autorizada"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_product_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_product_ids
msgid "Allowed Product"
msgstr "Produto Autorizado"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Cancel"
msgstr "Cancelar"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid "Category"
msgstr "Categoria"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Close"
msgstr "Encerrar"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Comment anything relevant to the return, like serial numbers, a description "
"of the issue, etc"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__commercial_partner_id
msgid "Commercial entity"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_company
msgid "Companies"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid ""
"Conversion between Units of Measure can only occur if they belong to the "
"same category. The conversion will be made based on the ratios."
msgstr ""
"Uma conversão entre unidades de medida só poderá ocorrer se pertencer à "
"mesma categoria. A conversão será feita com base nas proporções."
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
#, python-format
msgid "Create RMA"
msgstr "Criar RMA"
#. module: rma_sale
#: model:ir.actions.act_window,name:rma_sale.sale_order_create_rma_action
msgid "Create RMAs"
msgstr "Criar RMAs"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_uid
msgid "Created by"
msgstr "Criado por"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_date
msgid "Created on"
msgstr "Criado em"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Custom Description"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Delivery"
msgstr "Entrega"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__picking_id
msgid "Delivery order"
msgstr "Ordem de Entrega"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__description
msgid "Description"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__display_name
msgid "Display Name"
msgstr "Exibir Nome"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,help:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid ""
"From the frontend sale order page go to a single RMA page creation instead "
"of the usual popup"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid "Full page RMA creation"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__id
msgid "ID"
msgstr "ID"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "If no requested operation is set, the RMA won't be correctly fulfilled"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard____last_update
msgid "Last Modified on"
msgstr "Última modificação Feita em"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_uid
msgid "Last Updated by"
msgstr "Última Atualização Feita por"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_date
msgid "Last Updated on"
msgstr "Última Atualização Feita em"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__line_ids
msgid "Lines"
msgstr "Linhas"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__move_id
msgid "Move"
msgstr "Movimentação"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__order_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__order_id
msgid "Order"
msgstr "Pedido"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__picking_id
msgid "Origin Delivery"
msgstr "Origem da Entrega"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__move_id
msgid "Origin move"
msgstr "Origem da Movimentação"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__product_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__product_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Product"
msgstr "Produto"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__quantity
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Quantity"
msgstr "Quantidade"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_rma
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
msgid "RMA"
msgstr "RMA"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_count
msgid "RMA count"
msgstr "Contagem de RMA"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__location_id
msgid "RMA location"
msgstr "Localização do RMA"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.request_rma_single_page
msgid "RMA request for order"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_ids
msgid "RMAs"
msgstr "RMAs"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Request RMAs"
msgstr "Requisição de RMAs"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__operation_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Requested operation"
msgstr "Operação Requisitada"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__sale_line_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__sale_line_id
msgid "Sale Line"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__order_id
msgid "Sale Order"
msgstr "Pedido de Venda"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line_rma_wizard
msgid "Sale Order Line Rma Wizard"
msgstr "Assistente da Linha do Pedido de Venda RMA"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_rma_wizard
msgid "Sale Order Rma Wizard"
msgstr "Assistente do Pedido de Venda RMA"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line
msgid "Sales Order Line"
msgstr "Linha do Pedido de Venda"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Select the product quantity and the requested operation"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Shipping Address"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Show portal RMA request in a single page"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Single page RMA request"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_stock_move
msgid "Stock Move"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "The limit will decrease when the units in other RMAs are confirmed"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_id
msgid "Unit of Measure"
msgstr "Unidade de Medida"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Use the comment button to add relevant information regarding the RMA, like "
"returned serial numbers or a description of the issue"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Values coming from portal RMA request form custom fields"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"When we hit the RMA request button from the portal sale page, open in a "
"single page instead of a popup."
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Will be used to return the goods when the RMA is completed"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__wizard_id
msgid "Wizard"
msgstr "Assistente"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You can only return as much product units as you received for this order"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "You can send a message in every RMA sent"
msgstr ""
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#, python-format
msgid "You may only create RMAs from a confirmed or done sale order."
msgstr ""
"Você só pode criar RMAs a partir de um pedido de venda confirmado ou "
"concluído."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You're about to perform an RMA request. Our team will process it an will "
"reach you once it's validated. Keep in mind that:"
msgstr ""
#~ msgid ""
#~ "<span>\n"
#~ " If an RMA has already been created for a "
#~ "product in this sales order, it will not\n"
#~ " be possible to create another one from "
#~ "the web portal.\n"
#~ " </span>"
#~ msgstr ""
#~ "<span>\n"
#~ " Se um RMA já houver sido criado para um "
#~ "produto no pedido de venda,\n"
#~ " não será possível criar outro através do "
#~ "portal web.\n"
#~ " </span>"

466
rma_sale/i18n/rma_sale.pot Normal file
View File

@@ -0,0 +1,466 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * rma_sale
#
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: rma_sale
#: code:addons/rma_sale/controllers/sale_portal.py:0
#, python-format
msgid " (Portal)"
msgstr ""
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " has been created."
msgstr ""
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " have been created."
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "&amp;times;"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-check\"/> Request RMAs"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_template
msgid "<i class=\"fa fa-reply\"/> Request RMAs"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-times\"/> Cancel"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-truck\"/> Choose a delivery address"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
"specific.\" groups=\"base.group_multi_company\"/>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid "<span class=\"fa fa-reply\" role=\"img\" aria-label=\"RMA\" title=\"RMA\"/>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid "<span>RMA</span>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Requested operation:</strong>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Requested operation</strong>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Sale order:</strong>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Sale order</strong>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Accept"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_move_ids
msgid "Allowed Move"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_picking_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_picking_ids
msgid "Allowed Picking"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_product_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_product_ids
msgid "Allowed Product"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Cancel"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid "Category"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Close"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Comment anything relevant to the return, like serial numbers, a description "
"of the issue, etc"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__commercial_partner_id
msgid "Commercial entity"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_company
msgid "Companies"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid ""
"Conversion between Units of Measure can only occur if they belong to the "
"same category. The conversion will be made based on the ratios."
msgstr ""
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
#, python-format
msgid "Create RMA"
msgstr ""
#. module: rma_sale
#: model:ir.actions.act_window,name:rma_sale.sale_order_create_rma_action
msgid "Create RMAs"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_uid
msgid "Created by"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_date
msgid "Created on"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Custom Description"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Delivery"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__picking_id
msgid "Delivery order"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__description
msgid "Description"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__display_name
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__display_name
#: model:ir.model.fields,field_description:rma_sale.field_rma__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__display_name
#: model:ir.model.fields,field_description:rma_sale.field_stock_move__display_name
msgid "Display Name"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,help:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid ""
"From the frontend sale order page go to a single RMA page creation instead "
"of the usual popup"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid "Full page RMA creation"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__id
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__id
#: model:ir.model.fields,field_description:rma_sale.field_rma__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__id
#: model:ir.model.fields,field_description:rma_sale.field_stock_move__id
msgid "ID"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "If no requested operation is set, the RMA won't be correctly fulfilled"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company____last_update
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings____last_update
#: model:ir.model.fields,field_description:rma_sale.field_rma____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard____last_update
#: model:ir.model.fields,field_description:rma_sale.field_stock_move____last_update
msgid "Last Modified on"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_uid
msgid "Last Updated by"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_date
msgid "Last Updated on"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__line_ids
msgid "Lines"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__move_id
msgid "Move"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__order_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__order_id
msgid "Order"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__picking_id
msgid "Origin Delivery"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__move_id
msgid "Origin move"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__product_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__product_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Product"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__quantity
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Quantity"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_rma
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
msgid "RMA"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_count
msgid "RMA count"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__location_id
msgid "RMA location"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.request_rma_single_page
msgid "RMA request for order"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_ids
msgid "RMAs"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Request RMAs"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__operation_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Requested operation"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__sale_line_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__sale_line_id
msgid "Sale Line"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__order_id
msgid "Sale Order"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line_rma_wizard
msgid "Sale Order Line Rma Wizard"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_rma_wizard
msgid "Sale Order Rma Wizard"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line
msgid "Sales Order Line"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Select the product quantity and the requested operation"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Shipping Address"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Show portal RMA request in a single page"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Single page RMA request"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_stock_move
msgid "Stock Move"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "The limit will decrease when the units in other RMAs are confirmed"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_id
msgid "Unit of Measure"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Use the comment button to add relevant information regarding the RMA, like "
"returned serial numbers or a description of the issue"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Values coming from portal RMA request form custom fields"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"When we hit the RMA request button from the portal sale page, open in a "
"single page instead of a popup."
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Will be used to return the goods when the RMA is completed"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__wizard_id
msgid "Wizard"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You can only return as much product units as you received for this order"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "You can send a message in every RMA sent"
msgstr ""
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#, python-format
msgid "You may only create RMAs from a confirmed or done sale order."
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You're about to perform an RMA request. Our team will process it an will "
"reach you once it's validated. Keep in mind that:"
msgstr ""

468
rma_sale/i18n/ro.po Normal file
View File

@@ -0,0 +1,468 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * rma_sale
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2020-12-20 05:43+0000\n"
"Last-Translator: Dorin Hongu <dhongu@gmail.com>\n"
"Language-Team: none\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
"X-Generator: Weblate 4.3.2\n"
#. module: rma_sale
#: code:addons/rma_sale/controllers/sale_portal.py:0
#, python-format
msgid " (Portal)"
msgstr " (Portal)"
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " has been created."
msgstr " a fost creat."
#. module: rma_sale
#: code:addons/rma_sale/wizard/sale_order_rma_wizard.py:0
#, python-format
msgid " have been created."
msgstr " au fost create."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "&amp;times;"
msgstr "&amp;times;"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-check\"/> Request RMAs"
msgstr "<i class=\"fa fa-check\"/> Cerere retur"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_template
msgid "<i class=\"fa fa-reply\"/> Request RMAs"
msgstr "<i class=\"fa fa-reply\"/> Cerere retur"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-times\"/> Cancel"
msgstr "<i class=\"fa fa-times\"/> Anulat"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "<i class=\"fa fa-truck\"/> Choose a delivery address"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
"specific.\" groups=\"base.group_multi_company\"/>"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid ""
"<span class=\"fa fa-reply\" role=\"img\" aria-label=\"RMA\" title=\"RMA\"/>"
msgstr ""
"<span class=\"fa fa-reply\" role=\"img\" aria-label=\"Retur\" title=\"Retur"
"\"/>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_portal_content
msgid "<span>RMA</span>"
msgstr "<span>Retur</span>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Requested operation:</strong>"
msgstr "<strong>Operație solicitată:</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Requested operation</strong>"
msgstr "<strong>Operație solicitată</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.report_rma_document
msgid "<strong>Sale order:</strong>"
msgstr "<strong>Comandă vânzare:</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.portal_rma_page
msgid "<strong>Sale order</strong>"
msgstr "<strong>Comandă vânzare</strong>"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Accept"
msgstr "Acceptă"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_move_ids
msgid "Allowed Move"
msgstr "Mișcare permisă"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_picking_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_picking_ids
msgid "Allowed Picking"
msgstr "Transfer permis"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__allowed_product_ids
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__allowed_product_ids
msgid "Allowed Product"
msgstr "Produs permis"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_order_rma_wizard_form_view
msgid "Cancel"
msgstr "Revocare"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid "Category"
msgstr "Categorie"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Close"
msgstr "Închide"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Comment anything relevant to the return, like serial numbers, a description "
"of the issue, etc"
msgstr ""
"Menționează orice este relevant pentru returnare, cum ar fi numerele de "
"serie, o descriere a problemei etc."
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__commercial_partner_id
msgid "Commercial entity"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_company
msgid "Companies"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_line_rma_wizard__uom_category_id
msgid ""
"Conversion between Units of Measure can only occur if they belong to the "
"same category. The conversion will be made based on the ratios."
msgstr ""
"Conversia între unitățile de măsură poate avea loc numai dacă aparțin "
"aceleiași categorii. Conversia se va face pe baza rapoartelor."
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
#, python-format
msgid "Create RMA"
msgstr "Creați cerere retur"
#. module: rma_sale
#: model:ir.actions.act_window,name:rma_sale.sale_order_create_rma_action
msgid "Create RMAs"
msgstr "Creați cereri retur"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_uid
msgid "Created by"
msgstr "Creat de"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__create_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__create_date
msgid "Created on"
msgstr "Creat pe"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Custom Description"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Delivery"
msgstr "Livrare"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__picking_id
msgid "Delivery order"
msgstr "Comandă livrare"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__description
msgid "Description"
msgstr "Descriere"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__display_name
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__display_name
msgid "Display Name"
msgstr "Nume afișat"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,help:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid ""
"From the frontend sale order page go to a single RMA page creation instead "
"of the usual popup"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_res_company__show_full_page_sale_rma
#: model:ir.model.fields,field_description:rma_sale.field_res_config_settings__show_full_page_sale_rma
msgid "Full page RMA creation"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__id
msgid "ID"
msgstr "ID"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "If no requested operation is set, the RMA won't be correctly fulfilled"
msgstr ""
"Dacă nu este setată nicio operațiune solicitată, cererea de retur nu va fi "
"completată corect"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard____last_update
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard____last_update
msgid "Last Modified on"
msgstr "Ultima modificare în"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_uid
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_uid
msgid "Last Updated by"
msgstr "Ultima modificare de"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__write_date
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__write_date
msgid "Last Updated on"
msgstr "Ultima modificare în"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__line_ids
msgid "Lines"
msgstr "Linii"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__move_id
msgid "Move"
msgstr "Mișcare"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__order_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__order_id
msgid "Order"
msgstr "Comandă"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__picking_id
msgid "Origin Delivery"
msgstr "Livrare origine"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__move_id
msgid "Origin move"
msgstr "Mișcare origine"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__product_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__product_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Product"
msgstr "Produs"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__quantity
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Quantity"
msgstr "Cantitate"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_rma
#: model_terms:ir.ui.view,arch_db:rma_sale.view_order_form
msgid "RMA"
msgstr "Retur"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_count
msgid "RMA count"
msgstr "Număr cereri retur"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__location_id
msgid "RMA location"
msgstr "Locație retur"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.request_rma_single_page
msgid "RMA request for order"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order__rma_ids
msgid "RMAs"
msgstr "Cereri retur"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Request RMAs"
msgstr "Cereri retur"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__operation_id
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Requested operation"
msgstr "Operație solicitată"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__sale_line_id
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__sale_line_id
msgid "Sale Line"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_rma__order_id
msgid "Sale Order"
msgstr "Comandă vânzare"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line_rma_wizard
msgid "Sale Order Line Rma Wizard"
msgstr "Line comandă vânzare asistent retur"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_rma_wizard
msgid "Sale Order Rma Wizard"
msgstr "Comanda vânzare asistent retur"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order
msgid "Sales Order"
msgstr "Comandă vânzare"
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_sale_order_line
msgid "Sales Order Line"
msgstr "Linie comandă vânzare"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "Select the product quantity and the requested operation"
msgstr "Selectați cantitatea produsului și operațiunea solicitată"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Shipping Address"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Show portal RMA request in a single page"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid "Single page RMA request"
msgstr ""
#. module: rma_sale
#: model:ir.model,name:rma_sale.model_stock_move
msgid "Stock Move"
msgstr "Mișcare stoc"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "The limit will decrease when the units in other RMAs are confirmed"
msgstr "Limita va scădea atunci când unitățile din alte cereri sunt confirmate"
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__uom_id
msgid "Unit of Measure"
msgstr "Unitate de măsură"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"Use the comment button to add relevant information regarding the RMA, like "
"returned serial numbers or a description of the issue"
msgstr ""
"Utilizați butonul de comentariu pentru a adăuga informații relevante cu "
"privire la retur, cum ar fi numerele de serie returnate sau o descriere a "
"problemei"
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__custom_description
msgid "Values coming from portal RMA request form custom fields"
msgstr ""
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.res_config_settings_view_form
msgid ""
"When we hit the RMA request button from the portal sale page, open in a "
"single page instead of a popup."
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,help:rma_sale.field_sale_order_rma_wizard__partner_shipping_id
msgid "Will be used to return the goods when the RMA is completed"
msgstr ""
#. module: rma_sale
#: model:ir.model.fields,field_description:rma_sale.field_sale_order_line_rma_wizard__wizard_id
msgid "Wizard"
msgstr "Asistent"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You can only return as much product units as you received for this order"
msgstr ""
"Puteți returna doar câte unități de produs ați primit pentru această comandă"
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid "You can send a message in every RMA sent"
msgstr "Puteți trimite un mesaj în fiecare cerere de retur trimisă"
#. module: rma_sale
#: code:addons/rma_sale/models/sale.py:0
#, python-format
msgid "You may only create RMAs from a confirmed or done sale order."
msgstr ""
"Puteți crea retur numai dintr-o comandă de vânzare confirmată sau finalizată."
#. module: rma_sale
#: model_terms:ir.ui.view,arch_db:rma_sale.sale_rma_request_form
msgid ""
"You're about to perform an RMA request. Our team will process it an will "
"reach you once it's validated. Keep in mind that:"
msgstr ""
"Sunteți pe cale să efectuați o solicitare de retur. Echipa noastră o va "
"procesa odată ce va fi validată. Ține minte că:"

View File

@@ -0,0 +1,6 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import res_company
from . import res_config_settings
from . import rma
from . import sale
from . import stock_move

View File

@@ -0,0 +1,13 @@
# Copyright 2021 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models
class ResCompany(models.Model):
_inherit = "res.company"
show_full_page_sale_rma = fields.Boolean(
string="Full page RMA creation",
help="From the frontend sale order page go to a single RMA page "
"creation instead of the usual popup",
)

View File

@@ -0,0 +1,12 @@
# Copyright 2021 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
show_full_page_sale_rma = fields.Boolean(
related="company_id.show_full_page_sale_rma",
readonly=False,
)

113
rma_sale/models/rma.py Normal file
View File

@@ -0,0 +1,113 @@
# Copyright 2020 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class Rma(models.Model):
_inherit = "rma"
order_id = fields.Many2one(
comodel_name="sale.order",
string="Sale Order",
domain="["
" ('partner_id', 'child_of', commercial_partner_id),"
" ('state', 'in', ['sale', 'done']),"
"]",
readonly=True,
states={"draft": [("readonly", False)]},
)
allowed_picking_ids = fields.Many2many(
comodel_name="stock.picking",
compute="_compute_allowed_picking_ids",
)
picking_id = fields.Many2one(domain="[('id', 'in', allowed_picking_ids)]")
allowed_move_ids = fields.Many2many(
comodel_name="sale.order.line",
compute="_compute_allowed_move_ids",
)
move_id = fields.Many2one(domain="[('id', 'in', allowed_move_ids)]")
sale_line_id = fields.Many2one(
related="move_id.sale_line_id",
)
allowed_product_ids = fields.Many2many(
comodel_name="product.product",
compute="_compute_allowed_product_ids",
)
product_id = fields.Many2one(domain="[('id', 'in', allowed_product_ids)]")
@api.depends("partner_id", "order_id")
def _compute_allowed_picking_ids(self):
domain = [("state", "=", "done"), ("picking_type_id.code", "=", "outgoing")]
for rec in self:
if rec.partner_id:
commercial_partner = rec.partner_id.commercial_partner_id
domain.append(("partner_id", "child_of", commercial_partner.id))
if rec.order_id:
domain.append(("sale_id", "=", rec.order_id.id))
rec.allowed_picking_ids = self.env["stock.picking"].search(domain)
@api.depends("order_id", "picking_id")
def _compute_allowed_move_ids(self):
for rec in self:
if rec.order_id:
order_move = rec.order_id.order_line.mapped("move_ids")
rec.allowed_move_ids = order_move.filtered(
lambda r: r.picking_id == self.picking_id and r.state == "done"
).ids
else:
rec.allowed_move_ids = self.picking_id.move_lines.ids
@api.depends("order_id")
def _compute_allowed_product_ids(self):
for rec in self:
if rec.order_id:
order_product = rec.order_id.order_line.mapped("product_id")
rec.allowed_product_ids = order_product.filtered(
lambda r: r.type in ["consu", "product"]
).ids
else:
rec.allowed_product_ids = (
self.env["product.product"]
.search([("type", "in", ["consu", "product"])])
.ids
)
@api.onchange("partner_id")
def _onchange_partner_id(self):
res = super()._onchange_partner_id()
self.order_id = False
return res
@api.onchange("order_id")
def _onchange_order_id(self):
self.product_id = self.picking_id = False
def _prepare_refund(self, invoice_form, origin):
"""Inject salesman from sales order (if any)"""
res = super()._prepare_refund(invoice_form, origin)
if self.order_id:
invoice_form.invoice_user_id = self.order_id.user_id
return res
def _get_refund_line_price_unit(self):
"""Get the sale order price unit"""
if self.sale_line_id:
return self.sale_line_id.price_unit
return super()._get_refund_line_price_unit()
def _get_refund_line_product(self):
"""To be overriden in a third module with the proper origin values
in case a kit is linked with the rma"""
if not self.sale_line_id:
return super()._get_refund_line_product()
return self.sale_line_id.product_id
def _prepare_refund_line(self, line_form):
"""Add line data"""
res = super()._prepare_refund_line(line_form)
line = self.sale_line_id
if line:
line_form.discount = line.discount
line_form.sequence = line.sequence
return res

171
rma_sale/models/sale.py Normal file
View File

@@ -0,0 +1,171 @@
# Copyright 2020 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
class SaleOrder(models.Model):
_inherit = "sale.order"
# RMAs that were created from a sale order
rma_ids = fields.One2many(
comodel_name="rma",
inverse_name="order_id",
string="RMAs",
copy=False,
)
rma_count = fields.Integer(string="RMA count", compute="_compute_rma_count")
def _compute_rma_count(self):
rma_data = self.env["rma"].read_group(
[("order_id", "in", self.ids)], ["order_id"], ["order_id"]
)
mapped_data = {r["order_id"][0]: r["order_id_count"] for r in rma_data}
for record in self:
record.rma_count = mapped_data.get(record.id, 0)
def _prepare_rma_wizard_line_vals(self, data):
"""So we can extend the wizard easily"""
return {
"product_id": data["product"].id,
"quantity": data["quantity"],
"sale_line_id": data["sale_line_id"].id,
"uom_id": data["uom"].id,
"picking_id": data["picking"] and data["picking"].id,
}
def action_create_rma(self):
self.ensure_one()
if self.state not in ["sale", "done"]:
raise ValidationError(
_("You may only create RMAs from a " "confirmed or done sale order.")
)
wizard_obj = self.env["sale.order.rma.wizard"]
line_vals = [
(0, 0, self._prepare_rma_wizard_line_vals(data))
for data in self.get_delivery_rma_data()
]
wizard = wizard_obj.with_context(active_id=self.id).create(
{"line_ids": line_vals, "location_id": self.warehouse_id.rma_loc_id.id}
)
return {
"name": _("Create RMA"),
"type": "ir.actions.act_window",
"view_mode": "form",
"res_model": "sale.order.rma.wizard",
"res_id": wizard.id,
"target": "new",
}
def action_view_rma(self):
self.ensure_one()
action = self.sudo().env.ref("rma.rma_action").read()[0]
rma = self.rma_ids
if len(rma) == 1:
action.update(
res_id=rma.id,
view_mode="form",
views=[],
)
else:
action["domain"] = [("id", "in", rma.ids)]
# reset context to show all related rma without default filters
action["context"] = {}
return action
def get_delivery_rma_data(self):
self.ensure_one()
data = []
for line in self.order_line:
data += line.prepare_sale_rma_data()
return data
@api.depends("rma_ids.refund_id")
def _get_invoiced(self):
"""Search for possible RMA refunds and link them to the order. We
don't want to link their sale lines as that would unbalance the
qtys to invoice wich isn't correct for this case"""
res = super()._get_invoiced()
for order in self:
refunds = order.sudo().rma_ids.mapped("refund_id")
if not refunds:
continue
order.invoice_ids += refunds
order.invoice_count = len(order.invoice_ids)
return res
class SaleOrderLine(models.Model):
_inherit = "sale.order.line"
def get_delivery_move(self):
self.ensure_one()
return self.move_ids.filtered(
lambda r: (
self == r.sale_line_id
and r.state == "done"
and not r.scrapped
and r.location_dest_id.usage == "customer"
and (
not r.origin_returned_move_id
or (r.origin_returned_move_id and r.to_refund)
)
)
)
def prepare_sale_rma_data(self):
self.ensure_one()
# Method helper to filter chained moves
def destination_moves(_move):
return _move.mapped("move_dest_ids").filtered(
lambda r: r.state in ["partially_available", "assigned", "done"]
)
product = self.product_id
if self.product_id.type not in ["product", "consu"]:
return {}
moves = self.get_delivery_move()
data = []
if moves:
for move in moves:
# Look for chained moves to check how many items we can allow
# to return. When a product is re-delivered it should be
# allowed to open an RMA again on it.
qty = move.product_uom_qty
qty_returned = 0
move_dest = destination_moves(move)
# With the return of the return of the return we could have an
# infinite loop, so we should avoid it dropping already explored
# move_dest_ids
visited_moves = move + move_dest
while move_dest:
qty_returned -= sum(move_dest.mapped("product_uom_qty"))
move_dest = destination_moves(move_dest) - visited_moves
if move_dest:
visited_moves += move_dest
qty += sum(move_dest.mapped("product_uom_qty"))
move_dest = destination_moves(move_dest) - visited_moves
# If by chance we get a negative qty we should ignore it
qty = max(0, sum((qty, qty_returned)))
data.append(
{
"product": move.product_id,
"quantity": qty,
"uom": move.product_uom,
"picking": move.picking_id,
"sale_line_id": self,
}
)
else:
data.append(
{
"product": product,
"quantity": self.qty_delivered,
"uom": self.product_uom,
"picking": False,
"sale_line_id": self,
}
)
return data

View File

@@ -0,0 +1,13 @@
# Copyright 2020 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import models
class StockMove(models.Model):
_inherit = "stock.move"
def _prepare_return_rma_vals(self, original_picking):
res = super()._prepare_return_rma_vals(original_picking)
res.update(order_id=original_picking.sale_id.id)
return res

View File

@@ -0,0 +1,8 @@
* `Tecnativa <https://www.tecnativa.com>`_:
* Ernesto Tejeda
* Pedro M. Baeza
* David Vidal
* Chafique Delli <chafique.delli@akretion.com>
* Giovanni Serra - Ooops <giovanni@ooops404.com>

View File

@@ -0,0 +1,4 @@
This module allows you to link a sales order to an RMA.
This can be done by creating an RMA from scratch and selecting the sales
order, creating one or more RMAs from a sales order form view or from a sales
order web portal page.

View File

@@ -0,0 +1,5 @@
* When you try to request an RMA from a Sales Order in the portal,
a popup appears and the inputs for the quantity doesn't allow
decimal numbers. It would be good to have a component that allows
that and at the same time keeps the constraint of not allowing a
number greater than the order line product quantity.

25
rma_sale/readme/USAGE.rst Normal file
View File

@@ -0,0 +1,25 @@
To use this module, you need to:
#. Go to *RMA > Orders* and create a new RMA.
#. Select a sales order to be linked to the RMA if you want.
#. Now you can do the rest of the instructions described in the
*readme* of the rma module.
If you want to create one or more RMAs from a sale order:
#. Go to *Sales > Orders > Orders*.
#. Create a new sales order or select an existing one.
#. If the sales order is in 'Sales Order' state you can see in the status bar
a button labeled 'Create RMA', click it and a wizard will appear.
#. Modify the data at your convenience and click on 'Accept' button.
#. As many RMAs as lines with quantity greater than zero will be created.
Those RMAs will be linked to the sales order.
The customer can also create RMAs from a sales order portal page:
#. Go to a confirmed sales order portal page.
#. In the left sidebar you can see a button named 'Request RMAs'.
#. By clicking on this button a popup will appear to allow you to define
the quantity per product and delivery order line.
#. Click on the 'Request RMAs' button and RMAs will be created linked to
the sales order.

View File

@@ -0,0 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sale_order_rma_wizard_user_all,sale.order.rma.wizard.user.all,model_sale_order_rma_wizard,rma.rma_group_user_all,1,1,1,1
access_sale_order_line_rma_wizard_user_all,sale.order.line.rma.wizard.user.all,model_sale_order_line_rma_wizard,rma.rma_group_user_all,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_sale_order_rma_wizard_user_all sale.order.rma.wizard.user.all model_sale_order_rma_wizard rma.rma_group_user_all 1 1 1 1
3 access_sale_order_line_rma_wizard_user_all sale.order.line.rma.wizard.user.all model_sale_order_line_rma_wizard rma.rma_group_user_all 1 1 1 1

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,472 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
<title>Return Merchandise Authorization Management - Link with Sales</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/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: grey; } /* 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 {
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="return-merchandise-authorization-management-link-with-sales">
<h1 class="title">Return Merchandise Authorization Management - Link with Sales</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external" 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" href="https://github.com/OCA/rma/tree/14.0/rma_sale"><img alt="OCA/rma" src="https://img.shields.io/badge/github-OCA%2Frma-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/rma-14-0/rma-14-0-rma_sale"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/145/14.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>This module allows you to link a sales order to an RMA.
This can be done by creating an RMA from scratch and selecting the sales
order, creating one or more RMAs from a sales order form view or from a sales
order web portal page.</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="id1">Usage</a></li>
<li><a class="reference internal" href="#known-issues-roadmap" id="id2">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id3">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id4">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id5">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id6">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id7">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#id1">Usage</a></h1>
<p>To use this module, you need to:</p>
<ol class="arabic simple">
<li>Go to <em>RMA &gt; Orders</em> and create a new RMA.</li>
<li>Select a sales order to be linked to the RMA if you want.</li>
<li>Now you can do the rest of the instructions described in the
<em>readme</em> of the rma module.</li>
</ol>
<p>If you want to create one or more RMAs from a sale order:</p>
<ol class="arabic simple">
<li>Go to <em>Sales &gt; Orders &gt; Orders</em>.</li>
<li>Create a new sales order or select an existing one.</li>
<li>If the sales order is in Sales Order state you can see in the status bar
a button labeled Create RMA, click it and a wizard will appear.</li>
<li>Modify the data at your convenience and click on Accept button.</li>
<li>As many RMAs as lines with quantity greater than zero will be created.
Those RMAs will be linked to the sales order.</li>
</ol>
<p>The customer can also create RMAs from a sales order portal page:</p>
<ol class="arabic simple">
<li>Go to a confirmed sales order portal page.</li>
<li>In the left sidebar you can see a button named Request RMAs.</li>
<li>By clicking on this button a popup will appear to allow you to define
the quantity per product and delivery order line.</li>
<li>Click on the Request RMAs button and RMAs will be created linked to
the sales order.</li>
</ol>
</div>
<div class="section" id="known-issues-roadmap">
<h1><a class="toc-backref" href="#id2">Known issues / Roadmap</a></h1>
<ul class="simple">
<li>When you try to request an RMA from a Sales Order in the portal,
a popup appears and the inputs for the quantity doesnt allow
decimal numbers. It would be good to have a component that allows
that and at the same time keeps the constraint of not allowing a
number greater than the order line product quantity.</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id3">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/rma/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 smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/rma/issues/new?body=module:%20rma_sale%0Aversion:%2014.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="#id4">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id5">Authors</a></h2>
<ul class="simple">
<li>Tecnativa</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id6">Contributors</a></h2>
<ul class="simple">
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Ernesto Tejeda</li>
<li>Pedro M. Baeza</li>
<li>David Vidal</li>
</ul>
</li>
<li>Chafique Delli &lt;<a class="reference external" href="mailto:chafique.delli&#64;akretion.com">chafique.delli&#64;akretion.com</a>&gt;</li>
<li>Giovanni Serra - Ooops &lt;<a class="reference external" href="mailto:giovanni&#64;ooops404.com">giovanni&#64;ooops404.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id7">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" href="https://github.com/ernestotejeda"><img alt="ernestotejeda" src="https://github.com/ernestotejeda.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/rma/tree/14.0/rma_sale">OCA/rma</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,124 @@
/* Copyright 2021 Tecnativa - David Vidal
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). */
odoo.define("rma_sale.animation", function (require) {
"use strict";
const publicWidget = require("web.public.widget");
/**
* Adds some machinery to the customer portal RMA form:
*
* - Avoid submitting the form if no qty or operation is reported.
* - Show automatically the observations field when the operation is selected
* and hide it back with no operation selected.
*/
publicWidget.registry.PortalRmaSale = publicWidget.Widget.extend({
selector: "#form-request-rma",
events: {
"change .rma-operation": "_onChangeOperationId",
"change #delivery-rma-qty input": "_onChangeQty",
},
/**
* @override
*/
start: function () {
const ids = this.$("[name*='-operation_id']")
.map(function () {
return this.name.replace("-operation_id", "");
})
.get();
this.$submit = $("#form-request-rma button[type='submit']");
this.rows_ids = ids;
// We'll build an object that will ease the form check. It could be further
// extended with additional checks.
this.rows = {};
_.each(ids, (id) => {
this.rows[id] = {
$comment: this.$(`#comment-${id}`),
$comment_input: this.$(`[name='${id}-description']`),
$operation: this.$(`[name='${id}-operation_id']`),
$qty: this.$(`[name='${id}-quantity']`),
};
});
this._checkCanSubmit();
},
/**
* @private
* @param {Object} row: the form row structure
*/
_show_comment: function (row) {
if (row.$comment) {
row.$comment.addClass("show");
if (row.$comment_input) {
row.$comment_input.focus();
}
}
},
/**
* @private
* @param {Object} row: the form row structure
*/
_hide_comment: function (row) {
if (row.$comment) {
row.$comment.removeClass("show");
}
},
/**
* We should be able to submit only when an operation is selected and a
* quantity entered in a row at least.
* @private
*/
_canSubmit: function () {
var can_submit = false;
for (const id of this.rows_ids) {
const row = this.rows[id];
if (
row &&
// Qty greater than 0
row.$qty &&
row.$qty.val() &&
Number(row.$qty.val()) &&
// An operation is defined
row.$operation &&
row.$operation.val()
) {
can_submit = true;
break;
}
}
return can_submit;
},
/**
* Checked every time we change the quantity or the operation and at start
*
* @private
* @param {Object} row: the form row structure
*/
_checkCanSubmit: function () {
this.$submit.prop("disabled", !this._canSubmit());
},
/**
* @private
* @param {InputEvent} ev
*/
_onChangeOperationId: function (ev) {
// Toggle comment on or off if an operation is requested
const id = ev.currentTarget.name.replace("-operation_id", "");
var row = this.rows[id];
if (row && row.$operation && row.$operation.val()) {
this._show_comment(row);
} else {
this._hide_comment(row);
}
this._checkCanSubmit();
},
/**
* @private
*/
_onChangeQty: function () {
this._checkCanSubmit();
},
});
});

View File

@@ -0,0 +1,5 @@
.request-rma-tbody {
td {
vertical-align: middle;
}
}

View File

@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import test_rma_sale

View File

@@ -0,0 +1,117 @@
# Copyright 2020 Tecnativa - Ernesto Tejeda
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo.tests import Form, TransactionCase
class TestRmaSale(TransactionCase):
@classmethod
def setUpClass(cls):
super(TestRmaSale, cls).setUpClass()
cls.res_partner = cls.env["res.partner"]
cls.product_product = cls.env["product.product"]
cls.sale_order = cls.env["sale.order"]
cls.product_1 = cls.product_product.create(
{"name": "Product test 1", "type": "product"}
)
cls.product_2 = cls.product_product.create(
{"name": "Product test 2", "type": "product"}
)
cls.partner = cls.res_partner.create({"name": "Partner test"})
order_form = Form(cls.sale_order)
order_form.partner_id = cls.partner
with order_form.order_line.new() as line_form:
line_form.product_id = cls.product_1
line_form.product_uom_qty = 5
cls.sale_order = order_form.save()
cls.sale_order.action_confirm()
# Maybe other modules create additional lines in the create
# method in sale.order model, so let's find the correct line.
cls.order_line = cls.sale_order.order_line.filtered(
lambda r: r.product_id == cls.product_1
)
cls.order_out_picking = cls.sale_order.picking_ids
cls.order_out_picking.move_lines.quantity_done = 5
cls.order_out_picking.button_validate()
def _rma_sale_wizard(self, order):
wizard_id = order.action_create_rma()["res_id"]
return self.env["sale.order.rma.wizard"].browse(wizard_id)
def test_create_rma_with_so(self):
rma_form = Form(self.env["rma"])
rma_form.partner_id = self.partner
rma_form.order_id = self.sale_order
rma_form.product_id = self.product_1
rma_form.product_uom_qty = 5
rma_form.location_id = self.sale_order.warehouse_id.rma_loc_id
rma = rma_form.save()
rma.action_confirm()
self.assertTrue(rma.reception_move_id)
self.assertFalse(rma.reception_move_id.origin_returned_move_id)
def test_create_rma_from_so(self):
order = self.sale_order
wizard_id = order.action_create_rma()["res_id"]
wizard = self.env["sale.order.rma.wizard"].browse(wizard_id)
rma = self.env["rma"].browse(wizard.create_and_open_rma()["res_id"])
self.assertEqual(rma.partner_id, order.partner_id)
self.assertEqual(rma.order_id, order)
self.assertEqual(rma.picking_id, self.order_out_picking)
self.assertEqual(rma.move_id, self.order_out_picking.move_lines)
self.assertEqual(rma.product_id, self.product_1)
self.assertEqual(rma.product_uom_qty, self.order_line.product_uom_qty)
self.assertEqual(rma.product_uom, self.order_line.product_uom)
self.assertEqual(rma.state, "confirmed")
self.assertEqual(
rma.reception_move_id.origin_returned_move_id,
self.order_out_picking.move_lines,
)
self.assertEqual(
rma.reception_move_id.picking_id + self.order_out_picking,
order.picking_ids,
)
# Refund the RMA
user = self.env["res.users"].create(
{"login": "test_refund_with_so", "name": "Test"}
)
order.user_id = user.id
rma.action_confirm()
rma.reception_move_id.quantity_done = rma.product_uom_qty
rma.reception_move_id.picking_id._action_done()
rma.action_refund()
self.assertEqual(rma.refund_id.user_id, user)
def test_create_recurrent_rma(self):
"""An RMA of a product that had an RMA in the past should be possible"""
wizard = self._rma_sale_wizard(self.sale_order)
rma = self.env["rma"].browse(wizard.create_and_open_rma()["res_id"])
rma.reception_move_id.quantity_done = rma.product_uom_qty
rma.reception_move_id.picking_id._action_done()
wizard = self._rma_sale_wizard(self.sale_order)
self.assertEqual(
wizard.line_ids.quantity,
0,
"There shouldn't be any allowed quantities for RMAs",
)
delivery_form = Form(
self.env["rma.delivery.wizard"].with_context(
active_ids=rma.ids,
rma_delivery_type="return",
)
)
delivery_form.product_uom_qty = rma.product_uom_qty
delivery_wizard = delivery_form.save()
delivery_wizard.action_deliver()
picking = rma.delivery_move_ids.picking_id
picking.move_lines.quantity_done = rma.product_uom_qty
picking._action_done()
# The product is returned to the customer, so we should be able to make
# another RMA in the future
wizard = self._rma_sale_wizard(self.sale_order)
self.assertEqual(
wizard.line_ids.quantity,
rma.product_uom_qty,
"We should be allowed to return the product again",
)

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="report_rma_document" inherit_id="rma.report_rma_document">
<xpath expr="//div[@t-if='doc.picking_id']" position="before">
<div t-if="doc.order_id" class="col-auto mw-100 mb-2">
<strong>Sale order:</strong>
<p class="m-0" t-field="doc.order_id" />
</div>
</xpath>
<xpath expr="//div[@t-if='doc.user_id']" position="before">
<div t-if="doc.operation_id" class="col-auto mw-100 mb-2">
<strong>Requested operation:</strong>
<p class="m-0" t-field="doc.operation_id" />
</div>
</xpath>
</template>
</odoo>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="res_config_settings_view_form" model="ir.ui.view">
<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="//div[@data-key='sale_management']/div[hasclass('o_settings_container')]"
position="inside"
>
<div
class="col-12 col-lg-6 o_setting_box"
title="Show portal RMA request in a single page"
>
<div class="o_setting_left_pane">
<field name="show_full_page_sale_rma" />
</div>
<div class="o_setting_right_pane">
<label
for="show_full_page_sale_rma"
string="Single page RMA request"
/>
<span
class="fa fa-lg fa-building-o"
title="Values set here are company-specific."
groups="base.group_multi_company"
/>
<div class="text-muted">
When we hit the RMA request button from the portal sale page, open in a single page instead of a popup.
</div>
</div>
</div>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2020 Tecnativa - Ernesto Tejeda
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="rma_view_form" model="ir.ui.view">
<field name="name">rma.view.form</field>
<field name="model">rma</field>
<field name="inherit_id" ref="rma.rma_view_form" />
<field name="arch" type="xml">
<field name="partner_invoice_id" position="after">
<field name="order_id" options="{'no_create': True}" />
</field>
<sheet>
<field name="allowed_picking_ids" invisible="1" />
<field name="allowed_move_ids" invisible="1" />
<field name="allowed_product_ids" invisible="1" />
</sheet>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,327 @@
<odoo>
<!-- Call this form via controller to add it to an independent page -->
<template id="sale_rma_request_form" name="RMA Request Form">
<form
id="form-request-rma"
method="POST"
t-attf-action="/my/orders/#{sale_order.id}/requestrma?{{ keep_query() }}"
t-att-class="not single_page_mode and 'modal-content' or 'col-12'"
>
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()" />
<header class="modal-header" t-if="not single_page_mode">
<h4 class="modal-title">Request RMAs</h4>
<button
type="button"
class="close"
data-dismiss="modal"
aria-label="Close"
>&amp;times;</button>
</header>
<main
t-att-class="not single_page_mode and 'modal-body'"
id="modal-body-request-rma"
>
<div class="alert alert-info mb-2 mb-sm-1 oe_structure" role="alert">
<span>
You're about to perform an RMA request. Our team will process it an will reach you once it's validated. Keep in mind that:
<ul>
<li>Select the product quantity and the requested operation</li>
<li
>Use the comment button to add relevant information regarding the RMA, like returned serial numbers or a description of the issue</li>
<li
>If no requested operation is set, the RMA won't be correctly fulfilled</li>
<li
>You can only return as much product units as you received for this order</li>
<li
>The limit will decrease when the units in other RMAs are confirmed</li>
<li>You can send a message in every RMA sent</li>
</ul>
</span>
</div>
<t
t-set="delivery_addresses"
t-value="sale_order.partner_shipping_id | sale_order.partner_id.commercial_partner_id.mapped('child_ids').filtered(lambda x: x.type in ['contact', 'delivery'])"
/>
<button
class="btn btn-primary btn-block mb8"
type="button"
data-toggle="collapse"
data-target="#delivery_address_picker"
aria-expanded="false"
><i class="fa fa-truck" /> Choose a delivery address</button>
<div class="col-lg-12 collapse mt8" id="delivery_address_picker">
<div data-toggle="buttons" class="row">
<label
t-attf-class="card mr4 btn btn-light #{address == sale_order.partner_shipping_id and 'active' or ''}"
t-foreach="delivery_addresses"
t-as="address"
>
<input
class="d-none"
type="radio"
name="partner_shipping_id"
t-att-value="address.id"
>
<strong>
<i
t-attf-class="text-secondary fa #{address.type == 'delivery' and 'fa-truck' or 'fa-user'}"
/>
<t t-out="address.name" />
</strong>
<pre><h6 t-out="address.contact_address" /></pre>
</input>
</label>
</div>
</div>
<t t-set="data_list" t-value="sale_order.get_delivery_rma_data()" />
<t
t-set="operations"
t-value="sale_order.env['rma.operation'].search([])"
/>
<table class="table table-sm" id="request-rma-table">
<thead class="bg-100">
<tr>
<th class="text-left">Product</th>
<th class="text-right">Quantity</th>
<th class="text-left">Delivery</th>
<th class="text-left">Requested operation</th>
<th name="portal_rma_button_desc" />
</tr>
</thead>
<tbody class="request-rma-tbody">
<t t-foreach="data_list" t-as="data">
<t t-if="data['quantity'] > 0 and data['picking']">
<tr>
<td class="text-left">
<span t-out="data['product'].display_name" />
<input
type="hidden"
t-attf-name="#{data_index}-product_id"
t-att-value="data['product'].id"
/>
<input
type="hidden"
t-if="data.get('sale_line_id')"
t-attf-name="#{data_index}-sale_line_id"
t-att-value="data['sale_line_id'].id"
/>
</td>
<td class="text-right">
<div id="delivery-rma-qty">
<input
type="number"
t-attf-name="#{data_index}-quantity"
class="o_input text-right"
placeholder="0"
min="0"
t-att-max="data['quantity']"
t-att-value="0"
style="max-width: 60px;"
/>
<span
t-out="data['uom'].name"
groups="uom.group_uom"
/>
<input
type="hidden"
t-attf-name="#{data_index}-uom_id"
t-att-value="data['uom'].id"
/>
</div>
</td>
<td class="text-left">
<span
t-out="data['picking'] and data['picking'].name"
/>
<input
type="hidden"
t-attf-name="#{data_index}-picking_id"
t-att-value="data['picking'] and data['picking'].id"
/>
</td>
<td class="text-left">
<select
t-attf-name="#{data_index}-operation_id"
class="form-control rma-operation"
>
<option value="">---</option>
<t t-foreach="operations" t-as="operation">
<option t-att-value="operation.id">
<t t-out="operation.name" />
</option>
</t>
</select>
</td>
<td>
<button
class="btn btn-primary fa fa-comments"
type="button"
data-toggle="collapse"
t-attf-data-target="#comment-#{data_index}"
aria-expanded="false"
t-attf-aria-controls="comment-#{data_index}"
/>
</td>
</tr>
<tr class="collapse" t-attf-id="comment-#{data_index}">
<td colspan="5">
<textarea
class="form-control o_website_form_input"
t-attf-name="#{data_index}-description"
placeholder="Comment anything relevant to the return, like serial numbers, a description of the issue, etc"
/>
</td>
</tr>
</t>
</t>
</tbody>
</table>
</main>
<footer class="modal-footer">
<button
type="submit"
t-att-id="sale_order.id"
class="btn btn-primary"
><i class="fa fa-check" /> Request RMAs</button>
<button type="button" class="btn btn-danger" data-dismiss="modal"><i
class="fa fa-times"
/> Cancel</button>
</footer>
</form>
</template>
<template
id="sale_order_portal_template"
name="Request RMA"
inherit_id="sale.sale_order_portal_template"
>
<xpath
expr="//div[hasclass('o_portal_sale_sidebar')]//div[hasclass('o_download_pdf')]/.."
position="after"
>
<li
t-if="sale_order.state in ['sale', 'done']"
class="list-group-item flex-grow-1"
id="li-request-rma"
>
<t t-if="sale_order.company_id.show_full_page_sale_rma">
<a
role="button"
class="btn btn-secondary btn-block mb8"
t-attf-href="/my/requestrma/#{sale_order.id}"
>
<i class="fa fa-reply" /> Request RMAs
</a>
</t>
<t t-else="">
<a
role="button"
class="btn btn-secondary btn-block mb8"
data-toggle="modal"
data-target="#modal-request-rma"
href="#"
>
<i class="fa fa-reply" /> Request RMAs
</a>
</t>
</li>
</xpath>
<xpath expr="//div[@id='modaldecline']" position="after">
<div
role="dialog"
class="modal fade"
id="modal-request-rma"
t-if="not sale_order.company_id.show_full_page_sale_rma"
>
<div class="modal-dialog" style="max-width: 1000px;">
<t t-call="rma_sale.sale_rma_request_form" />
</div>
</div>
</xpath>
</template>
<template
id="sale_order_portal_content"
name="Show RMAs"
inherit_id="sale.sale_order_portal_content"
>
<xpath expr="//div[@id='introduction']/h2[hasclass('my-0')]" position="inside">
<span t-if="sale_order.rma_count" class="float-right">
<a
role="button"
t-attf-href="/my/rmas?sale_id=#{sale_order.id}"
class="btn btn-sm btn-secondary"
>
<span class="fa fa-reply" role="img" aria-label="RMA" title="RMA" />
<span t-out="sale_order.rma_count" />
<span>RMA</span>
</a>
</span>
</xpath>
</template>
<template id="portal_rma_page" name="Show RMAs" inherit_id="rma.portal_rma_page">
<xpath expr="//div[@t-if='rma.picking_id']" position="before">
<div t-if="rma.order_id" class="row mb-2 mb-sm-1">
<div class="col-12 col-sm-4">
<strong>Sale order</strong>
</div>
<div class="col-12 col-sm-8">
<span t-field="rma.order_id" />
</div>
</div>
</xpath>
<xpath expr="//div[@t-if='rma.origin']" position="after">
<div t-if="rma.operation_id" class="row mb-2 mb-sm-1">
<div class="col-12 col-sm-4">
<strong>Requested operation</strong>
</div>
<div class="col-12 col-sm-8">
<span t-field="rma.operation_id" />
</div>
</div>
</xpath>
</template>
<!-- Request RMA single view. When the website is installed, we can customize it adding blocks -->
<template id="request_rma_single_page" name="Request RMA (single page)">
<t t-call="portal.portal_layout">
<t t-call="portal.portal_record_layout">
<t t-set="card_header">
<h5 class="mb-0">
<span>
RMA request for order <t t-out="sale_order.name" />
</span>
</h5>
</t>
<t t-set="card_body">
<div class="oe_structure" id="sale_rma_request_top_hook" />
<div id="request_form">
<div class="row">
<t t-call="rma_sale.sale_rma_request_form">
<t t-set="single_page_mode" t-value="True" />
</t>
</div>
</div>
<div class="oe_structure" id="sale_rma_request_bottom_hook" />
</t>
</t>
</t>
</template>
<!-- This way we can go back to the origin sale order easily -->
<template
id="portal_my_home_menu_sale"
inherit_id="sale.portal_my_home_menu_sale"
priority="99"
>
<xpath expr="//li[@t-if='sale_order']" position="before">
<t t-if="page_name != 'request_rma'" name="sale_breadcrumb" />
<t t-else="">
<li class="breadcrumb-item active">
<a t-if="sale_order" t-att-href="default_url"><t
t-out="sale_order.name"
/></a>
</li>
</t>
</xpath>
<xpath expr="//t[@name='sale_breadcrumb']" position="inside">
<xpath expr="//li[@t-if='sale_order']" position="move" />
</xpath>
</template>
</odoo>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_order_form" model="ir.ui.view">
<field name="name">sale.order.form.inherit</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form" />
<field name="groups_id" eval="[(4, ref('rma.rma_group_user_own'))]" />
<field name="arch" type="xml">
<button name="action_draft" position="after">
<button
name="action_create_rma"
type="object"
string="Create RMA"
states="sale,done"
/>
</button>
<div name="button_box">
<button
name="action_view_rma"
type="object"
class="oe_stat_button"
icon="fa-reply"
attrs="{'invisible': [('rma_count', '=', 0)]}"
>
<field name="rma_count" widget="statinfo" string="RMA" />
</button>
</div>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import sale_order_rma_wizard

View File

@@ -0,0 +1,213 @@
# Copyright 2020 Tecnativa - Ernesto Tejeda
# Copyright 2022 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import SUPERUSER_ID, _, api, fields, models
class SaleOrderRmaWizard(models.TransientModel):
_name = "sale.order.rma.wizard"
_description = "Sale Order Rma Wizard"
def _domain_location_id(self):
sale = self.env["sale.order"].browse(self.env.context.get("active_id"))
rma_loc = (
self.env["stock.warehouse"]
.search([("company_id", "=", sale.company_id.id)])
.mapped("rma_loc_id")
)
return [("id", "child_of", rma_loc.ids)]
order_id = fields.Many2one(
comodel_name="sale.order",
default=lambda self: self.env.context.get("active_id", False),
)
line_ids = fields.One2many(
comodel_name="sale.order.line.rma.wizard",
inverse_name="wizard_id",
string="Lines",
)
location_id = fields.Many2one(
comodel_name="stock.location",
string="RMA location",
domain=_domain_location_id,
default=lambda r: r.order_id.warehouse_id.rma_loc_id.id,
)
commercial_partner_id = fields.Many2one(
comodel_name="res.partner",
related="order_id.partner_id.commercial_partner_id",
string="Commercial entity",
)
partner_shipping_id = fields.Many2one(
comodel_name="res.partner",
string="Shipping Address",
help="Will be used to return the goods when the RMA is completed",
)
custom_description = fields.Text(
help="Values coming from portal RMA request form custom fields",
)
def create_rma(self, from_portal=False):
self.ensure_one()
user_has_group_portal = self.env.user.has_group(
"base.group_portal"
) or self.env.user.has_group("base.group_public")
lines = self.line_ids.filtered(lambda r: r.quantity > 0.0)
val_list = [line._prepare_rma_values() for line in lines]
rma_model = (
self.env["rma"].with_user(SUPERUSER_ID)
if user_has_group_portal
else self.env["rma"]
)
rma = rma_model.create(val_list)
if from_portal:
rma._add_message_subscribe_partner()
# post messages
msg_list = [
'<a href="#" data-oe-model="rma" data-oe-id="%d">%s</a>' % (r.id, r.name)
for r in rma
]
msg = ", ".join(msg_list)
if len(msg_list) == 1:
self.order_id.message_post(body=_(msg + " has been created."))
elif len(msg_list) > 1:
self.order_id.message_post(body=_(msg + " have been created."))
rma.message_post_with_view(
"mail.message_origin_link",
values={"self": rma, "origin": self.order_id},
subtype_id=self.env.ref("mail.mt_note").id,
)
return rma
def create_and_open_rma(self):
self.ensure_one()
rma = self.create_rma()
if not rma:
return
for rec in rma:
rec.action_confirm()
action = self.sudo().env.ref("rma.rma_action").read()[0]
if len(rma) > 1:
action["domain"] = [("id", "in", rma.ids)]
elif rma:
action.update(
res_id=rma.id,
view_mode="form",
view_id=False,
views=False,
)
return action
class SaleOrderLineRmaWizard(models.TransientModel):
_name = "sale.order.line.rma.wizard"
_description = "Sale Order Line Rma Wizard"
wizard_id = fields.Many2one(comodel_name="sale.order.rma.wizard", string="Wizard")
order_id = fields.Many2one(
comodel_name="sale.order",
default=lambda self: self.env["sale.order"].browse(
self.env.context.get("active_id", False)
),
)
allowed_product_ids = fields.Many2many(
comodel_name="product.product", compute="_compute_allowed_product_ids"
)
product_id = fields.Many2one(
comodel_name="product.product",
string="Product",
required=True,
domain="[('id', 'in', allowed_product_ids)]",
)
uom_category_id = fields.Many2one(
comodel_name="uom.category",
related="product_id.uom_id.category_id",
)
quantity = fields.Float(
digits="Product Unit of Measure",
required=True,
)
uom_id = fields.Many2one(
comodel_name="uom.uom",
string="Unit of Measure",
domain="[('category_id', '=', uom_category_id)]",
required=True,
)
allowed_picking_ids = fields.Many2many(
comodel_name="stock.picking", compute="_compute_allowed_picking_ids"
)
picking_id = fields.Many2one(
comodel_name="stock.picking",
string="Delivery order",
domain="[('id', 'in', allowed_picking_ids)]",
)
move_id = fields.Many2one(comodel_name="stock.move", compute="_compute_move_id")
operation_id = fields.Many2one(
comodel_name="rma.operation",
string="Requested operation",
)
sale_line_id = fields.Many2one(
comodel_name="sale.order.line",
)
description = fields.Text()
@api.onchange("product_id")
def onchange_product_id(self):
self.picking_id = False
self.uom_id = self.product_id.uom_id
@api.depends("picking_id")
def _compute_move_id(self):
for record in self:
move_id = False
if record.picking_id:
move_id = record.picking_id.move_lines.filtered(
lambda r: (
r.sale_line_id == record.sale_line_id
and r.sale_line_id.product_id == record.product_id
and r.sale_line_id.order_id == record.order_id
and r.state == "done"
)
)
record.move_id = move_id
@api.depends("order_id")
def _compute_allowed_product_ids(self):
for record in self:
product_ids = record.order_id.order_line.mapped("product_id.id")
record.allowed_product_ids = product_ids
@api.depends("product_id")
def _compute_allowed_picking_ids(self):
for record in self:
line = record.order_id.order_line.filtered(
lambda r: r.product_id == record.product_id
)
record.allowed_picking_ids = line.mapped("move_ids.picking_id").filtered(
lambda x: x.state == "done"
)
def _prepare_rma_values(self):
self.ensure_one()
partner_shipping = (
self.wizard_id.partner_shipping_id or self.order_id.partner_shipping_id
)
description = (self.description or "") + (
self.wizard_id.custom_description or ""
)
return {
"partner_id": self.order_id.partner_id.id,
"partner_invoice_id": self.order_id.partner_invoice_id.id,
"partner_shipping_id": partner_shipping.id,
"origin": self.order_id.name,
"company_id": self.order_id.company_id.id,
"location_id": self.wizard_id.location_id.id,
"order_id": self.order_id.id,
"picking_id": self.picking_id.id,
"move_id": self.move_id.id,
"product_id": self.product_id.id,
"product_uom_qty": self.quantity,
"product_uom": self.uom_id.id,
"operation_id": self.operation_id.id,
"description": description,
}

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="sale_order_create_rma_action" model="ir.actions.act_window">
<field name="name">Create RMAs</field>
<field name="res_model">sale.order.rma.wizard</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="sale_order_rma_wizard_form_view" model="ir.ui.view">
<field name="name">sale.order.rma.wizard.form</field>
<field name="model">sale.order.rma.wizard</field>
<field name="arch" type="xml">
<form>
<group>
<field name="line_ids" nolabel="1">
<tree editable="bottom">
<field name="order_id" invisible="1" />
<field name="allowed_product_ids" invisible="1" />
<field name="product_id" options="{'no_create': True}" />
<field name="quantity" />
<field name="uom_category_id" invisible="1" />
<field
name="uom_id"
groups="uom.group_uom"
options="{'no_create': True}"
/>
<field name="allowed_picking_ids" invisible="1" />
<field
name="picking_id"
options="{'no_create': True}"
required="1"
/>
<field name="operation_id" />
</tree>
</field>
</group>
<group>
<field name="commercial_partner_id" invisible="1" />
<field
name="partner_shipping_id"
domain="[('id', 'child_of', commercial_partner_id)]"
/>
<field
name="location_id"
options="{'no_create': True, 'no_open': True}"
groups="stock.group_stock_multi_locations"
required="1"
/>
</group>
<footer>
<button
name="create_and_open_rma"
string="Accept"
type="object"
class="btn-primary"
/>
<button string="Cancel" class="btn-secondary" special="cancel" />
</footer>
</form>
</field>
</record>
</odoo>

View File

@@ -0,0 +1 @@
../../../../rma_sale

6
setup/rma_sale/setup.py Normal file
View File

@@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)