Benefit Template

Module: Layaway / EMA Plans

1. Overview

The Benefit Template form allows defining reusable benefit configuration templates for Advance Plans through the Benefit Template Mapping. Each template specifies the plan structure type, eligibility criteria, settlement modes, benefit items applied on, slab-based benefit values, and stone/diamond discount or rate overrides. These templates are assigned to Advance Plans to drive benefit calculation at the time of plan enrollment and maturity settlement.


AttributeValue
Form NameBenefit Template
ModuleLayaway / EMA Plans
Form TypeMaster Configuration
Primary TableemaADPPlanBenefitTemplateHDR
Approval WorkflowYes – MasterDataValueID_ApprovalStatus on HDR
Multi-Location SupportNo
Soft DeleteYes – Active flag on HDR

2. Database

SioniqAdminDB

3. Primary Tables

Table NameTypeDescription
emaADPPlanBenefitTemplateHDRHDRStores header-level details of the benefit template — name, description, plan structure type, eligibility type, wastage/making limits, and approval status.
emaADPPlanBenefitTemplateSettlementModeDTLDTLStores the selected settlement mode(s) for the template. One row per selected settlement mode.
emaADPPlanBenefitTemplateBenefitAppliedOnDTLDTLStores the benefit items selected in the "Benefit Applied On" grid. One row per selected benefit item, with optional priority order.
emaADPPlanBenefitTemplateSlabDTLDTLStores slab-wise benefit value definitions. One row per slab. Contains range fields (installment, days, collection), deferral amount, waiver percentages, bonus values, and discount percentages.
emaADPPlanBenefitTemplateDiamondStoneDiscountDTLDTLStores diamond discount percent at Stone Group level.
emaADPPlanBenefitTemplateDiamondStoneCategoryDiscountDTLDTLStores diamond discount percent at Stone Category level.
emaADPPlanBenefitTemplateDiamondStoneSubCategoryDiscountDTLDTLStores diamond discount percent at Stone Sub-Category level.
emaADPPlanBenefitTemplateDiamondStoneAttributeDiscountDTLDTLStores diamond discount percent at Stone Attribute level.
emaADPPlanBenefitTemplateDiamondStoneArticleDiscountDTLDTLStores diamond discount percent at Stone Article level.
emaADPPlanBenefitTemplateStoneRateDTLDTLStores fixed stone rate at Stone Group level.
emaADPPlanBenefitTemplateStoneCategoryRateDTLDTLStores fixed stone rate at Stone Category level.
emaADPPlanBenefitTemplateStoneSubCategoryRateDTLDTLStores fixed stone rate at Stone Sub-Category level.
emaADPPlanBenefitTemplateStoneAttributeDiscountDTLDTLStores fixed stone rate at Stone Attribute level.
emaADPPlanBenefitTemplateStoneArticleRateDTLDTLStores fixed stone rate at Stone Article level.

Table Relationship Diagram

emaADPPlanBenefitTemplateHDR AdvancePlanBenefitTemplateID (PK) emaADPPlanBenefitTemplate SettlementModeDTL AdvancePlanBenefitTemplateID (FK) emaADPPlanBenefitTemplate BenefitAppliedOnDTL AdvancePlanBenefitTemplateID (FK) emaADPPlanBenefitTemplate SlabDTL AdvancePlanBenefitTemplateID (FK) emaADPPlanBenefitTemplate DiamondStoneDiscountDTL Stone Group Level emaADPPlanBenefitTemplate DiamondStoneCategoryDiscountDTL Stone Category Level emaADPPlanBenefitTemplate DiamondStoneSubCategoryDiscountDTL Stone Sub Category Level emaADPPlanBenefitTemplate DiamondStoneAttributeDiscountDTL Stone Attribute Level emaADPPlanBenefitTemplate DiamondStoneArticleDiscountDTL Stone Article Level emaADPPlanBenefitTemplate StoneRateDTL Stone Group Level emaADPPlanBenefitTemplate StoneCategoryRateDTL Stone Category Level emaADPPlanBenefitTemplate StoneSubCategoryRateDTL Stone Sub Category Level emaADPPlanBenefitTemplate StoneAttributeDiscountDTL Stone Attribute Level emaADPPlanBenefitTemplate StoneArticleRateDTL Stone Article Level invStone StoneID (PK) invStoneCategory StoneCategoryID (PK) invStoneSubCategory StoneSubCategoryID (PK) invStoneAttribute StoneAttributeID (PK) invStoneArticleCatalog StoneArticleCatalogID (PK) admMasterDataValueDTL MasterDataValueID (PK) Legend HDR Table Core DTL Tables Diamond Discount DTLs Stone Rate DTLs Reference / Lookup Tables

Transaction Flow Diagram

Start: Open Benefit Template Form Fill Header Fields Header Fields Valid? Show Validation Error No Yes Select Benefit Applied On Items Stone/Diamond Discount or Fixed Stone Rate selected? Yes Configure Stone/Diamond Discount Panel No Add Benefit Slab(s) via Add Button Slab Data Valid? Show Slab Error No Yes Click Save Insert HDR Record Insert SettlementMode, BenefitAppliedOn, Slab DTL Records Insert Stone/Diamond DTL Records (if applicable) Set ApprovalStatus = Pending End: Record Saved Legend HDR / Approval Step Core DTL Insert Stone/Diamond DTL Insert Validation Error Decision

4. Reference / Lookup Tables

