# WakeCap Odoo — Dashboard Reference Document

**System:** Odoo 18.0 (Enterprise) · wakecap.odoo.com
**Company:** WakeCap Technologies Company
**Data captured:** June 2026 · Live figures for "Riyadh Refinery SRU – Technip"; other projects not individually pulled

---

## 1. Stores / Locations

### Warehouses — exact total: 7

| Name | Code |
|---|---|
| UAE - Main | UAE-M |
| UAE - Projects | UAE-P |
| KSA - Main | KSA-M |
| KSA - Projects | KSA-P |
| USA - Main | USA-M |
| USA - Projects | USA-P |
| Brazil-Main | Br-Ma |

### Locations — exact total: 328

By Odoo `usage` type: 205 internal, 87 view (project/store parents), 30 customer, 2 transit, 2 inventory (loss/adjust), 1 supplier, 1 production.

The 87 view locations are the project/store groupings. Each project typically nests three child locations mapping to the dashboard categories:

| Dashboard category | Odoo location name pattern | Odoo usage |
|---|---|---|
| Physical | …/Physical Store, …/Actual-Physical Store, …/Actual Store | internal or customer |
| Installation | …/Installation Store | internal |
| Quarantine | …/Quarantine Store | internal |

Naming is NOT perfectly consistent across projects ("Physical store", "Physical Store", "Actual-Physical Store", "Actual Store" all occur), so map by keyword match, not exact string.

Reference project — "Riyadh| ARAMCO Riyadh Refinery SRU Technip" (view location id 353), real figures:

| Store (category) | Location ID | Odoo usage | On-hand qty | Distinct products | Quant rows |
|---|---|---|---|---|---|
| Actual-Physical Store (Physical) | 354 | customer | 7,541 | 125 | 1,302 |
| Installation Store (Installation) | 355 | internal | 62 | 9 | 12 |
| Quarantine Store (Quarantine) | 356 | internal | 0 | 0 | 0 |

> Stock value (stock.quant.value) is access-restricted for this login — only quantities/counts available.

Other confirmed multi-package structures: "Khobar | Aramco RNGLF RIYAS" = PKG 1&2 (id 275), PKG5 (id 267), PKG3-NGMSA (id 345), each with its own Physical/Installation/Quarantine children. Dubai: "INNOVO - Beachfront Store" (id 137), "BESIX-DUT" (id 157).

---

## 2. Item-Level Breakdown per Store (Riyadh Refinery SRU)

### Physical Store (id 354) — 125 distinct products, 7,541 units. Top 17 by quantity:

| Item (code + description) | On-hand qty | UoM |
|---|---|---|
| [HLM-RCH-SCRW01] RACHET SCREW & WASHER | 2,000 | Units |
| [ASM-AST-3.7S-IECEX-001] Asset assembled 3.7 Safety - IECEx | 1,024 | Units |
| YELLOW SHELL'S-3M (Non-Vented) | 864 | Units |
| [ZIP-TIE-STEEL] ZIP TIE Type Steel | 754 | Units |
| [HLM-SHL-YL-3M] YELLOW SHELL'S-3M | 600 | Units |
| [PWR-ANC-ENRG] ANCHOR BATTERIES | 384 | Units |
| [ENC-ANC-SCRW001] ANCHOR SCREWS (new) | 384 | Units |
| [ITN-RJ-45-SHIELD] RJ45 CONNECTERS WITH SHIELD | 150 | Units |
| [ANC-INT-PCB2.6-0001] Assembled black anchor w/ internal antenna (PCB 2.6) | 129 | Units |
| [CMP-ZPT-IN01] ZIP TIE Indoor Type 1 | 100 | Units |
| [CMP-ZPT-OUT01] ZIP TIE Outdoor Type 1 | 100 | Units |
| [ITEPS-C2C-1.5MM-002] Rubber Cable 2 core (1.5mm2) Meter | 60 | Units |
| [ITEPS-C3C-1.5MM-012] Rubber Cable 3 core (1.5mm2) Meter | 60 | Units |
| WHITE SHELL'S-3M (Non-Vented) | 58 | Units |
| [ASM-AST-36S] Asset assembled 3.6 Safety | 50 | Units |
| [wir-cat-in] CAT6 UTP Network Cable 305 m Indoor | 50 | Units |
| [IT-EPS-G25MM-001] Gland 25mm – Metal | (value truncated in pull) | Units |

> Remaining ~108 products not individually exported this session; a stock.quant read_group by product_id on location 354 returns the full list.

### Installation Store (id 355) — 9 products, 62 units (complete list):

