Purchase Module – Detailed Functional & Database Documentation
This document provides a detailed and structured explanation of the Purchase Module,
covering the functional purpose of each stage (PR, RFQ, PO, MRA, GRN), database tables,
relationships, and the complete flow of the purchase lifecycle.
1. High-Level Overview of Purchase Lifecycle
• **PR (Purchase Requisition)** – Internal request to purchase items/services.
• **RFQ (Request for Quotation)** – Sent to vendors for quotations.
• **PO (Purchase Order)** – Final order issued to selected vendor.
• **MRA (Material Receipt Acknowledgement)** – Materials physically received at
gate/stores.
• **GRN (Goods Receipt Note)** – Materials accepted after QC verification.
2. Detailed Entity Descriptions
Purchase Requisition (PR)
A PR is an internal document raised by a department requesting procurement of goods or
services. Includes item details, quantities, specs, due dates, and justification. It initiates the
procurement workflow.
Request for Quotation (RFQ)
An RFQ is created after PR approval and sent to multiple vendors. Vendors submit
quotations. This allows comparison, negotiation, and audit tracking.
Purchase Order (PO)
A legally binding document issued to the selected vendor after RFQ evaluation. Contains
agreed pricing, terms, delivery schedule, and item details.
MRA – Material Receipt Acknowledgement
Used when materials physically arrive at the organization. Captures received quantity,
receiver details, and timestamps.
GRN – Goods Receipt Note
Represents QC-verified receipt of goods. Accepted quantities update inventory and trigger
accounting and 3-way matching.
3. Database Structures
3.1 Purchase Requisition (PR)
Table: el_purchase_requisition
Label Mandatory DB Column Data Type Nullable Remarks
Code Yes code VARCHAR(2 No Unique at
4) company
level
(Format:
PR-XXXX)
Date Yes - - No Auto from
created_dt;
not stored
Due Date No due_dt VARCHAR(1 Yes
50)
Department Yes - - No Derived
from
employee
dept
Status Yes apr_state VARCHAR(2 No Enum: Draft,
4) Approved,
Rejected
Table: el_pr_item
Label Mandatory DB Column Data Type Nullable Remarks
PR Yes pr_id VARCHAR(3 No FK →
6) Purchase
Requisition
Item Yes item_id VARCHAR(3 No
6)
UOM No uom VARCHAR(3 Yes
6)
Quantity Yes qty - No
Due Date Yes due_dt VARCHAR(2 No
4)
3.2 RFQ – Request for Quotation
Table: el_purchase_rfq
Label Mandatory DB Column Data Type Nullable Remarks
RFQ No Yes no VARCHAR(2 No Unique code
4) RFQ-XXXX
Date Yes - - No Auto via
created_dt
Due Date No due_dt VARCHAR(1 Yes
50)
Department Yes - - No From
employee
dept
Status Yes apr_state VARCHAR(2 No Draft,
4) Published,
Awarded,
Expired,
Withdraw
Terms & No tnc_group_id VARCHAR(3 Yes FK → T&C
Conditions 6) Group
Table: el_rfq_item
Label Mandatory DB Column Data Type Nullable Remarks
RFQ Yes rfq_id VARCHAR(3 No FK → RFQ
6)
Item Yes item_id VARCHAR(3 No
6)
UOM Yes uom VARCHAR(3 Yes
6)
Quantity Yes qty - No
Due Date Yes due_dt VARCHAR(2 No
4)
Remarks No remark VARCHAR(1 Yes
50)
Table: el_rfq_item_src
Label Mandatory DB Column Data Type Nullable Remarks
RFQ Item Yes rfq_item_id VARCHAR(3 No FK → RFQ
6) item
PR Item Yes pr_item_id VARCHAR(3 No FK → PR
6) item
Req Qty Yes req_qty VARCHAR(3 Yes
6)
Allocated Yes alloc_qty INT Yes Default 0
Qty
Table: el_rfq_vendor
Label Mandatory DB Column Data Type Nullable Remarks
RFQ Yes rfq_id VARCHAR(3 No
6)
Vendor Yes bp_id VARCHAR(3 No FK →
6) Business
Partner
(Vendor)
Terms No tnc_group_id VARCHAR(3 Yes
6)
Quote Yes rfq_sub_dt DATE No
Submitted
Date
Total Yes tot_amt DECIMAL(1 No
Amount 5,2)
Shipping No ship_charge DECIMAL(1 Yes
5,2)
Packing No pack_charge DECIMAL(1 Yes
5,2)
Insurance No ins_charge DECIMAL(1 Yes
5,2)
3.3 Purchase Order (PO)
Table: el_purchase_order
Label Mandatory DB Column Type Nullable Remarks
PO No Yes no VARCHAR(2 No Format:
4) PO-XXXX
Warehouse No wh_id VARCHAR(3 Yes
6)
Workstation No ws_id VARCHAR(3 Yes
6)
Type Auto type - - Normal/Sub-
Contract
(auto based
on source)
Date Yes - - No From
created_dt
Due Date No due_dt DATE Yes
Vendor Yes bp_id VARCHAR(3 No
6)
Status Yes apr_state VARCHAR(2 No Draft,
4) Published,
Awarded,
Withdraw
Terms No tnc_group_id VARCHAR(3 Yes
6)
3.4 MRA – Material Receipt Acknowledgement
Table: MRA Header
Label Mandatory Column Type Nullable Remarks
MRA No Yes no VARCHAR(2 No Unique
4)
PO Yes po_id VARCHAR(3 No
6)
Received By Yes received_use VARCHAR(3 No
r 6)
Received Yes received_dt DATETIME No
Date
Status Yes apr_state VARCHAR(2 No
4)
Remarks No remarks VARCHAR(1 Yes
50)
3.5 GRN – Goods Receipt Note
Table: GRN Header
Label Mandatory Column Type Nullable Remarks
GRN No Yes no VARCHAR(2 No Format:
4) GRN-XXXX
PO No po_id VARCHAR(3 Yes
6)
MRA No mra_id VARCHAR(3 Yes
6)
Inspected By Yes inspected_us VARCHAR(3 No
er_id 6)
Inspection Yes inspected_dt DATETIME No
Date
Status Yes apr_state VARCHAR(2 No Draft →
4) Inspected →
Accepted/Re
jected
4. Complete Example Flow
1. **PR Creation** – Department raises PR for 10 units of Item A.
2. **PR Approval** – Manager approves; procurement converts PR into RFQ.
3. **RFQ Issued** – RFQ sent to Vendor X, Y, Z.
4. **Vendor Quotes** – Vendor X quotes lowest price.
5. **PO Awarded** – PO issued to Vendor X for 10 units.
6. **Material Arrival (MRA)** – Vendor delivers 10 units; Stores records MRA.
7. **Inspection (GRN)** – QC inspects: 9 Accepted, 1 Rejected.
8. **Inventory Update** – 9 units added to stock; 1 returned.
9. **Finance 3-Way Matching** – Invoice matched with PO + GRN.
10. **Payment Processed** – Vendor is paid based on accepted quantity.