Table NameUsed For
admMasterDataValueDTLSource for Plan Structure Type, Benefit Eligibility Type, Settlement Mode, Benefit Applied On, Stone Setup Type, Stone Attribute Type, and Approval Status dropdowns.
invStoneSource for Stone Group dropdown in Diamond Discount and Stone Rate panels.
invStoneCategorySource for Stone Category dropdown; filtered by selected Stone Group.
invStoneSubCategorySource for Stone Sub-Category dropdown; filtered by selected Stone Category.
invStoneAttributeSource for Stone Attribute dropdown; filtered by selected Attribute Type.
invStoneArticleCatalogSource for Stone Article dropdown in Diamond Discount and Stone Rate panels.

5. Form Controls & Functionalities

5.1 Header Level Fields

Active  (Toggle)

Description:

Controls the active/inactive status of the benefit template record.

Control Properties:
  • Default Value: Checked (True)
  • User Entry: User can Toggle On/Off
  • Mandatory: No
Behavior:
  • Toggled On (True): Template is Active and available for assignment to ADP Plans.
  • Toggled Off (False): Template is Inactive and cannot be assigned to new plans.
Saved in & as:
  • emaADPPlanBenefitTemplateHDR → Active (bit)

Name  (Textbox)

Description:

Unique name to identify the benefit template.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes
  • Allowed Characters: Alphanumeric
Validation:

Must be unique. Duplicate name should trigger an inline error: "Template name already exists."

Saved in & as:
  • emaADPPlanBenefitTemplateHDR → Name (nvarchar)

Description  (Textbox)

Description:

Optional free-text description of the benefit template.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: No
  • Allowed Characters: Alphanumeric
Saved in & as:
  • emaADPPlanBenefitTemplateHDR → Decription (nvarchar)

Plan Structure Type  (Single Selection Dropdown)

Description:

Defines how the ADP plan collects contributions — by fixed installments or open contributions.

Control Properties:
  • Default Value: —
  • Data Source: admMasterDataValueDTL
  • Filter Condition:
    • Active = True, listed from MasterDataValueID
    • MasterDataCategory = ADPPlanStructureType
  • User Entry: Selection from dropdown
  • Mandatory: Yes
  • Options:
    • Installment-Based — Plan collects contributions in fixed periodic installments.
    • Open Contribution — Plan allows flexible contribution amounts at any time.
Behavior:
  • If Installment-Based → Slab section shows From Installment / To Installment fields.
  • If Open Contribution → Rotation field becomes visible/applicable.
Saved in & as:
  • emaADPPlanBenefitTemplateHDR → MasterDataValueID_ADPPlanStructureType

Benefit Eligibility Type  (Single Selection Dropdown)

Description:

Determines the criteria used to evaluate benefit eligibility within each slab.

Control Properties:
  • Default Value: —
  • Data Source: admMasterDataValueDTL
  • Filter Condition:
    • Active = True, listed from MasterDataValueID
    • MasterDataCategory = ADPBenefitEligibilityType
  • User Entry: Selection from dropdown
  • Mandatory: Yes
  • Options:
    • Installment Count — Benefit slab is defined by From/To installment number range.
    • Days From Joining — Benefit slab is defined by From/To days range from plan enrollment date.
    • Collection Count — Benefit slab is defined by From/To collection count range.
Behavior:
  • Controls which range fields are shown in the Slab section:
    • Installment Count → Shows From Installment, To Installment, Min Days Completed.
    • Days From Joining → Shows From Days, To Days, Min Installments Paid.
    • Collection Count → Shows From Collection, To Collection, Min Days Completed.
Saved in & as:
  • emaADPPlanBenefitTemplateHDR → MasterDataValueID_ADPBenefitEligibilityType

Settlement Mode  (Multi-Selection Dropdown)

Description:

Specifies one or more modes through which plan benefits are settled at maturity.

Control Properties:
  • Default Value: —
  • Data Source: admMasterDataValueDTL
  • Filter Condition:
    • Active = True, listed from MasterDataValueID
    • MasterDataCategory = ADPBenefitSettlementMode
  • User Entry: Multi-selection from dropdown
  • Mandatory: Yes
  • Options:
    • Invoice Adjustment — Benefit applied directly against invoice at billing.
    • Customer Advance Credit — Benefit credited to customer's advance account.
    • Order Advance Adjustment — Benefit adjusted against an existing order advance.
    • Collection Adjustment — Benefit adjusted within the collection itself.
    • Enrollment Benefit — Benefit granted at the time of plan enrollment.
    • CDU Collection Adjustment — Benefit adjustment through CDU channel collection.
Saved in & as:
  • emaADPPlanBenefitTemplateSettlementModeDTL → MasterDataValueID_ADPBenefitSettlementMode (one row per selected mode)

Rotation  (Textbox)

Description:

Defines the rotation count applicable for the plan template.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: No
  • Allowed Characters: Numeric (integer)
Saved in & as:
  • emaADPPlanBenefitTemplateHDR → Rotation (int)

Min Wastage %  (Textbox)

Description:

Minimum wastage percentage allowed for plan benefit calculation.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: No
  • Allowed Characters: Numeric (decimal)
Validation:

Must be less than or equal to Max Wastage %.

Behavior:

Enabled when "Wastage Waiver" is selected in Benefit Applied On.

Saved in & as:
  • emaADPPlanBenefitTemplateHDR → MinWastagePercent (decimal)

Max Wastage %  (Textbox)

Description:

Maximum wastage percentage allowed for plan benefit calculation.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: No
  • Allowed Characters: Numeric (decimal)
Validation:

Must be greater than or equal to Min Wastage %.

Behavior:

Enabled when "Wastage Waiver" is selected in Benefit Applied On.

