Stock Release Channels

stock_release_channel
REPOSITORY
REPOSITORYOCA/stock-logistics-release-channel
GIT
GIThttps://github.com/OCA/stock-logistics-release-channel.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-release-channel/tree/18.0/stock_release_channel
VERSION
VERSION 1.7.1
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV, BCIM
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV, BCIM
COMMITTERS
COMMITTERSAlexandre Fayolle, Jacques-Etienne Baudoux, Ruchir Shukla, Weblate, OCA-git-bot, Michael Tietz, SilvioC2C, oca-ci, Mmequignon
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-release-channel
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/queue:
    - queue_job
OCA/stock-logistics-reservation:
    - stock_available_to_promise_release
OCA/stock-logistics-warehouse:
    - stock_warehouse_out_pull
odoo/odoo:
    - web
    - base
    - stock
    - product
    - mail
    - base_setup
    - bus
    - web_tour
    - html_editor
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES openupgradelib
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Release channels are:

- Release channels are created by stock managers (only pallets, only
  parcels, ...)
- A release channel has a sequence, a domain + possibility to use python
  code
- When a delivery is: created from a sales order / created as backorder
  / released, each release channel is evaluated against it (domain +
  python code), the delivery is assigned to the first channel that
  matches
- A release channel can change over time: for instance the evaluation of
  a domain or rule can change if a delivery is only partially released
- A kanban board allows tracking how many \[To Do Today, Released, Done
  Today, Waiting, Late, Priority\] Transfers are in each channel, plus
  quick access to all the pick/pack transfers for released deliveries
- A button on each channel allows to release the next X (configured on
  the channel) transfers (max X at a time, it releases X - currently
  released and not done)

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
res_config_settings_view res.config.settings xpath Inherits stock_available_to_promise_release.res_config_settings_view_form_stock
res_partner_form_view res.partner xpath Inherits base.view_partner_form
stock_release_channel_form_view stock.release.channel.form stock.release.channel form New
stock_release_channel_kanban_view stock.release.channel.kanban stock.release.channel kanban New
stock_release_channel_search_view stock.release.channel.search stock.release.channel search New
stock_release_channel_tree_view stock.release.channel.tree stock.release.channel list New
view_picking_form stock.picking.form stock.picking group Inherits stock.view_picking_form
view_picking_internal_search stock.picking.internal.search stock.picking field Inherits stock.view_picking_internal_search
view_picking_release_tree stock.picking.release.tree stock.picking field Inherits stock_available_to_promise_release.view_picking_release_tree
vpicktree_view_tree stock.picking.delivery.tree in (stock_release_channel) stock.picking xpath Inherits stock.vpicktree
Models touched (6)

New fields (1)
  • release_channel_show_last_picking_done Boolean
    help='In release channels dashboard, add link to last done picking and show transfer date' string='Channels dashboard - Show last delivery done'
Public methods (0)

No public methods.

New fields (1)
  • release_channel_show_last_picking_done Boolean
    readonly=False related='company_id.release_channel_show_last_picking_done'
Public methods (0)

No public methods.

New fields (1)
  • stock_release_channel_ids Many2many → stock.release.channel
    column1='partner_id' column2='channel_id' comodel_name='stock.release.channel' domain="company_id and [('company_id', '=', company_id)] or []" relation='res_partner_stock_release_channel_rel' string='Release Channels'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • release_available_to_promise(self)

New fields (2)
  • delivery_date Date
    compute='_compute_delivery_date'
  • release_channel_id Many2one → stock.release.channel
    comodel_name='stock.release.channel' copy=False index='btree_not_null' inverse='_inverse_release_channel_id' ondelete='restrict' tracking=True
Public methods (3)
  • assign_release_channel(self)
  • assign_release_channel_on_all_need_release(self)
  • release_available_to_promise(self)