| Item | On-hand qty | UoM |
|---|---|---|
| [TR-CCTV-ATEX-001] CCTV Solar Trailer ATEX | 23 | Units |
| [NBE-5AC-Gen2] airMAX NanoBeam 5AC | 14 | Units |
| [TR-CCTV-001] CCTV Solar Trailer | 14 | Units |
| [ADP-WUS-001] Adapter World to US | 3 | Units |
| [LS-001] L Spanner | 2 | Units |
| [DP-DP-001] DP TO DP | 2 | Units |
| [DP-HDMI-001] DP TO HDMI CABLE | 2 | Units |
| [TL-EE-001] Electrical Extension | 1 | Units |
| [24-PSM-POE-001] Hikvision 24-Port Smart Managed PoE switch DS-3E1528HP-SI-24P2T2F | 1 | Units |

### Quarantine Store (id 356) — 0 items, 0 units (empty).

### Per-store totals

| Store | Distinct products | On-hand units |
|---|---|---|
| Physical | 125 | 7,541 |
| Installation | 9 | 62 |
| Quarantine | 0 | 0 |

### PO comparison — NOT AVAILABLE

Purchase module not installed (purchase = uninstalled, purchase_stock = uninstalled); purchase.order does not exist. A true PO-ordered-vs-on-hand comparison cannot be sourced from Odoo.

Closest proxy = incoming receipts (stock.picking type incoming) into this project: 3 done, 1 cancelled. Done receipt move lines (demand vs received):

| Product | Demand qty | Received qty |
|---|---|---|
| [IT-NET-RP-5AC-G2] Rocket Prism Outdoor AP RP 5AC Gen2 | 4 | 4 |
| [TR-CCTV-ATEX-001] CCTV Solar Trailer ATEX | 18 | 18 |

Most stock arrives via internal transfers (TX-… vouchers), not direct receipts — so there is no procurement "ordered" figure for the bulk of inventory.

---

## 3. Material Vouchers / Stock Moves

No dedicated "Material Voucher" model exists. MVs = standard inventory transfers.

| Concept | Odoo model | Notes |
|---|---|---|
| MV (header) | stock.picking | transfer/receipt/delivery document |
| MV lines | stock.move | 95 fields total |

### Key fields

| Purpose | stock.picking field | stock.move field |
|---|---|---|
| MV number | name (e.g. TX-KSA-MAIN/1611) | name |
| Status | state | state |
| Source location | location_id | location_id |
| Destination location | location_dest_id | location_dest_id |
| Operation type | picking_type_id | picking_type_id |
| Scheduled date | scheduled_date | date |
| Completion date | date_done | — |
| Deadline | — | date_deadline |
| Source ref | origin | origin |
| Partner | partner_id | partner_id |
| Warehouse | — | warehouse_id |

> No native project link field on stock.picking/stock.move. Project is DERIVED from the location's view-location tree.

### Status values — stock.picking.state (exact Odoo labels)

| Odoo value | Odoo label | Suggested dashboard label |
|---|---|---|
| draft | Draft | Draft |
| waiting | Waiting Another Operation | Pending |
| confirmed | Waiting | Pending |
| assigned | Ready | Pending |
| done | Done | Delivered |
| cancel | Cancelled | Cancelled |

stock.move.state adds: partially_available (Partially Available), waiting (Waiting Another Move); plus done=Done, assigned=Available, confirmed=Waiting Availability, draft=New, cancel=Cancelled.

### MV counts (exact) — Riyadh Refinery SRU (locations 353–356): 123 total

| Status | Count |
|---|---|
| Done (Delivered) | 79 |
| Cancelled | 41 |
| Draft | 2 |
| Ready (assigned / Pending) | 1 |

Reference — "RNGLF RIYAS" group (locations 267–278, 345–347): 955 total → Done 871, Cancelled 77, Ready 5, Confirmed 1, Draft 1.

### Custom Studio fields on stock.picking (segmentation)