Saved in & as:
  • emaADPPlanBenefitTemplateHDR → MaxWastagePercent (decimal)

Min Making Amount  (Textbox)

Description:

Minimum making charge amount allowed for plan benefit calculation.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: No
  • Allowed Characters: Numeric (decimal)
Validation:

Must be less than or equal to Max Making Amount.

Behavior:

Enabled when "Making Charge Waiver" is selected in Benefit Applied On.

Saved in & as:
  • emaADPPlanBenefitTemplateHDR → MinMakingAmount (decimal)

Max Making Amount  (Textbox)

Description:

Maximum making charge amount allowed for plan benefit calculation.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: No
  • Allowed Characters: Numeric (decimal)
Validation:

Must be greater than or equal to Min Making Amount.

Behavior:

Enabled when "Making Charge Waiver" is selected in Benefit Applied On.

Saved in & as:
  • emaADPPlanBenefitTemplateHDR → MaxMakingAmount (decimal)

5.2 Benefit Applied On (Checkbox Grid)

Benefit Applied On  (Checkbox Grid)

Description:

A grid listing all available benefit types. User selects which benefit types apply to this template and optionally sets a priority order for applicable items.

Control Properties:
  • Default Value: Unchecked (False) for each row
  • User Entry: User can Check/Uncheck per row; enter Priority for priority-eligible rows
  • Mandatory: At least one benefit item must be selected before Save
  • Data Source: admMasterDataValueDTL
  • Filter Condition:
    • Active = True, listed from MasterDataValueID
    • MasterDataCategory = ADPBenefitAppliedOn
  • Columns: Checkbox, Applied On (label), Priority (input — applicable rows only)
Benefit Items & Priority Applicability:
  • Bonus Percentage — No priority input
  • Bonus Amount — No priority input
  • Bonus Weight — No priority input
  • Making Charge Waiver — No priority input
  • Wastage Waiver — No priority input
  • Tax Waiver — No priority input
  • Interest Benefit — No priority input
  • Stone Value Discount — Priority input shown. Mandatory when checked. Must be a unique integer (e.g., 1, 2, 3). Duplicate priority values not allowed.
  • Diamond Value Discount — Priority input shown. Mandatory when checked. Must be a unique integer (e.g., 1, 2, 3). Duplicate priority values not allowed.
  • Fixed Stone Rate — Priority input shown. Mandatory when checked. Must be a unique integer (e.g., 1, 2, 3). Duplicate priority values not allowed.
  • Metal Rate Discount — No priority input
  • Average Metal Rate — No priority input
Behavior:
  • Checking Wastage Waiver → Enables Min Wastage % and Max Wastage % fields in header.
  • Checking Making Charge Waiver → Enables Min Making Amount and Max Making Amount fields in header.
  • Checking Stone Value Discount or Diamond Value Discount or Fixed Stone Rate → Makes the corresponding Stone/Diamond Discount panel available in the Slab section.
Saved in & as:
  • emaADPPlanBenefitTemplateBenefitAppliedOnDTL → MasterDataValueID_ADPBenefitAppliedOn, PriorityOrder (one row per checked item)

5.3 Benefit Slab Section

The Benefit Slab section allows defining multiple slab ranges with associated benefit values. The range fields displayed depend on the selected Benefit Eligibility Type. Multiple slabs can be added using the Add button.

From Installment  (Textbox)

Description:

Starting installment number of the slab range.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Eligibility Type = Installment Count)
  • Allowed Characters: Numeric (integer)
Behavior:

Visible only when Benefit Eligibility Type = Installment Count.

Validation:

Must be less than To Installment. Slabs must not overlap.

Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → FromInstallmentNo

To Installment  (Textbox)

Description:

Ending installment number of the slab range.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Eligibility Type = Installment Count)
  • Allowed Characters: Numeric (integer)
Behavior:

Visible only when Benefit Eligibility Type = Installment Count.

Validation:

Must be greater than From Installment. Slabs must not overlap.

Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → ToInstallmentNo

From Days  (Textbox)

Description:

Starting day number (from plan joining date) of the slab range.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Eligibility Type = Days From Joining)
  • Allowed Characters: Numeric (integer)
Behavior:

Visible only when Benefit Eligibility Type = Days From Joining.

Validation:

Must be less than To Days. Slabs must not overlap.

Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → FromDays

To Days  (Textbox)

Description:

Ending day number (from plan joining date) of the slab range.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Eligibility Type = Days From Joining)
  • Allowed Characters: Numeric (integer)
Behavior:

Visible only when Benefit Eligibility Type = Days From Joining.

Validation:

Must be greater than From Days. Slabs must not overlap.

Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → ToDays

From Collection  (Textbox)

Description:

Starting collection count of the slab range.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Eligibility Type = Collection Count)
  • Allowed Characters: Numeric (integer)
Behavior:

Visible only when Benefit Eligibility Type = Collection Count.

Validation:

Must be less than To Collection. Slabs must not overlap.

Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → FromCollectionCount

To Collection  (Textbox)

Description:

Ending collection count of the slab range.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Eligibility Type = Collection Count)
  • Allowed Characters: Numeric (integer)
Behavior:

Visible only when Benefit Eligibility Type = Collection Count.

Validation:

Must be greater than From Collection. Slabs must not overlap.

Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → ToCollectionCount

Min Days Completed  (Textbox)

Description:

Minimum number of days the customer must have been enrolled before this slab benefit applies.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: No
  • Allowed Characters: Numeric (integer)
Behavior:

Visible when Benefit Eligibility Type = Installment Count or Collection Count.

Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → MinDaysCompleted