New fields (53)
  • active Boolean
    default=True
  • batch_mode Selection
    default='max' help='Max: release N transfers to have a configured max of X deliveries in progress.' required=True selection=[('max', 'Max')]
  • code Text
    default=DEFAULT_PYTHON_CODE groups='base.group_system' help='Write Python code to filter out pickings.' string='Python Code'
  • collect_pickings Boolean
    compute='_compute_collect_pickings' help='Allows you to control if pickings are assigned to the release channel.' store=True
  • color Integer
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> index=True required=True string='Company'
  • count_move_all Integer
    compute='_compute_picking_count' string='All Moves (Estimate)'
  • count_move_assigned Integer
    compute='_compute_picking_count' string='Available Moves (Estimate)'
  • count_move_done Integer
    compute='_compute_picking_count' string='Moves Done Today (Estimate)'
  • count_move_late Integer
    compute='_compute_picking_count' string='Late Moves (Estimate)'
  • count_move_priority Integer
    compute='_compute_picking_count' string='Priority Moves (Estimate)'
  • count_move_release_ready Integer
    compute='_compute_picking_count' string='Release Ready Moves (Estimate)'
  • count_move_released Integer
    compute='_compute_picking_count' string='Released Moves (Estimate)'
  • count_move_waiting Integer
    compute='_compute_picking_count' string='Waiting Moves (Estimate)'
  • count_picking_all Integer
    compute='_compute_picking_count' string='All Transfers'
  • count_picking_assigned Integer
    compute='_compute_picking_count' string='Available Transfers'
  • count_picking_chain Integer
    compute='_compute_picking_chain' string='All Related Transfers'
  • count_picking_chain_done Integer
    compute='_compute_picking_chain' string='All Done Related Transfers'
  • count_picking_chain_in_progress Integer
    compute='_compute_picking_chain' string='In progress Related Transfers'
  • count_picking_done Integer
    compute='_compute_picking_count' string='Transfers Done Today'
  • count_picking_full_progress Integer
    compute='_compute_picking_count' help='The total number of pickings to achieve 100% of progress.' string='Full Progress'
  • count_picking_late Integer
    compute='_compute_picking_count' string='Late Transfers'
  • count_picking_priority Integer
    compute='_compute_picking_count' string='Priority Transfers'
  • count_picking_release_ready Integer
    compute='_compute_picking_count' string='Release Ready Transfers'
  • count_picking_released Integer
    compute='_compute_picking_count' string='Released Transfers'
  • count_picking_waiting Integer
    compute='_compute_picking_count' string='Waiting Transfers'
  • is_action_collect_restart_allowed Boolean
    compute='_compute_is_action_collect_restart_allowed' help="Technical field to check if the action 'Collect Restart' is allowed."
  • is_action_collect_stop_allowed Boolean
    compute='_compute_is_action_collect_stop_allowed' help="Technical field to check if the action 'Collect Stop' is allowed."
  • is_action_lock_allowed Boolean
    compute='_compute_is_action_lock_allowed' help="Technical field to check if the action 'Lock' is allowed."
  • is_action_sleep_allowed Boolean
    compute='_compute_is_action_sleep_allowed' help="Technical field to check if the action 'Sleep' is allowed."
  • is_action_unlock_allowed Boolean
    compute='_compute_is_action_unlock_allowed' help="Technical field to check if the action 'Unlock' is allowed."
  • is_action_wake_up_allowed Boolean
    compute='_compute_is_action_wake_up_allowed' help="Technical field to check if the action 'Wake Up' is allowed."
  • is_manual_assignment Boolean
    args: 'Manual assignment'
  • is_release_allowed Boolean
    compute='_compute_is_release_allowed' help="Technical field to check if the action 'Release Next Batch' is allowed." search='_search_is_release_allowed'
  • last_done_picking_date_done Datetime
    compute='_compute_last_done_picking'
  • last_done_picking_id Many2one → stock.picking
    comodel_name='stock.picking' compute='_compute_last_done_picking' string='Last Done Transfer'
  • last_done_picking_name Char
    compute='_compute_last_done_picking'
  • max_batch_mode Integer
    default=10 help='When clicking on the package icon, it releases X transfers minus on-going ones not shipped (X - Waiting). This field defines X.' string='Max Transfers to release'
  • name Char
    required=True
  • open_picking_ids One2many → stock.picking
    comodel_name='stock.picking' domain=[('state', 'not in', ('done', 'cancel'))] inverse_name='release_channel_id' readonly=True string='Open Transfers'
  • partner_ids Many2many → res.partner
    check_company=True column1='channel_id' column2='partner_id' comodel_name='res.partner' context={'active_test': False} relation='res_partner_stock_release_channel_rel' string='Partners'
  • picking_chain_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_chain' help='All transfers required to bring goods to the deliveries.'
  • picking_ids One2many → stock.picking
    check_company=True comodel_name='stock.picking' inverse_name='release_channel_id' string='Transfers'
  • picking_type_ids Many2many → stock.picking.type
    domain="warehouse_id and [('warehouse_id', '=', warehouse_id), ('code', '=', 'outgoing'), ('company_id', 'in', (company_id, False))] or [('code', '=', 'outgoing'), ('company_id', 'in', (company_id, False))]" string='Operation Types' args: 'stock.picking.type', 'stock_release_channel_warehouse_rel', 'channel_id', 'picking_type_id'
  • recompute_channel_on_pickings_at_release Boolean
    help='When releasing a transfer, recompute the channel. Be carefull when using this in conjuction with channel lifecycle (stop/start collecting, sleep/wake up) as a delivery could be kicked out of a channel if you stop collecting and recompute after release'
  • release_forbidden Boolean
    string='Forbid to release this channel'
  • release_mode Selection
    default='batch' required=True args: [('batch', 'Batch (Manual)')]
  • rule_domain Char
    default=[] help='Domain based on Transfers, filter for entering the channel.' string='Domain'
  • sequence Integer
    default=<expr>
  • show_last_picking_done Boolean
    compute='_compute_show_last_picking_done'
  • state Selection
    default='asleep' help='The state allows you to control the availability of the release channel.\n * Open: Release operations are allowed.\n* Locked: Release operations are forbidden.\n* Asleep: Assigned pickings not processed are unassigned from the release channel.\n' selection=[('open', 'Open'), ('locked', 'Locked'), ('asleep', 'Asleep')]
  • state_at_wakeup Selection
    default='open' help='The state of the channel upon waking it up' required=True selection=[('open', 'Open'), ('locked', 'Locked')]
  • warehouse_id Many2one → stock.warehouse
    check_company=True help='Warehouse for which this channel is relevant' index=True string='Warehouse' args: 'stock.warehouse'
