Stock Picking: group by partner and carrier

stock_picking_group_by_partner_by_carrier
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/18.0/stock_picking_group_by_partner_by_carrier
VERSION
VERSION 1.3.1
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, BCIM
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, BCIM
COMMITTERS
COMMITTERSJacques-Etienne Baudoux, Weblate, OCA-git-bot, oca-ci, Vincent Van Rossem, Karl Southern, David Gallay
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-warehouse:
    - stock_warehouse_out_pull
OCA/stock-logistics-workflow:
    - delivery_procurement_group_carrier
    - stock_picking_group_by_base
odoo/odoo:
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - stock_delivery
    - delivery
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module can be used if your customers expect that several different
orders they passed will be shipped in a single delivery order.

With this module installed, when a sale order is confirmed, the stock
moves for the lines of the sale order can be placed in an existing
delivery order that shares the same delivery address and carrier (or
lack thereof).

Sale orders with a Shipping Policy set to 'When all products are ready'
always get their own shipping.

When the delivery slip is printed, the list of pending quantities to
deliver is shown at the end, grouped by order.

The grouping can also be applied in case of external resupply. Moves at
the destination of the same delivery address defined on the resupply
stock rule will be grouped in a same delivery order.

Note: The grouping is currently not propagated to the pulled internal
moves if you don't use the module stock_available_to_promise_release in
the stock-logistics-workflow repository.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
report_delivery_document report_delivery_document ir.ui.view qweb Inherits sale_stock.report_delivery_document_inherit_sale_stock
report_delivery_document_inherit_sale_stock report_delivery_document_inherit_sale_stock ir.ui.view qweb Inherits sale_stock.report_delivery_document_inherit_sale_stock
stock_picking_merge_wiz_info stock_picking_merge_wiz_info ir.ui.view qweb New
stock_report_delivery_has_serial_move_line_inherit stock_report_delivery_has_serial_move_line_inherit ir.ui.view qweb Inherits stock.stock_report_delivery_has_serial_move_line
view_partner_form res.partner.form.inherit res.partner group Inherits base.view_partner_form
view_picking_type_form Operation Types stock.picking.type xpath Inherits stock.view_picking_type_form
view_stock_picking_groupby_form stock.picking.merge form New
view_warehouse stock.warehouse stock.warehouse field Inherits stock.view_warehouse
Models touched (11)

New fields (2)
  • picking_ids One2many → stock.picking
    comodel_name='stock.picking' inverse_name='group_id' readonly=True
  • sale_ids Many2many → sale.order
    comodel_name='sale.order' copy=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_remaining_to_deliver(self, picking)
    @api.model
  • rounding_to_precision(self, rounding)
    @api.model
    Convert rounding specification to precision digits Rounding is encoded in Odoo as a floating number with as many meaningful decimals as used for the rounding, e.g. 0.001 means rounding to 3 decimals. Precision is an integer that indicates that amount, directly, in this case 3. This method allows to convert from rounding to precision.

New fields (1)
  • disable_picking_grouping Boolean
    default=False string='Do not group deliveries'
Public methods (0)

No public methods.

New fields (1)
  • picking_ids Many2many → stock.picking
    column1='order_id' column2='picking_id' comodel_name='stock.picking' copy=False relation='sale_order_stock_picking_rel' string='Transfers'
Public methods (1)
  • get_name_for_delivery_line(self)
    Get the name for the sale order displayed on the delivery note

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • original_group_id Many2one → procurement.group
    comodel_name='procurement.group' string='Original Procurement Group'
Public methods (1)
  • write(self, vals)
    During picking assignation, Odoo is overwriting the group on stock moves from found picking. Here, get the original group on stock moves.

New fields (3)
  • canceled_by_merge Boolean
    default=False help='Technical field. Indicates the transfer is canceled because it was left empty after a manual merge.'
  • group_id Many2one
    index=True
  • sale_ids Many2many → sale.order
    column1='picking_id' column2='order_id' comodel_name='sale.order' compute='_compute_sale_ids' relation='sale_order_stock_picking_rel' store=True