Min Installments Paid  (Textbox)

Description:

Minimum number of installments the customer must have paid for this slab benefit to apply.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: No
  • Allowed Characters: Numeric (integer)
Behavior:

Visible only when Benefit Eligibility Type = Days From Joining.

Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → MinInstallmentsPaid

Deferral Amount  (Textbox)

Description:

Amount that can be deferred/adjusted for the customer under this slab.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: No
  • Allowed Characters: Numeric (decimal)
Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → DeferralAmount

Bonus Amount  (Textbox)

Description:

Fixed bonus amount awarded to the customer under this slab.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Applied On includes Bonus Amount)
  • Allowed Characters: Numeric (decimal)
Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → BonusAmount

Bonus Percentage  (Textbox)

Description:

Bonus awarded as a percentage of the plan value under this slab.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Applied On includes Bonus Percent)
  • Allowed Characters: Numeric (decimal)
Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → BonusPercentage

Bonus Weight  (Textbox)

Description:

Bonus awarded in weight units (e.g., grams) under this slab.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Applied On includes Bonus Weight)
  • Allowed Characters: Numeric (decimal)
Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → BonusWeight

Interest Percentage  (Textbox)

Description:

Interest benefit percentage applicable for this slab.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Applied On includes Interest Benefit)
  • Allowed Characters: Numeric (decimal)
Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → InterestPercent

Metal Rate Discount Percent  (Textbox)

Description:

Discount percentage applied on metal rate under this slab.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Applied On includes Metal Rate Discount)
  • Allowed Characters: Numeric (decimal)
Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → MetalRateDiscountPercent

Stone Value Discount %  (Textbox)

Description:

Discount percentage applied on Total stone value under this slab.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Applied On includes Stone Value Discount)
  • Allowed Characters: Numeric (decimal)
Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → StoneValueDiscountPercent

Waiver Wastage Percent  (Textbox)

Description:

Wastage percentage to be waived under this slab.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Applied On includes Wastage Waiver)
  • Allowed Characters: Numeric (decimal)
Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → WaiverWastagePercent

Waiver Making Percent  (Textbox)

Description:

Making charge percentage to be waived under this slab.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes (when Benefit Applied On includes Making Charge Waiver)
  • Allowed Characters: Numeric (decimal)
Saved in & as:
  • emaADPPlanBenefitTemplateSlabDTL → WaiverMakingPercent

Add (Slab)  (Button)

Description:

Adds the currently entered slab data as a row in the slab grid.

Control Properties:
  • User Entry: Manual click by user
  • Mandatory: No — at least one slab row is required before Save
Behavior:
  • Validates all mandatory slab fields before adding.
  • Validates slab range does not overlap with existing slabs.
  • On success: appends slab as an inline row in the slab grid with a Remove option.
  • On failure: shows inline validation error.
  • Multiple slabs can be added (multiple adding supported).

5.4 Diamond Value Discount Panel

Visible only when Diamond Value Discount is checked in Benefit Applied On. The panel layout changes based on the selected Stone Setup Type.

Stone Setup Type  (Single Selection Dropdown)

Description:

Determines the level at which diamond discount is configured.

Control Properties:
  • Default Value: —
  • Data Source: admMasterDataValueDTL
  • Filter Condition:
    • Active = True, listed from MasterDataValueID
    • MasterDataCategory = VendorStoneRateSetUpType
  • User Entry: Selection from dropdown
  • Mandatory: Yes (when Diamond Value Discount is selected)
  • Options:
    • Stone Group — Discount defined at the stone group (type) level.
    • Stone Category — Discount defined at the category level within a stone group.
    • Stone Sub Category — Discount defined at the sub-category level.
    • Stone Attribute Wise — Discount defined per stone attribute (e.g., color, clarity).
    • Stone Article — Discount defined per individual stone article catalog entry.
Behavior:
  • Stone Group → Shows: Stone Group (multi-select), Diamond Discount %.
  • Stone Category → Shows: Stone Group (multi-select), Stone Category (multi-select), Diamond Discount %.
  • Stone Sub Category → Shows: Stone Group (multi-select), Stone Category (multi-select), Stone Sub Category (multi-select), Diamond Discount %.
  • Stone Attribute Wise → Shows: Stone Attribute Type (single-select), Stone Group (multi-select), Stone Category (multi-select), Stone Sub Category (multi-select), Attribute Value (multi-select), Diamond Discount %.
  • Stone Article → Shows: Stone Article (multi-select), Diamond Discount %. All other fields are for filtration only.
Saved in & as:
  • emaADPPlanBenefitTemplateDiamondStoneDiscountDTL → MasterDataValueID_VendorStoneRateSetUpType (Stone Group)
  • emaADPPlanBenefitTemplateDiamondStoneCategoryDiscountDTL → MasterDataValueID_VendorStoneRateSetUpType (Stone Category)
  • emaADPPlanBenefitTemplateDiamondStoneSubCategoryDiscountDTL → MasterDataValueID_VendorStoneRateSetUpType (Stone Sub Category)
  • emaADPPlanBenefitTemplateDiamondStoneAttributeDiscountDTL → MasterDataValueID_VendorStoneRateSetUpType (Stone Attribute Wise)
  • emaADPPlanBenefitTemplateDiamondStoneArticleDiscountDTL → MasterDataValueID_VendorStoneRateSetUpType (Stone Article)

Stone Group (Diamond Panel)  (Multi-Selection Dropdown)

Description:

Selects the stone group(s) for which the diamond discount applies.

