# CoreERP — Warehouse and Inventory Guide
**Roles:** Store Manager, Stores Officer, Warehouse Staff, Procurement Manager, Finance Manager  
**Version:** Phase 21 (July 2026)

---

## Table of Contents

1. [Items, Categories, Units, and Aliases](#1-items-categories-units-and-aliases)
2. [Warehouses and Stock Balances](#2-warehouses-and-stock-balances)
3. [Stock Movements Overview](#3-stock-movements-overview)
4. [GRN — Stock In](#4-grn--stock-in)
5. [Gate Pass — Stock Out](#5-gate-pass--stock-out)
6. [Serial Number Tracking](#6-serial-number-tracking)
7. [Reorder Alerts and Stock Reports](#7-reorder-alerts-and-stock-reports)
8. [Critical Rules](#8-critical-rules)

---

## 1. Items, Categories, Units, and Aliases

### Items

**Navigate to:** Sidebar → Items

An Item is any product the company buys or sells.

**Key Item Fields:**
| Field | Purpose |
|-------|---------|
| Item Code | Unique reference code |
| Name | Product name |
| Category | Grouping for reporting |
| Unit | Unit of measure (pcs, kg, litres, etc.) |
| Reorder Level | Minimum stock quantity before alert triggers |
| Selling Price | Default selling price |
| Cost Price | Default purchase cost |
| Is Serialized | Whether the item is tracked by serial number |

### Categories

**Navigate to:** Sidebar → Item Categories

Used to group items for reports. Examples: Electronics, Office Supplies, Chemicals.

### Units of Measure

**Navigate to:** Sidebar → Units

Define all units (e.g., Pieces, Boxes, Cartons, Kilograms). An item can only have one primary unit.

### Item Aliases

**Navigate to:** Sidebar → Item Aliases

Aliases allow an item to be found by alternative names or codes (e.g., supplier part codes, trade names). Useful when the item search needs to recognise multiple names.

---

## 2. Warehouses and Stock Balances

### Warehouses

**Navigate to:** Sidebar → Warehouses

Each warehouse is a physical storage location. The system maintains separate stock balances per warehouse per item.

**Key Points:**
- Stock balances are maintained in the `warehouse_item_balances` table.
- Each balance record holds `quantity` for one item in one warehouse.
- Stock can be transferred between warehouses using a **Stock Transfer**.

### Viewing Current Stock

**Navigate to:** Sidebar → Inventory Reports → Stock Valuation (or Stock Reports)

Shows current quantity and value per item per warehouse.

### Stock Adjustments

**Navigate to:** Sidebar → Stock Adjustments

Used to correct stock when there is a discrepancy between the system count and the physical count.

- A positive adjustment **increases** stock.
- A negative adjustment **decreases** stock.
- Adjustments require authorisation (Store Manager).
- Always document the reason for the adjustment.

### Stock Transfers

**Navigate to:** Sidebar → Stock Transfers

Moves stock from one warehouse to another. The total quantity across warehouses remains the same.

---

## 3. Stock Movements Overview

| Event | Stock Effect |
|-------|-------------|
| GRN Posted | **+Increase** in receiving warehouse |
| Gate Pass Released | **-Decrease** in source warehouse |
| Stock Adjustment (positive) | +Increase |
| Stock Adjustment (negative) | -Decrease |
| Stock Transfer | -Decrease source, +Increase destination |
| Opening Balance (if entered) | +Increase (initial setup only) |

> **Nothing else affects stock.** A Sales Order, Dispatch, Supplier Invoice, Tax Invoice, or Customer Receipt does NOT change stock quantities.

---

## 4. GRN — Stock In

See full details in **PURCHASE_WORKFLOW_GUIDE.md**.

**Summary:**
1. GRN is created when goods arrive from a supplier.
2. Enter quantities **actually received** (not ordered).
3. Select the receiving **Warehouse**.
4. For serialized items: capture each serial number.
5. Approve → **Post** the GRN.

**Result:** Stock quantity increases in the selected warehouse. GL journal created.

---

## 5. Gate Pass — Stock Out

A Gate Pass authorises the physical release of goods from the warehouse.

**Navigate to:** Sidebar → Gate Passes (created from a Dispatch)

**Process:**
1. Dispatch is created by Sales (linked to an approved Sales Order).
2. Gate Pass is generated from the Dispatch.
3. Warehouse Staff prepares the goods.
4. Store Manager or authorised person physically verifies the goods.
5. Store Manager **Releases** the Gate Pass.

**CRITICAL: When Gate Pass is Released:**
- Stock quantity **decreases permanently** in the source warehouse.
- This is the only event that reduces stock for sales.
- Verify quantities physically before releasing.
- If quantities are wrong at this stage, contact Sales and Finance to correct.

**Status Flow:** Draft → Approved → **Released**

---

## 6. Serial Number Tracking

Serial number tracking allows the company to know the exact location and status of each individual unit of a serialized item.

### Setting Up Serialized Items

1. When creating or editing an Item, set **Is Serialized = Yes**.
2. Once set, every receipt and sale of this item must have serial numbers captured.

### Receiving Serialized Items (GRN)

When posting a GRN for a serialized item:
1. After entering the quantity, a serial number entry field appears for each unit.
2. Enter or scan the serial number for each unit individually.
3. All serial numbers must be entered before the GRN can be approved.
4. On posting, each serial record is created with status **In Stock**.

### Opening Serial Assignment

If the company already holds serialized stock that was not received through a GRN:
1. Use the **Opening Balance / Serial Import** function to assign serial numbers to existing stock.
2. Each serial is assigned to a warehouse and given status **In Stock**.
3. Contact the Administrator if serial numbers need to be bulk-imported.

### Selling / Releasing Serialized Items

When a Gate Pass is released for a serialized item:
1. The system prompts for the serial numbers being sent out.
2. Select or scan the serial numbers to be released.
3. On Gate Pass release, those serials change status to **Sold** or **Released**.

**Key Rule:** You can only release serial numbers that are currently **In Stock**. You cannot sell a serial number that does not exist in the system or is already sold.

### Serial Number Report

**Navigate to:** Sidebar → Inventory Reports → Serial Numbers

- Filter by item, warehouse, or status (In Stock, Sold, Released).
- Use this to locate any specific serial number.
- Useful for warranty claims, customer queries, or audit purposes.

### Serial Status Reference

| Status | Meaning |
|--------|---------|
| In Stock | Physically present in a warehouse |
| Sold / Released | Left the warehouse via Gate Pass |
| Transferred | Moved between warehouses |

---

## 7. Reorder Alerts and Stock Reports

### Reorder Alerts

**Navigate to:** Sidebar → Inventory Reports → Reorder Alerts

Shows all items where `current_quantity <= reorder_level`.

**Action Required:** Raise a Purchase Request for any item showing on the reorder alert report.

**Frequency:** Check reorder alerts daily (Warehouse Staff) or at minimum every Monday morning.

### Stock Valuation Report

**Navigate to:** Sidebar → Inventory Reports → Stock Valuation

Shows for each item/warehouse:
- Current quantity
- Cost price
- Total value (quantity × cost price)

Use for: month-end stock value reporting, insurance valuation, management reporting.

### Stock Movement Report

**Navigate to:** Sidebar → Inventory Reports → Stock Movement

Shows all inflows and outflows for each item over a selected date range.

Use for: tracking which items moved, when, and by how much.

### Stock Aging Report

**Navigate to:** Sidebar → Inventory Reports → Stock Aging

Shows how long items have been in stock (30/60/90+ days). Highlights slow-moving inventory.

---

## 8. Critical Rules

> **RULE 1: Stock only enters the system via a Posted GRN.**

> **RULE 2: Stock only leaves the system via a Released Gate Pass.**

> **RULE 3: Never post a GRN for goods not physically received.**

> **RULE 4: Never release a Gate Pass for goods not physically counted and verified.**

> **RULE 5: For serialized items, every unit must have a unique serial number. Duplicate serial numbers are not allowed.**

> **RULE 6: Stock adjustments require documentation and Store Manager authorisation. Do not adjust stock without a physical count discrepancy reason.**

---

*See also: PURCHASE_WORKFLOW_GUIDE.md for GRN details.*  
*See also: SALES_WORKFLOW_GUIDE.md for Gate Pass in the sales context.*