Public methods (6)
  • action_cancel(self)
  • copy(self, defaults=None)
  • get_customer_refs(self)
    Returns all unique sales order customer references.
  • get_delivery_report_lines(self)
    Return the lines that will be on the report. If the picking concerns multiple sale order some fake records are inserted to have the sale information as line separators. Otherwise standard records are returned.
  • init(self)
    This has to be called in every overriding module
  • write(self, values)

New fields (6)
  • details Html
    compute='_compute_info'
  • discarded_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_pickings' string='Discarded Pickings'
  • nothing_todo Boolean
    compute='_compute_info'
  • selected_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' default=<expr> string='Selected Pickings'
  • show_discarded_detail Boolean
    default=False
  • valid_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_pickings' string='Valid Pickings'
Public methods (1)
  • action_merge(self)

New fields (3)
  • group_pickings Boolean
    help='Group transfers for the same partner and carrier. ' args: 'Group pickings'
  • group_pickings_one Boolean
    help="Also group transfers with a shipping policy 'When all products are ready'. Transfers with different shipping policies are not grouped" args: "Also group when policy is 'one'"
  • show_group_pickings Boolean
    compute='_compute_show_group_pickings'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • group_shippings Boolean
    readonly=False related='out_type_id.group_pickings'
  • group_shippings_one Boolean
    readonly=False related='out_type_id.group_pickings_one'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/17.0/stock_picking_group_by_partner_by_carrier
VERSION
VERSION 0.0.0
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, BCIM
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, BCIM
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Juan Alberto Raja
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - delivery_procurement_group_carrier
    - stock_picking_group_by_base
odoo/odoo:
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - delivery
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module can be used if your customers expect that several different
orders they passed will be shipped in a single delivery order.

With this module installed, when a sale order is confirmed, the stock
moves for the lines of the sale order can be placed in an existing
delivery order that shares the same delivery address and carrier (or
lack thereof).

Sale orders with a Shipping Policy set to 'When all products are ready'
always get their own shipping.

When the delivery slip is printed, the list of pending quantities to
deliver is shown at the end, grouped by order.

The grouping can also be applied in case of external resupply. Moves at
the destination of the same delivery address defined on the resupply
stock rule will be grouped in a same delivery order.

Note: The grouping is currently not propagated to the pulled internal
moves if you don't use the module stock_available_to_promise_release in
the wms repository.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
report_delivery_document report_delivery_document ir.ui.view qweb Inherits stock.report_delivery_document
report_delivery_document_inherit_sale_stock report_delivery_document_inherit_sale_stock ir.ui.view qweb Inherits sale_stock.report_delivery_document_inherit_sale_stock
stock_picking_merge_wiz_info stock_picking_merge_wiz_info ir.ui.view qweb New
stock_report_delivery_has_serial_move_line_inherit stock_report_delivery_has_serial_move_line_inherit ir.ui.view qweb Inherits stock.stock_report_delivery_has_serial_move_line
view_partner_form res.partner.form.inherit res.partner group Inherits base.view_partner_form
view_picking_type_form Operation Types stock.picking.type xpath Inherits stock.view_picking_type_form
view_stock_picking_groupby_form stock.picking.merge form New
view_warehouse stock.warehouse stock.warehouse field Inherits stock.view_warehouse
Models touched (11)

New fields (2)
  • picking_ids One2many → stock.picking
    comodel_name='stock.picking' inverse_name='group_id' readonly=True
  • sale_ids Many2many → sale.order
    comodel_name='sale.order' copy=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_remaining_to_deliver(self, picking)
    @api.model
  • rounding_to_precision(self, rounding)
    @api.model
    Convert rounding specification to precision digits Rounding is encoded in Odoo as a floating number with as many meaningful decimals as used for the rounding, e.g. 0.001 means rounding to 3 decimals. Precision is an integer that indicates that amount, directly, in this case 3. This method allows to convert from rounding to precision.