Public methods (27)
  • action_collect_restart(self)
  • action_collect_stop(self)
  • action_lock(self)
  • action_move_all(self)
  • action_move_assigned(self)
  • action_move_done(self)
  • action_move_late(self)
  • action_move_priority(self)
  • action_move_release_ready(self)
  • action_move_released(self)
  • action_move_waiting(self)
  • action_picking_all(self)
  • action_picking_all_related(self)
    Open all chained transfers for released deliveries
  • action_picking_assigned(self)
  • action_picking_done(self)
  • action_picking_late(self)
  • action_picking_priority(self)
  • action_picking_release_ready(self)
  • action_picking_released(self)
  • action_picking_waiting(self)
  • action_sleep(self)
  • action_unlock(self)
  • action_wake_up(self)
  • assign_pickings(self)
    @api.model
  • assign_release_channel(self, picking)
    @api.model
  • get_action_picking_form(self)
  • release_next_batch(self)
REPOSITORY
REPOSITORYOCA/wms
GIT
GIThttps://github.com/OCA/wms.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/wms/tree/16.0/stock_release_channel
VERSION
VERSION 3.1.2
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV, BCIM
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV, BCIM
COMMITTERS
COMMITTERSStéphane Bidoul, Jacques-Etienne Baudoux, Laurent Mignon (ACSONE), Denis Roussel, sbejaoui, Sébastien Alix, Weblate, OCA-git-bot, Simone Orsi, Michael Tietz, oca-ci, duongtq, Laurent Stukkens, hda, victorvermot, Tran Anh Tuan
WEBSITE
WEBSITEhttps://github.com/OCA/wms
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/queue:
    - queue_job
OCA/wms:
    - stock_available_to_promise_release
