Procurement App
Purpose: Manage material catalog, inventory, stock allocation, and local procurement when stock is unavailable.
Responsibilities
Maintain material catalog (chargers, cables, mounting hardware, electrical components)
Track stock levels per zone
Check material availability for installations
Allocate materials from zone stock to specific installations
Create local procurement requests when stock is insufficient
Manage vendor directory
Coordinate with Finance for vendor payments
Dependencies
installations — MaterialAllocation and ProcurementRequest are linked to installations
finance — Vendor payment triggered after local procurement
accounts — Procurement staff, zone-based stock locations
Key Models
Material — Catalog item with SKU, category, and unit of measurement.
MaterialStock — Inventory levels per material per zone. Includes reorder thresholds.
MaterialAllocation — Records material allocated to a specific installation. Tracks dispatch and delivery status.
ProcurementRequest — Request to procure materials locally when zone stock is insufficient. Tracks cost estimates and vendor assignment.
Vendor — Local vendors for material procurement. Stores payment details (UPI ID, bank account).
Business Rules
Stock is zone-scoped — an installation in Zone A can only use stock from Zone A.
When stock falls below
reorder_level, an alert should be generated (future: auto-procurement request).Local procurement requires a vendor to be assigned before proceeding.
Estimated cost must be provided before procurement is approved.
After materials are received, actual cost is recorded for Finance to process payment.
Materials can be returned to stock if an installation is cancelled (via
returnedallocation status).