New fields (1)
  • disable_picking_grouping Boolean
    default=False string='Do not group deliveries'
Public methods (0)

No public methods.

New fields (1)
  • picking_ids Many2many → stock.picking
    column1='order_id' column2='picking_id' comodel_name='stock.picking' copy=False relation='sale_order_stock_picking_rel' string='Transfers'
Public methods (1)
  • get_name_for_delivery_line(self)
    Get the name for the sale order displayed on the delivery note

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • original_group_id Many2one → procurement.group
    comodel_name='procurement.group' string='Original Procurement Group'
Public methods (1)
  • write(self, vals)
    During picking assignation, Odoo is overwriting the group on stock moves from found picking. Here, get the original group on stock moves.

New fields (3)
  • canceled_by_merge Boolean
    default=False help='Technical field. Indicates the transfer is canceled because it was left empty after a manual merge.'
  • group_id Many2one
    index=True
  • sale_ids Many2many → sale.order
    column1='picking_id' column2='order_id' comodel_name='sale.order' compute='_compute_sale_ids' relation='sale_order_stock_picking_rel' store=True
Public methods (6)
  • action_cancel(self)
  • copy(self, defaults=None)
  • get_customer_refs(self)
    Returns all unique sales order customer references.
  • get_delivery_report_lines(self)
    Return the lines that will be on the report. If the picking concerns multiple sale order some fake records are inserted to have the sale information as line separators. Otherwise standard records are returned.
  • init(self)
    This has to be called in every overriding module
  • write(self, values)

New fields (6)
  • details Html
    compute='_compute_info'
  • discarded_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_pickings' string='Discarded Pickings'
  • nothing_todo Boolean
    compute='_compute_info'
  • selected_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' default=<expr> string='Selected Pickings'
  • show_discarded_detail Boolean
    default=False
  • valid_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_pickings' string='Valid Pickings'
Public methods (1)
  • action_merge(self)

New fields (1)
  • group_pickings Boolean
    help="Group pickings for the same partner and carrier. Pickings with shipping policy set to 'When all products are ready' are never grouped." args: 'Group pickings'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • group_shippings Boolean
    help="Group shippings for the same partner and carrier. Shippings with shipping policy set to 'When all products are ready' are never grouped." readonly=False related='out_type_id.group_pickings' args: 'Group shippings'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/16.0/stock_picking_group_by_partner_by_carrier
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYWarehouse
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, BCIM
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, BCIM
COMMITTERS
COMMITTERSLaurent Mignon (ACSONE), Denis Roussel, Weblate, OCA-git-bot, Rodrigo, oca-ci, Emilio Pascual
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:51
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - delivery_procurement_group_carrier
    - stock_picking_group_by_base
odoo/odoo:
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - delivery
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
report_delivery_document report_delivery_document ir.ui.view qweb Inherits stock.report_delivery_document
report_delivery_document_inherit_sale_stock report_delivery_document_inherit_sale_stock ir.ui.view qweb Inherits sale_stock.report_delivery_document_inherit_sale_stock
stock_picking_merge_wiz_info stock_picking_merge_wiz_info ir.ui.view qweb New
stock_report_delivery_has_serial_move_line_inherit stock_report_delivery_has_serial_move_line_inherit ir.ui.view qweb Inherits stock.stock_report_delivery_has_serial_move_line
view_partner_form res.partner.form.inherit res.partner group Inherits base.view_partner_form
view_picking_type_form Operation Types stock.picking.type field Inherits stock.view_picking_type_form
view_stock_picking_groupby_form stock.picking.merge form New
view_warehouse stock.warehouse stock.warehouse field Inherits stock.view_warehouse
Models touched (11)

