| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/19.0/stock_picking_batch |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Supply Chain/Inventory |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo S.A. |
| MAINTAINERS | |
| MAINTAINERS | Odoo S.A. |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Thibault Delavallée, Arnold Moyaux, Julien Castiaux, Victor Feyens, William Henrotin, svs-odoo, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Mathieu Duckerts-Antoine, David (dafr), luvi, Renaud Thiry, Djamel Touati, Pieter Claeys (clpi), Dylan Kiss (dyki), micheledic, lase@odoo.com, Quentin Wolfs, Bruno Boi (boi), kcv-odoo, nihp-odoo, Quang Nguyen, Mohammad Abdulmoneim, dhha-odoo, Pierre Pulinckx (PIPU), Mohammad Abdulmoneim (abdu), djameltouati, Michaël Mattiello, Bastien PIERRE, chha-odoo, Krzysztof Magusiak (krma), AllePilli, rare-odoo, Lulu Grimalkin (lugr), Lancelot Semal, saurabh, jodh-odoo |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:51:39 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - html_editor - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - http_routing - auth_signup - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module adds the batch transfer option in warehouse management
==================================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_add_to_wave_form |
stock.add.to.wave.form | stock.add.to.wave | form | New |
stock_move_line_view_search_inherit_stock_picking_batch |
stock.move.line.search.stock_picking_batch | stock.move.line | xpath | Inherits stock.stock_move_line_view_search |
stock_picking_batch.report_picking_batch |
stock_picking_batch.report_picking_batch | ir.ui.view | qweb | New |
stock_picking_batch_calendar |
stock.picking.batch.calendar | stock.picking.batch | calendar | New |
stock_picking_batch_filter |
stock.picking.batch.filter | stock.picking.batch | search | New |
stock_picking_batch_form |
stock.picking.batch.form | stock.picking.batch | form | New |
stock_picking_batch_kanban |
stock.picking.batch.kanban | stock.picking.batch | kanban | New |
stock_picking_batch_tree |
stock.picking.batch.list | stock.picking.batch | list | New |
stock_picking_form_inherit |
stock.picking.form.inherit | stock.picking | div | Inherits stock.view_picking_form |
stock_picking_to_batch_form |
stock.picking.to.batch.form | stock.picking.to.batch | form | New |
stock_picking_type_kanban_batch |
picking.type.kanban.batch | stock.picking.type | xpath | Inherits stock.stock_picking_type_kanban |
stock_picking_view_batch_tree_ref |
stock.picking.view.list.inherit.stock.picking.batch | stock.picking | xpath | Inherits stock.vpicktree |
stock_picking_wave_kanban |
stock.picking.wave.kanban | stock.picking.batch | xpath | Inherits stock_picking_batch.stock_picking_batch_kanban |
stock_picking_wave_tree |
stock.picking.wave.list | stock.picking.batch | xpath | Inherits stock_picking_batch.stock_picking_batch_tree |
view_move_line_tree |
stock_picking_batch.move.line.list | stock.move.line | list | New |
view_move_line_tree_detailed_wave |
stock_picking_wave.move.line.list.wave | stock.move.line | xpath | Inherits stock.view_move_line_tree_detailed |
view_move_line_tree_inherit_stock_picking_batch |
stock.move.line.list.stock_picking_batch | stock.move.line | xpath | Inherits stock.view_move_line_tree |
view_picking_form_inherited |
stock_picking_batch.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_picking_internal_search_inherit |
stock.picking.internal.search.inherit | stock.picking | filter | Inherits stock.view_picking_internal_search |
view_picking_internal_search_inherit_stock_picking_batch |
stock.picking.search | stock.picking | xpath | Inherits stock.view_picking_internal_search |
view_picking_move_tree_inherited |
stock_picking_batch.picking.move.list | stock.move | xpath | Inherits stock.view_picking_move_tree |
view_picking_type_form_inherit |
stock.picking.type.form.inherit | stock.picking.type | xpath | Inherits stock.view_picking_type_form |
vpicktree |
stock.picking.list.inherit.stock.picking.batch | stock.picking | field | Inherits stock.vpicktree |
line_ids
Many2many → stock.move.line
mode
Selection
default='existing'
args: [('existing', 'an existing wave transfer'), ('new', 'a new wave transfer')]
picking_ids
Many2many → stock.picking
user_id
Many2one → res.users
string='Responsible'
args: 'res.users'
wave_id
Many2one → stock.picking.batch
domain="[('is_wave', '=', True), ('state', 'in', ('draft', 'in_progress'))]"
string='Wave Transfer'
args: 'stock.picking.batch'
attach_pickings(self)
default_get(self, fields)
No new fields.
Public methods (2)action_show_details(self)
write(self, vals)
batch_id
Many2one
related='picking_id.batch_id'
action_open_add_to_wave(self)
batch_id
Many2one → stock.picking.batch
check_company=True
copy=False
help='Batch associated to this transfer'
index=True
string='Batch Transfer'
args: 'stock.picking.batch'
batch_sequence
Integer
string='Sequence'
action_add_operations(self)
action_cancel(self)
action_confirm(self)
action_view_batch(self)
assign_batch_user(self, user_id)
button_validate(self)
create(self, vals_list)
write(self, vals)
allowed_picking_ids
One2many → stock.picking
compute='_compute_allowed_picking_ids'
args: 'stock.picking'
company_id
Many2one → res.company
default=<expr>
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
description
Char
estimated_shipping_volume
Float
compute='_compute_estimated_shipping_capacity'
digits='Product Unit'
args: 'shipping_volume'
estimated_shipping_weight
Float
compute='_compute_estimated_shipping_capacity'
digits='Product Unit'
args: 'shipping_weight'
is_wave
Boolean
move_ids
One2many → stock.move
compute='_compute_move_ids'
string='Stock moves'
args: 'stock.move'
move_line_ids
One2many → stock.move.line
compute='_compute_move_line_ids'
inverse='_set_move_line_ids'
search='_search_move_line_ids'
string='Stock move lines'
args: 'stock.move.line'
name
Char
copy=False
default=<expr>
readonly=True
required=True
string='Batch Transfer'
picking_ids
One2many → stock.picking
check_company=True
domain="[('id', 'in', allowed_picking_ids)]"
help='List of transfers associated to this batch'
string='Transfers'
args: 'stock.picking', 'batch_id'
picking_type_code
Selection
related='picking_type_id.code'
picking_type_id
Many2one → stock.picking.type
check_company=True
copy=False
index=True
args: 'stock.picking.type', 'Operation Type'
properties
Properties
copy=True
definition='picking_type_id.batch_properties_definition'
args: 'Properties'
scheduled_date
Datetime
compute='_compute_scheduled_date'
copy=False
help='Scheduled date for the transfers to be processed.\n - If manually set then scheduled date for all transfers in batch will automatically update to this date.\n - If not manually changed and transfers are added/removed/updated then this will be their earliest scheduled date\n but this scheduled date will not be set for all transfers in batch.'
readonly=False
store=True
args: 'Scheduled Date'
show_allocation
Boolean
compute='_compute_show_allocation'
string='Show Allocation Button'
show_check_availability
Boolean
compute='_compute_move_ids'
string='Show Check Availability'
show_lots_text
Boolean
compute='_compute_show_lots_text'
state
Selection
compute='_compute_state'
copy=False
default='draft'
index=True
readonly=True
required=True
store=True
tracking=True
args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('done', 'Done'), ('cancel', 'Cancelled')]
user_id
Many2one → res.users
check_company=True
string='Responsible'
tracking=True
args: 'res.users'
warehouse_id
Many2one → stock.warehouse
related='picking_type_id.warehouse_id'
args: 'stock.warehouse'
action_assign(self)
action_batch_detailed_operations(self)
action_cancel(self)
action_confirm(self)
action_done(self)
action_merge(self)
action_open_label_layout(self)
action_print(self)
action_put_in_pack(self, *, package_id=False, package_type_id=False, package_name=False)
action_see_packages(self)
action_view_reception_report(self)
create(self, vals_list)
onchange_scheduled_date(self)
write(self, vals)
batch_id
Many2one → stock.picking.batch
domain="[('is_wave', '=', False), ('state', 'in', ('draft', 'in_progress'))]"
string='Batch Transfer'
args: 'stock.picking.batch'
description
Char
is_create_draft
Boolean
help='When checked, create the batch in draft status'
string='Draft'
mode
Selection
default='new'
args: [('existing', 'an existing batch transfer'), ('new', 'a new batch transfer')]
user_id
Many2one → res.users
string='Responsible'
args: 'res.users'
attach_pickings(self)
auto_batch
Boolean
help='Automatically put pickings into batches as they are confirmed when possible.'
args: 'Automatic Batches'
batch_auto_confirm
Boolean
default=True
args: 'Auto-confirm'
batch_group_by_dest_loc
Boolean
help='Automatically group batches by their destination location.'
args: 'Group by Destination Location'
batch_group_by_destination
Boolean
help='Automatically group batches by destination country.'
args: 'Destination Country'
batch_group_by_partner
Boolean
help='Automatically group batches by contacts.'
args: 'Contact'
batch_group_by_src_loc
Boolean
help='Automatically group batches by their source location.'
args: 'Group by Source Location'
batch_max_lines
Integer
help="A transfer will not be automatically added to batches that will exceed this number of lines if the transfer is added to it.\nLeave this value as '0' if no line limit."
args: 'Maximum lines'
batch_max_pickings
Integer
help="A transfer will not be automatically added to batches that will exceed this number of transfers.\nLeave this value as '0' if no transfer limit."
args: 'Maximum transfers'
batch_properties_definition
PropertiesDefinition
count_picking_batch
Integer
compute='_compute_picking_count'
count_picking_wave
Integer
compute='_compute_picking_count'
wave_category_ids
Many2many → product.category
help='Categories to consider when grouping waves.'
string='Wave Product Categories'
args: 'product.category'
wave_group_by_category
Boolean
help='Split transfers by product category, then group transfers that have the same product category.'
args: 'Product Category'
wave_group_by_location
Boolean
help='Split transfers by defined locations, then group transfers with the same location.'
args: 'Location'
wave_group_by_product
Boolean
help='Split transfers by product then group transfers that have the same product.'
args: 'Product'
wave_location_ids
Many2many → stock.location
domain="[('usage', '=', 'internal')]"
help='Locations to consider when grouping waves.'
string='Wave Locations'
args: 'stock.location'
action_batch(self)
action_wave(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/18.0/stock_picking_batch |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Inventory/Inventory |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Xavier Morel, Aaron Bohy, Yannick Tivisse, Odoo Online, Arnold Moyaux, William Henrotin, svs-odoo, Prakash Prajapati, Tiffany Chang (tic), Gorash, snd, David (dafr), JF Aubert, Vincent Larcin, Louis Wicket (wil), Walid, clesgow, Djamel Touati, Dylan Kiss (dyki), micheledic, David Vidal, Paweł Fertyk, omra-odoo, lase@odoo.com, Maryam Kia, vava-odoo, Bruno Boi (boi), adsh-odoo, sami odoo, Louis (wil), Quang Nguyen, mano-odoo, Mohammad Abdulmoneim, dhha-odoo, Pierre Pulinckx (PIPU), djameltouati, Bastien PIERRE, plha-odoo, AllePilli, Lancelot Semal, saurabh, jodh-odoo |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:25:52 |
| 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 adds the batch transfer option in warehouse management
==================================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_add_to_wave_form |
stock.add.to.wave.form | stock.add.to.wave | form | New |
stock_move_line_view_search_inherit_stock_picking_batch |
stock.move.line.search.stock_picking_batch | stock.move.line | xpath | Inherits stock.stock_move_line_view_search |
stock_picking_batch.report_picking_batch |
stock_picking_batch.report_picking_batch | ir.ui.view | qweb | New |
stock_picking_batch_calendar |
stock.picking.batch.calendar | stock.picking.batch | calendar | New |
stock_picking_batch_filter |
stock.picking.batch.filter | stock.picking.batch | search | New |
stock_picking_batch_form |
stock.picking.batch.form | stock.picking.batch | form | New |
stock_picking_batch_kanban |
stock.picking.batch.kanban | stock.picking.batch | kanban | New |
stock_picking_batch_tree |
stock.picking.batch.list | stock.picking.batch | list | New |
stock_picking_form_inherit |
stock.picking.form.inherit | stock.picking | div | Inherits stock.view_picking_form |
stock_picking_to_batch_form |
stock.picking.to.batch.form | stock.picking.to.batch | form | New |
stock_picking_type_kanban_batch |
picking.type.kanban.batch | stock.picking.type | xpath | Inherits stock.stock_picking_type_kanban |
stock_picking_view_batch_tree_ref |
stock.picking.view.list.inherit.stock.picking.batch | stock.picking | xpath | Inherits stock.vpicktree |
stock_picking_wave_kanban |
stock.picking.wave.kanban | stock.picking.batch | xpath | Inherits stock_picking_batch.stock_picking_batch_kanban |
stock_picking_wave_tree |
stock.picking.wave.list | stock.picking.batch | xpath | Inherits stock_picking_batch.stock_picking_batch_tree |
view_move_line_tree |
stock_picking_batch.move.line.list | stock.move.line | list | New |
view_move_line_tree_detailed_wave |
stock_picking_wave.move.line.list.wave | stock.move.line | xpath | Inherits stock.view_move_line_tree_detailed |
view_move_line_tree_inherit_stock_picking_batch |
stock.move.line.list.stock_picking_batch | stock.move.line | xpath | Inherits stock.view_move_line_tree |
view_picking_form_inherited |
stock_picking_batch.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_picking_internal_search_inherit |
stock.picking.internal.search.inherit | stock.picking | filter | Inherits stock.view_picking_internal_search |
view_picking_internal_search_inherit_stock_picking_batch |
stock.picking.search | stock.picking | xpath | Inherits stock.view_picking_internal_search |
view_picking_move_tree_inherited |
stock_picking_batch.picking.move.list | stock.move | xpath | Inherits stock.view_picking_move_tree |
view_picking_type_form_inherit |
stock.picking.type.form.inherit | stock.picking.type | xpath | Inherits stock.view_picking_type_form |
vpicktree |
stock.picking.list.inherit.stock.picking.batch | stock.picking | field | Inherits stock.vpicktree |
line_ids
Many2many → stock.move.line
mode
Selection
default='existing'
args: [('existing', 'an existing wave transfer'), ('new', 'a new wave transfer')]
picking_ids
Many2many → stock.picking
user_id
Many2one → res.users
string='Responsible'
args: 'res.users'
wave_id
Many2one → stock.picking.batch
domain="[('is_wave', '=', True), ('state', 'in', ('draft', 'in_progress'))]"
string='Wave Transfer'
args: 'stock.picking.batch'
attach_pickings(self)
default_get(self, fields_list)
No new fields.
Public methods (1)write(self, vals)
batch_id
Many2one
related='picking_id.batch_id'
store=True
action_open_add_to_wave(self)
No new fields.
Public methods (1)action_done(self)
batch_id
Many2one → stock.picking.batch
check_company=True
copy=False
help='Batch associated to this transfer'
index=True
string='Batch Transfer'
args: 'stock.picking.batch'
batch_sequence
Integer
string='Sequence'
action_add_operations(self)
action_cancel(self)
action_confirm(self)
action_view_batch(self)
assign_batch_user(self, user_id)
button_validate(self)
create(self, vals_list)
write(self, vals)
allowed_picking_ids
One2many → stock.picking
compute='_compute_allowed_picking_ids'
args: 'stock.picking'
company_id
Many2one → res.company
default=<expr>
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
description
Char
estimated_shipping_volume
Float
compute='_compute_estimated_shipping_capacity'
digits='Product Unit of Measure'
args: 'shipping_volume'
estimated_shipping_weight
Float
compute='_compute_estimated_shipping_capacity'
digits='Product Unit of Measure'
args: 'shipping_weight'
is_wave
Boolean
move_ids
One2many → stock.move
compute='_compute_move_ids'
string='Stock moves'
args: 'stock.move'
move_line_ids
One2many → stock.move.line
compute='_compute_move_line_ids'
inverse='_set_move_line_ids'
search='_search_move_line_ids'
string='Stock move lines'
args: 'stock.move.line'
name
Char
copy=False
default=<expr>
readonly=True
required=True
string='Batch Transfer'
picking_ids
One2many → stock.picking
check_company=True
domain="[('id', 'in', allowed_picking_ids)]"
help='List of transfers associated to this batch'
string='Transfers'
args: 'stock.picking', 'batch_id'
picking_type_code
Selection
related='picking_type_id.code'
picking_type_id
Many2one → stock.picking.type
check_company=True
copy=False
index=True
args: 'stock.picking.type', 'Operation Type'
properties
Properties
copy=True
definition='picking_type_id.batch_properties_definition'
args: 'Properties'
scheduled_date
Datetime
compute='_compute_scheduled_date'
copy=False
help='Scheduled date for the transfers to be processed.\n - If manually set then scheduled date for all transfers in batch will automatically update to this date.\n - If not manually changed and transfers are added/removed/updated then this will be their earliest scheduled date\n but this scheduled date will not be set for all transfers in batch.'
readonly=False
store=True
args: 'Scheduled Date'
show_allocation
Boolean
compute='_compute_show_allocation'
string='Show Allocation Button'
show_check_availability
Boolean
compute='_compute_move_ids'
string='Show Check Availability'
show_lots_text
Boolean
compute='_compute_show_lots_text'
state
Selection
compute='_compute_state'
copy=False
default='draft'
index=True
readonly=True
required=True
store=True
tracking=True
args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('done', 'Done'), ('cancel', 'Cancelled')]
user_id
Many2one → res.users
check_company=True
string='Responsible'
tracking=True
args: 'res.users'
warehouse_id
Many2one → stock.warehouse
related='picking_type_id.warehouse_id'
args: 'stock.warehouse'
action_assign(self)
action_cancel(self)
action_confirm(self)
action_done(self)
action_open_label_layout(self)
action_print(self)
action_put_in_pack(self)
action_view_reception_report(self)
create(self, vals_list)
onchange_scheduled_date(self)
write(self, vals)
batch_id
Many2one → stock.picking.batch
domain="[('is_wave', '=', False), ('state', 'in', ('draft', 'in_progress'))]"
string='Batch Transfer'
args: 'stock.picking.batch'
description
Char
is_create_draft
Boolean
help='When checked, create the batch in draft status'
string='Draft'
mode
Selection
default='new'
args: [('existing', 'an existing batch transfer'), ('new', 'a new batch transfer')]
user_id
Many2one → res.users
string='Responsible'
args: 'res.users'
attach_pickings(self)
auto_batch
Boolean
help='Automatically put pickings into batches as they are confirmed when possible.'
args: 'Automatic Batches'
batch_auto_confirm
Boolean
default=True
args: 'Auto-confirm'
batch_group_by_dest_loc
Boolean
help='Automatically group batches by their destination location.'
args: 'Group by Destination Location'
batch_group_by_destination
Boolean
help='Automatically group batches by destination country.'
args: 'Destination Country'
batch_group_by_partner
Boolean
help='Automatically group batches by contacts.'
args: 'Contact'
batch_group_by_src_loc
Boolean
help='Automatically group batches by their source location.'
args: 'Group by Source Location'
batch_max_lines
Integer
help="A transfer will not be automatically added to batches that will exceed this number of lines if the transfer is added to it.\nLeave this value as '0' if no line limit."
args: 'Maximum lines'
batch_max_pickings
Integer
help="A transfer will not be automatically added to batches that will exceed this number of transfers.\nLeave this value as '0' if no transfer limit."
args: 'Maximum transfers'
batch_properties_definition
PropertiesDefinition
count_picking_batch
Integer
compute='_compute_picking_count'
count_picking_wave
Integer
compute='_compute_picking_count'
wave_category_ids
Many2many → product.category
help='Categories to consider when grouping waves.'
string='Wave Product Categories'
args: 'product.category'
wave_group_by_category
Boolean
help='Split transfers by product category, then group transfers that have the same product category.'
args: 'Product Category'
wave_group_by_location
Boolean
help='Split transfers by defined locations, then group transfers with the same location.'
args: 'Location'
wave_group_by_product
Boolean
help='Split transfers by product then group transfers that have the same product.'
args: 'Product'
wave_location_ids
Many2many → stock.location
domain="[('usage', '=', 'internal')]"
help='Locations to consider when grouping waves.'
string='Wave Locations'
args: 'stock.location'
action_batch(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/17.0/stock_picking_batch |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Inventory/Inventory |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Denis Ledoux, Yannick Tivisse, Odoo Online, Arnold Moyaux, Victor Feyens, William Henrotin, svs-odoo, Adrien Widart, Touati Djamel (otd), Prakash Prajapati, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, snd, David (dafr), JF Aubert, yhu-odoo, Walid HANNICHE (waha), Louis Wicket (wil), Walid, Adrien Widart (awt), clesgow, Djamel Touati, Dylan Kiss (dyki), Martin Maes, micheledic, Paweł Fertyk, lase@odoo.com, Julien Carion (juca), adsh-odoo, Louis (wil), Quang Nguyen, Mohammad Abdulmoneim, dhha-odoo |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:02:04 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - 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 adds the batch transfer option in warehouse management
==================================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_add_to_wave_form |
stock.add.to.wave.form | stock.add.to.wave | form | New |
stock_move_line_view_search_inherit_stock_picking_batch |
stock.move.line.search.stock_picking_batch | stock.move.line | xpath | Inherits stock.stock_move_line_view_search |
stock_picking_batch.report_picking_batch |
stock_picking_batch.report_picking_batch | ir.ui.view | qweb | New |
stock_picking_batch_filter |
stock.picking.batch.filter | stock.picking.batch | search | New |
stock_picking_batch_form |
stock.picking.batch.form | stock.picking.batch | form | New |
stock_picking_batch_kanban |
stock.picking.batch.kanban | stock.picking.batch | kanban | New |
stock_picking_batch_tree |
stock.picking.batch.tree | stock.picking.batch | tree | New |
stock_picking_form_inherit |
stock.picking.form.inherit | stock.picking | div | Inherits stock.view_picking_form |
stock_picking_to_batch_form |
stock.picking.to.batch.form | stock.picking.to.batch | form | New |
stock_picking_type_kanban_batch |
picking.type.kanban.batch | stock.picking.type | xpath | Inherits stock.stock_picking_type_kanban |
stock_picking_wave_kanban |
stock.picking.wave.kanban | stock.picking.batch | xpath | Inherits stock_picking_batch.stock_picking_batch_kanban |
stock_picking_wave_tree |
stock.picking.wave.tree | stock.picking.batch | xpath | Inherits stock_picking_batch.stock_picking_batch_tree |
view_move_line_tree |
stock_picking_batch.move.line.tree | stock.move.line | tree | New |
view_move_line_tree_detailed_wave |
stock_picking_wave.move.line.tree.wave | stock.move.line | xpath | Inherits stock.view_move_line_tree_detailed |
view_move_line_tree_inherit_stock_picking_batch |
stock.move.line.tree.stock_picking_batch | stock.move.line | xpath | Inherits stock.view_move_line_tree |
view_picking_form_inherited |
stock_picking_batch.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_picking_internal_search_inherit |
stock.picking.internal.search.inherit | stock.picking | filter | Inherits stock.view_picking_internal_search |
view_picking_internal_search_inherit_stock_picking_batch |
stock.picking.search | stock.picking | xpath | Inherits stock.view_picking_internal_search |
view_picking_move_tree_inherited |
stock_picking_batch.picking.move.tree | stock.move | xpath | Inherits stock.view_picking_move_tree |
view_picking_type_form_inherit |
stock.picking.type.form.inherit | stock.picking.type | xpath | Inherits stock.view_picking_type_form |
vpicktree_inherit_stock_picking_batch |
stock.picking.tree | stock.picking | xpath | Inherits stock.vpicktree |
line_ids
Many2many → stock.move.line
mode
Selection
default='existing'
args: [('existing', 'an existing wave transfer'), ('new', 'a new wave transfer')]
picking_ids
Many2many → stock.picking
user_id
Many2one → res.users
string='Responsible'
args: 'res.users'
wave_id
Many2one → stock.picking.batch
domain="[('is_wave', '=', True), ('state', 'in', ('draft', 'in_progress'))]"
string='Wave Transfer'
args: 'stock.picking.batch'
attach_pickings(self)
default_get(self, fields_list)
No new fields.
Public methods (1)write(self, vals)
batch_id
Many2one
related='picking_id.batch_id'
store=True
action_open_add_to_wave(self)
No new fields.
Public methods (1)action_done(self)
batch_id
Many2one → stock.picking.batch
check_company=True
copy=False
help='Batch associated to this transfer'
index=True
string='Batch Transfer'
args: 'stock.picking.batch'
action_add_operations(self)
action_cancel(self)
action_confirm(self)
action_view_batch(self)
assign_batch_user(self, user_id)
button_validate(self)
create(self, vals_list)
write(self, vals)
allowed_picking_ids
One2many → stock.picking
compute='_compute_allowed_picking_ids'
args: 'stock.picking'
company_id
Many2one → res.company
default=<expr>
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
is_wave
Boolean
move_ids
One2many → stock.move
compute='_compute_move_ids'
string='Stock moves'
args: 'stock.move'
move_line_ids
One2many → stock.move.line
compute='_compute_move_line_ids'
inverse='_set_move_line_ids'
search='_search_move_line_ids'
string='Stock move lines'
args: 'stock.move.line'
name
Char
copy=False
default='New'
readonly=True
required=True
string='Batch Transfer'
picking_ids
One2many → stock.picking
check_company=True
domain="[('id', 'in', allowed_picking_ids)]"
help='List of transfers associated to this batch'
string='Transfers'
args: 'stock.picking', 'batch_id'
picking_type_code
Selection
related='picking_type_id.code'
picking_type_id
Many2one → stock.picking.type
check_company=True
copy=False
index=True
args: 'stock.picking.type', 'Operation Type'
scheduled_date
Datetime
compute='_compute_scheduled_date'
copy=False
help='Scheduled date for the transfers to be processed.\n - If manually set then scheduled date for all transfers in batch will automatically update to this date.\n - If not manually changed and transfers are added/removed/updated then this will be their earliest scheduled date\n but this scheduled date will not be set for all transfers in batch.'
readonly=False
store=True
args: 'Scheduled Date'
show_allocation
Boolean
compute='_compute_show_allocation'
string='Show Allocation Button'
show_check_availability
Boolean
compute='_compute_move_ids'
string='Show Check Availability'
show_clear_qty_button
Boolean
compute='_compute_show_qty_button'
show_lots_text
Boolean
compute='_compute_show_lots_text'
show_set_qty_button
Boolean
compute='_compute_show_qty_button'
state
Selection
compute='_compute_state'
copy=False
default='draft'
index=True
readonly=True
required=True
store=True
tracking=True
args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('done', 'Done'), ('cancel', 'Cancelled')]
user_id
Many2one → res.users
check_company=True
string='Responsible'
tracking=True
args: 'res.users'
action_assign(self)
action_cancel(self)
action_confirm(self)
action_done(self)
action_open_label_layout(self)
action_print(self)
action_put_in_pack(self)
action_view_reception_report(self)
create(self, vals_list)
onchange_scheduled_date(self)
write(self, vals)
batch_id
Many2one → stock.picking.batch
domain="[('is_wave', '=', False), ('state', 'in', ('draft', 'in_progress'))]"
string='Batch Transfer'
args: 'stock.picking.batch'
is_create_draft
Boolean
help='When checked, create the batch in draft status'
string='Draft'
mode
Selection
default='new'
args: [('existing', 'an existing batch transfer'), ('new', 'a new batch transfer')]
user_id
Many2one → res.users
string='Responsible'
args: 'res.users'
attach_pickings(self)
auto_batch
Boolean
help='Automatically put pickings into batches as they are confirmed when possible.'
args: 'Automatic Batches'
batch_auto_confirm
Boolean
default=True
args: 'Auto-confirm'
batch_group_by_dest_loc
Boolean
help='Automatically group batches by their destination location.'
args: 'Destination Location'
batch_group_by_destination
Boolean
help='Automatically group batches by destination country.'
args: 'Destination Country'
batch_group_by_partner
Boolean
help='Automatically group batches by contacts.'
args: 'Contact'
batch_group_by_src_loc
Boolean
help='Automatically group batches by their source location.'
args: 'Source Location'
batch_max_lines
Integer
help="A transfer will not be automatically added to batches that will exceed this number of lines if the transfer is added to it.\nLeave this value as '0' if no line limit."
args: 'Maximum lines per batch'
batch_max_pickings
Integer
help="A transfer will not be automatically added to batches that will exceed this number of transfers.\nLeave this value as '0' if no transfer limit."
args: 'Maximum transfers per batch'
count_picking_batch
Integer
compute='_compute_picking_count'
count_picking_wave
Integer
compute='_compute_picking_count'
get_action_picking_tree_batch(self)
get_action_picking_tree_wave(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/16.0/stock_picking_batch |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Inventory/Inventory |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Denis Ledoux, Yannick Tivisse, Arnold Moyaux, Romeo Fragomeli, Victor Feyens, William Henrotin, svs-odoo, Adrien Widart, Touati Djamel (otd), Tiffany Chang (tic), Rémy Voet (ryv), roen-odoo, Bruno-brsy, william-andre, yhu-odoo, Walid HANNICHE (waha), Iryna Vyshnevska, Louis Wicket (wil), Walid, Adrien Widart (awt), clesgow, Djamel Touati, Paweł Fertyk, Ahmed Khalaf (ahkh), Mahdi Cheikh Rouhou (macr), boan-odoo, debu-odoo, Martin Trigaux (mat), Quang Nguyen |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:46 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - 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 adds the batch transfer option in warehouse management
==================================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_add_to_wave_form |
stock.add.to.wave.form | stock.add.to.wave | form | New |
stock_move_line_view_search_inherit_stock_picking_batch |
stock.move.line.search.stock_picking_batch | stock.move.line | xpath | Inherits stock.stock_move_line_view_search |
stock_picking_batch.report_picking_batch |
stock_picking_batch.report_picking_batch | ir.ui.view | qweb | New |
stock_picking_batch_filter |
stock.picking.batch.filter | stock.picking.batch | search | New |
stock_picking_batch_form |
stock.picking.batch.form | stock.picking.batch | form | New |
stock_picking_batch_kanban |
stock.picking.batch.kanban | stock.picking.batch | kanban | New |
stock_picking_batch_tree |
stock.picking.batch.tree | stock.picking.batch | tree | New |
stock_picking_form_inherit |
stock.picking.form.inherit | stock.picking | div | Inherits stock.view_picking_form |
stock_picking_to_batch_form |
stock.picking.to.batch.form | stock.picking.to.batch | form | New |
stock_picking_type_kanban_batch |
picking.type.kanban.batch | stock.picking.type | xpath | Inherits stock.stock_picking_type_kanban |
stock_picking_wave_kanban |
stock.picking.wave.kanban | stock.picking.batch | xpath | Inherits stock_picking_batch.stock_picking_batch_kanban |
stock_picking_wave_tree |
stock.picking.wave.tree | stock.picking.batch | xpath | Inherits stock_picking_batch.stock_picking_batch_tree |
view_move_line_tree |
stock_picking_batch.move.line.tree | stock.move.line | tree | New |
view_move_line_tree_detailed_wave |
stock_picking_wave.move.line.tree.wave | stock.move.line | xpath | Inherits stock.view_move_line_tree_detailed |
view_move_line_tree_inherit_stock_picking_batch |
stock.move.line.tree.stock_picking_batch | stock.move.line | xpath | Inherits stock.view_move_line_tree |
view_picking_form_inherited |
stock_picking_batch.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_picking_internal_search_inherit |
stock.picking.internal.search.inherit | stock.picking | filter | Inherits stock.view_picking_internal_search |
view_picking_internal_search_inherit_stock_picking_batch |
stock.picking.search | stock.picking | xpath | Inherits stock.view_picking_internal_search |
view_picking_move_tree_inherited |
stock_picking_batch.picking.move.tree | stock.move | xpath | Inherits stock.view_picking_move_tree |
view_picking_tree_batch |
stock_picking_batch.picking.tree.batch | stock.picking | tree | New |
view_picking_type_form_inherit |
stock.picking.type.form.inherit | stock.picking.type | xpath | Inherits stock.view_picking_type_form |
vpicktree_inherit_stock_picking_batch |
stock.picking.tree | stock.picking | xpath | Inherits stock.vpicktree |
line_ids
Many2many → stock.move.line
mode
Selection
default='existing'
args: [('existing', 'an existing wave transfer'), ('new', 'a new wave transfer')]
picking_ids
Many2many → stock.picking
user_id
Many2one → res.users
string='Responsible'
args: 'res.users'
wave_id
Many2one → stock.picking.batch
domain="[('is_wave', '=', True), ('state', 'in', ('draft', 'in_progress'))]"
string='Wave Transfer'
args: 'stock.picking.batch'
attach_pickings(self)
default_get(self, fields_list)
No new fields.
Public methods (0)No public methods.
batch_id
Many2one
related='picking_id.batch_id'
store=True
action_open_add_to_wave(self)
No new fields.
Public methods (1)action_done(self)
batch_id
Many2one → stock.picking.batch
check_company=True
copy=False
help='Batch associated to this transfer'
index=True
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Batch Transfer'
args: 'stock.picking.batch'
action_add_operations(self)
action_cancel(self)
action_confirm(self)
action_view_batch(self)
assign_batch_user(self, user_id)
button_validate(self)
create(self, vals_list)
write(self, vals)
allowed_picking_ids
One2many → stock.picking
compute='_compute_allowed_picking_ids'
args: 'stock.picking'
company_id
Many2one → res.company
default=<expr>
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
is_wave
Boolean
move_ids
One2many → stock.move
compute='_compute_move_ids'
string='Stock moves'
args: 'stock.move'
move_line_ids
One2many → stock.move.line
compute='_compute_move_ids'
inverse='_set_move_line_ids'
readonly=True
states={'draft': [('readonly', False)], 'in_progress': [('readonly', False)]}
string='Stock move lines'
args: 'stock.move.line'
name
Char
copy=False
default='New'
readonly=True
required=True
string='Batch Transfer'
picking_ids
One2many → stock.picking
check_company=True
domain="[('id', 'in', allowed_picking_ids)]"
help='List of transfers associated to this batch'
readonly=True
states={'draft': [('readonly', False)], 'in_progress': [('readonly', False)]}
string='Transfers'
args: 'stock.picking', 'batch_id'
picking_type_code
Selection
related='picking_type_id.code'
picking_type_id
Many2one → stock.picking.type
check_company=True
copy=False
index=True
readonly=True
states={'draft': [('readonly', False)]}
args: 'stock.picking.type', 'Operation Type'
scheduled_date
Datetime
compute='_compute_scheduled_date'
copy=False
help='Scheduled date for the transfers to be processed.\n - If manually set then scheduled date for all transfers in batch will automatically update to this date.\n - If not manually changed and transfers are added/removed/updated then this will be their earliest scheduled date\n but this scheduled date will not be set for all transfers in batch.'
readonly=False
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
store=True
args: 'Scheduled Date'
show_allocation
Boolean
compute='_compute_show_allocation'
string='Show Allocation Button'
show_check_availability
Boolean
compute='_compute_move_ids'
string='Show Check Availability'
show_clear_qty_button
Boolean
compute='_compute_show_qty_button'
show_lots_text
Boolean
compute='_compute_show_lots_text'
show_set_qty_button
Boolean
compute='_compute_show_qty_button'
show_validate
Boolean
compute='_compute_show_validate'
string='Show Validate Button'
state
Selection
compute='_compute_state'
copy=False
default='draft'
index=True
readonly=True
required=True
store=True
tracking=True
args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('done', 'Done'), ('cancel', 'Cancelled')]
user_id
Many2one → res.users
check_company=True
readonly=True
states={'draft': [('readonly', False)], 'in_progress': [('readonly', False)]}
string='Responsible'
tracking=True
args: 'res.users'
action_assign(self)
action_cancel(self)
action_clear_quantities_to_zero(self)
action_confirm(self)
action_done(self)
action_open_label_layout(self)
action_print(self)
action_put_in_pack(self)
action_set_quantities_to_reservation(self)
action_view_reception_report(self)
create(self, vals_list)
onchange(self, values, field_name, field_onchange)
onchange_scheduled_date(self)
write(self, vals)
batch_id
Many2one → stock.picking.batch
domain="[('is_wave', '=', False), ('state', 'in', ('draft', 'in_progress'))]"
string='Batch Transfer'
args: 'stock.picking.batch'
is_create_draft
Boolean
help='When checked, create the batch in draft status'
string='Draft'
mode
Selection
default='new'
args: [('existing', 'an existing batch transfer'), ('new', 'a new batch transfer')]
user_id
Many2one → res.users
string='Responsible'
args: 'res.users'
attach_pickings(self)
auto_batch
Boolean
help='Automatically put pickings into batches as they are confirmed when possible.'
args: 'Automatic Batches'
batch_auto_confirm
Boolean
default=True
args: 'Auto-confirm'
batch_group_by_dest_loc
Boolean
help='Automatically group batches by their destination location.'
args: 'Destination Location'
batch_group_by_destination
Boolean
help='Automatically group batches by destination country.'
args: 'Destination Country'
batch_group_by_partner
Boolean
help='Automatically group batches by contacts.'
args: 'Contact'
batch_group_by_src_loc
Boolean
help='Automatically group batches by their source location.'
args: 'Source Location'
batch_max_lines
Integer
help="A transfer will not be automatically added to batches that will exceed this number of lines if the transfer is added to it.\nLeave this value as '0' if no line limit."
args: 'Maximum lines per batch'
batch_max_pickings
Integer
help="A transfer will not be automatically added to batches that will exceed this number of transfers.\nLeave this value as '0' if no transfer limit."
args: 'Maximum transfers per batch'
count_picking_batch
Integer
compute='_compute_picking_count'
count_picking_wave
Integer
compute='_compute_picking_count'
get_action_picking_tree_batch(self)
get_action_picking_tree_wave(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/15.0/stock_picking_batch |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Inventory/Inventory |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Yannick Tivisse, Christophe Monniez, Arnold Moyaux, Xavier-Do, William Henrotin, svs-odoo, Adrien Widart, Touati Djamel (otd), Tiffany Chang (tic), Kevin Baptiste, roen-odoo, Bruno-brsy, william-andre, JF Aubert, yhu-odoo, Walid HANNICHE (waha), Iryna Vyshnevska, Walid, Djamel Touati, Paweł Fertyk, Ahmed Khalaf (ahkh) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:25:25 |
| 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 |
This module adds the batch transfer option in warehouse management
==================================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_add_to_wave_form |
stock.add.to.wave.form | stock.add.to.wave | form | New |
stock_picking_batch.report_picking_batch |
stock_picking_batch.report_picking_batch | ir.ui.view | qweb | New |
stock_picking_batch_filter |
stock.picking.batch.filter | stock.picking.batch | search | New |
stock_picking_batch_form |
stock.picking.batch.form | stock.picking.batch | form | New |
stock_picking_batch_kanban |
stock.picking.batch.kanban | stock.picking.batch | kanban | New |
stock_picking_batch_tree |
stock.picking.batch.tree | stock.picking.batch | tree | New |
stock_picking_to_batch_form |
stock.picking.to.batch.form | stock.picking.to.batch | form | New |
stock_picking_type_kanban_batch |
picking.type.kanban.batch | stock.picking.type | xpath | Inherits stock.stock_picking_type_kanban |
stock_picking_wave_kanban |
stock.picking.wave.kanban | stock.picking.batch | xpath | Inherits stock_picking_batch.stock_picking_batch_kanban |
stock_picking_wave_tree |
stock.picking.wave.tree | stock.picking.batch | xpath | Inherits stock_picking_batch.stock_picking_batch_tree |
view_move_line_tree |
stock_picking_batch.move.line.tree | stock.move.line | tree | New |
view_move_line_tree_detailed_wave |
stock_picking_wave.move.line.tree.wave | stock.move.line | xpath | Inherits stock.view_move_line_tree_detailed |
view_picking_form_inherited |
stock_picking_batch.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_picking_internal_search_inherit_stock_picking_batch |
stock.picking.search | stock.picking | xpath | Inherits stock.view_picking_internal_search |
view_picking_move_tree_inherited |
stock_picking_batch.picking.move.tree | stock.move | xpath | Inherits stock.view_picking_move_tree |
view_picking_tree_batch |
stock_picking_batch.picking.tree.batch | stock.picking | tree | New |
vpicktree_inherit_stock_picking_batch |
stock.picking.tree | stock.picking | xpath | Inherits stock.vpicktree |
line_ids
Many2many → stock.move.line
mode
Selection
default='existing'
args: [('existing', 'an existing wave transfer'), ('new', 'a new wave transfer')]
picking_ids
Many2many → stock.picking
user_id
Many2one → res.users
help='Person responsible for this wave transfer'
string='Responsible'
args: 'res.users'
wave_id
Many2one → stock.picking.batch
domain="[('is_wave', '=', True), ('state', '!=', 'done')]"
string='Wave Transfer'
args: 'stock.picking.batch'
attach_pickings(self)
default_get(self, fields_list)
No new fields.
Public methods (2)process(self)
process_cancel_backorder(self)
No new fields.
Public methods (0)No public methods.
batch_id
Many2one
related='picking_id.batch_id'
action_open_add_to_wave(self)
No new fields.
Public methods (1)action_done(self)
batch_id
Many2one → stock.picking.batch
check_company=True
copy=False
help='Batch associated to this transfer'
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Batch Transfer'
args: 'stock.picking.batch'
action_add_operations(self)
create(self, vals)
write(self, vals)
allowed_picking_ids
One2many → stock.picking
compute='_compute_allowed_picking_ids'
args: 'stock.picking'
company_id
Many2one → res.company
default=<expr>
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
is_wave
Boolean
move_ids
One2many → stock.move
compute='_compute_move_ids'
string='Stock moves'
args: 'stock.move'
move_line_ids
One2many → stock.move.line
compute='_compute_move_ids'
inverse='_set_move_line_ids'
readonly=True
states={'draft': [('readonly', False)], 'in_progress': [('readonly', False)]}
string='Stock move lines'
args: 'stock.move.line'
name
Char
copy=False
default='New'
help='Name of the batch transfer'
readonly=True
required=True
string='Batch Transfer'
picking_ids
One2many → stock.picking
check_company=True
domain="[('id', 'in', allowed_picking_ids)]"
help='List of transfers associated to this batch'
readonly=True
states={'draft': [('readonly', False)], 'in_progress': [('readonly', False)]}
string='Transfers'
args: 'stock.picking', 'batch_id'
picking_type_code
Selection
related='picking_type_id.code'
picking_type_id
Many2one → stock.picking.type
check_company=True
copy=False
readonly=True
states={'draft': [('readonly', False)]}
args: 'stock.picking.type', 'Operation Type'
scheduled_date
Datetime
compute='_compute_scheduled_date'
copy=False
help='Scheduled date for the transfers to be processed.\n - If manually set then scheduled date for all transfers in batch will automatically update to this date.\n - If not manually changed and transfers are added/removed/updated then this will be their earliest scheduled date\n but this scheduled date will not be set for all transfers in batch.'
readonly=False
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
store=True
args: 'Scheduled Date'
show_allocation
Boolean
compute='_compute_show_allocation'
help='Technical Field used to decide whether the button "Allocation" should be displayed.'
show_check_availability
Boolean
compute='_compute_move_ids'
help='Technical field used to compute whether the check availability button should be shown.'
show_lots_text
Boolean
compute='_compute_show_lots_text'
show_validate
Boolean
compute='_compute_show_validate'
help='Technical field used to decide whether the validate button should be shown.'
state
Selection
compute='_compute_state'
copy=False
default='draft'
readonly=True
required=True
store=True
tracking=True
args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('done', 'Done'), ('cancel', 'Cancelled')]
user_id
Many2one → res.users
check_company=True
help='Person responsible for this batch transfer'
readonly=True
states={'draft': [('readonly', False)], 'in_progress': [('readonly', False)]}
string='Responsible'
tracking=True
args: 'res.users'
action_assign(self)
action_cancel(self)
action_confirm(self)
action_done(self)
action_open_label_layout(self)
action_print(self)
action_put_in_pack(self)
action_set_quantities_to_reservation(self)
action_view_reception_report(self)
create(self, vals)
onchange(self, values, field_name, field_onchange)
onchange_scheduled_date(self)
write(self, vals)
batch_id
Many2one → stock.picking.batch
domain="[('state', '=', 'draft')]"
string='Batch Transfer'
args: 'stock.picking.batch'
mode
Selection
default='existing'
args: [('existing', 'an existing batch transfer'), ('new', 'a new batch transfer')]
user_id
Many2one → res.users
help='Person responsible for this batch transfer'
string='Responsible'
args: 'res.users'
attach_pickings(self)
count_picking_batch
Integer
compute='_compute_picking_count'
count_picking_wave
Integer
compute='_compute_picking_count'
get_action_picking_tree_batch(self)
get_action_picking_tree_wave(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/14.0/stock_picking_batch |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Inventory/Inventory |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Xavier Morel, Simon Lejeune, Nicolas Martinelli, Aaron Bohy, Barad Mahendra, Yannick Tivisse, Xavier-Do, Victor Feyens, Sébastien Theys, svs-odoo, Adrien Widart, Touati Djamel (otd), Tiffany Chang (tic), Rémy Voet (ryv), Pratima Gupta, roen-odoo, yhu-odoo, Iryna Vyshnevska |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:14:27 |
| 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 |
This module adds the batch transfer option in warehouse management
==================================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_picking_batch.report_picking_batch |
stock_picking_batch.report_picking_batch | ir.ui.view | qweb | New |
stock_picking_batch_filter |
stock.picking.batch.filter | stock.picking.batch | search | New |
stock_picking_batch_form |
stock.picking.batch.form | stock.picking.batch | form | New |
stock_picking_batch_kanban |
stock.picking.batch.kanban | stock.picking.batch | kanban | New |
stock_picking_batch_tree |
stock.picking.batch.tree | stock.picking.batch | tree | New |
stock_picking_to_batch_form |
stock.picking.to.batch.form | stock.picking.to.batch | form | New |
view_move_line_tree |
stock_picking_batch.move.line.tree | stock.move.line | tree | New |
view_picking_form_inherited |
stock_picking_batch.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_picking_internal_search_inherit_stock_picking_batch |
stock.picking.search | stock.picking | xpath | Inherits stock.view_picking_internal_search |
view_picking_move_tree_inherited |
stock_picking_batch.picking.move.tree | stock.move | xpath | Inherits stock.view_picking_move_tree |
vpicktree_inherit_stock_picking_batch |
stock.picking.tree | stock.picking | xpath | Inherits stock.vpicktree |
No new fields.
Public methods (2)process(self)
process_cancel_backorder(self)
No new fields.
Public methods (1)action_done(self)
batch_id
Many2one → stock.picking.batch
check_company=True
copy=False
help='Batch associated to this transfer'
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Batch Transfer'
args: 'stock.picking.batch'
create(self, vals)
write(self, vals)
allowed_picking_ids
One2many → stock.picking
compute='_compute_allowed_picking_ids'
args: 'stock.picking'
company_id
Many2one → res.company
default=<expr>
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
move_ids
One2many → stock.move
compute='_compute_move_ids'
string='Stock moves'
args: 'stock.move'
move_line_ids
One2many → stock.move.line
compute='_compute_move_ids'
inverse='_set_move_line_ids'
readonly=True
states={'draft': [('readonly', False)], 'in_progress': [('readonly', False)]}
string='Stock move lines'
args: 'stock.move.line'
name
Char
copy=False
default='New'
help='Name of the batch transfer'
readonly=True
required=True
string='Batch Transfer'
picking_ids
One2many → stock.picking
check_company=True
domain="[('id', 'in', allowed_picking_ids)]"
help='List of transfers associated to this batch'
readonly=True
states={'draft': [('readonly', False)], 'in_progress': [('readonly', False)]}
string='Transfers'
args: 'stock.picking', 'batch_id'
picking_type_id
Many2one → stock.picking.type
check_company=True
copy=False
readonly=True
states={'draft': [('readonly', False)]}
args: 'stock.picking.type', 'Operation Type'
scheduled_date
Datetime
compute='_compute_scheduled_date'
copy=False
help='Scheduled date for the transfers to be processed.\n - If manually set then scheduled date for all transfers in batch will automatically update to this date.\n - If not manually changed and transfers are added/removed/updated then this will be their earliest scheduled date\n but this scheduled date will not be set for all transfers in batch.'
readonly=False
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
store=True
args: 'Scheduled Date'
show_check_availability
Boolean
compute='_compute_move_ids'
help='Technical field used to compute whether the check availability button should be shown.'
state
Selection
compute='_compute_state'
copy=False
default='draft'
readonly=True
required=True
store=True
tracking=True
args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('done', 'Done'), ('cancel', 'Cancelled')]
user_id
Many2one → res.users
check_company=True
help='Person responsible for this batch transfer'
readonly=True
states={'draft': [('readonly', False)], 'in_progress': [('readonly', False)]}
string='Responsible'
tracking=True
args: 'res.users'
action_assign(self)
action_cancel(self)
action_confirm(self)
action_done(self)
action_print(self)
action_put_in_pack(self)
create(self, vals)
onchange(self, values, field_name, field_onchange)
onchange_scheduled_date(self)
unlink(self)
write(self, vals)
batch_id
Many2one → stock.picking.batch
domain="[('state', '=', 'draft')]"
string='Batch Transfer'
args: 'stock.picking.batch'
mode
Selection
default='existing'
args: [('existing', 'an existing batch transfer'), ('new', 'a new batch transfer')]
user_id
Many2one → res.users
help='Person responsible for this batch transfer'
string='Responsible'
args: 'res.users'
attach_pickings(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/13.0/stock_picking_batch |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Operations/Inventory |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Xavier Morel, Simon Lejeune, Nicolas Martinelli, Damien Bouvy, Yannick Tivisse, Martin Geubelle, Nans Lefebvre, Alexandre Kühn, Adrian Torres, XavierDo, Xavier-Do, William Henrotin, Sébastien Theys, svs-odoo, Adrien Widart, Prakash Prajapati, Nicolas Galler, Arnaud Baes, roen-odoo |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:06:41 |
| 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 |
This module adds the batch transfer option in warehouse management
==================================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_picking_batch.report_picking_batch |
stock_picking_batch.report_picking_batch | ir.ui.view | qweb | New |
stock_picking_batch_filter |
stock.picking.batch.filter | stock.picking.batch | search | New |
stock_picking_batch_form |
stock.picking.batch.form | stock.picking.batch | form | New |
stock_picking_batch_kanban |
stock.picking.batch.kanban | stock.picking.batch | kanban | New |
stock_picking_batch_tree |
stock.picking.batch.tree | stock.picking.batch | tree | New |
stock_picking_to_batch_form |
stock.picking.to.batch.form | stock.picking.to.batch | form | New |
view_picking_internal_search_inherit_stock_picking_batch |
stock.picking.search | stock.picking | xpath | Inherits stock.view_picking_internal_search |
vpicktree_inherit_stock_picking_batch |
stock.picking.tree | stock.picking | xpath | Inherits stock.vpicktree |
No new fields.
Public methods (2)process(self)
process_cancel_backorder(self)
pick_to_backorder_ids
Many2many → stock.picking
help='Picking to backorder'
args: 'stock.picking'
process(self)
batch_id
Many2one → stock.picking.batch
check_company=True
copy=False
help='Batch associated to this transfer'
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Batch Transfer'
args: 'stock.picking.batch'
No public methods.
company_id
Many2one → res.company
default=<expr>
index=True
readonly=True
required=True
string='Company'
args: 'res.company'
name
Char
copy=False
default='New'
help='Name of the batch transfer'
readonly=True
required=True
string='Batch Transfer'
picking_ids
One2many → stock.picking
domain="[('company_id', '=', company_id), ('state', 'not in', ('done', 'cancel'))]"
help='List of transfers associated to this batch'
string='Transfers'
args: 'stock.picking', 'batch_id'
state
Selection
copy=False
default='draft'
readonly=True
required=True
tracking=True
args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('done', 'Done'), ('cancel', 'Cancelled')]
user_id
Many2one → res.users
check_company=True
help='Person responsible for this batch transfer'
string='Responsible'
tracking=True
args: 'res.users'
cancel_picking(self)
confirm_picking(self)
create(self, vals)
done(self)
print_picking(self)
batch_id
Many2one → stock.picking.batch
string='Batch Transfer'
args: 'stock.picking.batch'
attach_pickings(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/12.0/stock_picking_batch |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Warehouse |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Christophe Simonis, Goffin Simon, Nicolas Martinelli, GitHub, Yannick Tivisse, Alexandre Kühn, qsm-odoo, Pierre Masereel, RomainLibert, Arnold Moyaux, XavierDo, Xavier-Do, Andrea Grazioso (agr-odoo) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:57:00 |
| 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 |
This module adds the batch picking option in warehouse management
=================================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_picking_batch.report_picking_batch |
stock_picking_batch.report_picking_batch | ir.ui.view | qweb | New |
stock_picking_batch_filter |
stock.picking.batch.filter | stock.picking.batch | search | New |
stock_picking_batch_form |
stock.picking.batch.form | stock.picking.batch | form | New |
stock_picking_batch_kanban |
stock.picking.batch.kanban | stock.picking.batch | kanban | New |
stock_picking_batch_tree |
stock.picking.batch.tree | stock.picking.batch | tree | New |
stock_picking_to_batch_form |
stock.picking.to.batch.form | stock.picking.to.batch | form | New |
view_picking_internal_search_inherit_stock_picking_batch |
stock.picking.search | stock.picking | xpath | Inherits stock.view_picking_internal_search |
vpicktree_inherit_stock_picking_batch |
stock.picking.tree | stock.picking | xpath | Inherits stock.vpicktree |
pick_to_backorder_ids
Many2many → stock.picking
help='Picking to backorder'
args: 'stock.picking'
process(self)
batch_id
Many2one → stock.picking.batch
copy=False
help='Batch associated to this picking'
oldname='wave_id'
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Batch Picking'
args: 'stock.picking.batch'
No public methods.
name
Char
copy=False
default='New'
help='Name of the batch picking'
required=True
string='Batch Picking Name'
picking_ids
One2many → stock.picking
help='List of picking associated to this batch'
string='Pickings'
args: 'stock.picking', 'batch_id'
state
Selection
copy=False
default='draft'
required=True
track_visibility='onchange'
args: [('draft', 'Draft'), ('in_progress', 'Running'), ('done', 'Done'), ('cancel', 'Cancelled')]
user_id
Many2one → res.users
help='Person responsible for this batch picking'
string='Responsible'
track_visibility='onchange'
args: 'res.users'
cancel_picking(self)
confirm_picking(self)
create(self, vals)
done(self)
print_picking(self)
batch_id
Many2one → stock.picking.batch
oldname='wave_id'
string='Batch Picking'
args: 'stock.picking.batch'
attach_pickings(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/11.0/stock_picking_batch |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Warehouse |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Christophe Simonis, Joren Van Onder, Simon Lejeune, Nicolas Martinelli, Wolfgang Taferner, qsm-odoo, Martin Geubelle, Odoo Online, amoyaux |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/warehouse |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:53:42 |
| 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 |
This module adds the batch picking option in warehouse management
=================================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_picking_batch_filter |
stock.picking.batch.filter | stock.picking.batch | search | New |
stock_picking_batch_form |
stock.picking.batch.form | stock.picking.batch | form | New |
stock_picking_batch_kanban |
stock.picking.batch.kanban | stock.picking.batch | kanban | New |
stock_picking_batch_tree |
stock.picking.batch.tree | stock.picking.batch | tree | New |
stock_picking_to_batch_form |
stock.picking.to.batch.form | stock.picking.to.batch | form | New |
view_picking_internal_search_inherit_stock_picking_batch |
stock.picking.search | stock.picking | xpath | Inherits stock.view_picking_internal_search |
vpicktree_inherit_stock_picking_batch |
stock.picking.tree | stock.picking | xpath | Inherits stock.vpicktree |
pick_to_backorder_ids
Many2many → stock.picking
help='Picking to backorder'
args: 'stock.picking'
process(self)
batch_id
Many2one → stock.picking.batch
copy=False
help='Batch associated to this picking'
oldname='wave_id'
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Batch Picking'
args: 'stock.picking.batch'
No public methods.
name
Char
copy=False
default='New'
help='Name of the batch picking'
required=True
string='Batch Picking Name'
picking_ids
One2many → stock.picking
help='List of picking associated to this batch'
string='Pickings'
args: 'stock.picking', 'batch_id'
state
Selection
copy=False
default='draft'
required=True
track_visibility='onchange'
args: [('draft', 'Draft'), ('in_progress', 'Running'), ('done', 'Done'), ('cancel', 'Cancelled')]
user_id
Many2one → res.users
help='Person responsible for this batch picking'
string='Responsible'
track_visibility='onchange'
args: 'res.users'
cancel_picking(self)
confirm_picking(self)
create(self, vals)
done(self)
print_picking(self)
batch_id
Many2one → stock.picking.batch
oldname='wave_id'
string='Batch Picking'
args: 'stock.picking.batch'
attach_pickings(self)