odoo/odoo:
    - web
    - base
    - stock
    - product
    - mail
    - base_setup
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES openupgradelib
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
res_config_settings_view res.config.settings xpath Inherits stock_available_to_promise_release.res_config_settings_view_form_stock
res_partner_form_view res.partner xpath Inherits base.view_partner_form
stock_release_channel_form_view stock.release.channel.form stock.release.channel form New
stock_release_channel_kanban_view stock.release.channel.kanban stock.release.channel kanban New
stock_release_channel_search_view stock.release.channel.search stock.release.channel search New
stock_release_channel_tree_view stock.release.channel.tree stock.release.channel tree New
view_picking_form stock.picking.form stock.picking group Inherits stock.view_picking_form
view_picking_internal_search stock.picking.internal.search stock.picking field Inherits stock.view_picking_internal_search
view_picking_release_tree stock.picking.release.tree stock.picking field Inherits stock_available_to_promise_release.view_picking_release_tree
vpicktree_view_tree stock.picking.delivery.tree in (stock_release_channel) stock.picking xpath Inherits stock.vpicktree
Models touched (6)

New fields (2)
  • recompute_channel_on_pickings_at_release Boolean
    default=True help='When releasing a transfer, recompute channel'
  • release_channel_show_last_picking_done Boolean
    help='In release channels dashboard, add link to last done picking and show transfer date' string='Channels dashboard - Show last delivery done'
Public methods (0)

No public methods.

New fields (2)
  • recompute_channel_on_pickings_at_release Boolean
    readonly=False related='company_id.recompute_channel_on_pickings_at_release'
  • release_channel_show_last_picking_done Boolean
    readonly=False related='company_id.release_channel_show_last_picking_done'
Public methods (0)

No public methods.

New fields (1)
  • stock_release_channel_ids Many2many → stock.release.channel
    column1='partner_id' column2='channel_id' comodel_name='stock.release.channel' domain="company_id and [('company_id', '=', company_id)] or []" relation='res_partner_stock_release_channel_rel' string='Release Channels'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • release_available_to_promise(self)

New fields (1)
  • release_channel_id Many2one → stock.release.channel
    comodel_name='stock.release.channel' copy=False index=True inverse='_inverse_release_channel_id' ondelete='restrict' tracking=True
Public methods (3)
  • assign_release_channel(self)
  • assign_release_channel_on_all_need_release(self)
  • release_available_to_promise(self)