New fields (2)
  • picking_ids One2many → stock.picking
    comodel_name='stock.picking' inverse_name='group_id' readonly=True
  • sale_ids Many2many → sale.order
    comodel_name='sale.order' copy=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_remaining_to_deliver(self, picking)
    @api.model
  • rounding_to_precision(self, rounding)
    @api.model
    Convert rounding specification to precision digits Rounding is encoded in Odoo as a floating number with as many meaningful decimals as used for the rounding, e.g. 0.001 means rounding to 3 decimals. Precision is an integer that indicates that amount, directly, in this case 3. This method allows to convert from rounding to precision.

New fields (1)
  • disable_picking_grouping Boolean
    default=False string='Do not group deliveries'
Public methods (0)

No public methods.

New fields (1)
  • picking_ids Many2many → stock.picking
    column1='order_id' column2='picking_id' comodel_name='stock.picking' copy=False relation='sale_order_stock_picking_rel' string='Transfers'
Public methods (1)
  • get_name_for_delivery_line(self)
    Get the name for the sale order displayed on the delivery note

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • original_group_id Many2one → procurement.group
    comodel_name='procurement.group' string='Original Procurement Group'
Public methods (1)
  • write(self, vals)
    During picking assignation, Odoo is overwriting the group on stock moves from found picking. Here, get the original group on stock moves.

New fields (3)
  • canceled_by_merge Boolean
    default=False help='Technical field. Indicates the transfer is canceled because it was left empty after a manual merge.'
  • group_id Many2one
    index=True
  • sale_ids Many2many → sale.order
    column1='picking_id' column2='order_id' comodel_name='sale.order' compute='_compute_sale_ids' relation='sale_order_stock_picking_rel' store=True
Public methods (6)
  • action_cancel(self)
  • copy(self, defaults=None)
  • get_customer_refs(self)
    Returns all unique sales order customer references.
  • get_delivery_report_lines(self)
    Return the lines that will be on the report. If the picking concerns multiple sale order some fake records are inserted to have the sale information as line separators. Otherwise standard records are returned.
  • init(self)
    This has to be called in every overriding module
  • write(self, values)

New fields (6)
  • details Html
    compute='_compute_info'
  • discarded_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_pickings' string='Discarded Pickings'
  • nothing_todo Boolean
    compute='_compute_info'
  • selected_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' default=<expr> string='Selected Pickings'
  • show_discarded_detail Boolean
    default=False
  • valid_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_pickings' string='Valid Pickings'
Public methods (1)
  • action_merge(self)

New fields (1)
  • group_pickings Boolean
    help="Group pickings for the same partner and carrier. Pickings with shipping policy set to 'When all products are ready' are never grouped." args: 'Group pickings'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • group_shippings Boolean
    help="Group shippings for the same partner and carrier. Shippings with shipping policy set to 'When all products are ready' are never grouped." readonly=False related='out_type_id.group_pickings' args: 'Group shippings'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/14.0/stock_picking_group_by_partner_by_carrier
VERSION
VERSION 1.4.4
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, BCIM
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, BCIM
COMMITTERS
COMMITTERSJacques-Etienne Baudoux, Denis Roussel, Akim Juillerat, OCA Transbot, Sébastien Alix, Thierry Ducrest, oca-travis, Weblate, OCA-git-bot, sergiocorato, Simone Orsi, Iryna Vyshnevska, Matthieu Méquignon, Tran Thanh Phuc
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:04
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - delivery_procurement_group_carrier
    - stock_move_assign_picking_hook
