Vehicle Indent & Auction — FRD

Vehicle Indent & Auction · FRD

RK

Functional Requirements Document

This FRD covers the end-to-end workflow for raising indents, running auctions, awarding suppliers, and allocating vehicles for both Client and Contract indent types. It is the functional contract for the Vehicle Indent & Auction module.

1. Actors & Roles

  • Branch Ops — raises indents (Client / Contract), monitors status, allocates vehicles.
  • Auction Manager — creates the auction window, monitors bids, awards the winning supplier.
  • Registered Supplier — receives notification, places bids during the open window.
  • Walk-in Supplier — invited explicitly to bid on specific indents.
  • Control Tower — observes SLA, TAT and exceptions across all indents.

2. Indent Creation

On the listing page, Create Indent opens a single-select chooser between Client and Contract. The form below adapts to the selected kind.

2.1 Client Indent

FieldBehaviour / RuleSource
Client Code *Select from master. Triggers auto-fetch of name and addresses.Client master
Client NameRead-only; auto-fetched.Client master
Address *Required dropdown when client has multiple addresses.Client master
Pincode / City / StateAuto-fetched from the chosen address.Client master
Movement TypeFM / MM / LM dropdown per requirement row.User input
Branch CodeSelected branch raising the requirement.Branch master
From / ToBranch or Customer Location. If Branch → branch code required; if Customer → address dropdown required.User input
Requirement DateMandatory per row.User input
Vehicle Size / Count / Body32ft or 40ft, count ≥ 1, Body: Open / Closed / Refrigerated / Flatbed.User input
Multiple rowsAdd Row supported; tabular summary shown below the form.UI

2.2 Contract Indent

FieldBehaviour / RuleSource
Movement TypeLocal / Linehaul.User input
Vehicle Type32 Feet / 40 Feet.User input
Body TypeOpen / Closed / Refrigerated / Flatbed.User input
CapacityAuto-fetched from vehicle type (32ft → 16T, 40ft → 26T).Vehicle master
Requirement Date & TimeMandatory.User input
Requestor BranchMandatory; identifies the originating branch.Branch master
Origin / Via / DestinationEach leg supports Branch or Customer Location with the same address rules as Client. Multiple Via legs are allowed.User input
Total Distance / TATCaptured leg-wise; bidding for Linehaul is on a Per KM basis.Derived / input

3. Auction Lifecycle

  • Status flow: Pending → Auction Created → Auction InProgress → Awarded → Vehicle Allocated → Trip Created → Trip in transit → Trip Closed → Closed.
  • Auction window is defined by Start and End datetime. End must be strictly after Start.
  • Registered suppliers receive an automatic invite; walk-in suppliers can be added explicitly to a specific auction.
  • For Contract (Linehaul) indents, the bid amount is captured as Per KM and rolled up to a total value using the route distance.
  • Awarded supplier is highlighted in the bid table and the Route / Lane column shows the awarded route when an indent has more than one vehicle.

4. Allocation & Trip

  • After award, the supplier is required to allocate vehicle number, driver name and contact within the SLA window.
  • Replacement indents must carry the existing vehicle number being replaced.
  • Once allocation is confirmed, the indent transitions to Trip Created and is handed off to the Trip module.

5. Route Visibility Rules

  • When totalVehicleCount > 1, the Bidding Details and Awarded panels render a Route / Lane column so bids are unambiguously matched to a vehicle line.
  • Route strings are cleaned of the trailing '(Origin, Via and Destination)' annotation before display.
  • Local movements show 'Branch Local Operation' instead of an inter-city route.

6. Notifications

  • Indent creation, auction start, new bid, award and allocation events generate in-app notifications via the bell.
  • Notifications are grouped by Vehicle Indent and Supplier Relationship categories.
  • Clicking a notification deep-links to the relevant indent or auction view.

7. Validation Rules

  • Create Indent cannot be submitted unless required fields are filled and at least one vehicle row exists.
  • Auction End must be after Auction Start.
  • Bid amount must be a positive number; Per-KM rate must be > 0 for Linehaul Contract auctions.
  • Awarded action is enabled only when the auction is in InProgress or Closed state.

8. Data Model (logical)

  • Indent: id, requestType (Client | Contract), indentType (New | Replacement), status, vehicles[], origin/via/destination, branch, audit.
  • VehicleLine: count, vehicleType, body, routeType, route, distanceKm, tatHours, validFrom/Till, existingVehicleNo?
  • Bid: supplier, vehicleNo?, amount (or perKm), bidAt, status (Active | Awarded | Rejected), isRegistered.

9. Status Transitions

Pending
  └─► Auction Created ──► Auction InProgress ──► Awarded
                                                   └─► Vehicle Allocated
                                                         └─► Trip Created ──► Trip in transit ──► Trip Closed ──► Closed

10. Exceptions

  • No bids received before auction end → auction marked Closed (No Award); ops can re-publish.
  • Awarded supplier fails to allocate within SLA → indent reverts to Awarded with a flag, escalation notification fires.
  • Trip cancelled mid-transit → status moves to Closed with reason captured in remarks.

11. Acceptance Criteria

  • All field validations behave as defined in §2 and §7.
  • Listing, View and Auction pages reflect only Client / Contract request types (Adhov is retired).
  • FRD and PRD links are reachable from the Vehicle Indent & Auction nav group.

12. Out of Scope

  • Driver onboarding and document expiry — handled in Supplier Relationship.
  • Invoice generation and payouts — handled in Finance module.