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 returned allocation status).