Control Properties:
  • Default Value: —
  • Data Source: invStone & invStoneArticleCatalog
  • Filter Condition:
    • Active = True, listed from StoneID
    • Linked Stone Article Configuration
    • MasterDataValueID_Stone = Diamond
  • User Entry: Multi-selection from dropdown
  • Mandatory: Yes
Saved in & as:
  • emaADPPlanBenefitTemplateDiamondStoneDiscountDTL → StoneID (Stone Group)
  • emaADPPlanBenefitTemplateDiamondStoneCategoryDiscountDTL → StoneID (Stone Category)
  • emaADPPlanBenefitTemplateDiamondStoneSubCategoryDiscountDTL → StoneID (Stone Sub Category)
  • emaADPPlanBenefitTemplateDiamondStoneAttributeDiscountDTL → StoneID (Stone Attribute Wise)
  • emaADPPlanBenefitTemplateDiamondStoneArticleDiscountDTL → StoneID (Stone Article)

Stone Category (Diamond Panel)  (Multi-Selection Dropdown)

Description:

Selects the stone category(ies) under the selected stone group for which the diamond discount applies.

Control Properties:
  • Default Value: —
  • Data Source: invStoneCategory & invStoneArticleCatalog
  • Filter Condition:
    • Active = True, listed from StoneCategoryID
    • Filtered by selected StoneID (Stone Group)
    • Linked Stone Article Configuration
    • MasterDataValueID_Stone = Diamond
  • User Entry: Multi-selection from dropdown
  • Mandatory: Yes (when Stone Setup Type = Stone Category, Stone Sub Category, or Stone Attribute Wise)
Behavior:

Visible only when Stone Setup Type = Stone Category, Stone Sub Category, or Stone Attribute Wise.

Saved in & as:
  • emaADPPlanBenefitTemplateDiamondStoneCategoryDiscountDTL → StoneCategoryID (Stone Category)
  • emaADPPlanBenefitTemplateDiamondStoneSubCategoryDiscountDTL → StoneCategoryID (Stone Sub Category)
  • emaADPPlanBenefitTemplateDiamondStoneAttributeDiscountDTL → StoneCategoryID (Stone Attribute Wise)

Stone Sub Category (Diamond Panel)  (Multi-Selection Dropdown)

Description:

Selects the stone sub-category(ies) under the selected stone category for which the diamond discount applies.

Control Properties:
  • Default Value: —
  • Data Source: invStoneSubCategory & invStoneArticleCatalog
  • Filter Condition:
    • Active = True, listed from StoneSubCategoryID
    • Filtered by selected StoneCategoryID (Stone Category)
    • Linked Stone Article Configuration
    • MasterDataValueID_Stone = Diamond
  • User Entry: Multi-selection from dropdown
  • Mandatory: Yes (when Stone Setup Type = Stone Sub Category or Stone Attribute Wise)
Behavior:

Visible only when Stone Setup Type = Stone Sub Category or Stone Attribute Wise.

Saved in & as:
  • emaADPPlanBenefitTemplateDiamondStoneSubCategoryDiscountDTL → StoneSubCategoryID (Stone Sub Category)
  • emaADPPlanBenefitTemplateDiamondStoneAttributeDiscountDTL → StoneSubCategoryID (Stone Attribute Wise)

Stone Attribute Type (Diamond Panel)  (Single Selection Dropdown)

Description:

Selects the attribute type (e.g., Color, Clarity) used to further classify the stone for diamond discount.

Control Properties:
  • Default Value: —
  • Data Source: admMasterDataValueDTL
  • Filter Condition:
    • Active = True, listed from MasterDataValueID
    • MasterDataCategory = StoneAttributeType (1 to 15 dynamic categories)
  • User Entry: Single selection from dropdown
  • Mandatory: Yes (when Stone Setup Type = Stone Attribute Wise)
Behavior:

Visible only when Stone Setup Type = Stone Attribute Wise. Drives the values available in the Stone Attribute dropdown.

Saved in & as:
  • emaADPPlanBenefitTemplateDiamondStoneAttributeDiscountDTL → MasterDataValueID_StoneAttributeType

Stone Attribute (Diamond Panel)  (Multi-Selection Dropdown)

Description:

Selects the specific attribute value(s) (e.g., D color, VVS clarity) under the selected attribute type for diamond discount.

Control Properties:
  • Default Value: —
  • Data Source: invStoneAttribute & invStoneArticleCatalog
  • Filter Condition:
    • Active = True, listed from StoneAttributeID
    • Filtered by selected MasterDataValueID_StoneAttributeType
    • Linked Stone Article Configuration
    • MasterDataValueID_Stone = Diamond
  • User Entry: Multi-selection from dropdown
  • Mandatory: Yes (when Stone Setup Type = Stone Attribute Wise)
Behavior:

Visible only when Stone Setup Type = Stone Attribute Wise.

Saved in & as:
  • emaADPPlanBenefitTemplateDiamondStoneAttributeDiscountDTL → StoneAttributeID (one row per selection)

Stone Article (Diamond Panel)  (Multi-Selection Dropdown)

Description:

Selects the specific stone article catalog entry(ies) for which the diamond discount applies.

Control Properties:
  • Default Value: —
  • Data Source: invStoneArticleCatalog
  • Filter Condition:
    • Active = True, listed from StoneArticleCatalogID
    • Filtered by selected StoneID, StoneCategoryID, StoneSubCategoryID (for filtration only)
    • Linked Stone Article Configuration
    • MasterDataValueID_Stone = Diamond
  • User Entry: Multi-selection from dropdown
  • Mandatory: Yes (when Stone Setup Type = Stone Article)
Behavior:

