TIP: You can type at any time to perform a new search.
Stock Cycle Count
stock_cycle_count · OCA/stock-logistics-warehouse
- Repository
- OCA/stock-logistics-warehouse · module folder · Try on Runboat
- Module version
- 1.0.3
- Category
- Warehouse Management
- Folder size
- 2.35 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/stock-logistics-warehouse
- Last tracking update
- 2026-08-07 08:42:50
- Authors
- Odoo Community Association (OCA), ForgeFlow
- Maintainers
- Odoo Community Association (OCA), ForgeFlow
- Committers
- Víctor Martínez, Weblate, ThiagoMForgeFlow, Do Anh Duy, OCA-git-bot, oca-ci, Arnau
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
This module provides the capability to execute a cycle count strategy in a warehouse through different rules defined by the user. Cycle count is an alternative to full wall-to-wall physical inventories in which little portions (stock locations) of the stock are selected to count on a regular basis. The system propose locations in which to perform a inventory adjustment every day based on a set of rules defined for the warehouse. In addition the system can propose Zero-Confirmations which are simple and opportunistic counts to check whether a locations has actually became empty or not. With this strategy it is possible to: - Remove the need to perform full physical inventories and to stop the production in the warehouse. - Measure the accuracy of the inventory records and improve it. - Correct inventory errors earlier and prevent them to become bigger.
Code Analysis ⓘ
Views touched (17)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
report_cyclecount |
report_cyclecount | ir.ui.view | qweb | New |
res_config_settings_view_form_cycle_adjustment |
res.config.settings.view.form.inherit.cycle.adjustment | res.config.settings | form | Inherits stock.res_config_settings_view_form |
stock_cycle_count_form_view |
stock.cycle.count.form | stock.cycle.count | form | New |
stock_cycle_count_rule_form_view |
stock.cycle.count.rule.form | stock.cycle.count.rule | form | New |
stock_cycle_count_rule_tree_view |
stock.cycle.count.rule.list | stock.cycle.count.rule | list | New |
stock_cycle_count_search_view |
stock.cycle.count.search | stock.cycle.count | search | New |
stock_cycle_count_tree_view |
stock.cycle.count.list | stock.cycle.count | list | New |
stock_location_accuracy |
stock_location_accuracy | ir.ui.view | qweb | New |
view_inventory_filter |
stock.inventory.filter - stock_cycle_count | stock.inventory | search | Inherits stock_inventory.stock_inventory_search_view |
view_inventory_form |
Inventory form view - cycle count extension | stock.inventory | form | Inherits stock_inventory.view_inventory_group_form |
view_inventory_graph |
stock.inventory.graph | stock.inventory | graph | New |
view_inventory_pivot |
stock.inventory.pivot | stock.inventory | pivot | New |
view_inventory_tree |
Inventory list view - cycle count extension | stock.inventory | tree | Inherits stock_inventory.view_inventory_group_tree |
view_location_form |
Location form - cycle count extension | stock.location | form | Inherits stock.view_location_form |
view_stock_move_line_form |
Stock Move Line Form - cycle count extension | stock.move.line | form | Inherits stock.view_move_line_form |
view_stock_move_line_tree |
Stock Move Line List - cycle count extension | stock.move.line | tree | Inherits stock_inventory.view_stock_move_line_inventory_tree |
view_warehouse_form |
Warehouse form - cycle count extension | stock.warehouse | form | Inherits stock.view_warehouse |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (11)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
auto_start_inventory_from_cycle_countBooleanhelp='If enabled, confirming a Cycle Count will start the related Inventory Adjustment.'string='Auto Start Inventory Adjustment from Cycle Count' -
inventory_adjustment_counted_quantitiesSelectionhelp='If enabled, confirming a Cycle Count will start the related Inventory Adjustment.'selection=[('counted', 'Default to stock on hand'), ('zero', 'Default to zero')]string='Inventory Adjustment Counted quantities from Cycle Count'
No public methods.
New fields (2)
-
auto_start_inventory_from_cycle_countBooleanhelp='If enabled, confirming a Cycle Count will start the related Inventory Adjustment.'readonly=Falserelated='company_id.auto_start_inventory_from_cycle_count'string='Auto Start Inventory Adjustment from Cycle Count' -
inventory_adjustment_counted_quantitiesSelectionhelp='If enabled, confirming a Cycle Count will start the related Inventory Adjustment.'readonly=Falserelated='company_id.inventory_adjustment_counted_quantities'string='Inventory Adjustment Counted quantities from Cycle Count'
No public methods.
New fields (11)
-
automatic_deadline_dateDatestring='Automatic Required Date'tracking=True -
company_idMany2one → res.companycomodel_name='res.company'default=<expr>required=Truestring='Company' -
cycle_count_rule_idMany2one → stock.cycle.count.rulecomodel_name='stock.cycle.count.rule'required=Truestring='Cycle count rule'tracking=True -
date_deadlineDatecompute='_compute_date_deadline'inverse='_inverse_date_deadline'store=Truestring='Required Date'tracking=True -
inventory_adj_countIntegercompute='_compute_inventory_adj_count' -
location_idMany2one → stock.locationcomodel_name='stock.location'domain="[('company_id', '=', company_id)]"required=Truestring='Location' -
manual_deadline_dateDatestring='Manual Required Date'tracking=True -
nameChar -
responsible_idMany2one → res.userscomodel_name='res.users'string='Assigned to'tracking=True -
stateSelectiondefault='draft'selection=[('draft', 'Planned'), ('open', 'Execution'), ('cancelled', 'Cancelled'), ('done', 'Done')]tracking=True -
stock_adjustment_idsOne2many → stock.inventorycomodel_name='stock.inventory'inverse_name='cycle_count_id'string='Inventory Adjustment'tracking=True
-
action_create_inventory_adjustment(self) -
action_view_inventory(self) -
create(self, vals_list)@api.model_create_multi -
do_cancel(self)
New fields (12)
-
accuracy_thresholdFloatdigits=(3, 2)string='Minimum Accuracy Threshold' -
activeBooleandefault=True -
apply_inSelectiondefault='warehouse'selection=[('warehouse', 'Selected warehouses'), ('location', 'Selected Location Zones.')]string='Apply this rule in:' -
currency_idMany2one → res.currencycomodel_name='res.currency'compute='_compute_currency_id'string='Currency' -
location_idsMany2many → stock.locationcolumn1='rule_id'column2='location_id'comodel_name='stock.location'relation='location_cycle_count_rule_rel'string='Zones where applied' -
nameCharrequired=True -
periodic_count_periodIntegerstring='Period in days' -
periodic_qty_per_periodIntegerdefault=1string='Counts per period' -
rule_descriptionCharcompute='_compute_rule_description' -
rule_typeSelectionrequired=Trueselection='_selection_rule_types'string='Type of rule' -
turnover_inventory_value_thresholdFloat -
warehouse_idsMany2many → stock.warehousecolumn1='rule_id'column2='warehouse_id'comodel_name='stock.warehouse'compute='_compute_warehouse_ids'readonly=Falserelation='warehouse_cycle_count_rule_rel'store=Truestring='Warehouses where applied'
-
compute_rule(self, locs)
New fields (4)
-
cycle_count_idMany2one → stock.cycle.countcomodel_name='stock.cycle.count'ondelete='restrict'string='Stock Cycle Count' -
inventory_accuracyFloataggregator='avg'default=Falsedigits=(3, 2)store=Truestring='Accuracy' -
prefill_counted_quantitySelectiondefault='counted'help='Allows to start with a pre-filled counted quantity for each lines or with all counted quantities set to zero.'selection=[('counted', 'Default to stock on hand'), ('zero', 'Default to zero')]string='Counted Quantities' -
responsible_idMany2onecompute='_compute_responsible_id'inverse='_inverse_responsible_id'readonly=Falsestore=Truetracking=True
-
action_force_done(self) -
action_state_to_done(self) -
action_state_to_in_progress(self) -
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (4)
-
cycle_count_disabledBooleanhelp='Define whether the location is going to be cycle counted.'string='Exclude from Cycle Count' -
loc_accuracyFloatcompute='_compute_loc_accuracy'digits=(3, 2)string='Inventory Accuracy' -
qty_variance_inventory_thresholdFloatstring='Acceptable Inventory Quantity Variance Threshold' -
zero_confirmation_disabledBooleanhelp='Define whether this location will trigger a zero-confirmation validation when a rule for its warehouse is defined to perform zero-confirmations.'string='Disable Zero Confirmations'
-
action_accuracy_stats(self) -
check_zero_confirmation(self) -
create_zero_confirmation_cycle_count(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (3)
-
counted_qtyFloatstring='Counted Quantity' -
line_accuracyFloatstring='Accuracy' -
theoretical_qtyFloatstring='Theoretical Quantity'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (3)
-
counts_for_accuracy_qtyIntegerdefault=1help='Number of latest inventories used to calculate location accuracy'string='Inventories for location accuracy calculation' -
cycle_count_planning_horizonIntegerhelp='Cycle Count planning horizon in days. Only the counts inside the horizon will be created.'string='Cycle Count Planning Horizon (in days)' -
cycle_count_rule_idsMany2many → stock.cycle.count.rulecolumn1='warehouse_id'column2='rule_id'comodel_name='stock.cycle.count.rule'relation='warehouse_cycle_count_rule_rel'string='Cycle Count Rules'
-
action_compute_cycle_count_rules(self)Apply the rule in all the sublocations of a given warehouse(s) and returns a list with required dates for the cycle count of each location -
cron_cycle_count(self)@api.model -
get_horizon_date(self)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
- Status
- Open migration PR — not merged yet for this version
- CI status
- checks failing
- Open since
- 267 days ago
- Last activity
- 120 days ago
- Repository
- OCA/stock-logistics-warehouse
- Pull request
- [17.0][MIG] stock_cycle_count: Migration to 17.0 (#2475)