| 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_batch_picking |
| VERSION | |
| VERSION | 1.4.0 |
| CATEGORY | |
| CATEGORY | Inventory |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Camptocamp |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Camptocamp |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, OCA Transbot, Sergio Teruel, oca-travis, Weblate, OCA-git-bot, Isaac Gallart Bochons |
| 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: - delivery - sale_stock - sale_management - sale - sales_team - base - base_setup - web - bus - web_tour - account - product - decimal_precision - analytic - web_planner - portal - http_routing - account_invoicing - stock_account - stock - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_normal_form_view |
product.normal.form | product.product | field | Inherits product.product_normal_form_view |
report_batch_picking |
report_batch_picking | ir.ui.view | qweb | New |
stock_batch_picking_form |
stock.batch.picking.form | stock.batch.picking | form | New |
stock_batch_picking_search |
batch.picking.search | stock.batch.picking | search | New |
stock_batch_picking_tree |
stock.batch.picking.tree | stock.batch.picking | tree | New |
view_create_batch_picking |
batch_picking_create_form | stock.batch.picking.creator | form | New |
view_picking_form |
stock.picking.form.batch | stock.picking | field | Inherits stock.view_picking_form |
view_picking_internal_search |
stock.picking.search.batch_picking | stock.picking | field | Inherits stock.view_picking_internal_search |
view_warehouse |
stock.warehouse | field | Inherits stock.view_warehouse |
description_warehouse
Text
translate=True
args: 'Warehouse Description'
No public methods.
No new fields.
Public methods (8)get_report_values(self, docids, data=None)
key_level_0(self, operation)
key_level_1(self, operation)
new_level_0(self, operation)
new_level_1(self, operation)
sort_level_0(self, rec_list)
sort_level_1(self, rec_list)
update_level_1(self, group_dict, operation)
active_picking_ids
One2many → stock.picking
domain=[('state', 'not in', ('cancel', 'done'))]
readonly=True
args: 'stock.picking', 'batch_picking_id', 'Pickings'
date
Date
default=fields.Date.context_today
help='date on which the batch picking is to be processed'
index=True
readonly=True
required=True
states={'draft': [('readonly', False)], 'assigned': [('readonly', False)]}
args: 'Date'
entire_package_detail_ids
Many2many → stock.quant.package
comodel_name='stock.quant.package'
compute='_compute_entire_package_ids'
help='Those are the entire packages of a picking shown in the view of detailed operations'
entire_package_ids
Many2many → stock.quant.package
comodel_name='stock.quant.package'
compute='_compute_entire_package_ids'
help='Those are the entire packages of a picking shown in the view of operations'
move_line_ids
Many2many → stock.move.line
compute='_compute_move_line_ids'
inverse=<expr>
string='Related pack operations'
args: 'stock.move.line'
move_lines
Many2many → stock.move
compute='_compute_move_lines'
readonly=True
string='Related stock moves'
args: 'stock.move'
name
Char
copy=False
default=<expr>
index=True
required=True
states={'draft': [('readonly', False)]}
unique=True
args: 'Name'
notes
Text
help='free form remarks'
args: 'Notes'
picker_id
Many2one → res.users
help='the user to which the pickings are assigned'
index=True
readonly=True
states={'draft': [('readonly', False)], 'assigned': [('readonly', False)]}
args: 'res.users', 'Picker'
picking_ids
One2many → stock.picking
help='List of picking managed by this batch.'
readonly=True
states={'draft': [('readonly', False)]}
args: 'stock.picking', 'batch_picking_id', 'Pickings'
state
Selection
copy=False
default='draft'
help='the state of the batch picking. Workflow is draft -> assigned -> done or cancel'
index=True
readonly=True
string='State'
args: [('draft', 'Draft'), ('assigned', 'Available'), ('done', 'Done'), ('cancel', 'Cancelled')]
action_assign(self)
action_cancel(self)
action_transfer(self)
action_view_stock_picking(self)
get_not_empties(self)
remove_undone_pickings(self)
verify_state(self, expected_state=None)
batch_by_group
Boolean
string='Create batch pickings grouped by fields'
date
Date
default=fields.Date.context_today
help='Date on which the batch picking is to be processed'
index=True
required=True
args: 'Date'
group_field_ids
One2many → stock.batch.picking.creator.group.field
comodel_name='stock.batch.picking.creator.group.field'
help='If set any, multiple batch picking will be created, one per group field'
inverse_name='batch_picking_creator_id'
string='Group by field'
name
Char
default=<expr>
help='Name of the batch picking'
required=True
args: 'Name'
notes
Text
help='free form remarks'
args: 'Notes'
picker_id
Many2one → res.users
default=<expr>
help='The user to which the pickings are assigned'
string='Picker'
args: 'res.users'
action_create_batch(self)
action_view_batch_picking(self, batch_pickings)
create_multiple_batch(self, domain)
create_simple_batch(self, domain)
default_get(self, fields)
load_store_fields(self)
onchange_batch_by_group(self)
batch_picking_creator_id
Many2one → stock.batch.picking.creator
comodel_name='stock.batch.picking.creator'
ondelete='cascade'
required=True
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain=[('model', '=', 'stock.picking'), ('store', '=', True)]
required=True
string='Field to group'
sequence
Integer
help='Group by picking field'
No public methods.
batch_picking_id
Many2one → stock.batch.picking
comodel_name='stock.batch.picking'
copy=False
domain="[('state', '=', 'draft')]"
help='In which batch picking this picking will be processed.'
string='Batch'
action_assign(self)
action_cancel(self)
action_done(self)
force_transfer(self, force_qty=True)
default_picker_id
Many2one → res.users
help='the user to which the batch pickings are assigned by default'
index=True
args: 'res.users', 'Default Picker'
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/10.0/stock_batch_picking |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Inventory |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp |
| MAINTAINERS | |
| MAINTAINERS | Camptocamp |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza |
| WEBSITE | |
| WEBSITE | http://www.camptocamp.com/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - delivery - sale_stock - sale - sales_team - base - base_setup - web_kanban - web - bus - web_tour - account - product - decimal_precision - report - analytic - web_planner - procurement - stock_account - stock - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_normal_form_view |
product.normal.form | product.product | field | Inherits product.product_normal_form_view |
report_batch_picking |
report_batch_picking | ir.ui.view | qweb | New |
stock_batch_picking_form |
stock.batch.picking.form | stock.batch.picking | form | New |
stock_batch_picking_search |
batch.picking.search | stock.batch.picking | search | New |
stock_batch_picking_tree |
stock.batch.picking.tree | stock.batch.picking | tree | New |
view_create_batch_picking |
batch_picking_create_form | stock.batch.picking.creator | form | New |
view_picking_form |
stock.picking.form.batch | stock.picking | field | Inherits stock.view_picking_form |
view_picking_internal_search |
stock.picking.search.batch_picking | stock.picking | field | Inherits stock.view_picking_internal_search |
view_warehouse |
stock.warehouse | field | Inherits stock.view_warehouse | |
vpicktree |
stock.picking.tree | stock.picking | tree | New |
description_warehouse
Text
translate=True
args: 'Warehouse Description'
No public methods.
No new fields.
Public methods (0)No public methods.
active_picking_ids
One2many → stock.picking
domain=[('state', 'not in', ('cancel', 'done'))]
readonly=True
args: 'stock.picking', 'batch_picking_id', 'Pickings'
date
Date
default=fields.Date.context_today
help='date on which the batch picking is to be processed'
index=True
readonly=True
required=True
states={'draft': [('readonly', False)], 'assigned': [('readonly', False)]}
args: 'Date'
move_ids
One2many → stock.move
compute='_compute_move_ids'
readonly=True
string='Related stock moves'
args: 'stock.move'
name
Char
copy=False
default=<expr>
index=True
required=True
states={'draft': [('readonly', False)]}
unique=True
args: 'Name'
notes
Text
help='free form remarks'
args: 'Notes'
pack_operation_ids
One2many → stock.pack.operation
compute='_compute_pack_operation_ids'
readonly=True
string='Related pack operations'
args: 'stock.pack.operation'
pack_operation_pack_ids
One2many → stock.pack.operation
compute='_compute_pack_operation_pack_ids'
inverse=<expr>
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Related pack operations'
args: 'stock.pack.operation'
pack_operation_product_ids
One2many → stock.pack.operation
compute='_compute_pack_operation_product_ids'
inverse=<expr>
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Related pack operations'
args: 'stock.pack.operation'
picker_id
Many2one → res.users
help='the user to which the pickings are assigned'
index=True
readonly=True
states={'draft': [('readonly', False)], 'assigned': [('readonly', False)]}
args: 'res.users', 'Picker'
picking_ids
One2many → stock.picking
help='List of picking managed by this batch.'
readonly=True
states={'draft': [('readonly', False)]}
args: 'stock.picking', 'batch_picking_id', 'Pickings'
state
Selection
copy=False
default='draft'
help='the state of the batch picking. Workflow is draft -> assigned -> done or cancel'
index=True
readonly=True
string='State'
args: [('draft', 'Draft'), ('assigned', 'Available'), ('done', 'Done'), ('cancel', 'Cancelled')]
action_assign(self)
action_cancel(self)
action_transfer(self)
get_not_empties(self)
remove_undone_pickings(self)
verify_state(self, expected_state=None)
date
Date
default=fields.Date.context_today
help='Date on which the batch picking is to be processed'
required=True
select=True
args: 'Date'
name
Char
default=<expr>
help='Name of the batch picking'
required=True
args: 'Name'
notes
Text
help='free form remarks'
args: 'Notes'
picker_id
Many2one → res.users
default=<expr>
help='The user to which the pickings are assigned'
string='Picker'
args: 'res.users'
action_create_batch(self)
batch_picking_id
Many2one → stock.batch.picking
comodel_name='stock.batch.picking'
copy=False
domain="[('state', '=', 'draft')]"
help='In which batch picking this picking will be processed.'
string='Batch'
action_assign(self)
action_cancel(self)
do_transfer(self)
force_transfer(self, force_qty=True)
default_picker_id
Many2one → res.users
help='the user to which the batch pickings are assigned by default'
index=True
args: 'res.users', 'Default Picker'
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/9.0/stock_batch_picking |
| VERSION | |
| VERSION | 1.0.3 |
| CATEGORY | |
| CATEGORY | Inventory |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp |
| MAINTAINERS | |
| MAINTAINERS | Camptocamp |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, sebalix, Carlos Dauden, OCA Transbot, mdietrichc2c, oca-travis, Weblate, OCA-git-bot, Cyril Gaudin, mpanarin, Iryna Vyshnevska |
| WEBSITE | |
| WEBSITE | http://www.camptocamp.com/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:15:22 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - delivery - sale_stock - sale - sales_team - base - base_setup - web_kanban - web - bus - account - product - decimal_precision - report - analytic - web_tip - web_planner - procurement - stock_account - stock - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_normal_form_view |
product.normal.form | product.product | field | Inherits product.product_normal_form_view |
report_batch_picking |
report_batch_picking | ir.ui.view | qweb | New |
stock_batch_picking_form |
stock.batch.picking.form | stock.batch.picking | form | New |
stock_batch_picking_search |
batch.picking.search | stock.batch.picking | search | New |
stock_batch_picking_tree |
stock.batch.picking.tree | stock.batch.picking | tree | New |
view_create_batch_picking |
batch_picking_create_form | stock.batch.picking.creator | form | New |
view_picking_form |
stock.picking.form.batch | stock.picking | field | Inherits stock.view_picking_form |
view_picking_internal_search |
stock.picking.search.batch_picking | stock.picking | field | Inherits stock.view_picking_internal_search |
view_warehouse |
stock.warehouse | field | Inherits stock.view_warehouse |
description_warehouse
Text
translate=True
args: 'Warehouse Description'
No public methods.
No new fields.
Public methods (0)No public methods.
active_picking_ids
One2many → stock.picking
domain=[('state', 'not in', ('cancel', 'done'))]
readonly=True
args: 'stock.picking', 'batch_picking_id', 'Pickings'
date
Date
default=fields.Date.context_today
help='date on which the batch picking is to be processed'
index=True
readonly=True
required=True
states={'draft': [('readonly', False)], 'assigned': [('readonly', False)]}
args: 'Date'
move_ids
One2many → stock.move
compute='_compute_move_ids'
readonly=True
string='Related stock moves'
args: 'stock.move'
name
Char
copy=False
default=<expr>
index=True
required=True
states={'draft': [('readonly', False)]}
unique=True
args: 'Name'
notes
Text
help='free form remarks'
args: 'Notes'
pack_operation_ids
One2many → stock.pack.operation
compute='_compute_pack_operation_ids'
readonly=True
string='Related pack operations'
args: 'stock.pack.operation'
pack_operation_pack_ids
One2many → stock.pack.operation
compute='_compute_pack_operation_pack_ids'
inverse=<expr>
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Related pack operations'
args: 'stock.pack.operation'
pack_operation_product_ids
One2many → stock.pack.operation
compute='_compute_pack_operation_product_ids'
inverse=<expr>
states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}
string='Related pack operations'
args: 'stock.pack.operation'
picker_id
Many2one → res.users
help='the user to which the pickings are assigned'
index=True
readonly=True
states={'draft': [('readonly', False)], 'assigned': [('readonly', False)]}
args: 'res.users', 'Picker'
picking_ids
One2many → stock.picking
help='List of picking managed by this batch.'
readonly=True
states={'draft': [('readonly', False)]}
args: 'stock.picking', 'batch_picking_id', 'Pickings'
state
Selection
copy=False
default='draft'
help='the state of the batch picking. Workflow is draft -> assigned -> done or cancel'
index=True
readonly=True
string='State'
args: [('draft', 'Draft'), ('assigned', 'Available'), ('done', 'Done'), ('cancel', 'Cancelled')]
action_assign(self)
action_cancel(self)
action_transfer(self)
get_not_empties(self)
remove_undone_pickings(self)
verify_state(self, expected_state=None)
date
Date
default=fields.Date.context_today
help='Date on which the batch picking is to be processed'
required=True
select=True
args: 'Date'
name
Char
default=<expr>
help='Name of the batch picking'
required=True
args: 'Name'
notes
Text
help='free form remarks'
args: 'Notes'
picker_id
Many2one → res.users
default=<expr>
help='The user to which the pickings are assigned'
string='Picker'
args: 'res.users'
action_create_batch(self)
batch_picking_id
Many2one → stock.batch.picking
comodel_name='stock.batch.picking'
copy=False
domain="[('state', '=', 'draft')]"
help='In which batch picking this picking will be processed.'
string='Batch'
action_assign(self)
action_cancel(self)
do_transfer(self)
force_transfer(self, force_qty=True)
default_picker_id
Many2one → res.users
help='the user to which the batch pickings are assigned by default'
index=True
args: 'res.users', 'Default Picker'
No public methods.