odoo/odoo:
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
    - stock_account
    - stock
    - barcodes
    - delivery
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
report_assets_common Delivery Slip Assets ir.ui.view qweb Inherits web.report_assets_common
report_delivery_document report_delivery_document ir.ui.view qweb Inherits stock.report_delivery_document
report_delivery_document_inherit_sale_stock report_delivery_document_inherit_sale_stock ir.ui.view qweb Inherits sale_stock.report_delivery_document_inherit_sale_stock
stock_picking_merge_wiz_info stock_picking_merge_wiz_info ir.ui.view qweb New
stock_report_delivery_has_serial_move_line_inherit stock_report_delivery_has_serial_move_line_inherit ir.ui.view qweb Inherits stock.stock_report_delivery_has_serial_move_line
view_partner_form res.partner.form.inherit res.partner group Inherits base.view_partner_form
view_picking_type_form Operation Types stock.picking.type field Inherits stock.view_picking_type_form
view_stock_picking_groupby_form stock.picking.merge form New
view_warehouse stock.warehouse stock.warehouse field Inherits stock.view_warehouse
Models touched (11)

New fields (2)
  • picking_ids One2many → stock.picking
    comodel_name='stock.picking' inverse_name='group_id' readonly=True
  • sale_ids Many2many → sale.order
    comodel_name='sale.order' copy=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_remaining_to_deliver(self, picking)
    @api.model
  • rounding_to_precision(self, rounding)
    @api.model
    Convert rounding specification to precision digits Rounding is encoded in Odoo as a floating number with as many meaningful decimals as used for the rounding, e.g. 0.001 means rounding to 3 decimals. Precision is an integer that indicates that amount, directly, in this case 3. This method allows to convert from rounding to precision.

New fields (1)
  • disable_picking_grouping Boolean
    default=False string='Do not group deliveries'
Public methods (0)

No public methods.

New fields (1)
  • picking_ids Many2many → stock.picking
    copy=False string='Transfers' args: 'stock.picking'
Public methods (2)
  • action_cancel(self)
  • get_name_for_delivery_line(self)
    Get the name for the sale order displayed on the delivery note

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • original_group_id Many2one → procurement.group
    comodel_name='procurement.group' string='Original Procurement Group'
Public methods (0)

No public methods.

New fields (3)
  • canceled_by_merge Boolean
    default=False help='Technical field. Indicates the transfer is canceled because it was left empty after a manual merge.'
  • printed Boolean
    copy=False
  • sale_ids Many2many → sale.order
    compute='_compute_sale_ids' store=True args: 'sale.order'
Public methods (5)
  • action_cancel(self)
  • copy(self, defaults=None)
  • get_customer_refs(self)
    Returns all unique sales order customer references.
  • get_delivery_report_lines(self)
    Return the lines that will be on the report. If the picking concerns multiple sale order some fake records are inserted to have the sale information as line separators. Otherwise standard records are returned.
  • write(self, values)

New fields (6)
  • details Html
    compute='_compute_info'
  • discarded_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_pickings' string='Discarded Pickings'
  • nothing_todo Boolean
    compute='_compute_info'
  • selected_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' default=<expr> string='Selected Pickings'
  • show_discarded_detail Boolean
    default=False
  • valid_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_pickings' string='Valid Pickings'
Public methods (1)
  • action_merge(self)

New fields (1)
  • group_pickings Boolean
    help="Group pickings for the same partner and carrier. Pickings with shipping policy set to 'When all products are ready' are never grouped." args: 'Group pickings'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • group_shippings Boolean
    help="Group shippings for the same partner and carrier. Shippings with shipping policy set to 'When all products are ready' are never grouped." readonly=False related='out_type_id.group_pickings' args: 'Group shippings'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/13.0/stock_picking_group_by_partner_by_carrier
VERSION
VERSION 1.10.2
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, BCIM
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, BCIM
COMMITTERS
COMMITTERSGuewen Baconnier, Alexandre Fayolle, Jacques-Etienne Baudoux, sebalix, Akim Juillerat, OCA Transbot, Sébastien Alix, Thierry Ducrest, AaronHForgeFlow, oca-travis, Weblate, OCA-git-bot, Simone Orsi, Carlos Serra-Toro, Matthieu Méquignon
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:15
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-workflow:
    - stock_move_assign_picking_hook
