| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/rma |
| GIT | |
| GIT | https://github.com/OCA/rma.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/rma/tree/18.0/rma_sale |
| VERSION | |
| VERSION | 2.3.2 |
| CATEGORY | |
| CATEGORY | RMA |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, sbejaoui, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Marie Lejeune, eugenio |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/rma |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:17 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/rma: - rma odoo/odoo: - stock_account - stock - product - base - base_setup - web - bus - web_tour - html_editor - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - onboarding - analytic - sale_stock - sale - sales_team - account_payment - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | 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. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
portal_my_home_menu_sale |
portal_my_home_menu_sale | ir.ui.view | qweb | Inherits sale.portal_my_home_menu_sale |
portal_rma_page |
Show RMAs | ir.ui.view | qweb | Inherits rma.portal_rma_page |
report_rma_document |
report_rma_document | ir.ui.view | qweb | Inherits rma.report_rma_document |
request_rma_single_page |
Request RMA (single page) | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | block | Inherits sale.res_config_settings_view_form | |
rma_view_form |
rma.view.form | rma | field | Inherits rma.rma_view_form |
sale_order_portal_content |
Show RMAs | ir.ui.view | qweb | Inherits sale.sale_order_portal_content |
sale_order_portal_template |
Request RMA | ir.ui.view | qweb | Inherits sale.sale_order_portal_template |
sale_order_rma_wizard_form_view |
sale.order.rma.wizard.form | sale.order.rma.wizard | form | New |
sale_rma_request_form |
RMA Request Form | ir.ui.view | qweb | New |
view_move_form |
account.move.form - Add helper sale_line_ids | account.move | xpath | Inherits account.view_move_form |
view_order_form |
sale.order.form.inherit | sale.order | button | Inherits sale.view_order_form |
No new fields.
Public methods (3)button_cancel(self)
button_draft(self)
unlink(self)
show_full_page_sale_rma
Boolean
help='From the frontend sale order page go to a single RMA page creation instead of the usual popup'
string='Full page RMA creation'
No public methods.
show_full_page_sale_rma
Boolean
readonly=False
related='company_id.show_full_page_sale_rma'
No public methods.
allowed_move_ids
Many2many → stock.move
comodel_name='stock.move'
compute='_compute_allowed_move_ids'
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
compute_sudo=True
move_id
Many2one
domain="[('id', 'in', allowed_move_ids)]"
order_id
Many2one → sale.order
comodel_name='sale.order'
compute='_compute_order_id'
domain="[ ('partner_id', 'child_of', commercial_partner_id), ('state', '=', 'sale'),]"
readonly=False
store=True
string='Sale Order'
picking_id
Many2one
domain="(order_id or partner_id) and [('id', 'in', allowed_picking_ids)] or [('state', '=', 'done'), ('picking_type_id.code', '=', 'outgoing')] "
product_id
Many2one
domain="order_id and [('id', 'in', allowed_product_ids)] or [('type', 'in', ['consu', 'product'])]"
refund_id
Many2one
index=True
sale_line_id
Many2one
related='move_id.sale_line_id'
action_refund(self)
create_replace(self, scheduled_date, warehouse, product, qty, uom)
rma_count
Integer
compute='_compute_rma_count'
string='RMA count'
rma_ids
One2many → rma
comodel_name='rma'
copy=False
inverse_name='order_id'
string='RMAs'
action_create_rma(self)
action_view_rma(self)
get_delivery_rma_data(self)
No new fields.
Public methods (2)get_delivery_move(self)
prepare_sale_rma_data(self)
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
allowed_quantity
Float
digits='Product Unit of Measure'
readonly=True
description
Text
different_return_product
Boolean
related='operation_id.different_return_product'
move_id
Many2one → stock.move
comodel_name='stock.move'
compute='_compute_move_id'
operation_id
Many2one → rma.operation
comodel_name='rma.operation'
compute='_compute_operation_id'
readonly=False
store=True
string='Requested operation'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
picking_id
Many2one → stock.picking
comodel_name='stock.picking'
domain="[('id', 'in', allowed_picking_ids)]"
string='Delivery order'
product_id
Many2one → product.product
comodel_name='product.product'
domain="[('id', 'in', allowed_product_ids)]"
required=True
string='Product'
quantity
Float
compute='_compute_quantity'
digits='Product Unit of Measure'
readonly=False
required=True
store=True
return_product_id
Many2one → product.product
help="Product to be returned if it's different from the originally delivered item."
args: 'product.product'
sale_line_id
Many2one → sale.order.line
comodel_name='sale.order.line'
uom_category_id
Many2one → uom.category
comodel_name='uom.category'
related='product_id.uom_id.category_id'
uom_id
Many2one → uom.uom
comodel_name='uom.uom'
domain="[('category_id', '=', uom_category_id)]"
required=True
string='Unit of Measure'
wizard_id
Many2one → sale.order.rma.wizard
comodel_name='sale.order.rma.wizard'
string='Wizard'
onchange_product_id(self)
commercial_partner_id
Many2one → res.partner
comodel_name='res.partner'
related='order_id.partner_id.commercial_partner_id'
string='Commercial entity'
custom_description
Text
help='Values coming from portal RMA request form custom fields'
is_return_all
Boolean
default=True
string='Return All?'
line_ids
One2many → sale.order.line.rma.wizard
comodel_name='sale.order.line.rma.wizard'
inverse_name='wizard_id'
string='Lines'
location_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
domain=_domain_location_id
string='RMA location'
operation_id
Many2one → rma.operation
comodel_name='rma.operation'
string='Requested operation'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
partner_shipping_id
Many2one → res.partner
comodel_name='res.partner'
help='Will be used to return the goods when the RMA is completed'
string='Shipping Address'
create_and_open_rma(self)
create_rma(self, from_portal=False)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/rma |
| GIT | |
| GIT | https://github.com/OCA/rma.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/rma/tree/17.0/rma_sale |
| VERSION | |
| VERSION | 2.1.0 |
| CATEGORY | |
| CATEGORY | RMA |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, sbejaoui, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Alejandro Aladro |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/rma |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:09 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/rma: - rma odoo/odoo: - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - onboarding - analytic - sale_stock - sale - sales_team - account_payment - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | 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. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
portal_my_home_menu_sale |
portal_my_home_menu_sale | ir.ui.view | qweb | Inherits sale.portal_my_home_menu_sale |
portal_rma_page |
Show RMAs | ir.ui.view | qweb | Inherits rma.portal_rma_page |
report_rma_document |
report_rma_document | ir.ui.view | qweb | Inherits rma.report_rma_document |
request_rma_single_page |
Request RMA (single page) | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | block | Inherits sale.res_config_settings_view_form | |
rma_view_form |
rma.view.form | rma | field | Inherits rma.rma_view_form |
sale_order_portal_content |
Show RMAs | ir.ui.view | qweb | Inherits sale.sale_order_portal_content |
sale_order_portal_template |
Request RMA | ir.ui.view | qweb | Inherits sale.sale_order_portal_template |
sale_order_rma_wizard_form_view |
sale.order.rma.wizard.form | sale.order.rma.wizard | form | New |
sale_rma_request_form |
RMA Request Form | ir.ui.view | qweb | New |
view_move_form |
account.move.form - Add helper sale_line_ids | account.move | xpath | Inherits account.view_move_form |
view_order_form |
sale.order.form.inherit | sale.order | button | Inherits sale.view_order_form |
No new fields.
Public methods (3)button_cancel(self)
button_draft(self)
unlink(self)
show_full_page_sale_rma
Boolean
help='From the frontend sale order page go to a single RMA page creation instead of the usual popup'
string='Full page RMA creation'
No public methods.
show_full_page_sale_rma
Boolean
readonly=False
related='company_id.show_full_page_sale_rma'
No public methods.
allowed_move_ids
Many2many → stock.move
comodel_name='stock.move'
compute='_compute_allowed_move_ids'
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
move_id
Many2one
domain="[('id', 'in', allowed_move_ids)]"
order_id
Many2one → sale.order
comodel_name='sale.order'
compute='_compute_order_id'
domain="[ ('partner_id', 'child_of', commercial_partner_id), ('state', 'in', ['sale', 'done']),]"
readonly=False
store=True
string='Sale Order'
picking_id
Many2one
domain="(order_id or partner_id) and [('id', 'in', allowed_picking_ids)] or [('state', '=', 'done'), ('picking_type_id.code', '=', 'outgoing')] "
product_id
Many2one
domain="order_id and [('id', 'in', allowed_product_ids)] or [('type', 'in', ['consu', 'product'])]"
refund_id
Many2one
index=True
sale_line_id
Many2one
related='move_id.sale_line_id'
action_refund(self)
create_replace(self, scheduled_date, warehouse, product, qty, uom)
rma_count
Integer
compute='_compute_rma_count'
string='RMA count'
rma_ids
One2many → rma
comodel_name='rma'
copy=False
inverse_name='order_id'
string='RMAs'
action_create_rma(self)
action_view_rma(self)
get_delivery_rma_data(self)
No new fields.
Public methods (2)get_delivery_move(self)
prepare_sale_rma_data(self)
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
allowed_quantity
Float
digits='Product Unit of Measure'
readonly=True
description
Text
different_return_product
Boolean
related='operation_id.different_return_product'
move_id
Many2one → stock.move
comodel_name='stock.move'
compute='_compute_move_id'
operation_id
Many2one → rma.operation
comodel_name='rma.operation'
compute='_compute_operation_id'
readonly=False
store=True
string='Requested operation'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
picking_id
Many2one → stock.picking
comodel_name='stock.picking'
domain="[('id', 'in', allowed_picking_ids)]"
string='Delivery order'
product_id
Many2one → product.product
comodel_name='product.product'
domain="[('id', 'in', allowed_product_ids)]"
required=True
string='Product'
quantity
Float
compute='_compute_quantity'
digits='Product Unit of Measure'
readonly=False
required=True
store=True
return_product_id
Many2one → product.product
help="Product to be returned if it's different from the originally delivered item."
args: 'product.product'
sale_line_id
Many2one → sale.order.line
comodel_name='sale.order.line'
uom_category_id
Many2one → uom.category
comodel_name='uom.category'
related='product_id.uom_id.category_id'
uom_id
Many2one → uom.uom
comodel_name='uom.uom'
domain="[('category_id', '=', uom_category_id)]"
required=True
string='Unit of Measure'
wizard_id
Many2one → sale.order.rma.wizard
comodel_name='sale.order.rma.wizard'
string='Wizard'
onchange_product_id(self)
commercial_partner_id
Many2one → res.partner
comodel_name='res.partner'
related='order_id.partner_id.commercial_partner_id'
string='Commercial entity'
custom_description
Text
help='Values coming from portal RMA request form custom fields'
is_return_all
Boolean
default=True
string='Return All?'
line_ids
One2many → sale.order.line.rma.wizard
comodel_name='sale.order.line.rma.wizard'
inverse_name='wizard_id'
string='Lines'
location_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
domain=_domain_location_id
string='RMA location'
operation_id
Many2one → rma.operation
comodel_name='rma.operation'
string='Requested operation'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
partner_shipping_id
Many2one → res.partner
comodel_name='res.partner'
help='Will be used to return the goods when the RMA is completed'
string='Shipping Address'
create_and_open_rma(self)
create_rma(self, from_portal=False)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/rma |
| GIT | |
| GIT | https://github.com/OCA/rma.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/rma/tree/16.0/rma_sale |
| VERSION | |
| VERSION | 4.0.2 |
| CATEGORY | |
| CATEGORY | RMA |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, sbejaoui, Víctor Martínez, Weblate, OCA-git-bot, David, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/rma |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:56 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/rma: - rma odoo/odoo: - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic - sale_stock - sale - sales_team - account_payment - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
portal_my_home_menu_sale |
portal_my_home_menu_sale | ir.ui.view | qweb | Inherits sale.portal_my_home_menu_sale |
portal_rma_page |
Show RMAs | ir.ui.view | qweb | Inherits rma.portal_rma_page |
report_rma_document |
report_rma_document | ir.ui.view | qweb | Inherits rma.report_rma_document |
request_rma_single_page |
Request RMA (single page) | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits sale.res_config_settings_view_form | |
rma_view_form |
rma.view.form | rma | field | Inherits rma.rma_view_form |
sale_order_portal_content |
Show RMAs | ir.ui.view | qweb | Inherits sale.sale_order_portal_content |
sale_order_portal_template |
Request RMA | ir.ui.view | qweb | Inherits sale.sale_order_portal_template |
sale_order_rma_wizard_form_view |
sale.order.rma.wizard.form | sale.order.rma.wizard | form | New |
sale_rma_request_form |
RMA Request Form | ir.ui.view | qweb | New |
view_move_form |
account.move.form - Add helper sale_line_ids | account.move | xpath | Inherits account.view_move_form |
view_order_form |
sale.order.form.inherit | sale.order | button | Inherits sale.view_order_form |
No new fields.
Public methods (3)button_cancel(self)
button_draft(self)
unlink(self)
show_full_page_sale_rma
Boolean
help='From the frontend sale order page go to a single RMA page creation instead of the usual popup'
string='Full page RMA creation'
No public methods.
show_full_page_sale_rma
Boolean
readonly=False
related='company_id.show_full_page_sale_rma'
No public methods.
allowed_move_ids
Many2many → stock.move
comodel_name='stock.move'
compute='_compute_allowed_move_ids'
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
move_id
Many2one
domain="[('id', 'in', allowed_move_ids)]"
order_id
Many2one → sale.order
comodel_name='sale.order'
compute='_compute_order_id'
domain="[ ('partner_id', 'child_of', commercial_partner_id), ('state', 'in', ['sale', 'done']),]"
readonly=False
store=True
string='Sale Order'
picking_id
Many2one
domain="(order_id or partner_id) and [('id', 'in', allowed_picking_ids)] or [('state', '=', 'done'), ('picking_type_id.code', '=', 'outgoing')] "
product_id
Many2one
domain="order_id and [('id', 'in', allowed_product_ids)] or [('type', 'in', ['consu', 'product'])]"
refund_id
Many2one
index=True
sale_line_id
Many2one
related='move_id.sale_line_id'
action_refund(self)
create_replace(self, scheduled_date, warehouse, product, qty, uom)
rma_count
Integer
compute='_compute_rma_count'
string='RMA count'
rma_ids
One2many → rma
comodel_name='rma'
copy=False
inverse_name='order_id'
string='RMAs'
action_create_rma(self)
action_view_rma(self)
get_delivery_rma_data(self)
No new fields.
Public methods (2)get_delivery_move(self)
prepare_sale_rma_data(self)
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
allowed_quantity
Float
digits='Product Unit of Measure'
readonly=True
description
Text
different_return_product
Boolean
related='operation_id.different_return_product'
move_id
Many2one → stock.move
comodel_name='stock.move'
compute='_compute_move_id'
operation_id
Many2one → rma.operation
comodel_name='rma.operation'
compute='_compute_operation_id'
readonly=False
store=True
string='Requested operation'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
picking_id
Many2one → stock.picking
comodel_name='stock.picking'
domain="[('id', 'in', allowed_picking_ids)]"
string='Delivery order'
product_id
Many2one → product.product
comodel_name='product.product'
domain="[('id', 'in', allowed_product_ids)]"
required=True
string='Product'
quantity
Float
compute='_compute_quantity'
digits='Product Unit of Measure'
readonly=False
required=True
store=True
return_product_id
Many2one → product.product
help="Product to be returned if it's different from the originally delivered item."
args: 'product.product'
sale_line_id
Many2one → sale.order.line
comodel_name='sale.order.line'
uom_category_id
Many2one → uom.category
comodel_name='uom.category'
related='product_id.uom_id.category_id'
uom_id
Many2one → uom.uom
comodel_name='uom.uom'
domain="[('category_id', '=', uom_category_id)]"
required=True
string='Unit of Measure'
wizard_id
Many2one → sale.order.rma.wizard
comodel_name='sale.order.rma.wizard'
string='Wizard'
onchange_product_id(self)
commercial_partner_id
Many2one → res.partner
comodel_name='res.partner'
related='order_id.partner_id.commercial_partner_id'
string='Commercial entity'
custom_description
Text
help='Values coming from portal RMA request form custom fields'
is_return_all
Boolean
default=True
string='Return All?'
line_ids
One2many → sale.order.line.rma.wizard
comodel_name='sale.order.line.rma.wizard'
inverse_name='wizard_id'
string='Lines'
location_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
domain=_domain_location_id
string='RMA location'
operation_id
Many2one → rma.operation
comodel_name='rma.operation'
string='Requested operation'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
partner_shipping_id
Many2one → res.partner
comodel_name='res.partner'
help='Will be used to return the goods when the RMA is completed'
string='Shipping Address'
create_and_open_rma(self)
create_rma(self, from_portal=False)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/rma |
| GIT | |
| GIT | https://github.com/OCA/rma.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/rma/tree/15.0/rma_sale |
| VERSION | |
| VERSION | 1.3.2 |
| CATEGORY | |
| CATEGORY | RMA |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, David, oca-ci, Alex Vining |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/rma |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:41 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/rma: - rma odoo/odoo: - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic - sale_stock - sale - sales_team - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
portal_my_home_menu_sale |
portal_my_home_menu_sale | ir.ui.view | qweb | Inherits sale.portal_my_home_menu_sale |
portal_rma_page |
Show RMAs | ir.ui.view | qweb | Inherits rma.portal_rma_page |
report_rma_document |
report_rma_document | ir.ui.view | qweb | Inherits rma.report_rma_document |
request_rma_single_page |
Request RMA (single page) | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits sale.res_config_settings_view_form | |
rma_view_form |
rma.view.form | rma | field | Inherits rma.rma_view_form |
sale_order_portal_content |
Show RMAs | ir.ui.view | qweb | Inherits sale.sale_order_portal_content |
sale_order_portal_template |
Request RMA | ir.ui.view | qweb | Inherits sale.sale_order_portal_template |
sale_order_rma_wizard_form_view |
sale.order.rma.wizard.form | sale.order.rma.wizard | form | New |
sale_rma_request_form |
RMA Request Form | ir.ui.view | qweb | New |
view_move_form |
account.move.form - Add helper sale_line_ids | account.move | xpath | Inherits account.view_move_form |
view_order_form |
sale.order.form.inherit | sale.order | button | Inherits sale.view_order_form |
No new fields.
Public methods (3)button_cancel(self)
button_draft(self)
unlink(self)
show_full_page_sale_rma
Boolean
help='From the frontend sale order page go to a single RMA page creation instead of the usual popup'
string='Full page RMA creation'
No public methods.
show_full_page_sale_rma
Boolean
readonly=False
related='company_id.show_full_page_sale_rma'
No public methods.
allowed_move_ids
Many2many → sale.order.line
comodel_name='sale.order.line'
compute='_compute_allowed_move_ids'
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
move_id
Many2one
domain="[('id', 'in', allowed_move_ids)]"
order_id
Many2one → sale.order
comodel_name='sale.order'
domain="[ ('partner_id', 'child_of', commercial_partner_id), ('state', 'in', ['sale', 'done']),]"
readonly=True
states={'draft': [('readonly', False)]}
string='Sale Order'
picking_id
Many2one
domain="(order_id or partner_id) and [('id', 'in', allowed_picking_ids)] or [('state', '=', 'done'), ('picking_type_id.code', '=', 'outgoing')] "
product_id
Many2one
domain="order_id and [('id', 'in', allowed_product_ids)] or [('type', 'in', ['consu', 'product'])]"
refund_id
Many2one
index=True
sale_line_id
Many2one
related='move_id.sale_line_id'
action_refund(self)
rma_count
Integer
compute='_compute_rma_count'
string='RMA count'
rma_ids
One2many → rma
comodel_name='rma'
copy=False
inverse_name='order_id'
string='RMAs'
action_create_rma(self)
action_view_rma(self)
get_delivery_rma_data(self)
No new fields.
Public methods (2)get_delivery_move(self)
prepare_sale_rma_data(self)
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
description
Text
move_id
Many2one → stock.move
comodel_name='stock.move'
compute='_compute_move_id'
operation_id
Many2one → rma.operation
comodel_name='rma.operation'
string='Requested operation'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
picking_id
Many2one → stock.picking
comodel_name='stock.picking'
domain="[('id', 'in', allowed_picking_ids)]"
string='Delivery order'
product_id
Many2one → product.product
comodel_name='product.product'
domain="[('id', 'in', allowed_product_ids)]"
required=True
string='Product'
quantity
Float
digits='Product Unit of Measure'
required=True
sale_line_id
Many2one → sale.order.line
comodel_name='sale.order.line'
uom_category_id
Many2one → uom.category
comodel_name='uom.category'
related='product_id.uom_id.category_id'
uom_id
Many2one → uom.uom
comodel_name='uom.uom'
domain="[('category_id', '=', uom_category_id)]"
required=True
string='Unit of Measure'
wizard_id
Many2one → sale.order.rma.wizard
comodel_name='sale.order.rma.wizard'
string='Wizard'
onchange_product_id(self)
commercial_partner_id
Many2one → res.partner
comodel_name='res.partner'
related='order_id.partner_id.commercial_partner_id'
string='Commercial entity'
custom_description
Text
help='Values coming from portal RMA request form custom fields'
line_ids
One2many → sale.order.line.rma.wizard
comodel_name='sale.order.line.rma.wizard'
inverse_name='wizard_id'
string='Lines'
location_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
domain=_domain_location_id
string='RMA location'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
partner_shipping_id
Many2one → res.partner
comodel_name='res.partner'
help='Will be used to return the goods when the RMA is completed'
string='Shipping Address'
create_and_open_rma(self)
create_rma(self, from_portal=False)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/rma |
| GIT | |
| GIT | https://github.com/OCA/rma.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/rma/tree/14.0/rma_sale |
| VERSION | |
| VERSION | 2.3.2 |
| CATEGORY | |
| CATEGORY | RMA |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, david, OCA Transbot, Víctor Martínez, Sébastien BEAU, Florian da Costa, oca-travis, Weblate, OCA-git-bot, Chafique, David, Michael Tietz, Giovanni |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/rma |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:09 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/rma: - rma odoo/odoo: - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic - sale_stock - sale - sales_team - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_frontend |
Request RMA | ir.ui.view | qweb | Inherits web.assets_frontend |
portal_my_home_menu_sale |
portal_my_home_menu_sale | ir.ui.view | qweb | Inherits sale.portal_my_home_menu_sale |
portal_rma_page |
Show RMAs | ir.ui.view | qweb | Inherits rma.portal_rma_page |
report_rma_document |
report_rma_document | ir.ui.view | qweb | Inherits rma.report_rma_document |
request_rma_single_page |
Request RMA (single page) | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits sale.res_config_settings_view_form | |
rma_view_form |
rma.view.form | rma | field | Inherits rma.rma_view_form |
sale_order_portal_content |
Show RMAs | ir.ui.view | qweb | Inherits sale.sale_order_portal_content |
sale_order_portal_template |
Request RMA | ir.ui.view | qweb | Inherits sale.sale_order_portal_template |
sale_order_rma_wizard_form_view |
sale.order.rma.wizard.form | sale.order.rma.wizard | form | New |
sale_rma_request_form |
RMA Request Form | ir.ui.view | qweb | New |
view_order_form |
sale.order.form.inherit | sale.order | button | Inherits sale.view_order_form |
show_full_page_sale_rma
Boolean
help='From the frontend sale order page go to a single RMA page creation instead of the usual popup'
string='Full page RMA creation'
No public methods.
show_full_page_sale_rma
Boolean
readonly=False
related='company_id.show_full_page_sale_rma'
No public methods.
allowed_move_ids
Many2many → sale.order.line
comodel_name='sale.order.line'
compute='_compute_allowed_move_ids'
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
move_id
Many2one
domain="[('id', 'in', allowed_move_ids)]"
order_id
Many2one → sale.order
comodel_name='sale.order'
domain="[ ('partner_id', 'child_of', commercial_partner_id), ('state', 'in', ['sale', 'done']),]"
readonly=True
states={'draft': [('readonly', False)]}
string='Sale Order'
picking_id
Many2one
domain="(order_id or partner_id) and [('id', 'in', allowed_picking_ids)] or [('state', '=', 'done'), ('picking_type_id.code', '=', 'outgoing')] "
product_id
Many2one
domain="order_id and [('id', 'in', allowed_product_ids)] or [('type', 'in', ['consu', 'product'])]"
sale_line_id
Many2one
related='move_id.sale_line_id'
No public methods.
rma_count
Integer
compute='_compute_rma_count'
string='RMA count'
rma_ids
One2many → rma
comodel_name='rma'
copy=False
inverse_name='order_id'
string='RMAs'
action_create_rma(self)
action_view_rma(self)
get_delivery_rma_data(self)
No new fields.
Public methods (2)get_delivery_move(self)
prepare_sale_rma_data(self)
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
description
Text
move_id
Many2one → stock.move
comodel_name='stock.move'
compute='_compute_move_id'
operation_id
Many2one → rma.operation
comodel_name='rma.operation'
string='Requested operation'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
picking_id
Many2one → stock.picking
comodel_name='stock.picking'
domain="[('id', 'in', allowed_picking_ids)]"
string='Delivery order'
product_id
Many2one → product.product
comodel_name='product.product'
domain="[('id', 'in', allowed_product_ids)]"
required=True
string='Product'
quantity
Float
digits='Product Unit of Measure'
required=True
string='Quantity'
sale_line_id
Many2one → sale.order.line
comodel_name='sale.order.line'
uom_category_id
Many2one → uom.category
comodel_name='uom.category'
related='product_id.uom_id.category_id'
uom_id
Many2one → uom.uom
comodel_name='uom.uom'
domain="[('category_id', '=', uom_category_id)]"
required=True
string='Unit of Measure'
wizard_id
Many2one → sale.order.rma.wizard
comodel_name='sale.order.rma.wizard'
string='Wizard'
onchange_product_id(self)
commercial_partner_id
Many2one → res.partner
comodel_name='res.partner'
related='order_id.partner_id.commercial_partner_id'
string='Commercial entity'
custom_description
Text
help='Values coming from portal RMA request form custom fields'
line_ids
One2many → sale.order.line.rma.wizard
comodel_name='sale.order.line.rma.wizard'
inverse_name='wizard_id'
string='Lines'
location_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
domain=_domain_location_id
string='RMA location'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
partner_shipping_id
Many2one → res.partner
comodel_name='res.partner'
help='Will be used to return the goods when the RMA is completed'
string='Shipping Address'
create_and_open_rma(self)
create_rma(self, from_portal=False)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/rma |
| GIT | |
| GIT | https://github.com/OCA/rma.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/rma/tree/13.0/rma_sale |
| VERSION | |
| VERSION | 2.4.0 |
| CATEGORY | |
| CATEGORY | RMA |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, david, OCA Transbot, Víctor Martínez, Ernesto Tejeda, oca-travis, OCA-git-bot, SilvioGregorini |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/rma |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:19 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/rma: - rma odoo/odoo: - stock_account - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - account - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - sale_stock - sale - sales_team - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_frontend |
Request RMA | ir.ui.view | qweb | Inherits web.assets_frontend |
portal_my_home_menu_sale |
portal_my_home_menu_sale | ir.ui.view | qweb | Inherits sale.portal_my_home_menu_sale |
portal_rma_page |
Show RMAs | ir.ui.view | qweb | Inherits rma.portal_rma_page |
report_rma_document |
report_rma_document | ir.ui.view | qweb | Inherits rma.report_rma_document |
request_rma_single_page |
Request RMA (single page) | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits sale.res_config_settings_view_form | |
rma_view_form |
rma.view.form | rma | field | Inherits rma.rma_view_form |
sale_order_portal_content |
Show RMAs | ir.ui.view | qweb | Inherits sale.sale_order_portal_content |
sale_order_portal_template |
Request RMA | ir.ui.view | qweb | Inherits sale.sale_order_portal_template |
sale_order_rma_wizard_form_view |
sale.order.rma.wizard.form | sale.order.rma.wizard | form | New |
sale_rma_request_form |
RMA Request Form | ir.ui.view | qweb | New |
view_order_form |
sale.order.form.inherit | sale.order | button | Inherits sale.view_order_form |
show_full_page_sale_rma
Boolean
help='From the frontend sale order page go to a single RMA page creation instead of the usual popup'
string='Full page RMA creation'
No public methods.
show_full_page_sale_rma
Boolean
readonly=False
related='company_id.show_full_page_sale_rma'
No public methods.
allowed_move_ids
Many2many → sale.order.line
comodel_name='sale.order.line'
compute='_compute_allowed_move_ids'
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
move_id
Many2one
domain="[('id', 'in', allowed_move_ids)]"
order_id
Many2one → sale.order
comodel_name='sale.order'
domain="[ ('partner_id', 'child_of', commercial_partner_id), ('state', 'in', ['sale', 'done']),]"
readonly=True
states={'draft': [('readonly', False)]}
string='Sale Order'
picking_id
Many2one
domain="(order_id or partner_id) and [('id', 'in', allowed_picking_ids)] or [('state', '=', 'done'), ('picking_type_id.code', '=', 'outgoing')] "
product_id
Many2one
domain="order_id and [('id', 'in', allowed_product_ids)] or [('type', 'in', ['consu', 'product'])]"
sale_line_id
Many2one
related='move_id.sale_line_id'
No public methods.
rma_count
Integer
compute='_compute_rma_count'
string='RMA count'
rma_ids
One2many → rma
comodel_name='rma'
copy=False
inverse_name='order_id'
string='RMAs'
action_create_rma(self)
action_view_rma(self)
get_delivery_rma_data(self)
No new fields.
Public methods (2)get_delivery_move(self)
prepare_sale_rma_data(self)
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
description
Text
move_id
Many2one → stock.move
comodel_name='stock.move'
compute='_compute_move_id'
operation_id
Many2one → rma.operation
comodel_name='rma.operation'
string='Requested operation'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
picking_id
Many2one → stock.picking
comodel_name='stock.picking'
domain="[('id', 'in', allowed_picking_ids)]"
string='Delivery order'
product_id
Many2one → product.product
comodel_name='product.product'
domain="[('id', 'in', allowed_product_ids)]"
required=True
string='Product'
quantity
Float
digits='Product Unit of Measure'
required=True
string='Quantity'
sale_line_id
Many2one → sale.order.line
comodel_name='sale.order.line'
uom_category_id
Many2one → uom.category
comodel_name='uom.category'
related='product_id.uom_id.category_id'
uom_id
Many2one → uom.uom
comodel_name='uom.uom'
domain="[('category_id', '=', uom_category_id)]"
required=True
string='Unit of Measure'
wizard_id
Many2one → sale.order.rma.wizard
comodel_name='sale.order.rma.wizard'
string='Wizard'
onchange_product_id(self)
commercial_partner_id
Many2one → res.partner
comodel_name='res.partner'
related='order_id.partner_id.commercial_partner_id'
string='Commercial entity'
custom_description
Text
help='Values coming from portal RMA request form custom fields'
line_ids
One2many → sale.order.line.rma.wizard
comodel_name='sale.order.line.rma.wizard'
inverse_name='wizard_id'
string='Lines'
location_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
domain=_domain_location_id
string='RMA location'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
partner_shipping_id
Many2one → res.partner
comodel_name='res.partner'
help='Will be used to return the goods when the RMA is completed'
string='Shipping Address'
create_and_open_rma(self)
create_rma(self, from_portal=False)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/rma |
| GIT | |
| GIT | https://github.com/OCA/rma.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/rma/tree/12.0/rma_sale |
| VERSION | |
| VERSION | 1.8.0 |
| CATEGORY | |
| CATEGORY | RMA |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, david, OCA Transbot, Ernesto Tejeda, oca-travis, Weblate, OCA-git-bot |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/rma |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:24 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/rma: - rma odoo/odoo: - account - base_setup - base - web - product - decimal_precision - bus - web_tour - uom - analytic - portal - http_routing - digest - stock - barcodes - sale_stock - sale - sales_team - payment - stock_account |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_frontend |
Request RMA | ir.ui.view | qweb | Inherits web.assets_frontend |
portal_my_home_menu_sale |
portal_my_home_menu_sale | ir.ui.view | qweb | Inherits sale.portal_my_home_menu_sale |
portal_rma_page |
Show RMAs | ir.ui.view | qweb | Inherits rma.portal_rma_page |
report_rma_document |
report_rma_document | ir.ui.view | qweb | Inherits rma.report_rma_document |
request_rma_single_page |
Request RMA (single page) | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings | xpath | Inherits sale.res_config_settings_view_form | |
rma_view_form |
rma.view.form | rma | field | Inherits rma.rma_view_form |
sale_order_portal_content |
Show RMAs | ir.ui.view | qweb | Inherits sale.sale_order_portal_content |
sale_order_portal_template |
Request RMA | ir.ui.view | qweb | Inherits sale.sale_order_portal_template |
sale_order_rma_wizard_form_view |
sale.order.rma.wizard.form | sale.order.rma.wizard | form | New |
sale_rma_request_form |
RMA Request Form | ir.ui.view | qweb | New |
view_order_form |
sale.order.form.inherit | sale.order | button | Inherits sale.view_order_form |
show_full_page_sale_rma
Boolean
help='From the frontend sale order page go to a single RMA page creation instead of the usual popup'
string='Full page RMA creation'
No public methods.
show_full_page_sale_rma
Boolean
readonly=False
related='company_id.show_full_page_sale_rma'
No public methods.
allowed_move_ids
Many2many → sale.order.line
comodel_name='sale.order.line'
compute='_compute_allowed_move_ids'
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
move_id
Many2one
domain="[('id', 'in', allowed_move_ids)]"
order_id
Many2one → sale.order
comodel_name='sale.order'
domain="[ ('partner_id', 'child_of', commercial_partner_id), ('state', 'in', ['sale', 'done']),]"
readonly=True
states={'draft': [('readonly', False)]}
string='Sale Order'
picking_id
Many2one
domain="[('id', 'in', allowed_picking_ids)]"
product_id
Many2one
domain="[('id', 'in', allowed_product_ids)]"
sale_line_id
Many2one
related='move_id.sale_line_id'
No public methods.
rma_count
Integer
compute='_compute_rma_count'
string='RMA count'
rma_ids
One2many → rma
comodel_name='rma'
copy=False
inverse_name='order_id'
string='RMAs'
action_create_rma(self)
action_view_rma(self)
get_delivery_rma_data(self)
No new fields.
Public methods (2)get_delivery_move(self)
prepare_sale_rma_data(self)
allowed_picking_ids
Many2many → stock.picking
comodel_name='stock.picking'
compute='_compute_allowed_picking_ids'
allowed_product_ids
Many2many → product.product
comodel_name='product.product'
compute='_compute_allowed_product_ids'
description
Text
move_id
Many2one → stock.move
comodel_name='stock.move'
compute='_compute_move_id'
operation_id
Many2one → rma.operation
comodel_name='rma.operation'
string='Requested operation'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
picking_id
Many2one → stock.picking
comodel_name='stock.picking'
domain="[('id', 'in', allowed_picking_ids)]"
string='Delivery order'
product_id
Many2one → product.product
comodel_name='product.product'
domain="[('id', 'in', allowed_product_ids)]"
required=True
string='Product'
quantity
Float
digits=dp.get_precision('Product Unit of Measure')
required=True
string='Quantity'
sale_line_id
Many2one → sale.order.line
comodel_name='sale.order.line'
uom_category_id
Many2one → uom.category
comodel_name='uom.category'
related='product_id.uom_id.category_id'
uom_id
Many2one → uom.uom
comodel_name='uom.uom'
domain="[('category_id', '=', uom_category_id)]"
required=True
string='Unit of Measure'
wizard_id
Many2one → sale.order.rma.wizard
comodel_name='sale.order.rma.wizard'
string='Wizard'
onchange_product_id(self)
commercial_partner_id
Many2one → res.partner
comodel_name='res.partner'
related='order_id.partner_id.commercial_partner_id'
string='Commercial entity'
custom_description
Text
help='Values coming from portal RMA request form custom fields'
line_ids
One2many → sale.order.line.rma.wizard
comodel_name='sale.order.line.rma.wizard'
inverse_name='wizard_id'
string='Lines'
location_id
Many2one → stock.location
comodel_name='stock.location'
default=<expr>
domain=_domain_location_id
string='RMA location'
order_id
Many2one → sale.order
comodel_name='sale.order'
default=<expr>
partner_shipping_id
Many2one → res.partner
comodel_name='res.partner'
help='Will be used to return the goods when the RMA is completed'
string='Shipping Address'
create_and_open_rma(self)
create_rma(self, from_portal=None)
No new fields.
Public methods (0)No public methods.