New fields (49)
  • active Boolean
    default=True
  • batch_mode Selection
    default='max' help='Max: release N transfers to have a configured max of X deliveries in progress.' required=True selection=[('max', 'Max')]
  • code Text
    default=DEFAULT_PYTHON_CODE groups='base.group_system' help='Write Python code to filter out pickings.' string='Python Code'
  • color Integer
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> index=True required=True string='Company'
  • count_move_all Integer
    compute='_compute_picking_count' string='All Moves (Estimate)'
  • count_move_assigned Integer
    compute='_compute_picking_count' string='Available Moves (Estimate)'
  • count_move_done Integer
    compute='_compute_picking_count' string='Moves Done Today (Estimate)'
  • count_move_late Integer
    compute='_compute_picking_count' string='Late Moves (Estimate)'
  • count_move_priority Integer
    compute='_compute_picking_count' string='Priority Moves (Estimate)'
  • count_move_release_ready Integer
    compute='_compute_picking_count' string='Release Ready Moves (Estimate)'
  • count_move_released Integer
    compute='_compute_picking_count' string='Released Moves (Estimate)'
  • count_move_waiting Integer
    compute='_compute_picking_count' string='Waiting Moves (Estimate)'
  • count_picking_all Integer
    compute='_compute_picking_count' string='All Transfers'
  • count_picking_assigned Integer
    compute='_compute_picking_count' string='Available Transfers'
  • count_picking_chain Integer
    compute='_compute_picking_chain' string='All Related Transfers'
  • count_picking_chain_done Integer
    compute='_compute_picking_chain' string='All Done Related Transfers'
  • count_picking_chain_in_progress Integer
    compute='_compute_picking_chain' string='In progress Related Transfers'
  • count_picking_done Integer
    compute='_compute_picking_count' string='Transfers Done Today'
  • count_picking_full_progress Integer
    compute='_compute_picking_count' help='The total number of pickings to achieve 100% of progress.' string='Full Progress'
  • count_picking_late Integer
    compute='_compute_picking_count' string='Late Transfers'
  • count_picking_priority Integer
    compute='_compute_picking_count' string='Priority Transfers'
  • count_picking_release_ready Integer
    compute='_compute_picking_count' string='Release Ready Transfers'
  • count_picking_released Integer
    compute='_compute_picking_count' string='Released Transfers'
  • count_picking_waiting Integer
    compute='_compute_picking_count' string='Waiting Transfers'
  • is_action_lock_allowed Boolean
    compute='_compute_is_action_lock_allowed' help="Technical field to check if the action 'Lock' is allowed."
  • is_action_sleep_allowed Boolean
    compute='_compute_is_action_sleep_allowed' help="Technical field to check if the action 'Sleep' is allowed."
  • is_action_unlock_allowed Boolean
    compute='_compute_is_action_unlock_allowed' help="Technical field to check if the action 'Unlock' is allowed."
  • is_action_wake_up_allowed Boolean
    compute='_compute_is_action_wake_up_allowed' help="Technical field to check if the action 'Wake Up' is allowed."
  • is_manual_assignment Boolean
    args: 'Manual assignment'
  • is_release_allowed Boolean
    compute='_compute_is_release_allowed' help="Technical field to check if the action 'Release Next Batch' is allowed." search='_search_is_release_allowed'
  • last_done_picking_date_done Datetime
    compute='_compute_last_done_picking'
  • last_done_picking_id Many2one → stock.picking
    comodel_name='stock.picking' compute='_compute_last_done_picking' string='Last Done Transfer'
  • last_done_picking_name Char
    compute='_compute_last_done_picking'
  • max_batch_mode Integer
    default=10 help='When clicking on the package icon, it releases X transfers minus on-going ones not shipped (X - Waiting). This field defines X.' string='Max Transfers to release'
  • name Char
    required=True
  • open_picking_ids One2many → stock.picking
    comodel_name='stock.picking' domain=[('state', 'not in', ('done', 'cancel'))] inverse_name='release_channel_id' readonly=True string='Open Transfers'
  • partner_ids Many2many → res.partner
    check_company=True column1='channel_id' column2='partner_id' comodel_name='res.partner' context={'active_test': False} relation='res_partner_stock_release_channel_rel' string='Partners'
  • picking_chain_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_chain' help='All transfers required to bring goods to the deliveries.'
  • picking_ids One2many → stock.picking
    check_company=True comodel_name='stock.picking' inverse_name='release_channel_id' string='Transfers'
  • picking_type_ids Many2many → stock.picking.type
    domain="warehouse_id and [('warehouse_id', '=', warehouse_id), ('code', '=', 'outgoing'), ('company_id', 'in', (company_id, False))] or [('code', '=', 'outgoing'), ('company_id', 'in', (company_id, False))]" string='Operation Types' args: 'stock.picking.type', 'stock_release_channel_warehouse_rel', 'channel_id', 'picking_type_id'
  • release_forbidden Boolean
    string='Forbid to release this channel'
  • release_mode Selection
    default='batch' required=True args: [('batch', 'Batch (Manual)')]
  • rule_domain Char
    default=[] help='Domain based on Transfers, filter for entering the channel.' string='Domain'
  • sequence Integer
    default=<expr>
  • show_last_picking_done Boolean
    compute='_compute_show_last_picking_done'
  • state Selection
    default='asleep' help='The state allows you to control the availability of the release channel.\n* Open: Manual and automatic picking assignment to the release is effective and release operations are allowed.\n* Locked: Release operations are forbidden. (Assignement processes are still working)\n* Asleep: Assigned pickings not processed are unassigned from the release channel.\n' selection=[('open', 'Open'), ('locked', 'Locked'), ('asleep', 'Asleep')]
  • state_at_wakeup Selection
    default='open' help='The state of the channel upon waking it up' required=True selection=[('open', 'Open'), ('locked', 'Locked')]
  • warehouse_id Many2one → stock.warehouse
    check_company=True help='Warehouse for which this channel is relevant' index=True string='Warehouse' args: 'stock.warehouse'
