Fabric Warehouse
This process outlines how the Store Department initiates the sync of a shipment GRN from the ERP system into the WiMetrix system, enriches it with roll-level details, and sends the final data back to ERP.
Sync from ERP
Section titled “Sync from ERP”-
System fetches GRN header data from ERP table
StLedgM(filtered bystorecode = 01).- Data is inserted into:
WM_StLedgM→ General GRN copy in WiMetrix.WM_StLedgMF→ Fabric store’s dedicated GRN master copy.
-
System fetches item-level summarized data (item code, color, lot, etc.) from
StLedgD.- This data is copied as-is into
WM_StLedgD.
- This data is copied as-is into
-
System fetches roll details (roll number, length, units, etc.) from
StLedgDF.
| ERP Table | WiMetrix Table | Purpose |
|---|---|---|
StLedgM | WM_StLedgM | GRN Master (WiMetrix General) |
WM_StLedgMF | GRN Master for Fabric Store | |
StLedgD | WM_StLedgD | Item Summary Data (1 row per item) |
WM_StLedgDF | Roll-level Detail + Upload Data | |
| ← Final sync | Final data pushed back to ERP |
St_Type Values
Section titled “St_Type Values”| Value | Description |
|---|---|
1 | GRN (Initial) |
2 | Returned From Cutting |
3 | Transferred From WO |
4 | Transferred To WO |
5 | Issued to Cutting |
6 | Purchase Return PRN |
7 | Sale Note |
8 | Store To Sub-Store Transfer |
9 | Sub-Store To Store Transfer |
WiMetrix Database Structure
Section titled “WiMetrix Database Structure”WM_StLedgMF
Section titled “WM_StLedgMF”[NCINV2025].[dbo].[WM_StLedgMF]- WiMetrix copy of the StLedgMF table containing roll GRN data
- New documents will be created in this table on Roll movement
- This table will be used to send data back to ERP
| Field | Description |
|---|---|
St_DocNo | DocNo of the GRN document |
St_Type | Document Type (GRN/Store Return/Transfer/Issuance) |
StCC_Code | Cost Center Code (used for issuance to and return from cutting) |
STO | The store code of the sub-store (used for transfer to and from sub-store) |
WM_StLedgDF
Section titled “WM_StLedgDF”[NCINV2025].[dbo].[WM_StLedgDF]- WiMetrix copy of the StLedgDF table containing roll level data
- New rolls will be pushed to this table on Roll movement
- This table will be used to send data back to ERP
| Field | Description |
|---|---|
St_ROLNO | Unique Roll Number (Primary Identifier) |
CompanyId | The current company |
Or_Id | Source Order ID |
St_DocNo | DocNo of the GRN document |
St_Type | Document Type (GRN/Store Return/Transfer/Issuance) |
St_DocDate | Document creation timestamp |
St_ItemCode | ItemCode of the GRN document |
Or_Id_To | Destination Order ID |
St_NETQTY | Current roll length in meters |
St_NetWeight | Net weight of fabric (excluding packaging) |
St_GrossWeight | Gross weight (including packaging materials) |
[Warehouse].[Roll]- Tracks current state of all rolls
- Contains real-time information:
| Field | Description |
|---|---|
RollID | Auto-incremented Primary Key |
RollNo | Unique Roll Number (Primary Identifier) |
ExternalRollID | The foreign key identifier pointing to the synced data |
CompanyId | The current company |
OrId | Worker Order |
DocNo | DocNo of the GRN document |
DocDate | Document creation timestamp |
LotNo | LotNo of the GRN document |
FabricCode | Fabric ItemCode of the GRN document |
Length | Initial roll length in meters |
GrossWeight | Gross weight (including packaging materials) |
NetWeight | Net weight of fabric (excluding packaging) |
CurrentLength | Current roll length in meters |
CurrentWeight | Current Net weight |
RollStatus | Enum indicating the current status of the roll |
SubLocationID | The current warehouse location and sub-location |
CuttingLocation | The Location Code when roll is in cutting |
FabricTag
Section titled “FabricTag”[Warehouse].[FabricTag]- Contains a list of all Fabric Tags
- Tracks the Roll assigned to each Tag
| Field | Description |
|---|---|
FabricTagID | Auto-incremented Primary Key |
RollID | The current roll assigned to the tag (nullable) |
TagCount | The number of times the tag has been printed |
AssignedAt | Timestamp when the card was assigned |
AssignedBy | User who assigned the card |
FabricRequisition
Section titled “FabricRequisition”[Warehouse].[FabricRequisition]- Record of requisitions made by the cutting department for fabric rolls
| Field | Description |
|---|---|
FabricRequisitionID | Auto-incremented Primary Key |
Name | The name of the requisition request req-{CutPlanName}-{Date} |
Remarks | (Optional) additional comments or notes |
RequiredLength | The length of rolls required for the requisition |
CutPlanID | The foreign key pointing to the cut plan |
FabricTransfer
Section titled “FabricTransfer”[Warehouse].[FabricTransfer]- A transfer request for roll movement
| Field | Description |
|---|---|
FabricTransferID | Auto-incremented Primary Key |
Name | The name of the transfer request |
Remarks | (Optional) additional comments or notes |
TransferType | IssuanceToCutting, ReturnFromCutting, WarehouseToWarehouse |
TransferStatus | Pending, OGP-Complete, Complete |
ToSubLocationID | The warehouse to transfer to. NULL for 'IssuanceToCutting' |
FabricRequisitionID | The requisition the transfer is fulfilling. NULL except for 'IssuanceToCutting' |
CuttingLocation | The Location Code for IssuanceToCutting type transfers |
FabricTransferRoll
Section titled “FabricTransferRoll”[Warehouse].[FabricTransferRoll]- The rolls associated with a transfer request
| Field | Description |
|---|---|
FabricTransferRollID | Auto-incremented Primary Key |
FabricTransferID | The foreign Key pointing to the parent transfer |
RollID | The foreign key pointing to the roll |
RollTransferStatus | Pending, OGP-Complete, Complete |
FromSubLocationID | The current roll warehouse. NULL for 'ReturnFromCutting' |
TransferredLength | The length of the roll under transfer |
OGPAt | Timestamp when the roll was OGP scanned |
IGPAt | Timestamp when the roll was IGP scanned |
CreatedAt | Timestamp when the record was created |
CreatedBy | User who created the record |
UpdatedAt | Timestamp when the record was last updated |
UpdatedBy | User who last updated the record |
RollHistory
Section titled “RollHistory”[Warehouse].[RollHistory]- Maintains a history of all actions performed on rolls
- Type Values:
SyncedCardAssignedIssuedToCuttingReturnedFromCutting,WarehouseTransferOrderTransferAssignedSubLocationChangedSubLocation
| Field | Description |
|---|---|
RollHistoryID | Primary key identifier |
RollID | The foreign key pointing to the roll |
Date | Date of transaction |
Type | The type of the history entry |
From | Source location or department |
To | Destination location or department |
CurrentLength | Existing roll length |
CurrentWeight | Existing roll weight |
Remarks | Additional notes or context |
Modules
Section titled “Modules”Roll View
Section titled “Roll View”- Users enters the GRN number in the portal.
- A data grid in the portal displays rolls associated with each GRN, grouped by the identity columns.
Card Generation and Tag Assignment
Section titled “Card Generation and Tag Assignment”-
System generates roll cards for entries where
St_Type = 1 -
Table updates after assignment:
[Warehouse].[FabricTag]RollID—>[Roll].[RollID]AssignedAt—>GETDATE()AssignedBy—>user_id
[Warehouse].[Roll]RollStatus—>'CardAssigned'
[Warehouse].[RollHistory]- Entries are created for each roll
TransactionType—>'CardAssigned'From—> Old TagTo—> New TagDate—>GETDATE()CurrentLength—>[Roll].[CurrentLength]CurrentWeight—>[Roll].[CurrentWeight]
-
Rolls are now available for cutting operations and transfers
Assign Initial Location
Section titled “Assign Initial Location”- Select rolls from the portal to assign a location to.
- Rolls must not have a location assigned already.
- Select a location to assign to the rolls.
- Table updates after assignment:
[Warehouse].[Roll]SubLocationID—>[Roll].[RollID]
[Warehouse].[RollHistory]- Entries are created for each roll
TransactionType—>'AssignedLocation'From—>NULLTo—> Picked LocationDate—>GETDATE()CurrentLength—>[Roll].[CurrentLength]CurrentWeight—>[Roll].[CurrentWeight]
Change Sub Location
Section titled “Change Sub Location”- Select rolls from the portal to update
- Rolls must have a location and card assigned already.
- Select a location to assign to the rolls.
- Table updates after assignment:
[Warehouse].[Roll]SubLocationID—>[Roll].[RollID]
[Warehouse].[RollHistory]- Entries are created for each roll
TransactionType—>'AssignedLocation'From—>[Roll].[SubLocationID]To—> Picked LocationDate—>GETDATE()CurrentLength—>[Roll].[CurrentLength]CurrentWeight—>[Roll].[CurrentWeight]
Issuance to Cutting Department
Section titled “Issuance to Cutting Department”- User creates a requisition for rolls to be transferred to the cutting department:
[Warehouse].[FabricRequisition]Name—> Entered NameCutPlanID—>[Cutting].[CutPlan].[CutPlanID]RequiredLength—> The specified length requiredRemarks—> Any additional comments or description
- User selects a Location(Cost Center) to issue to.
- A transfer request to
CuttingfromWarehouseis created:[Warehouse].[FabricTransfer]Name—>IssuanceToCutting-${Date}TransferType--->'IssuanceToCutting'TransferStatus—>'Pending'FabricRequisitionID—>[Warehouse].[FabricRequisition].[FabricRequisitionID]CuttingLocation—> The selected cutting locationRemarks—> Any additional comments or description
[Warehouse].[FabricTransferRoll]- Entries are created for each selected roll
FabricTransferID—>[FabricTransfer].[FabricTransferID]RollID—>[Roll].[RollID]RollTransferStatus—>'Pending'FromSubLocationID—>[Roll].[SubLocationID]TransferredLength—>[Roll].[CurrentLength]
[Warehouse].[Roll]RollStatus—>'TransferringToCutting'
- Each roll is scanned out at
Warehouse[Warehouse].[FabricTransferRoll]RollTransferStatus—>'OGP-Complete'
- Each roll is scanned in at
Cutting[Warehouse].[FabricTransferRoll]RollTransferStatus—>'Complete'
- After all rolls are OGP scanned:
[Warehouse].[FabricTransfer]TransferStatus—>'OGP-Complete'
- After all rolls are IGP scanned, finish the transfer:
[Warehouse].[FabricTransfer]TransferStatus—>'Complete'
[Warehouse].[Roll]RollStatus—>'IssuedToCutting'CuttingLocation—>[FabricTransfer].[CuttingLocation]
[Warehouse].[RollHistory]- Entries are created for each roll
TransactionType—>IssuedToCuttingFrom—>[Roll].[SubLocationID]To—>Cutting([FabricTransfer].[CuttingLocation])Date—>GETDATE()CurrentLength—>[Roll].[CurrentLength]CurrentWeight—>[Roll].[CurrentWeight]
- Add entries back in the ERP table:
[NCINV2025].[dbo].[WM_StLedgMF]- Create a new entry
St_DocNo—> Generate new DocNo by incrementing the max DocNo for theSt_Typeby 1. (Will eventually be provided by ERP endpoints)St_Type—>5StCC_Code—>[Transfer].[CuttingLocation]STO—> Roll’s[Location].[ExternalID]- The other fields remain unchanged
[NCINV2025].[dbo].[WM_StLedgDF]- Entries are created for each roll
St_DocNo—> Use the new generated doc numberSt_Type—>5Or_Id—>[Roll].[OrId]- The other fields remain unchanged
Return of Partially Used Rolls
Section titled “Return of Partially Used Rolls”- User selects the rolls to transfer in the portal
- The rolls must have card assigned, have no transfer, and must not be consumed
- A transfer request to
WarehousefromCuttingis created:[Warehouse].[FabricTransfer]Name—>ReturnFromCutting-${Date}TransferType--->'ReturnFromCutting'TransferStatus—>'Pending'ToSubLocationID—>[Roll].[SubLocationID]
[Warehouse].[FabricTransferRoll]- Entries are created for each selected roll
FabricTransferID—>[FabricTransfer].[FabricTransferID]RollID—>[Roll].[RollID]RollTransferStatus—>'Pending'TransferredLength—>[Roll].[CurrentLength]
[Warehouse].[Roll]RollStatus—>'ReturningFromCutting'
- Each roll is scanned out at
Cutting[Warehouse].[FabricTransferRoll]RollTransferStatus—>'OGP-Complete'
- Each roll is scanned in at
Warehouse[Warehouse].[FabricTransferRoll]RollTransferStatus—>'Complete'
- After all rolls are OGP scanned:
[Warehouse].[FabricTransfer]TransferStatus—>'OGP-Complete'
- After all rolls are IGP scanned, finish the transfer:
[Warehouse].[FabricTransfer]TransferStatus—>'Complete'
[Warehouse].[Roll]RollStatus—>'CardAssigned'
CuttingLocation—> NULL[Warehouse].[RollHistory]- Entries are created for each roll
TransactionType—>ReturnedFromCuttingFrom—>Cutting([Roll].[CuttingLocation])To—>[Roll].[SubLocationID]Date—>GETDATE()CurrentLength—>[Roll].[CurrentLength]CurrentWeight—>[Roll].[CurrentWeight]
- Add entries back in the ERP table:
[NCINV2025].[dbo].[WM_StLedgMF]- Create a new entry
St_DocNo—> Generate new DocNo by incrementing the max DocNo for theSt_Typeby 1. (Will eventually be provided by ERP endpoints)St_Type—>2StCC_Code—>[Roll].[CuttingLocation]STO—> Roll’s[Location].[ExternalID]- The other fields remain unchanged
[NCINV2025].[dbo].[WM_StLedgDF]- Entries are created for each roll
St_DocNo—> Use the new generated doc numberOr_Id—>[Roll].[OrId]St_Type—>2- The other fields remain unchanged
Transfer from Order to Order
Section titled “Transfer from Order to Order”- User selects the rolls to transfer in the portal
- The rolls must have card assigned, have no transfer, and must not be consumed
- User selects the work order to transfer to
- The selected work order must have the same
FabricCode(St_ItemCodein the ERP table) as the current work order
- The selected work order must have the same
- Rolls are transferred
[Warehouse].[Roll]OrId—> Set to the selectedOrId
[Warehouse].[RollHistory]- Entries are created for each roll
TransactionType—>OrderTransferFrom—>[Roll].[OrId]To—> Set to the selectedOrIdDate—>GETDATE()CurrentLength—>[Roll].[CurrentLength]CurrentWeight—>[Roll].[CurrentWeight]
- Add entries back in the ERP table:
[NCINV2025].[dbo].[WM_StLedgMF]- Create a new entry for the old work order
St_DocNo—> Generate new DocNo by incrementing the max DocNo for theSt_Typeby 1. (Will eventually be provided by ERP endpoints)St_Type—>3STO—> Roll’s[Location].[ExternalID]- The other fields remain unchanged
- Create a new entry for the new work order
St_DocNo—> Generate new DocNo by incrementing the max DocNo for theSt_Typeby 1. (Will eventually be provided by ERP endpoints)St_Type—>4- The other fields remain unchanged
[NCINV2025].[dbo].[WM_StLedgDF]- Entries are created for each roll for the old work order
St_DocNo—> Use the new generated doc numberSt_Type—>3Or_Id—>[Roll].[OrId]Or_Id_To—> Set to the selectedOrId- The other fields remain unchanged
- Entries are created for each roll for the new work order
St_DocNo—> Use the new generated doc numberSt_Type—>4Or_Id—> Set to the selectedOrIdOr_Id_To—> Set to the selectedOrId- The other fields remain unchanged
- Entries are created for each roll for the old work order
Transfer from Warehouse to Warehouse
Section titled “Transfer from Warehouse to Warehouse”- User selects the rolls to transfer in the portal
- The rolls must have card assigned, have no transfer, and must not be consumed
- User selected the destination location and sub location
- A transfer request is created:
[Warehouse].[FabricTransfer]Name—>Warehouse-${Date}TransferType--->'Warehouse'TransferStatus—>'Pending'ToSubLocationID—> Selected sub location id
[Warehouse].[FabricTransferRoll]- Entries are created for each selected roll
FabricTransferID—>[FabricTransfer].[FabricTransferID]RollID—>[Roll].[RollID]RollTransferStatus—>'Pending'TransferredLength—>[Roll].[CurrentLength]
[Warehouse].[Roll]RollStatus—>'TransferringToWarehouse'
- Each roll is scanned out at
Cutting[Warehouse].[FabricTransferRoll]RollTransferStatus—>'OGP-Complete'
- Each roll is scanned in at
Warehouse[Warehouse].[FabricTransferRoll]RollTransferStatus—>'Complete'
- After all rolls are OGP scanned:
[Warehouse].[FabricTransfer]TransferStatus—>'OGP-Complete'
- After all rolls are IGP scanned:
[Warehouse].[FabricTransfer]TransferStatus—>'Complete'
[Warehouse].[Roll]RollStatus—>'CardAssigned'
SubLocationID—>[FabricTransfer].[ToSubLocationID][Warehouse].[RollHistory]- Entries are created for each roll
TransactionType—>WarehouseTransferFrom—>[Roll].[SubLocationID]To—>[FabricTransfer].[ToSubLocationID]Date—>GETDATE()CurrentLength—>[Roll].[CurrentLength]CurrentWeight—>[Roll].[CurrentWeight]
- Add entries back in the ERP table:
[NCINV2025].[dbo].[WM_StLedgMF]- Create a new entry
St_DocNo—> Generate new DocNo by incrementing the max DocNo for theSt_Typeby 1. (Will eventually be provided by ERP endpoints)St_Type—> If the destination location’sExternalIDis 0, then19, else18StCC_Code—>""STO—> Transfer’s[Location].[ExternalID]- The other fields remain unchanged
[NCINV2025].[dbo].[WM_StLedgDF]- Entries are created for each roll
St_DocNo—> Use the new generated doc numberSt_Type—> If the destination location’sExternalIDis 0, then19, else18Or_Id—>[Roll].[OrId]- The other fields remain unchanged
Roll Lookup
Section titled “Roll Lookup”- Available as mobile app or in web portal
- Scan UHF/RFID Tags
- Fetch and display roll details from
[Essentials].[Roll].- Current status
- Length/weight
- Assigned card
- Transaction history
Hardware Components
Section titled “Hardware Components”-
UHF RFID Infrastructure
- 8-Port UHF Reader with 8 Antennas (WiMetrix)
- Used for scanning RFID tags at various Rolls In/Out
- 8-Port UHF Reader with 8 Antennas (WiMetrix)
-
Gate Processing Systems
- PC at Issuance/Receiving Gate (NCL)
- Dedicated computer for processing RFID scan data
- Manages inventory updates and gate operations
- Interfaces with both WiMetrix and ERP systems
- PC at Issuance/Receiving Gate (NCL)
-
Tag Management
- Tag Initialization System
- We will be using sticker pasting machine along with old sewing floor tags for rolls
- Ensures proper tagging and identification of fabric rolls
- Tag Initialization System
-
Mobile Operations
- Handheld Devices for Warehouse Operations
- Mobile RFID scanners for floor operations
- Used for:
- Locating rolls (HandHeld Devices)
- Updating inventory (Remote opration where PC access is not possible)
- Managing location updates
- Handheld Devices for Warehouse Operations
-
Measurement Equipment
- Weight Scale for Roll Weight Update
- Records and updates roll weights
- Integrated with the system for automatic weight updates
- Ensures accurate weight tracking
- Single roll at a time
- PC is required with weight scale along with RFID Scanner (Gate Scanner and PC mentioned in Poit 2 can be used)
- Weight Scale for Roll Weight Update
ERP Database Structure
Section titled “ERP Database Structure”Core Tables
Section titled “Core Tables”-
StLedgM (GRN Master)
- Primary Key:
CompanyId,St_Type,St_DocNo - Key Fields:
St_Type: Document type (1 for GRN)Storecode: Store identifier (01 for Fabric store)St_DocDate: Document dateSt_POSTED: Posting statusSt_GLPOST: GL posting statusSt_PONO: Purchase Order NumberSt_PODate: Date of Creation of Purchase OrderStCC_Code: Cost Center Id details for Issuing Type-5St_VENDOR: Supplier CodeSt_VNAME: Supplier NameSTO: 0 in Fabric GRN will be used when issuing
- Audit Fields:
CreatedAt: Record creation timestampCreatedBy: User who created the recordUpdatedAt: Last update timestampUpdatedBy: User who last updated the recordIsActive: Whether the record is active
- Primary Key:
-
StLedgMF (Fabric Store GRN Master)
- Primary Key:
CompanyId,St_Type,St_DocNo,St_DocDate - Additional Fields:
St_DocNoFab: Fabric-specific document number- All key fields from
StLedgM
- Audit Fields:
CreatedAt: Record creation timestampCreatedBy: User who created the recordUpdatedAt: Last update timestampUpdatedBy: User who last updated the recordIsActive: Whether the record is active
- Primary Key:
-
StLedgD (Item Summary)
- Primary Key:
CompanyId,St_Type,St_DocNo,St_DocDate,St_Itemcode,Or_Id - Key Fields:
St_Itemcode: Item codeSt_NETQTY: Net quantitySt_LOTNO: Lot numberSt_WCOLOR: Color informationSt_LOTWT: Lot weightSt_BILLNO: Unit of MeasurementSt_Value: Amount against QtySt_PoNo: The Internal PO (Purchase Order) at which this request is createdSt_PoDate: Date of Creation of Internal PO
- Audit Fields:
CreatedAt: Record creation timestampCreatedBy: User who created the recordUpdatedAt: Last update timestampUpdatedBy: User who last updated the recordIsActive: Whether the record is active
- Primary Key:
-
StLedgDF (Roll Details)
- Primary Key:
CompanyId,St_Type,St_DocNo,St_DocDate,St_Itemcode,Or_Id,St_LOTNO,St_ROLNO - Key Fields:
St_ROLNO: Roll numberSt_ROLNODtl: Roll detail numberSt_LengthWise: Length measurementSt_WidthWise: Width measurementSt_GSM: Fabric weightSt_NetWeight: Net weightSt_GrossWeight: Gross weightSt_Unit: Unit of MeasurementSt_Value: Amount against QtySt_PoNo: The Internal PO (Purchase Order) at which this request is createdSt_PoDate: Date of Creation of Internal POSt_DocNoFab: Fabric GRN No Entered only in Doc Type 5- Quality fields (GSM, Skew, etc.)
- Audit Fields:
CreatedAt: Record creation timestampCreatedBy: User who created the recordUpdatedAt: Last update timestampUpdatedBy: User who last updated the recordIsActive: Whether the record is active
- Primary Key:
Master-Detail Relationships
Section titled “Master-Detail Relationships”StLedgM → StLedgD
Section titled “StLedgM → StLedgD”- Master Key Fields:
St_TypeSt_DocNoSt_DocDateCompanyId
- Detail Key Fields:
St_TypeSt_DocNoSt_DocDateCompanyIdSt_ItemcodeOr_Id
StLedgMF → StLedgDF
Section titled “StLedgMF → StLedgDF”- Master Key Fields:
St_TypeSt_DocNoSt_DocDateCompanyId
- Detail Key Fields:
St_TypeSt_DocNoSt_DocDateCompanyIdSt_ItemcodeOr_IdSt_LOTNOSt_ROLNO