Custom receipt pipeline x_studio_status_receipt_order: Created → Ordered → Shipped → At custom → Custom Cleared → Partially Received → Received. Also x_studio_receipt_type (Local-KSA / Local-UAE / China / International), x_studio_request_manager, x_studio_delivery_date (ETA), x_studio_cost_price, x_studio_dn_ (DN #), x_studio_rev, plus document/signature attachments.

---

## 4. Projects

No project.project (Project app) module installed. Projects represented two ways:

(a) Stock location hierarchy — each project = one view location with Physical/Installation/Quarantine children. Primary project dimension for inventory/MVs. Exact total of view-level locations: 87 (includes warehouse roots and a few non-project views: "Physical Locations", "Virtual Locations", "Partners", "WakeCap Team"). Regions span: Abu Dhabi, Dubai, Jeddah, Khobar, Jubail, Jizan, Riyadh, Madinah, Neom, Tabuk, Yanbu, Arizona/USA, Brazil. Representative projects: Riyadh Refinery SRU – Technip; Aramco RNGLF RIYAS (PKG1&2 / PKG5 / PKG3-NGMSA); Aramco Jafurah / Shaybah / Sinopec / Turaif; King Salman Park (MBL/Nesma/PMO); Qiddiya (Six Flags / Speed Park); Neom (Oxagon, Sindala, The Line, Trojena); Dubai INNOVO Beachfront; Dubai BESIX-DUT; Jeddah Stadium; Jeddah Tower (SBG); Opera House; ROSHN Al Arous.

(b) Sales Order Studio fields — sale.order carries a Project link (x_studio_many2one_field_HnAkU, many2one), x_studio_project_status (PO Status: Running, Bidding), x_studio_responsibile_saleperson, and forecast period open/close datetimes. Native sale.order.state: Quotation → Quotation Sent → Sales Order → Cancelled.

---

## 5. Licenses / Subscriptions

No license or subscription tracking module exists. Confirmed absent: subscription, sale_subscription, contract, license, sla, renewal. No model with activation/expiration/status fields.

- Module: none
- Field names: none (must be created)
- License types found: none as records
- Exact totals: 0 license records · 0 active · 0 expiring · 0 expired

Only related artifact: a product category named "License" in product.category (licenses may be sold as product lines), but with no lifecycle/expiry tracking. Any license panel must be backed by a new data source.

---

## 6. Other Relevant Modules / Fields (segmentation & filtering)

Installed apps (16): Discuss, Calendar, Quality Management, Knowledge, Contacts, CRM, Sales, Dashboards, Website, Surveys, Inventory, Quality, Barcode, Employees, Recruitment, Apps. Total installed modules: 161. Only WakeCap-authored module: studio_customization (all customization via Odoo Studio).

Product categories (product.category) — for item type / solution tagging. 40 categories including: Anchor-Main, Anchor-Accessories, Asset-Main, Asset-Accessories, Gateway-Main, Gateway-Accessories, Helmet-Main-3M, HELMET-MAIN-OTHER THAN 3M, Helmet-Accessories, Camera, Camera accessories, CCTV Trailer, CCTV Trailer ATEX, CCTV Trailer ATEX (AC Powered), CCTV Tower/Poles, Control room Consoles, Drone, Fob, ID Card, IT Equipment (+ CCTV / Networking / Power & Supply / Screens), License, Power-Solar, Printer, Tools & Consumables, Side Assets, Service, AVL, RND Testing HW.

Operation types (stock.picking.type) — 16 total: 5 incoming (RECEIPT-…), 7 internal (TRANSFER-…), 4 outgoing (DELIVERY-…), named per warehouse. Use picking_type_id.code (incoming/internal/outgoing) for MV-direction filtering.

Solution / requirement type: no native field. Infer from product category (Anchor / Asset / Helmet / Gateway / CCTV / etc.) or the Sales Order project link. x_studio_receipt_type (Local-KSA / Local-UAE / China / International) gives a logistics-origin filter.

---

## 7. Gaps — asked for but not present as standard data

1. Purchase Orders — Purchase module NOT installed; no purchase.order. PO-ordered-vs-received comparison cannot be sourced from Odoo. Only incoming-receipt quantities exist as a partial proxy.
2. License / Subscription tracking — no module, no model, no fields. Activation/expiration/status must be built from scratch or fed externally. (A "License" product category exists, but with no lifecycle tracking.)
3. Project module — no project.project / Project app. Projects are inferred from the location hierarchy and a Sales Order Studio link, not a first-class project object. No native project↔MV foreign key.
4. Stock value — stock.quant.value is access-restricted for this login. Monetary stock value per store/item could not be retrieved (only quantities). Requires an account with valuation access; stock_account is installed, so the data exists server-side.
5. "Material Voucher" as a named entity — does not exist; it is stock.picking. The user-facing "MV number" is stock.picking.name.
6. Consistent store naming — Physical/Installation/Quarantine sub-locations are named inconsistently across projects; category mapping must use keyword matching, not exact strings.
7. Solution / requirement type field — no dedicated field; derive from product category or sales-order project data.
8. Full per-item inventory beyond the reference project — only "Riyadh Refinery SRU" item-level data was pulled live; other projects' item lists, and the full 125-product Physical list, remain to be exported when needed.