odoo/odoo:
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
    - stock_account
    - stock
    - barcodes
    - delivery
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
procurement_group_form_view procurement.group.form procurement.group field Inherits stock.procurement_group_form_view
report_assets_common Delivery Slip Assets ir.ui.view qweb Inherits web.report_assets_common
report_delivery_document report_delivery_document ir.ui.view qweb Inherits stock.report_delivery_document
report_delivery_document_inherit_sale_stock report_delivery_document_inherit_sale_stock ir.ui.view qweb Inherits sale_stock.report_delivery_document_inherit_sale_stock
stock_picking_merge_wiz_info stock_picking_merge_wiz_info ir.ui.view qweb New
view_partner_form res.partner.form.inherit res.partner group Inherits base.view_partner_form
view_picking_type_form Operation Types stock.picking.type field Inherits stock.view_picking_type_form
view_stock_picking_groupby_form stock.picking.merge form New
view_warehouse stock.warehouse stock.warehouse field Inherits stock.view_warehouse
Models touched (11)

New fields (3)
  • carrier_id Many2one → delivery.carrier
    string='Delivery Method' args: 'delivery.carrier'
  • picking_ids One2many → stock.picking
    comodel_name='stock.picking' inverse_name='group_id' readonly=True
  • sale_ids Many2many → sale.order
    comodel_name='sale.order' copy=True
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • get_remaining_to_deliver(self, picking)
    @api.model
  • rounding_to_precision(self, rounding)
    @api.model
    Convert rounding specification to precision digits Rounding is encoded in Odoo as a floating number with as many meaningful decimals as used for the rounding, e.g. 0.001 means rounding to 3 decimals. Precision is an integer that indicates that amount, directly, in this case 3. This method allows to convert from rounding to precision.

New fields (1)
  • disable_picking_grouping Boolean
    default=False string='Do not group deliveries'
Public methods (0)

No public methods.

New fields (1)
  • picking_ids Many2many → stock.picking
    copy=False string='Transfers' args: 'stock.picking'
Public methods (3)
  • action_cancel(self)
  • action_draft(self)
  • get_name_for_delivery_line(self)
    Get the name for the sale order displayed on the delivery note

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • original_group_id Many2one → procurement.group
    comodel_name='procurement.group' string='Original Procurement Group'
Public methods (0)

No public methods.

New fields (3)
  • canceled_by_merge Boolean
    default=False help='Technical field. Indicates the transfer is canceled because it was left empty after a manual merge.'
  • printed Boolean
    copy=False
  • sale_ids Many2many → sale.order
    compute='_compute_sale_ids' store=True args: 'sale.order'
Public methods (5)
  • action_cancel(self)
  • copy(self, defaults=None)
  • get_customer_refs(self)
    Returns all unique sales order customer references.
  • get_delivery_report_lines(self)
    Return the lines that will be on the report. If the picking concerns multiple sale order some fake records are inserted to have the sale information as line separators. Otherwise standard records are returned.
  • write(self, values)

New fields (6)
  • details Html
    compute='_compute_info'
  • discarded_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_pickings' string='Discarded Pickings'
  • nothing_todo Boolean
    compute='_compute_info'
  • selected_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' default=<expr> string='Selected Pickings'
  • show_discarded_detail Boolean
    default=False
  • valid_picking_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_pickings' string='Valid Pickings'
Public methods (1)
  • action_merge(self)

New fields (1)
  • group_pickings Boolean
    help="Group pickings for the same partner and carrier. Pickings with shipping policy set to 'When all products are ready' are never grouped." args: 'Group pickings'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • group_shippings Boolean
    help="Group shippings for the same partner and carrier. Shippings with shipping policy set to 'When all products are ready' are never grouped." readonly=False related='out_type_id.group_pickings' args: 'Group shippings'
Public methods (0)

No public methods.