SmartERP Documentation An Ashewa Technology Solutions Platform

Blind Cycle Counting & Tiered Governance Approvals

Segregated blind physical inventory counting, theoretical stock obfuscation, and two-tier variance approval workflows with mandatory CFO sign-off above $5,000.

1. Overview & Business Value#

This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Blind Cycle Counting & Tiered Governance Approvals within SmartERP.

Blind Cycle Counting & Governance Approvals#

{screenshot:blind-cycle-counting-and-governance-overview-dashboard}

2. Prerequisites & Security Access Groups#

  • Required Modules: stock, smarterp_wms_enterprise
  • Security Groups:
    • Warehouse Clerk (Technical ID: stock.group_stock_user)
    • Warehouse Manager (Technical ID: stock.group_stock_manager)
  • Master Data Dependencies: Multi-warehouse aisles, racks, shelves, bins, putaway rules, cycle count schedules, and barcode terminal profiles.

3. Step-by-Step Configuration & Execution#

Step 1: Navigating to the Module Interface#

  1. Log into your SmartERP instance at https://smarterp.et/odoo.
  2. Open the main App Switcher (grid icon in the top-left corner).
  3. Select the Inventory app icon.
  4. From the top navigation bar, open Inventory → Operations → Multi-Warehouse Operations / Putaway Rules / Wave Picking.

{screenshot:blind-cycle-counting-and-governance-app-switcher-navigation}

Step 2: Creating and Parameterizing Records#

  1. Click the New button in the top-left control panel.
  2. Complete the mandatory fields in the record form:
    • Source Location (Mandatory): Warehouse physical bin or staging zone
    • Destination Location (Mandatory): Target storage shelf or dispatch bay
    • Product & Quantity (Mandatory): Inventory items with standard units of measure
    • Operation Type (Mandatory): Internal transfer, putaway, wave pick, or delivery order
  3. Configure optional operational parameters and localized tags as required:
    • Barcode Scan Verification (Optional): Mandatory barcode scanning confirmation
    • Pallet / SSCC Package ID (Optional): Serialized shipping container code
    • Assigned Warehouse Equipment (Optional): Forklift, reach truck, or manual pallet jack
  4. Click the Save icon in the control bar to commit the record.

{screenshot:blind-cycle-counting-and-governance-record-creation-form}

Step 3: Validating and Processing Transactions#

  • State Transitions: Execute operational state progression (Draft Picking → Waiting Availability → Reserved → Wave Pick In Progress → Pack Checked → Done).
  • Ledger & System Impact: Updates stock valuation layers dynamically and adjusts inventory lot quantities across designated warehouse storage locations.
  • Audit Verification: Automated recording of author ID, timestamp, and immutable revision history.

{screenshot:blind-cycle-counting-and-governance-transaction-processing-state}

Physical Blind Count Obfuscation#

To guarantee audit integrity and prevent confirmation bias, warehouse counting personnel in security group smarterp_wms_governance.group_wms_counter:

  • Are strictly prevented from viewing book inventory (quantity) or variance amounts (inventory_diff_quantity).
  • Can only view the location, product, and input field inventory_quantity.

Two-Tier Variance Approval Workflow#

When a blind count is submitted:

  • Zero Variance: Automatically approved and applied.
  • Variance $< \$5,000$ (or 50,000 ETB): Routed to pending_supervisor. Requires sign-off from a Warehouse Supervisor (group_wms_supervisor).
  • Variance $\ge \$5,000$ (or 50,000 ETB): Routed to pending_finance. Standard approval buttons are disabled; sign-off requires a Finance Controller or CFO (group_wms_finance_approver).

Recount Justification Wizard#

If a supervisor or finance approver rejects an adjustment:

  1. The Recount Justification Wizard (stock.quant.reject.wizard) opens.
  2. The user selects a discrepancy category (Miscount, Damaged Goods, Misplaced Stock, Incorrect Lot).
  3. The reason and user notes are permanently stamped on x_rejection_reason.
  4. The record resets to rejected and appears on the counter's recount queue.

Inline Quality Control (QMS) Gates#

Incoming receipts for products flagged with x_requires_qc = True:

  • Are automatically intercepted upon receipt confirmation and routed to Quarantine / QC Hold.
  • A pending stock.quality.check record is generated.
  • Pass: Automatically generates an internal move from Quarantine to the directed storage bin.
  • Fail: Triggers return-to-vendor or scrap workflows with mandatory failure categorization.

4. Advanced Configuration Points#

  • Automated Actions & Scheduled Tasks (Crons):
    • Inventory: Cycle count schedule trigger (stock.ir_cron_cycle_count): Runs weekly to select locations for scheduled physical cycle counting
    • WMS: Auto-replenish forward pick bins (stock.ir_cron_replenish): Runs daily to trigger internal moves from bulk storage to picking faces
  • Custom Print Templates & Reports:
    • Warehouse Storage Bin Location Map & Occupancy
    • Stock Valuation Summary by Storage Location
    • Wave Picking & Packing Slip with Barcode Verification
  • Multi-Company Rules: Record-level security isolation under Company 1 (Ashewa Technology Solutions S.C.), preventing cross-company ledger leakage across parent and subsidiary legal entities.

5. Comprehensive Troubleshooting Matrix#

Error Symptom / ExceptionProbable Root CauseCorrective Action / Resolution
Stock Reservation Error: Insufficient available balanceRequested product quantity is already allocated to another confirmed order.Replenish pick location from bulk overstock or verify physical stock count.
Putaway Rule Conflict: Incompatible product storageAttempting to place hazardous or refrigerated goods in standard dry bin.Select a destination location configured for the product category specification.
Barcode Scan Mismatch: Scanned code does not match itemScanned barcode belongs to a different product variant or lot.Verify physical item label and scan the correct SKU barcode.
Last updated: 2026-10-30