Visible only when Stone Setup Type = Stone Article.

Saved in & as:
  • emaADPPlanBenefitTemplateDiamondStoneArticleDiscountDTL → StoneArticleCatalogID (one row per selection)

Diamond Discount Percentage  (Textbox)

Description:

The discount percentage to be applied on diamond/stone value.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes
  • Allowed Characters: Numeric (decimal)
Saved in & as:
  • Respective Diamond Discount DTL → DiamondDiscountPercent

5.5 Fixed Stone Rate Panel

Visible only when Fixed Stone Rate is checked in Benefit Applied On. Follows the same Stone Setup Type conditional layout as the Diamond Value Discount Panel — except the value field is Stone Rate (amount) instead of Diamond Discount Percent. No MasterDataValueID_Stone = Diamond filter condition applies for this panel.

Stone Setup Type (Stone Rate Panel)  (Single Selection Dropdown)

Description:

Determines the level at which the fixed stone rate is configured.

Control Properties:
  • Default Value: —
  • Data Source: admMasterDataValueDTL
  • Filter Condition:
    • Active = True, listed from MasterDataValueID
    • MasterDataCategory = VendorStoneRateSetUpType
  • User Entry: Selection from dropdown
  • Mandatory: Yes (when Fixed Stone Rate is selected)
  • Options:
    • Stone Group — Rate defined at the stone group (type) level.
    • Stone Category — Rate defined at the category level within a stone group.
    • Stone Sub Category — Rate defined at the sub-category level.
    • Stone Attribute Wise — Rate defined per stone attribute (e.g., color, clarity).
    • Stone Article — Rate defined per individual stone article catalog entry.
Behavior:
  • Stone Group → Shows: Stone Group (multi-select), Stone Rate.
  • Stone Category → Shows: Stone Group (multi-select), Stone Category (multi-select), Stone Rate.
  • Stone Sub Category → Shows: Stone Group (multi-select), Stone Category (multi-select), Stone Sub Category (multi-select), Stone Rate.
  • Stone Attribute Wise → Shows: Stone Attribute Type (single-select), Stone Group (multi-select), Stone Category (multi-select), Stone Sub Category (multi-select), Attribute Value (multi-select), Stone Rate.
  • Stone Article → Shows: Stone Article (multi-select), Stone Rate. All other fields are for filtration only.
Saved in & as:
  • emaADPPlanBenefitTemplateStoneRateDTL → MasterDataValueID_VendorStoneRateSetUpType (Stone Group)
  • emaADPPlanBenefitTemplateStoneCategoryRateDTL → MasterDataValueID_VendorStoneRateSetUpType (Stone Category)
  • emaADPPlanBenefitTemplateStoneSubCategoryRateDTL → MasterDataValueID_VendorStoneRateSetUpType (Stone Sub Category)
  • emaADPPlanBenefitTemplateStoneAttributeDiscountDTL → MasterDataValueID_VendorStoneRateSetUpType (Stone Attribute Wise)
  • emaADPPlanBenefitTemplateStoneArticleRateDTL → MasterDataValueID_VendorStoneRateSetUpType (Stone Article)

Stone Group (Stone Rate Panel)  (Multi-Selection Dropdown)

Description:

Selects the stone group(s) for which the fixed stone rate applies.

Control Properties:
  • Default Value: —
  • Data Source: invStone & invStoneArticleCatalog
  • Filter Condition:
    • Active = True, listed from StoneID
    • Linked Stone Article Configuration
  • User Entry: Multi-selection from dropdown
  • Mandatory: Yes
Saved in & as:
  • emaADPPlanBenefitTemplateStoneRateDTL → StoneID (Stone Group)
  • emaADPPlanBenefitTemplateStoneCategoryRateDTL → StoneID (Stone Category)
  • emaADPPlanBenefitTemplateStoneSubCategoryRateDTL → StoneID (Stone Sub Category)
  • emaADPPlanBenefitTemplateStoneAttributeDiscountDTL → StoneID (Stone Attribute Wise)
  • emaADPPlanBenefitTemplateStoneArticleRateDTL → StoneID (Stone Article)

Stone Category (Stone Rate Panel)  (Multi-Selection Dropdown)

Description:

Selects the stone category(ies) under the selected stone group for which the fixed stone rate applies.

Control Properties:
  • Default Value: —
  • Data Source: invStoneCategory & invStoneArticleCatalog
  • Filter Condition:
    • Active = True, listed from StoneCategoryID
    • Filtered by selected StoneID (Stone Group)
    • Linked Stone Article Configuration
  • User Entry: Multi-selection from dropdown
  • Mandatory: Yes (when Stone Setup Type = Stone Category, Stone Sub Category, or Stone Attribute Wise)
Behavior:

Visible only when Stone Setup Type = Stone Category, Stone Sub Category, or Stone Attribute Wise.

Saved in & as:
  • emaADPPlanBenefitTemplateStoneCategoryRateDTL → StoneCategoryID (Stone Category)
  • emaADPPlanBenefitTemplateStoneSubCategoryRateDTL → StoneCategoryID (Stone Sub Category)
  • emaADPPlanBenefitTemplateStoneAttributeDiscountDTL → StoneCategoryID (Stone Attribute Wise)

Stone Sub Category (Stone Rate Panel)  (Multi-Selection Dropdown)

Description:

Selects the stone sub-category(ies) under the selected stone category for which the fixed stone rate applies.

