TIP: You can type at any time to perform a new search.
Stock Release Channels
stock_release_channel · OCA/stock-logistics-release-channel
- Repository
- OCA/stock-logistics-release-channel · module folder · Try on Runboat
- Module version
- 1.7.1
- Category
- Uncategorized
- Folder size
- 0.33 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/stock-logistics-release-channel
- Last tracking update
- 2026-08-07 08:43:05
- Authors
- Camptocamp, ACSONE SA/NV, Odoo Community Association (OCA), BCIM
- Maintainers
- Camptocamp, ACSONE SA/NV, Odoo Community Association (OCA), BCIM
- Committers
- Jacques-Etienne Baudoux, Alexandre Fayolle, Michael Tietz, SilvioC2C, Weblate, Ruchir Shukla, OCA-git-bot, oca-ci, Mmequignon
- Odoo dependencies
- Python dependencies
- openupgradelib, requests
- System dependencies
- None
- Required by
- sale_stock_release_channel, stock_release_channel_auto_release, stock_release_channel_carrier_alternative, stock_release_channel_cutoff, stock_release_channel_delivery, stock_release_channel_partner_address, stock_release_channel_plan, stock_release_channel_process_end_time, stock_release_channel_shipment_advice, stock_release_channel_shipment_lead_time, stock_release_channel_warehouse_calendar
- 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 ID | Name | Model | Type | Status |
|---|---|---|---|---|
res_config_settings_view |
res.config.settings | form | Inherits stock_available_to_promise_release.res_config_settings_view_form_stock | |
res_partner_form_view |
res.partner | form | 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 | form | Inherits stock.view_picking_form |
view_picking_internal_search |
stock.picking.internal.search | stock.picking | search | Inherits stock.view_picking_internal_search |
view_picking_release_tree |
stock.picking.release.tree | stock.picking | tree | Inherits stock_available_to_promise_release.view_picking_release_tree |
vpicktree_view_tree |
stock.picking.delivery.tree in (stock_release_channel) | stock.picking | tree | Inherits stock.vpicktree |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (6)
New fields (1)
-
release_channel_show_last_picking_doneBooleanhelp='In release channels dashboard, add link to last done picking and show transfer date'string='Channels dashboard - Show last delivery done'
No public methods.
New fields (1)
-
release_channel_show_last_picking_doneBooleanreadonly=Falserelated='company_id.release_channel_show_last_picking_done'
No public methods.
New fields (1)
-
stock_release_channel_idsMany2many → stock.release.channelcolumn1='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.
New fields (0)
No new fields.
Public methods (1)-
release_available_to_promise(self)
New fields (2)
-
delivery_dateDatecompute='_compute_delivery_date' -
release_channel_idMany2one → stock.release.channelcomodel_name='stock.release.channel'copy=Falseindex='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)
New fields (53)
-
activeBooleandefault=True -
batch_modeSelectiondefault='max'help='Max: release N transfers to have a configured max of X deliveries in progress.'required=Trueselection=[('max', 'Max')] -
codeTextdefault=DEFAULT_PYTHON_CODEgroups='base.group_system'help='Write Python code to filter out pickings.'string='Python Code' -
collect_pickingsBooleancompute='_compute_collect_pickings'help='Allows you to control if pickings are assigned to the release channel.'store=True -
colorInteger -
company_idMany2one → res.companycomodel_name='res.company'default=<expr>index=Truerequired=Truestring='Company' -
count_move_allIntegercompute='_compute_picking_count'string='All Moves (Estimate)' -
count_move_assignedIntegercompute='_compute_picking_count'string='Available Moves (Estimate)' -
count_move_doneIntegercompute='_compute_picking_count'string='Moves Done Today (Estimate)' -
count_move_lateIntegercompute='_compute_picking_count'string='Late Moves (Estimate)' -
count_move_priorityIntegercompute='_compute_picking_count'string='Priority Moves (Estimate)' -
count_move_release_readyIntegercompute='_compute_picking_count'string='Release Ready Moves (Estimate)' -
count_move_releasedIntegercompute='_compute_picking_count'string='Released Moves (Estimate)' -
count_move_waitingIntegercompute='_compute_picking_count'string='Waiting Moves (Estimate)' -
count_picking_allIntegercompute='_compute_picking_count'string='All Transfers' -
count_picking_assignedIntegercompute='_compute_picking_count'string='Available Transfers' -
count_picking_chainIntegercompute='_compute_picking_chain'string='All Related Transfers' -
count_picking_chain_doneIntegercompute='_compute_picking_chain'string='All Done Related Transfers' -
count_picking_chain_in_progressIntegercompute='_compute_picking_chain'string='In progress Related Transfers' -
count_picking_doneIntegercompute='_compute_picking_count'string='Transfers Done Today' -
count_picking_full_progressIntegercompute='_compute_picking_count'help='The total number of pickings to achieve 100% of progress.'string='Full Progress' -
count_picking_lateIntegercompute='_compute_picking_count'string='Late Transfers' -
count_picking_priorityIntegercompute='_compute_picking_count'string='Priority Transfers' -
count_picking_release_readyIntegercompute='_compute_picking_count'string='Release Ready Transfers' -
count_picking_releasedIntegercompute='_compute_picking_count'string='Released Transfers' -
count_picking_waitingIntegercompute='_compute_picking_count'string='Waiting Transfers' -
is_action_collect_restart_allowedBooleancompute='_compute_is_action_collect_restart_allowed'help="Technical field to check if the action 'Collect Restart' is allowed." -
is_action_collect_stop_allowedBooleancompute='_compute_is_action_collect_stop_allowed'help="Technical field to check if the action 'Collect Stop' is allowed." -
is_action_lock_allowedBooleancompute='_compute_is_action_lock_allowed'help="Technical field to check if the action 'Lock' is allowed." -
is_action_sleep_allowedBooleancompute='_compute_is_action_sleep_allowed'help="Technical field to check if the action 'Sleep' is allowed." -
is_action_unlock_allowedBooleancompute='_compute_is_action_unlock_allowed'help="Technical field to check if the action 'Unlock' is allowed." -
is_action_wake_up_allowedBooleancompute='_compute_is_action_wake_up_allowed'help="Technical field to check if the action 'Wake Up' is allowed." -
is_manual_assignmentBooleanargs: 'Manual assignment' -
is_release_allowedBooleancompute='_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_doneDatetimecompute='_compute_last_done_picking' -
last_done_picking_idMany2one → stock.pickingcomodel_name='stock.picking'compute='_compute_last_done_picking'string='Last Done Transfer' -
last_done_picking_nameCharcompute='_compute_last_done_picking' -
max_batch_modeIntegerdefault=10help='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' -
nameCharrequired=True -
open_picking_idsOne2many → stock.pickingcomodel_name='stock.picking'domain=[('state', 'not in', ('done', 'cancel'))]inverse_name='release_channel_id'readonly=Truestring='Open Transfers' -
partner_idsMany2many → res.partnercheck_company=Truecolumn1='channel_id'column2='partner_id'comodel_name='res.partner'context={'active_test': False}relation='res_partner_stock_release_channel_rel'string='Partners' -
picking_chain_idsMany2many → stock.pickingcomodel_name='stock.picking'compute='_compute_picking_chain'help='All transfers required to bring goods to the deliveries.' -
picking_idsOne2many → stock.pickingcheck_company=Truecomodel_name='stock.picking'inverse_name='release_channel_id'string='Transfers' -
picking_type_idsMany2many → stock.picking.typedomain="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_releaseBooleanhelp='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_forbiddenBooleanstring='Forbid to release this channel' -
release_modeSelectiondefault='batch'required=True args: [('batch', 'Batch (Manual)')] -
rule_domainChardefault=[]help='Domain based on Transfers, filter for entering the channel.'string='Domain' -
sequenceIntegerdefault=<expr> -
show_last_picking_doneBooleancompute='_compute_show_last_picking_done' -
stateSelectiondefault='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_wakeupSelectiondefault='open'help='The state of the channel upon waking it up'required=Trueselection=[('open', 'Open'), ('locked', 'Locked')] -
warehouse_idMany2one → stock.warehousecheck_company=Truehelp='Warehouse for which this channel is relevant'index=Truestring='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)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)
Loading…
Loading…