Skip to main content
Version: MNSR

Requisition and Procurement

Author(s)

  • Ramit Ray

Last Updated Date

2025-05-07


SRS References

  • 3.2.1
  • 3.2.2
  • 3.2.3

Version History

VersionDateChangesAuthor
1.02025-05-07Initial draftRamit Ray

Feature Overview

Objective:
To manage material requisitions and procurement activities with a clear workflow from request initiation to vendor notification, ensuring traceability and timely execution.

Scope:
This module includes:

  • Creation of material requisitions by employees.
  • Approval process by designated authorities.
  • Purchase order generation by the procurement team.
  • Notification and dispatch coordination with vendors.

Dependencies:

  • Vendor Master Data
  • Item/Material Master Data
  • Approver Mapping

Requirements

  1. System must allow employees to create material requisitions.
  2. Each requisition must have a unique system-generated Requisition Number.
  3. Approval workflow must support approve, reject, and request modifications.
  4. Approved requisitions should convert to Purchase Orders.
  5. Vendors must be notified with PO details.
  6. Requisition status must be tracked and stored for auditing.
  7. Requisition closure should occur post PO issuance.

Design Specifications

  • UI/UX Design:
    (To be added: Screens for Requisition Form, Approval Dashboard, PO Generation Page)

  • Data Models:

    public record MaterialRequisition
    {
    public int Id { get; init; }
    public string RequisitionNumber { get; init; }
    public string ItemDescription { get; init; }
    public int Quantity { get; init; }
    public string Purpose { get; init; }
    public string DepartmentOrMachineId { get; init; }
    public string RequestedByUserId { get; init; }
    public string ApprovalStatus { get; set; }
    public DateTime CreatedDate { get; init; }
    }

    public record PurchaseOrder
    {
    public int Id { get; init; }
    public string PONumber { get; init; }
    public string VendorId { get; init; }
    public List<POItem> Items { get; init; }
    public string PaymentTerms { get; init; }
    public string DeliveryTerms { get; init; }
    public DateTime CreatedDate { get; init; }
    }
  • API Interfaces:

    EndpointMethodParametersResponseStatus Codes
    /api/v1/requisitionsPOSTRequisition dataRequisitionNumber201, 400, 500
    /api/v1/requisitions/{id}PUTRequisition ID, updated dataUpdated Requisition200, 404, 500
    /api/v1/requisitions/approvePOSTApproval decisionStatus Message200, 400, 500
    /api/v1/poPOSTPO data including items, vendor, termsPONumber201, 400, 500
  • Third-Party Integrations:

    • Email service or Notification Gateway for Vendor communications.
  • Workflow:

    1. Employee logs in and raises requisition.
    2. Approver gets notified and reviews the request.
    3. Based on decision, request is approved, rejected, or sent back.
    4. Procurement team converts approved requisition to PO.
    5. PO is sent to vendor; goods are dispatched.
    6. Requisition status is marked as Closed post PO issue.

Development Tasks & Estimates

NoTask NameEstimate (Hours)DependenciesNotes
1Requisition Form UI & Validation8 hrsItem Master Data
2Approval Workflow Integration10 hrsApprover Mapping
3PO Generation Logic & UI12 hrsVendor Master Data
4Notification Integration (Email/API)6 hrsSMTP/Notification Engine
5Backend Models & DB Schema8 hrs
6Total44 hrs

Testing & Quality Assurance

  • Unit Tests:

    • Validate Requisition creation.
    • Validate PO generation.
  • Integration Tests:

    • Approval flow end-to-end.
    • Email dispatch to vendor.
  • Acceptance Criteria:

    • Requisitions can be created, approved, and closed properly.
    • POs must be generated only after valid approvals.
    • Audit trail must capture timestamps and user actions.
  • Testing Tools:

    • Postman for API Testing
    • Selenium (optional) for UI flows
    • Xunit/NUnit for backend testing

Deployment Considerations

  • Configuration Changes:

    • Add SMTP or Email Gateway configurations for vendor notifications.
    • Feature toggles for enabling/disabling procurement.
  • Rollout Plan:

    • Deploy on staging with internal procurement team testing.
    • Move to production post user training and dry run.

Risks & Mitigations

RiskImpactLikelihoodMitigation Strategy
Approval delays due to user SLAMediumHighAuto-reminders and escalation notification
Vendor email bounce/undeliveredHighMediumRetry mechanism and alternate notification
Incomplete Master DataMediumHighPre-checks and alerts during requisition flow

Review & Approval

  • Reviewer: [Reviewer Name]

  • Approval Date: [To be filled upon approval]


Notes

  • Payment processing is handled in the separate Accounts Module.
  • Vendor registration is managed via Vendor Management Module.