Control Properties:
  • Default Value: —
  • Data Source: invStoneSubCategory & invStoneArticleCatalog
  • Filter Condition:
    • Active = True, listed from StoneSubCategoryID
    • Filtered by selected StoneCategoryID (Stone Category)
    • Linked Stone Article Configuration
  • User Entry: Multi-selection from dropdown
  • Mandatory: Yes (when Stone Setup Type = Stone Sub Category or Stone Attribute Wise)
Behavior:

Visible only when Stone Setup Type = Stone Sub Category or Stone Attribute Wise.

Saved in & as:
  • emaADPPlanBenefitTemplateStoneSubCategoryRateDTL → StoneSubCategoryID (Stone Sub Category)
  • emaADPPlanBenefitTemplateStoneAttributeDiscountDTL → StoneSubCategoryID (Stone Attribute Wise)

Stone Attribute Type (Stone Rate Panel)  (Single Selection Dropdown)

Description:

Selects the attribute type (e.g., Color, Clarity) used to further classify the stone for fixed stone rate.

Control Properties:
  • Default Value: —
  • Data Source: admMasterDataValueDTL
  • Filter Condition:
    • Active = True, listed from MasterDataValueID
    • MasterDataCategory = StoneAttributeType (1 to 15 dynamic categories)
  • User Entry: Single selection from dropdown
  • Mandatory: Yes (when Stone Setup Type = Stone Attribute Wise)
Behavior:

Visible only when Stone Setup Type = Stone Attribute Wise. Drives the values available in the Stone Attribute dropdown.

Saved in & as:
  • emaADPPlanBenefitTemplateStoneAttributeDiscountDTL → MasterDataValueID_StoneAttributeType

Stone Attribute (Stone Rate Panel)  (Multi-Selection Dropdown)

Description:

Selects the specific attribute value(s) (e.g., D color, VVS clarity) under the selected attribute type for fixed stone rate.

Control Properties:
  • Default Value: —
  • Data Source: invStoneAttribute & invStoneArticleCatalog
  • Filter Condition:
    • Active = True, listed from StoneAttributeID
    • Filtered by selected MasterDataValueID_StoneAttributeType
    • Linked Stone Article Configuration
  • User Entry: Multi-selection from dropdown
  • Mandatory: Yes (when Stone Setup Type = Stone Attribute Wise)
Behavior:

Visible only when Stone Setup Type = Stone Attribute Wise.

Saved in & as:
  • emaADPPlanBenefitTemplateStoneAttributeDiscountDTL → StoneAttributeID (one row per selection)

Stone Article (Stone Rate Panel)  (Multi-Selection Dropdown)

Description:

Selects the specific stone article catalog entry(ies) for which the fixed stone rate applies.

Control Properties:
  • Default Value: —
  • Data Source: invStoneArticleCatalog
  • Filter Condition:
    • Active = True, listed from StoneArticleCatalogID
    • Filtered by selected StoneID, StoneCategoryID, StoneSubCategoryID (for filtration only)
    • Linked Stone Article Configuration
  • User Entry: Multi-selection from dropdown
  • Mandatory: Yes (when Stone Setup Type = Stone Article)
Behavior:

Visible only when Stone Setup Type = Stone Article.

Saved in & as:
  • emaADPPlanBenefitTemplateStoneArticleRateDTL → StoneArticleCatalogID (one row per selection)

Stone Rate  (Textbox)

Description:

Fixed rate amount to be applied on the stone for benefit calculation.

Control Properties:
  • Default Value: Empty
  • User Entry: Manual input by user
  • Mandatory: Yes
  • Allowed Characters: Numeric (decimal)
Saved in & as:
  • Respective Stone Rate DTL → StoneRate

5.6 Form Action Buttons

Save  (Button)

Description:

Validates all form data and persists the benefit template record.

Control Properties:
  • User Entry: Manual click by user
  • Mandatory: Yes
Behavior:
  • Validates all mandatory fields across header, slab, and stone/diamond panels.
  • Inserts HDR record + all applicable DTL records.
  • Sets ApprovalStatus = Pending on HDR.
  • On failure: displays inline validation errors without closing the form.

Clear  (Button)

Description:

Resets all form fields to their default state without saving.

Control Properties:
  • User Entry: Manual click by user
  • Mandatory: No
Behavior:
  • Clears all header fields, slab grid rows, and stone/diamond panel entries.
  • No data is saved. Form returns to blank Add mode.

6. Table View

The Table View is a Searchable Table View. Users can search and filter records by column values. Results update dynamically based on search input.

6.1 Column List

#Column HeaderSource FieldRemarks
1NameemaADPPlanBenefitTemplateHDR.Name
2DescriptionemaADPPlanBenefitTemplateHDR.Decription
3Plan Structure TypeadmMasterDataValueDTL (via MasterDataValueID_ADPPlanStructureType)Display label
4Benefit Eligibility TypeadmMasterDataValueDTL (via MasterDataValueID_ADPBenefitEligibilityType)Display label
5Settlement ModeemaADPPlanBenefitTemplateSettlementModeDTL (via MasterDataValueID_ADPBenefitSettlementMode)Display label; comma-separated if multiple
6RotationemaADPPlanBenefitTemplateHDR.Rotation
7Approval StatusadmMasterDataValueDTL (via MasterDataValueID_ApprovalStatus)Display label
8ActiveemaADPPlanBenefitTemplateHDR.ActiveActive / Inactive
9ActionsAdd, Edit, Delete, Export, Export All buttons

6.2 Add Button

6.3 Edit Button

Edit Scenario 1 — No Linked Transactions:

Edit Scenario 2 — Linked Transactions Exist:

6.4 Delete Button

6.5 Export Button

6.6 Export All Button

7. Functional Specifications

7.1 Save Behavior (Add Mode)

