Hi Riyas,
Can you try this code and check if that works for you?
///
/// The MPWorkerEmploymentDP class declares the variables that are required for the
/// MPWorkerEmploymentDP report.
///
[
SRSReportParameterAttribute(classstr(MPWorkerEmploymentContract)) ,
SRSReportQueryAttribute(queryStr(MPWorkerEmployment))
]
class MPWorkerEmploymentDP extends SrsReportDataProviderPreProcessTempDB
{
MPWorkerEmplymentTmp workerEmplymentTmp;
///
/// Retrieves the data from the MPWorkerEmplymentTmp table for the report.
///
///
/// The MPWorkerEmplymentTmp table.
///
[
SRSReportDataSetAttribute(tableStr(MPWorkerEmplymentTmp))
]
public MPWorkerEmplymentTmp getMPWorkerEmplymentTmp()
{
select workerEmplymentTmp;
return workerEmplymentTmp;
}
///
/// Processes the report business logic.
///
public void processReport()
{
Query query;
QueryRun queryRun;
HcmWorker worker;
HcmPersonPrivateDetails personPrivateDetails;
MPLegalCommitment legalCommitment;
HcmEmployment employment;
RecordInsertList recordInsertList;
FromDate fromDate;
ToDate toDate;
MPEmploymentStatus employmentStatus;
MPWorkerEmploymentContract contract;
QueryBuilRange dateRange;
UTCDateTime fromDateTime, toDateTime;
contract = this.parmDataContract() as MPWorkerEmploymentContract;
fromDate = contract.parmFromDate();
toDate = contract.parmToDate();
employmentStatus = contract.parmMPEmploymentStatus();
fromDateTime = DateTimeUtil::newDateTime(fromDate, 0);
toDateTime = DateTimeUtil::newDateTime(toDate, 0);
recordInsertList = new RecordInsertList(workerEmplymentTmp.TableId, true, true, true, false, true, workerEmplymentTmp);
this.takeOwnershipOfTempTable(workerEmplymentTmp);
if(fromDate > (toDate))
{
}
query = this.parmQuery();
//fromDate = any2Date(mthOfYr(Year()));
QueryBuildDataSource qbds = query.dataSourceTable(tableNum(HcmEmployment));
switch (employmentStatus)
{
case MPEmploymentStatus::ActiveWorker:
qbds.addRange(fieldnum(HcmEmployment,ValidTo)).value(queryRange(toDateTime, DateTimeUtil::maxValue());
break;
case MPEmploymentStatus::Joiner:
qbds.addRange(fieldnum(HcmEmployment,ValidFrom)).value(queryRange((fromDateTime 1), DateTimeUtil::maxValue());
break;
case MPEmploymentStatus::Leaver:
qbds.addRange(fieldnum(HcmEmployment,ValidTo)).value(queryRange((fromDateTime 1), toDateTime);
break;
}
queryRun = new QueryRun(query);
while(queryRun.next())
{
worker = queryRun.get(tableNum(HcmWorker));
personPrivateDetails = queryRun.get(tableNum(HcmPersonPrivateDetails));
employment = queryRun.get(tableNum(HcmEmployment));
workerEmplymentTmp.PersonnelNumber = worker.PersonnelNumber;
workerEmplymentTmp.BirthDate = personPrivateDetails.BirthDate;
workerEmplymentTmp.Nationality = personPrivateDetails.NationalityCountryRegion;
workerEmplymentTmp.Gender = personPrivateDetails.Gender;
workerEmplymentTmp.JoiningDate = employment.ValidFrom;
workerEmplymentTmp.EmploymentType = employment.EmploymentType;
workerEmplymentTmp.GrossSalary = worker.grossSalary();
recordInsertList.add(workerEmplymentTmp);
}
recordInsertList.insertDatabase();
}
}