| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/stock-logistics-request |
| GIT | |
| GIT | https://github.com/OCA/stock-logistics-request.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/stock-logistics-request/tree/18.0/stock_return_request |
| VERSION | |
| VERSION | 1.0.2 |
| CATEGORY | |
| CATEGORY | Stock |
| 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 | Carlos Lopez, Weblate, OCA-git-bot, oca-ci, Carlos Roca, Joan Sisquella |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/stock-logistics-request |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:14 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - 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 |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module allows to return stock from a location to either suppliers, customers or internal locations reverting the corresponding pickings. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stock_return_request |
report_stock_return_request | ir.ui.view | qweb | New |
report_stock_return_request_document |
report_stock_return_request_document | ir.ui.view | qweb | New |
stock_move_lines_to_return |
stock_move_lines_to_return | ir.ui.view | qweb | New |
stock_return_request_line_suggest_lot |
Suggested Lots for this Return Request Line | suggest.return.request.lot | form | New |
view_stock_return_request_form |
stock.return.request | form | New | |
view_stock_return_request_tree |
stock.return.request | list | New |
qty_returnable
Float
compute='_compute_qty_returnable'
digits='Product Unit of Measure'
string='Returnable Quantity'
No public methods.
stock_return_request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
No public methods.
from_date
Date
string='Search moves up to this date'
line_ids
One2many → stock.return.request.line
comodel_name='stock.return.request.line'
copy=True
inverse_name='request_id'
string='Stock Return'
name
Char
copy=False
default=<expr>
readonly=True
required=True
args: 'Reference'
note
Text
help='They will be visible on the report'
string='Comments'
partner_id
Many2one → res.partner
comodel_name='res.partner'
picking_types
Many2many → stock.picking.type
comodel_name='stock.picking.type'
help='Restrict operation types to search for'
string='Operation types'
return_from_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return from this location'
required=True
string='Return from'
return_order
Selection
default='date desc, id desc'
help='The returns will be performed searching moves in the given order.'
required=True
selection=[('date desc, id desc', 'Newer first'), ('date asc, id desc', 'Older first')]
return_to_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return to this location'
required=True
string='Return to'
return_type
Selection
help='Supplier - Search for incoming moves from this supplier\nCustomer - Search for outgoing moves to this customer\nInternal - Search for outgoing moves to this location.'
required=True
selection=[('supplier', 'Return to Supplier'), ('customer', 'Return from Customer'), ('internal', 'Return to Internal location')]
returned_picking_ids
One2many → stock.picking
comodel_name='stock.picking'
copy=False
inverse_name='stock_return_request_id'
readonly=True
string='Returned Pickings'
show_to_refund
Boolean
compute='_compute_show_to_refund'
help='Whether to show it or not depending on the availability ofthe stock_account module (so a bridge module is not necessary)'
state
Selection
copy=False
default='draft'
readonly=True
selection=[('draft', 'Open'), ('confirmed', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')]
tracking=True
to_refund
Boolean
action_cancel(self)
action_cancel_to_draft(self)
action_confirm(self)
action_validate(self)
action_view_pickings(self)
create(self, vals_list)
do_print_return_request(self)
onchange_locations(self)
lot_id
Many2one → stock.lot
comodel_name='stock.lot'
domain="[('product_id', '=', product_id)]"
string='Lot / Serial'
max_quantity
Float
compute='_compute_max_quantity'
digits='Product Unit of Measure'
string='Maximum available quantity'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('is_storable', '=', True)]
required=True
string='Product'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
readonly=True
related='product_id.uom_id'
quantity
Float
digits='Product Unit of Measure'
required=True
string='Quantiy to return'
request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
ondelete='cascade'
readonly=True
required=True
string='Return Request'
returnable_move_ids
Many2many → stock.move
comodel_name='stock.move'
copy=False
readonly=True
string='Returnable Move Lines'
tracking
Selection
readonly=True
related='product_id.tracking'
action_lot_suggestion(self)
create(self, vals_list)
lot_suggestion_mode
Selection
default='sum'
selection=[('sum', 'Total by lot'), ('detail', 'Total by move')]
request_line_id
Many2one → stock.return.request.line
comodel_name='stock.return.request.line'
ondelete='cascade'
readonly=True
required=True
suggested_lot_id
Many2one → suggest.return.request.lot.line
action_confirm(self)
lot_id
Many2one → stock.lot
comodel_name='stock.lot'
lot_suggestion_mode
Selection
selection=[('sum', 'Total by lot'), ('detail', 'Total by move')]
name
Char
wizard_id
Many2one → suggest.return.request.lot
comodel_name='suggest.return.request.lot'
ondelete='cascade'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/stock-logistics-workflow |
| GIT | |
| GIT | https://github.com/OCA/stock-logistics-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/stock-logistics-workflow/tree/15.0/stock_return_request |
| VERSION | |
| VERSION | 1.0.3 |
| CATEGORY | |
| CATEGORY | Stock |
| 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, sergio-teruel, Weblate, OCA-git-bot, oca-ci, Cesar Andres Sanchez |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/stock-logistics-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:37 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stock_return_request |
report_stock_return_request | ir.ui.view | qweb | New |
report_stock_return_request_document |
report_stock_return_request_document | ir.ui.view | qweb | New |
stock_move_lines_to_return |
stock_move_lines_to_return | ir.ui.view | qweb | New |
stock_return_request_line_suggest_lot |
Suggested Lots for this Return Request Line | suggest.return.request.lot | form | New |
view_stock_return_request_form |
stock.return.request | form | New | |
view_stock_return_request_tree |
stock.return.request | tree | New |
qty_returnable
Float
compute='_compute_qty_returnable'
digits='Product Unit of Measure'
readonly=True
string='Returnable Quantity'
No public methods.
stock_return_request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
No public methods.
from_date
Date
string='Search moves up to this date'
line_ids
One2many → stock.return.request.line
comodel_name='stock.return.request.line'
copy=True
inverse_name='request_id'
readonly=True
states={'draft': [('readonly', False)]}
string='Stock Return'
name
Char
copy=False
default=<expr>
readonly=True
required=True
args: 'Reference'
note
Text
help='They will be visible on the report'
string='Comments'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
states={'draft': [('readonly', False)]}
picking_types
Many2many → stock.picking.type
comodel_name='stock.picking.type'
help='Restrict operation types to search for'
string='Operation types'
return_from_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return from this location'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Return from'
return_order
Selection
default='date desc, id desc'
help='The returns will be performed searching moves in the given order.'
readonly=True
required=True
selection=[('date desc, id desc', 'Newer first'), ('date asc, id desc', 'Older first')]
states={'draft': [('readonly', False)]}
return_to_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return to this location'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Return to'
return_type
Selection
help='Supplier - Search for incoming moves from this supplier\nCustomer - Search for outgoing moves to this customer\nInternal - Search for outgoing moves to this location.'
readonly=True
required=True
selection=[('supplier', 'Return to Supplier'), ('customer', 'Return from Customer'), ('internal', 'Return to Internal location')]
states={'draft': [('readonly', False)]}
returned_picking_ids
One2many → stock.picking
comodel_name='stock.picking'
copy=False
inverse_name='stock_return_request_id'
readonly=True
string='Returned Pickings'
show_to_refund
Boolean
compute='_compute_show_to_refund'
default=<expr>
help='Whether to show it or not depending on the availability ofthe stock_account module (so a bridge module is not necessary)'
readonly=True
state
Selection
copy=False
default='draft'
readonly=True
selection=[('draft', 'Open'), ('confirmed', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')]
tracking=True
to_refund
Boolean
readonly=True
states={'draft': [('readonly', False)]}
action_cancel(self)
action_cancel_to_draft(self)
action_confirm(self)
action_validate(self)
action_view_pickings(self)
create(self, vals)
do_print_return_request(self)
onchange_locations(self)
lot_id
Many2one → stock.production.lot
comodel_name='stock.production.lot'
string='Lot / Serial'
max_quantity
Float
digits='Product Unit of Measure'
readonly=True
string='Maximum available quantity'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('type', '=', 'product')]
required=True
string='Product'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
readonly=True
related='product_id.uom_id'
quantity
Float
digits='Product Unit of Measure'
required=True
string='Quantiy to return'
request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
ondelete='cascade'
readonly=True
required=True
string='Return Request'
returnable_move_ids
Many2many → stock.move
comodel_name='stock.move'
copy=False
readonly=True
string='Returnable Move Lines'
tracking
Selection
readonly=True
related='product_id.tracking'
action_lot_suggestion(self)
create(self, values)
onchange_product_id(self)
lot_suggestion_mode
Selection
default='sum'
selection=[('sum', 'Total by lot'), ('detail', 'Total by move')]
request_line_id
Many2one → stock.return.request.line
comodel_name='stock.return.request.line'
default=<expr>
ondelete='cascade'
readonly=True
required=True
suggested_lot
Selection
help='You can return these lots'
selection='_get_suggested_lots_selection'
string='Suggested Lots'
suggested_lot_detail
Selection
help='You can return these lots'
selection='_get_suggested_lots_detail_selection'
string='Suggested Lots Detailed'
action_confirm(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/stock-logistics-workflow |
| GIT | |
| GIT | https://github.com/OCA/stock-logistics-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/stock-logistics-workflow/tree/14.0/stock_return_request |
| VERSION | |
| VERSION | 1.0.4 |
| CATEGORY | |
| CATEGORY | Stock |
| 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 | OCA Transbot, sergio-teruel, Sébastien Alix, oca-travis, Weblate, OCA-git-bot, sergiocorato, oca-ci, Enrique Martín, Prapassorn Sornkaew |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/stock-logistics-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:04 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stock_return_request |
report_stock_return_request | ir.ui.view | qweb | New |
report_stock_return_request_document |
report_stock_return_request_document | ir.ui.view | qweb | New |
stock_move_lines_to_return |
stock_move_lines_to_return | ir.ui.view | qweb | New |
stock_return_request_line_suggest_lot |
Suggested Lots for this Return Request Line | suggest.return.request.lot | form | New |
view_stock_return_request_form |
stock.return.request | form | New | |
view_stock_return_request_tree |
stock.return.request | tree | New |
qty_returnable
Float
compute='_compute_qty_returnable'
digits='Product Unit of Measure'
readonly=True
store=True
string='Returnable Quantity'
No public methods.
stock_return_request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
No public methods.
from_date
Date
string='Search moves up to this date'
line_ids
One2many → stock.return.request.line
comodel_name='stock.return.request.line'
copy=True
inverse_name='request_id'
readonly=True
states={'draft': [('readonly', False)]}
string='Stock Return'
name
Char
copy=False
default=<expr>
readonly=True
required=True
args: 'Reference'
note
Text
help='They will be visible on the report'
string='Comments'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
states={'draft': [('readonly', False)]}
picking_types
Many2many → stock.picking.type
comodel_name='stock.picking.type'
help='Restrict operation types to search for'
string='Operation types'
return_from_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return from this location'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Return from'
return_order
Selection
default='date desc, id desc'
help='The returns will be performed searching moves in the given order.'
readonly=True
required=True
selection=[('date desc, id desc', 'Newer first'), ('date asc, id desc', 'Older first')]
states={'draft': [('readonly', False)]}
string='Return Order'
return_to_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return to this location'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Return to'
return_type
Selection
help='Supplier - Search for incoming moves from this supplier\nCustomer - Search for outgoing moves to this customer\nInternal - Search for outgoing moves to this location.'
readonly=True
required=True
selection=[('supplier', 'Return to Supplier'), ('customer', 'Return from Customer'), ('internal', 'Return to Internal location')]
states={'draft': [('readonly', False)]}
string='Return type'
returned_picking_ids
One2many → stock.picking
comodel_name='stock.picking'
copy=False
inverse_name='stock_return_request_id'
readonly=True
string='Returned Pickings'
show_to_refund
Boolean
compute='_compute_show_to_refund'
default=<expr>
help='Whether to show it or not depending on the availability ofthe stock_account module (so a bridge module is not necessary)'
readonly=True
state
Selection
copy=False
default='draft'
readonly=True
selection=[('draft', 'Open'), ('confirmed', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')]
tracking=True
to_refund
Boolean
readonly=True
states={'draft': [('readonly', False)]}
string='To refund'
action_cancel(self)
action_cancel_to_draft(self)
action_confirm(self)
action_validate(self)
action_view_pickings(self)
create(self, vals)
do_print_return_request(self)
onchange_locations(self)
lot_id
Many2one → stock.production.lot
comodel_name='stock.production.lot'
string='Lot / Serial'
max_quantity
Float
digits='Product Unit of Measure'
readonly=True
string='Maximum available quantity'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('type', '=', 'product')]
required=True
string='Product'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
readonly=True
related='product_id.uom_id'
quantity
Float
digits='Product Unit of Measure'
required=True
string='Quantiy to return'
request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
ondelete='cascade'
readonly=True
required=True
string='Return Request'
returnable_move_ids
Many2many → stock.move
comodel_name='stock.move'
copy=False
readonly=True
string='Returnable Move Lines'
tracking
Selection
readonly=True
related='product_id.tracking'
action_lot_suggestion(self)
create(self, values)
onchange_product_id(self)
lot_suggestion_mode
Selection
default='sum'
selection=[('sum', 'Total by lot'), ('detail', 'Total by move')]
request_line_id
Many2one → stock.return.request.line
comodel_name='stock.return.request.line'
default=<expr>
ondelete='cascade'
readonly=True
required=True
suggested_lot
Selection
help='You can return these lots'
selection='_get_suggested_lots_selection'
string='Suggested Lots'
suggested_lot_detail
Selection
help='You can return these lots'
selection='_get_suggested_lots_detail_selection'
string='Suggested Lots Detailed'
action_confirm(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/stock-logistics-workflow |
| GIT | |
| GIT | https://github.com/OCA/stock-logistics-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/stock-logistics-workflow/tree/13.0/stock_return_request |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Stock |
| 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, OCA Transbot, sergio-teruel, oca-travis, OCA-git-bot, David, ps-tubtim |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/stock-logistics-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:15 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stock_return_request |
report_stock_return_request | ir.ui.view | qweb | New |
report_stock_return_request_document |
report_stock_return_request_document | ir.ui.view | qweb | New |
stock_move_lines_to_return |
stock_move_lines_to_return | ir.ui.view | qweb | New |
stock_return_request_line_suggest_lot |
Suggested Lots for this Return Request Line | suggest.return.request.lot | form | New |
view_stock_return_request_form |
stock.return.request | form | New | |
view_stock_return_request_tree |
stock.return.request | tree | New |
qty_returnable
Float
compute='_compute_qty_returnable'
digits='Product Unit of Measure'
readonly=True
store=True
string='Returnable Quantity'
No public methods.
stock_return_request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
No public methods.
from_date
Date
string='Search moves up to this date'
line_ids
One2many → stock.return.request.line
comodel_name='stock.return.request.line'
copy=True
inverse_name='request_id'
readonly=True
states={'draft': [('readonly', False)]}
string='Stock Return'
name
Char
copy=False
default=<expr>
readonly=True
required=True
args: 'Reference'
note
Text
help='They will be visible on the report'
string='Comments'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
states={'draft': [('readonly', False)]}
picking_types
Many2many → stock.picking.type
comodel_name='stock.picking.type'
help='Restrict operation types to search for'
string='Operation types'
return_from_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return from this location'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Return from'
return_order
Selection
default='date desc, id desc'
help='The returns will be performed searching moves in the given order.'
readonly=True
required=True
selection=[('date desc, id desc', 'Newer first'), ('date asc, id desc', 'Older first')]
states={'draft': [('readonly', False)]}
string='Return Order'
return_to_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return to this location'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Return to'
return_type
Selection
help='Supplier - Search for incoming moves from this supplier\nCustomer - Search for outgoing moves to this customer\nInternal - Search for outgoing moves to this location.'
readonly=True
required=True
selection=[('supplier', 'Return to Supplier'), ('customer', 'Return from Customer'), ('internal', 'Return to Internal location')]
states={'draft': [('readonly', False)]}
string='Return type'
returned_picking_ids
One2many → stock.picking
comodel_name='stock.picking'
copy=False
inverse_name='stock_return_request_id'
readonly=True
string='Returned Pickings'
show_to_refund
Boolean
compute='_compute_show_to_refund'
default=<expr>
help='Whether to show it or not depending on the availability ofthe stock_account module (so a bridge module is not necessary)'
readonly=True
state
Selection
copy=False
default='draft'
readonly=True
selection=[('draft', 'Open'), ('confirmed', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')]
tracking=True
to_refund
Boolean
readonly=True
states={'draft': [('readonly', False)]}
string='To refund'
action_cancel(self)
action_cancel_to_draft(self)
action_confirm(self)
action_validate(self)
action_view_pickings(self)
create(self, vals)
do_print_return_request(self)
onchange_locations(self)
lot_id
Many2one → stock.production.lot
comodel_name='stock.production.lot'
string='Lot / Serial'
max_quantity
Float
digits='Product Unit of Measure'
readonly=True
string='Maximum available quantity'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('type', '=', 'product')]
required=True
string='Product'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
readonly=True
related='product_id.uom_id'
quantity
Float
digits='Product Unit of Measure'
required=True
string='Quantiy to return'
request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
ondelete='cascade'
readonly=True
required=True
string='Return Request'
returnable_move_ids
Many2many → stock.move
comodel_name='stock.move'
copy=False
readonly=True
string='Returnable Move Lines'
tracking
Selection
readonly=True
related='product_id.tracking'
action_lot_suggestion(self)
create(self, values)
onchange_product_id(self)
lot_suggestion_mode
Selection
default='sum'
selection=[('sum', 'Total by lot'), ('detail', 'Total by move')]
request_line_id
Many2one → stock.return.request.line
comodel_name='stock.return.request.line'
default=<expr>
ondelete='cascade'
readonly=True
required=True
suggested_lot
Selection
help='You can return these lots'
selection='_get_suggested_lots_selection'
string='Suggested Lots'
suggested_lot_detail
Selection
help='You can return these lots'
selection='_get_suggested_lots_detail_selection'
string='Suggested Lots Detailed'
action_confirm(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/stock-logistics-workflow |
| GIT | |
| GIT | https://github.com/OCA/stock-logistics-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/stock-logistics-workflow/tree/12.0/stock_return_request |
| VERSION | |
| VERSION | 1.0.2 |
| CATEGORY | |
| CATEGORY | Stock |
| 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 | david, OCA Transbot, Sergio Teruel, oca-travis, Weblate, OCA-git-bot |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/stock-logistics-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:21 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - decimal_precision - base_setup - web - bus - web_tour - uom - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stock_return_request |
report_stock_return_request | ir.ui.view | qweb | New |
report_stock_return_request_document |
report_stock_return_request_document | ir.ui.view | qweb | New |
stock_move_lines_to_return |
stock_move_lines_to_return | ir.ui.view | qweb | New |
stock_return_request_line_suggest_lot |
Suggested Lots for this Return Request Line | suggest.return.request.lot | form | New |
view_stock_return_request_form |
stock.return.request | form | New | |
view_stock_return_request_tree |
stock.return.request | tree | New |
qty_returnable
Float
compute='_compute_qty_returnable'
digits=dp.get_precision('Product Unit of Measure')
readonly=True
store=True
string='Returnable Quantity'
No public methods.
stock_return_request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
No public methods.
from_date
Date
string='Search moves up to this date'
line_ids
One2many → stock.return.request.line
comodel_name='stock.return.request.line'
copy=True
inverse_name='request_id'
readonly=True
states={'draft': [('readonly', False)]}
string='Stock Return'
name
Char
copy=False
default=<expr>
readonly=True
required=True
args: 'Reference'
note
Text
help='They will be visible on the report'
string='Comments'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
states={'draft': [('readonly', False)]}
picking_types
Many2many → stock.picking.type
comodel_name='stock.picking.type'
help='Restrict operation types to search for'
string='Operation types'
return_from_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return from this location'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Return from'
return_order
Selection
default='date desc, id desc'
help='The returns will be performed searching moves in the given order.'
readonly=True
required=True
selection=[('date desc, id desc', 'Newer first'), ('date asc, id desc', 'Older first')]
states={'draft': [('readonly', False)]}
string='Return Order'
return_to_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return to this location'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Return to'
return_type
Selection
help='Supplier - Search for incoming moves from this supplier\nCustomer - Search for outgoing moves to this customer\nInternal - Search for outgoing moves to this location.'
readonly=True
required=True
selection=[('supplier', 'Return to Supplier'), ('customer', 'Return from Customer'), ('internal', 'Return to Internal location')]
states={'draft': [('readonly', False)]}
string='Return type'
returned_picking_ids
One2many → stock.picking
comodel_name='stock.picking'
copy=False
inverse_name='stock_return_request_id'
readonly=True
string='Returned Pickings'
show_to_refund
Boolean
compute='_compute_show_to_refund'
default=<expr>
help='Whether to show it or not depending on the availability ofthe stock_account module (so a bridge module is not necessary)'
readonly=True
state
Selection
copy=False
default='draft'
readonly=True
selection=[('draft', 'Open'), ('confirmed', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')]
track_visibility='onchange'
to_refund
Boolean
readonly=True
states={'draft': [('readonly', False)]}
string='To refund'
action_cancel(self)
action_cancel_to_draft(self)
action_confirm(self)
action_validate(self)
action_view_pickings(self)
create(self, vals)
do_print_return_request(self)
onchange_locations(self)
lot_id
Many2one → stock.production.lot
comodel_name='stock.production.lot'
string='Lot / Serial'
max_quantity
Float
digits=dp.get_precision('Product Unit of Measure')
readonly=True
string='Maximum available quantity'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('type', '=', 'product')]
required=True
string='Product'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
readonly=True
related='product_id.uom_id'
quantity
Float
digits=dp.get_precision('Product Unit of Measure')
required=True
string='Quantiy to return'
request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
ondelete='cascade'
readonly=True
required=True
string='Return Request'
returnable_move_ids
Many2many → stock.move
comodel_name='stock.move'
copy=False
readonly=True
string='Returnable Move Lines'
tracking
Selection
readonly=True
related='product_id.tracking'
action_lot_suggestion(self)
create(self, values)
onchange_product_id(self)
lot_suggestion_mode
Selection
default='sum'
selection=[('sum', 'Total by lot'), ('detail', 'Total by move')]
request_line_id
Many2one → stock.return.request.line
comodel_name='stock.return.request.line'
default=<expr>
ondelete='cascade'
readonly=True
required=True
suggested_lot
Selection
help='You can return these lots'
selection='_get_suggested_lots_selection'
string='Suggested Lots'
suggested_lot_detail
Selection
help='You can return these lots'
selection='_get_suggested_lots_detail_selection'
string='Suggested Lots Detailed'
action_confirm(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/stock-logistics-workflow |
| GIT | |
| GIT | https://github.com/OCA/stock-logistics-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/stock-logistics-workflow/tree/11.0/stock_return_request |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Stock |
| 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 | david, OCA Transbot, oca-travis, OCA-git-bot |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/stock-logistics-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - decimal_precision - base_setup - web - bus - web_tour - barcodes - web_planner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_stock_return_request |
report_stock_return_request | ir.ui.view | qweb | New |
report_stock_return_request_document |
report_stock_return_request_document | ir.ui.view | qweb | New |
stock_move_lines_to_return |
stock_move_lines_to_return | ir.ui.view | qweb | New |
stock_return_request_line_suggest_lot |
Suggested Lots for this Return Request Line | suggest.return.request.lot | form | New |
view_stock_return_request_form |
stock.return.request | form | New | |
view_stock_return_request_tree |
stock.return.request | tree | New |
qty_returnable
Float
compute='_compute_qty_returnable'
digits=dp.get_precision('Product Unit of Measure')
readonly=True
store=True
string='Returnable Quantity'
No public methods.
stock_return_request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
No public methods.
from_date
Date
string='Search moves up to this date'
line_ids
One2many → stock.return.request.line
comodel_name='stock.return.request.line'
copy=True
inverse_name='request_id'
readonly=True
states={'draft': [('readonly', False)]}
string='Stock Return'
name
Char
copy=False
default=<expr>
readonly=True
required=True
args: 'Reference'
note
Text
help='They will be visible on the report'
string='Comments'
partner_id
Many2one → res.partner
comodel_name='res.partner'
readonly=True
states={'draft': [('readonly', False)]}
picking_types
Many2many → stock.picking.type
comodel_name='stock.picking.type'
help='Restrict operation types to search for'
string='Operation types'
return_from_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return from this location'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Return from'
return_order
Selection
default='date desc, id desc'
help='The returns will be performed searching moves in the given order.'
readonly=True
required=True
selection=[('date desc, id desc', 'Newer first'), ('date asc, id desc', 'Older first')]
states={'draft': [('readonly', False)]}
string='Return Order'
return_to_location
Many2one → stock.location
comodel_name='stock.location'
domain='[("usage", "=", "internal")]'
help='Return to this location'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Return to'
return_type
Selection
help='Supplier - Search for incoming moves from this supplier\nCustomer - Search for outgoing moves to this customer\nInternal - Search for outgoing moves to this location.'
readonly=True
required=True
selection=[('supplier', 'Return to Supplier'), ('customer', 'Return from Customer'), ('internal', 'Return to Internal location')]
states={'draft': [('readonly', False)]}
string='Return type'
returned_picking_ids
One2many → stock.picking
comodel_name='stock.picking'
copy=False
inverse_name='stock_return_request_id'
readonly=True
string='Returned Pickings'
show_to_refund
Boolean
compute='_compute_show_to_refund'
default=<expr>
help='Whether to show it or not depending on the availability ofthe stock_account module (so a bridge module is not necessary)'
readonly=True
state
Selection
copy=False
default='draft'
readonly=True
selection=[('draft', 'Open'), ('confirmed', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')]
track_visibility='onchange'
to_refund
Boolean
readonly=True
states={'draft': [('readonly', False)]}
string='To refund'
action_cancel(self)
action_cancel_to_draft(self)
action_confirm(self)
action_validate(self)
action_view_pickings(self)
create(self, vals)
do_print_return_request(self)
onchange_locations(self)
lot_id
Many2one → stock.production.lot
comodel_name='stock.production.lot'
string='Lot / Serial'
max_quantity
Float
digits=dp.get_precision('Product Unit of Measure')
readonly=True
string='Maximum available quantity'
product_id
Many2one → product.product
comodel_name='product.product'
domain=[('type', '=', 'product')]
required=True
string='Product'
product_uom_id
Many2one → product.uom
comodel_name='product.uom'
readonly=True
related='product_id.uom_id'
quantity
Float
digits=dp.get_precision('Product Unit of Measure')
required=True
string='Quantiy to return'
request_id
Many2one → stock.return.request
comodel_name='stock.return.request'
ondelete='cascade'
readonly=True
required=True
string='Return Request'
returnable_move_ids
Many2many → stock.move
comodel_name='stock.move'
copy=False
readonly=True
string='Returnable Move Lines'
tracking
Selection
readonly=True
related='product_id.tracking'
action_lot_suggestion(self)
create(self, values)
onchange_product_id(self)
lot_suggestion_mode
Selection
default='sum'
selection=[('sum', 'Total by lot'), ('detail', 'Total by move')]
request_line_id
Many2one → stock.return.request.line
comodel_name='stock.return.request.line'
default=<expr>
ondelete='cascade'
readonly=True
required=True
suggested_lot
Selection
help='You can return these lots'
selection='_get_suggested_lots_selection'
string='Suggested Lots'
suggested_lot_detail
Selection
help='You can return these lots'
selection='_get_suggested_lots_detail_selection'
string='Suggested Lots'
action_confirm(self)