Public methods (25)
  • action_lock(self)
  • action_move_all(self)
  • action_move_assigned(self)
  • action_move_done(self)
  • action_move_late(self)
  • action_move_priority(self)
  • action_move_release_ready(self)
  • action_move_released(self)
  • action_move_waiting(self)
  • action_picking_all(self)
  • action_picking_all_related(self)
    Open all chained transfers for released deliveries
  • action_picking_assigned(self)
  • action_picking_done(self)
  • action_picking_late(self)
  • action_picking_priority(self)
  • action_picking_release_ready(self)
  • action_picking_released(self)
  • action_picking_waiting(self)
  • action_sleep(self)
  • action_unlock(self)
  • action_wake_up(self)
  • assign_pickings(self)
    @api.model
  • assign_release_channel(self, picking)
    @api.model
  • get_action_picking_form(self)
  • release_next_batch(self)
REPOSITORY
REPOSITORYOCA/wms
GIT
GIThttps://github.com/OCA/wms.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/wms/tree/14.0/stock_release_channel
VERSION
VERSION 2.3.1
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, ACSONE SA/NV
COMMITTERS
COMMITTERSJacques-Etienne Baudoux, Sébastien Alix, Thierry Ducrest, Weblate, OCA-git-bot, Michael Tietz, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/wms
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/queue:
    - queue_job
OCA/wms:
    - stock_available_to_promise_release
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
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
assets_backend stock_release_channel assets ir.ui.view qweb Inherits web.assets_backend
stock_release_channel_form_view stock.release.channel.form stock.release.channel form New
stock_release_channel_kanban_view stock.release.channel.kanban stock.release.channel kanban New
stock_release_channel_search_view stock.release.channel.search stock.release.channel search New
stock_release_channel_tree_view stock.release.channel.tree stock.release.channel tree New
view_picking_form stock.picking.form stock.picking group Inherits stock.view_picking_form
view_picking_internal_search stock.picking.internal.search stock.picking field Inherits stock.view_picking_internal_search
view_picking_release_tree stock.picking.release.tree stock.picking field Inherits stock_available_to_promise_release.view_picking_release_tree
Models touched (3)

New fields (0)

No new fields.

Public methods (1)
  • release_available_to_promise(self)

New fields (2)
  • commercial_partner_id Many2one → res.partner
    comodel_name='res.partner' readonly=True related='partner_id.commercial_partner_id' store=True string='Commercial Entity'
  • release_channel_id Many2one → stock.release.channel
    comodel_name='stock.release.channel' copy=False index=True ondelete='restrict'
Public methods (3)
  • assign_release_channel(self)
  • assign_release_channel_on_all_need_release(self)
  • release_available_to_promise(self)