On Save, the system inserts records in the following sequence:

7.2 Edit Save Behavior

7.3 Common Validations

7.4.1 HDR Table — Value on Save

Table: emaADPPlanBenefitTemplateHDR — One row per template.

ColumnValue on Save
AdvancePlanBenefitTemplateIDNew GUID (system generated)
NameUser input
DecriptionUser input or NULL
MasterDataValueID_ADPPlanStructureTypeFK → admMasterDataValueDTL.MasterDataValueID
MasterDataValueID_ADPBenefitEligibilityTypeFK → admMasterDataValueDTL.MasterDataValueID
RotationUser input or NULL
MinWastagePercentUser input or NULL
MaxWastagePercentUser input or NULL
MinMakingAmountUser input or NULL
MaxMakingAmountUser input or NULL
Active1 = Active (default)
MasterDataValueID_ApprovalStatusPending

7.4.2 Settlement Mode DTL — Value on Save

Table: emaADPPlanBenefitTemplateSettlementModeDTL — One row per selected settlement mode.

ColumnValue on Save
AdvancePlanBenefitTemplateSettlementModeIDNew GUID (system generated)
AdvancePlanBenefitTemplateIDFK → emaADPPlanBenefitTemplateHDR
MasterDataValueID_ADPBenefitSettlementModeFK → admMasterDataValueDTL.MasterDataValueID (one row per mode)

7.4.3 Benefit Applied On DTL — Value on Save

Table: emaADPPlanBenefitTemplateBenefitAppliedOnDTL — One row per checked benefit item.

ColumnValue on Save
ADPPlanBenefitTemplateBenefitAppliedOnIDNew GUID (system generated)
AdvancePlanBenefitTemplateIDFK → emaADPPlanBenefitTemplateHDR
MasterDataValueID_ADPBenefitAppliedOnFK → admMasterDataValueDTL.MasterDataValueID
PriorityOrderUser input or NULL (when priority is applicable for that item)

7.4.4 Slab DTL — Value on Save

Table: emaADPPlanBenefitTemplateSlabDTL — One row per slab. Columns populated vary based on Benefit Eligibility Type.

ColumnInstallment CountDays From JoiningCollection Count
AdvancePlanBenefitTemplateSlabIDNew GUIDNew GUIDNew GUID
AdvancePlanBenefitTemplateIDFK → HDRFK → HDRFK → HDR
FromInstallmentNoUser inputNULLNULL
ToInstallmentNoUser inputNULLNULL
MinDaysCompletedUser input or NULLNULLUser input or NULL
FromDaysNULLUser inputNULL
ToDaysNULLUser inputNULL
MinInstallmentsPaidNULLUser input or NULLNULL
FromCollectionCountNULLNULLUser input
ToCollectionCountNULLNULLUser input
DeferralAmountUser input or NULL
WaiverWastagePercentUser input or NULL (when Wastage Waiver selected)
WaiverMakingPercentUser input or NULL (when Making Charge Waiver selected)
InterestPercentUser input or NULL (when Interest Benefit selected)
MetalRateDiscountPercentUser input or NULL (when Metal Rate Discount selected)
StoneValueDiscountPercentUser input or NULL (when Stone Value Discount selected)
BonusAmountUser input or NULL (when Bonus Amount selected)
BonusPercentageUser input or NULL (when Bonus Percent selected)
BonusWeightUser input or NULL (when Bonus Weight selected)

7.4.5 Diamond Discount DTLs — Value on Save

Saved only when Diamond Value Discount is selected in Benefit Applied On. The specific DTL table used depends on Stone Setup Type.

Stone Setup TypeTarget TableKey Columns Populated
Stone GroupemaADPPlanBenefitTemplateDiamondStoneDiscountDTLStoneID, DiamondDiscountPercent
Stone CategoryemaADPPlanBenefitTemplateDiamondStoneCategoryDiscountDTLStoneID, StoneCategoryID, DiamondDiscountPercent
Stone Sub CategoryemaADPPlanBenefitTemplateDiamondStoneSubCategoryDiscountDTLStoneID, StoneCategoryID, StoneSubCategoryID, DiamondDiscountPercent
Stone Attribute WiseemaADPPlanBenefitTemplateDiamondStoneAttributeDiscountDTLStoneID, StoneCategoryID, StoneSubCategoryID, MasterDataValueID_StoneAttributeType, StoneAttributeID, DiamondDiscountPercent
Stone ArticleemaADPPlanBenefitTemplateDiamondStoneArticleDiscountDTLStoneArticleCatalogID, DiamondDiscountPercent

7.4.6 Stone Rate DTLs — Value on Save

Saved only when Fixed Stone Rate is selected in Benefit Applied On. The specific DTL table used depends on Stone Setup Type.

Stone Setup TypeTarget TableKey Columns Populated
Stone GroupemaADPPlanBenefitTemplateStoneRateDTLStoneID, StoneRate
Stone CategoryemaADPPlanBenefitTemplateStoneCategoryRateDTLStoneID, StoneCategoryID, StoneRate
Stone Sub CategoryemaADPPlanBenefitTemplateStoneSubCategoryRateDTLStoneID, StoneCategoryID, StoneSubCategoryID, StoneRate
Stone Attribute WiseemaADPPlanBenefitTemplateStoneAttributeDiscountDTLStoneID, StoneCategoryID, StoneSubCategoryID, MasterDataValueID_StoneAttributeType, StoneAttributeID, StoneRate
Stone ArticleemaADPPlanBenefitTemplateStoneArticleRateDTLStoneArticleCatalogID, StoneRate