Skip to main content

Contracted Rates

Introduction

The Contracted Rates module maintains contracted unit rates, rate history, wages register linkage, and billing rate settings used by client invoicing and payroll-related calculations. It centralizes rate tables that must stay consistent across Billing and Payroll for manpower supply organizations.

Purpose

Contracted Rates enables finance and contracts teams to:

  • Define unit rates effective by date (as-on-date pricing)
  • Maintain rate revision history for audit
  • Link unit wages register data for compliance reporting
  • Configure salary billing rates and supporting masters (client, designation, ESI/PF/PTax)
  • Feed downstream billing and payroll processes with authoritative rate data

When to Use

Use Contracted Rates when you:

  • Negotiate new client unit pricing effective from a specific date
  • Maintain wages register submissions tied to contracted sites
  • Align billing particulars with contracted rate cards
  • Set up statutory group masters in the contracted-rates context
Downstream consumers

Bills invoicing and Payroll unit rate revision both depend on accurate contracted rate maintenance.

Overview / Architecture

ContractedRates Area reuses many Payroll DAL services (for example PayrollReportService) rather than a separate DAL/ContractedRates folder. Controllers wrap rate maintenance UI; persistence goes through payroll and report service SPs.

Entry URL: /ContractedRates/ContractedDashboard/Index
PageID: ContractedRates
Module flag: ContractedRates

Controllers

Dashboard & rates

ControllerPrimary responsibility
ContractedDashboardModule home
ContractedRateContracted rate definitions
UnitRateAsOnDateEffective-dated unit rates
UnitRateHistoryHistorical rate audit
UnitWagesRegisterWages register maintenance
SalaryBillingRateBilling rate linkage

Masters

ControllerPrimary responsibility
UnitMasterUnit reference
ClientMasterClient reference
ClientSegmentMasterClient segments
DesignationMasterDesignations
StateMasterStates
PFChallanGroupPF groups
ESIZoneMasterESI zones
PTaxMasterProfessional tax master

Views / Layout

AssetRole
_ContractedRatesLayout.cshtmlModule shell
UnitRateAsOnDate viewsRate grid and Excel export
Wages register viewsRegister entry and listing

ClosedXML Excel export is used on select rate screens (for example unit rate as-on-date downloads).

DAL

Contracted Rates delegates to existing payroll/report infrastructure:

DAL / serviceRole
PayrollReportServiceRate reports and as-on-date Excel datasets
Client_DAL / UnitMaster_DAL (Payroll)Shared masters
UnitRateReviseMaster_DAL (Payroll)Rate revision persistence

When tracing code, start at the Area controller and follow using DAL.Payroll references.

Business Objects

Primarily BO.Payroll types:

BO typeRole
UnitMaster_BOUnit context
Client_BOClient context
UnitRateReviseMaster_BORate revision rows
DesignationMaster_BODesignation linkage

Contracted-specific filter models may be anonymous in controller actions before SP calls.

Typical Workflow

New contracted rate effective date:

Data Flow

  1. Masters (client, unit, designation, statutory groups) maintained under ContractedRates controllers.
  2. UnitRateAsOnDate captures rate rows for a effective date → write SP via report service or payroll DAL.
  3. UnitRateHistory provides read-only trail for disputes and client audits.
  4. UnitWagesRegister stores register submissions linked to units and periods.
  5. SalaryBillingRate connects contracted rates to billing rate tables consumed by Bills module.
  6. Payroll unit rate revision and salary process read the same underlying tables when calculating chargeable vs payable amounts.

Reports

OutputSource
Unit rate as-on-date ExcelUnitRateAsOnDate + ClosedXML
Wages register listingsUnitWagesRegister views / SP grids
Embedded payroll reportsPayrollReportService from contracted context

Crystal MIS for contracted billing may also be triggered through shared report service methods.

Permissions

GateRequirement
Module flagdtVerifyUser.ContractedRates == true
SessionValid CompID
SensitivityRate data is commercially sensitive—limit flag to finance/contracts
Menu permissionsPer-screen DB permissions

Common Issues

SymptomLikely cause
Bill rate mismatchAs-on-date not effective for invoice period
Excel export emptyUnit filter or missing rate rows
Wages register rejectedUnit not linked in UnitMaster
Duplicate rate rowsOverlapping effective dates

Important Notes

No isolated DAL folder

There is no DAL/ContractedRates namespace—always trace into Payroll DAL and PayrollReportService.

Effective dating

Rates are date-sensitive. Billing and payroll both resolve “current” rate by as-on-date logic in SPs—verify effective date before client invoicing.

Common Mistakes

MistakeConsequence
Updating rates only in Bills parametersDivergence from contracted master
Skipping UnitRateHistory reviewAudit gaps on client disputes
Wages register without unit masterOrphan register rows

Next Steps

  1. Complete client/unit/designation masters in ContractedRates.
  2. Enter as-on-date rates for a pilot unit and verify in UnitRateHistory.
  3. Raise a test bill in Bills and reconcile rate lines against SalaryBillingRate.