| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/stock-logistics-release-channel |
| GIT | |
| GIT | https://github.com/OCA/stock-logistics-release-channel.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/stock-logistics-release-channel/tree/18.0/stock_release_channel |
| VERSION | |
| VERSION | 1.7.1 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV, BCIM |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV, BCIM |
| COMMITTERS | |
| COMMITTERS | Alexandre Fayolle, Jacques-Etienne Baudoux, Ruchir Shukla, Weblate, OCA-git-bot, Michael Tietz, SilvioC2C, oca-ci, Mmequignon |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/stock-logistics-release-channel |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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) |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
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'
No public methods.
release_channel_show_last_picking_done
Boolean
readonly=False
related='company_id.release_channel_show_last_picking_done'
No public methods.
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'
No public methods.
No new fields.
Public methods (1)release_available_to_promise(self)
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
assign_release_channel(self)
assign_release_channel_on_all_need_release(self)
release_available_to_promise(self)
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
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'
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)
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)
assign_release_channel(self, picking)
get_action_picking_form(self)
release_next_batch(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/wms |
| GIT | |
| GIT | https://github.com/OCA/wms.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/wms/tree/16.0/stock_release_channel |
| VERSION | |
| VERSION | 3.1.2 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV, BCIM |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV, BCIM |
| COMMITTERS | |
| COMMITTERS | Sté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 | |
| WEBSITE | https://github.com/OCA/wms |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
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'
No public methods.
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'
No public methods.
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'
No public methods.
No new fields.
Public methods (1)release_available_to_promise(self)
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
assign_release_channel(self)
assign_release_channel_on_all_need_release(self)
release_available_to_promise(self)
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
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'
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)
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)
assign_release_channel(self, picking)
get_action_picking_form(self)
release_next_batch(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/wms |
| GIT | |
| GIT | https://github.com/OCA/wms.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/wms/tree/14.0/stock_release_channel |
| VERSION | |
| VERSION | 2.3.1 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Jacques-Etienne Baudoux, Sébastien Alix, Thierry Ducrest, Weblate, OCA-git-bot, Michael Tietz, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/wms |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
No new fields.
Public methods (1)release_available_to_promise(self)
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'
assign_release_channel(self)
assign_release_channel_on_all_need_release(self)
release_available_to_promise(self)
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'
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)
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)
assign_release_channel(self, picking)
get_action_picking_form(self)
release_next_batch(self)