New fields (42)
  • active Boolean
    default=True
  • auto_release Selection
    default='max' help='Max: release N transfers to have a configured max of X deliveries in progress.\nGrouped by Commercial Partner: release all transfers for acommercial partner at once.' required=True selection=[('max', 'Max'), ('group_commercial_partner', 'Grouped by Commercial Partner')]
  • code Text
    default=DEFAULT_PYTHON_CODE groups='base.group_system' help='Write Python code to filter out pickings.' string='Python Code'
  • color Integer
  • count_move_all Integer
    compute='_compute_picking_count' string='All Moves (Estimate)'
  • count_move_assigned Integer
    compute='_compute_picking_count' string='Available Moves (Estimate)'
  • count_move_done Integer
    compute='_compute_picking_count' string='Moves Done Today (Estimate)'
  • count_move_late Integer
    compute='_compute_picking_count' string='Late Moves (Estimate)'
  • count_move_priority Integer
    compute='_compute_picking_count' string='Priority Moves (Estimate)'
  • count_move_release_ready Integer
    compute='_compute_picking_count' string='Release Ready Moves (Estimate)'
  • count_move_released Integer
    compute='_compute_picking_count' string='Released Moves (Estimate)'
  • count_move_waiting Integer
    compute='_compute_picking_count' string='Waiting Moves (Estimate)'
  • count_picking_all Integer
    compute='_compute_picking_count' string='All Transfers'
  • count_picking_assigned Integer
    compute='_compute_picking_count' string='Available Transfers'
  • count_picking_chain Integer
    compute='_compute_picking_chain' string='All Related Transfers'
  • count_picking_chain_done Integer
    compute='_compute_picking_chain' string='All Done Related Transfers'
  • count_picking_chain_in_progress Integer
    compute='_compute_picking_chain' string='In progress Related Transfers'
  • count_picking_done Integer
    compute='_compute_picking_count' string='Transfers Done Today'
  • count_picking_full_progress Integer
    compute='_compute_picking_count' help='The total number of pickings to achieve 100% of progress.' string='Full Progress'
  • count_picking_late Integer
    compute='_compute_picking_count' string='Late Transfers'
  • count_picking_priority Integer
    compute='_compute_picking_count' string='Priority Transfers'
  • count_picking_release_ready Integer
    compute='_compute_picking_count' string='Release Ready Transfers'
  • count_picking_released Integer
    compute='_compute_picking_count' string='Released Transfers'
  • count_picking_waiting Integer
    compute='_compute_picking_count' string='Waiting Transfers'
  • is_action_lock_allowed Boolean
    compute='_compute_is_action_lock_allowed' help="Technical field to check if the action 'Lock' is allowed."
  • is_action_sleep_allowed Boolean
    compute='_compute_is_action_sleep_allowed' help="Technical field to check if the action 'Sleep' is allowed."
  • is_action_unlock_allowed Boolean
    compute='_compute_is_action_unlock_allowed' help="Technical field to check if the action 'Unlock' is allowed."
  • is_action_wake_up_allowed Boolean
    compute='_compute_is_action_wake_up_allowed' help="Technical field to check if the action 'Wake Up' is allowed."
  • is_release_allowed Boolean
    compute='_compute_is_release_allowed' help="Technical field to check if the action 'Release Next Batch' is allowed."
  • last_done_picking_date_done Datetime
    compute='_compute_last_done_picking'
  • last_done_picking_id Many2one → stock.picking
    comodel_name='stock.picking' compute='_compute_last_done_picking' string='Last Done Transfer'
  • last_done_picking_name Char
    compute='_compute_last_done_picking'
  • max_auto_release Integer
    default=10 help='When clicking on the package icon, it releases X transfers minus on-going ones not shipped (X - Waiting). This field defines X.' string='Max Transfers to release'
  • name Char
    required=True
  • picking_chain_ids Many2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_chain' help='All transfers required to bring goods to the deliveries.'
  • picking_ids One2many → stock.picking
    comodel_name='stock.picking' inverse_name='release_channel_id' string='Transfers'
  • picking_type_ids Many2many → stock.picking.type
    domain="warehouse_id and [('warehouse_id', '=', warehouse_id), ('code', '=', 'outgoing')] or [('code', '=', 'outgoing')]" string='Operation Types' args: 'stock.picking.type', 'stock_release_channel_warehouse_rel', 'channel_id', 'picking_type_id'
  • release_forbidden Boolean
    string='Forbid to release this channel'
  • rule_domain Char
    default=[] help='Domain based on Transfers, filter for entering the channel.' string='Domain'
  • sequence Integer
    default=<expr>
  • state Selection
    default='open' help='The state allows you to control the availability of the release channel.\n* Open: Manual and automatic picking assignment to the release is effective and release operations are allowed.\n * Locked: Release operations are forbidden. (Assignement processes are still working)\n* Asleep: Assigned pickings not processed are unassigned from the release channel.\n' selection=[('open', 'Open'), ('locked', 'Locked'), ('asleep', 'Asleep')]
  • warehouse_id Many2one → stock.warehouse
    help='Warehouse for which this channel is relevant' index=True string='Warehouse' args: 'stock.warehouse'
Public methods (25)
  • action_lock(self)
  • action_move_all(self)
  • action_move_assigned(self)
  • action_move_done(self)
  • action_move_late(self)
  • action_move_priority(self)
  • action_move_release_ready(self)
  • action_move_released(self)
  • action_move_waiting(self)
  • action_picking_all(self)
  • action_picking_all_related(self)
    Open all chained transfers for released deliveries
  • action_picking_assigned(self)
  • action_picking_done(self)
  • action_picking_late(self)
  • action_picking_priority(self)
  • action_picking_release_ready(self)
  • action_picking_released(self)
  • action_picking_waiting(self)
  • action_sleep(self)
  • action_unlock(self)
  • action_wake_up(self)
  • assign_pickings(self)
    @api.model
  • assign_release_channel(self, picking)
    @api.model
  • get_action_picking_form(self)
  • release_next_batch(self)