Controller:
class GITS_CertificateOfSalaryController extends SrsReportRunController
{
EnglishArabic EnglishArabic;
public static GITS_CertificateOfSalaryController construct()
{
return new GITS_CertificateOfSalaryController();
}
public static void main(Args _args)
{
GITS_CertificateOfSalaryController GITS_CertificateOfSalaryController = GITS_CertificateOfSalaryController::construct();
GITS_CertificateOfSalaryController.parmReportName(ssrsReportStr(GITS_CertificateOfSalary, Report));
GITS_CertificateOfSalaryController.parmArgs(_args);
GITS_CertificateOfSalaryController.parmDialogCaption("Certificate of letter");
GITS_CertificateOfSalaryController.startOperation();
}
protected void preRunModifyContract()
{
RefRecId worker;
GITS_CertificateOfSalaryContract contract = this.parmReportContract().parmRdpContract() as GITS_CertificateOfSalaryContract;
worker = contract.parmWorkerRecId();
EnglishArabic = contract.parmEnglishArabic();
this.parmReportContract().parmReportName(this.getReportName(contract));
super();
}
protected void prePromptModifyContract()
{
}
private str getReportName(GITS_CertificateOfSalaryContract _contract)
{
str lclReportName;
if (_contract.parmEnglishArabic() == EnglishArabic::English)
{
lclReportName = ssrsReportStr(GITS_CertificateOfSalary, Report);
}
if (_contract.parmEnglishArabic() == EnglishArabic::Arabic)
{
lclReportName = ssrsReportStr(GITS_CertificateOfSalary, ReportArabic);
}
return lclReportName;
}
}
Contract:
[DataContractAttribute]
public class GITS_CertificateOfSalaryContract
{
HcmWorkerRecId WorkerRecId;
EnglishArabic EnglishArabic;
[
DataMemberAttribute(identifierStr(WorkerRecid)),
SysOperationLabelAttribute("Employee"),
SysOperationDisplayOrderAttribute('1')
]
public HcmWorkerRecId parmWorkerRecId(HcmWorkerRecId _WorkerRecId = WorkerRecId)
{
WorkerRecId = _WorkerRecId;
return WorkerRecId;
}
[
DataMemberAttribute(identifierStr(EnglishArabic)),
SysOperationLabelAttribute("Language"),
SysOperationDisplayOrderAttribute('2')
]
public EnglishArabic parmEnglishArabic(EnglishArabic _EnglishArabic = EnglishArabic)
{
EnglishArabic = _EnglishArabic;
return EnglishArabic;
}
}
DP Class:
[SRSReportParameterAttribute(classStr(GITS_CertificateOfSalaryContract))]
class GITS_CertificateOfSalaryDP extends SRSReportDataProviderBase
{
GITS_CertificateOfSalaryTmp GITS_CertificateOfSalaryTmp;
CompanyInfo companyinfo;
[SRSReportDataSetAttribute(tablestr(GITS_CertificateOfSalaryTmp))]
public GITS_CertificateOfSalaryTmp getGITS_CertificateOfSalaryTmp()
{
select GITS_CertificateOfSalaryTmp;
return GITS_CertificateOfSalaryTmp;
}
public void processReport()
{
GITS_CertificateOfSalaryContract contract;
HcmWorkerRecId worker;
EnglishArabic EnglishArabic;
HcmPositionWorkerAssignment HcmPositionWorkerAssignmentLocal;
HcmPosition HcmPositionLocal;
HcmPositionDetail HcmPositionDetailLocal;
HRMCourseAttendee HRMCourseAttendeeLocal;
HRMCourseTable HRMCourseTableLocal;
HcmPersonIdentificationNumber hcmPersonIdentificationNumber;
DirPerson DirPerson;
HcmPosition hcmPosition;
HcmPositionDetail hcmPositionDetail;
HcmPositionWorkerAssignment workerAssignment;
HcmWorker hcmWorker;
;
contract = this.parmDataContract() as GITS_CertificateOfSalaryContract;
companyinfo = CompanyInfo::find();
worker = contract.parmWorkerRecId();
EnglishArabic = contract.parmEnglishArabic();
TransDate dateLocal = today();
select validTimeState(dateLocal,dateLocal) HcmPositionWorkerAssignmentLocal
where HcmPositionWorkerAssignmentLocal.Worker == worker;
select * from HcmPositionLocal
where HcmPositionLocal.RecId == HcmPositionWorkerAssignmentLocal.Position;
select * from HcmPositionDetailLocal
where HcmPositionDetailLocal.Position == HcmPositionLocal.RecId;
select * from HRMCourseAttendeeLocal order by RecId desc
where HRMCourseAttendeeLocal.Person == HcmWorker::find(worker).Person;
select * from HRMCourseTableLocal
where HRMCourseTableLocal.hrmCourseId == HRMCourseAttendeeLocal.hrmCourseId;
select hcmPersonIdentificationNumber
where hcmPersonIdentificationNumber.Description == "Passport"
join DirPerson
where hcmPersonIdentificationNumber.person == dirPerson.recid
&& DirPerson.RecId == HcmWorker::find(worker).Person;
select hcmPositionDetail
join hcmPosition
where hcmPositionDetail.Position == hcmPosition.RecId
join workerAssignment
where hcmPosition.RecId == workerAssignment.Position
join hcmWorker
where hcmWorker.RecId == workerAssignment.Worker
&& hcmWorker.RecId == worker;
GITS_CertificateOfSalaryTmp.clear();
GITS_CertificateOfSalaryTmp.CompanyName = companyinfo.name();
GITS_CertificateOfSalaryTmp.CompanyEmail = companyinfo.email();
GITS_CertificateOfSalaryTmp.CompanyAddress = companyinfo.postalAddress().Address;
GITS_CertificateOfSalaryTmp.CompanyPhoneMobile= companyinfo.phone();
GITS_CertificateOfSalaryTmp.CompanyFax = companyinfo.teleFax();
GITS_CertificateOfSalaryTmp.CompanyLogo = FormLetter::companyLogo();
GITS_CertificateOfSalaryTmp.Name = HcmWorker::find(contract.parmWorkerRecId()).Name();
GITS_CertificateOfSalaryTmp.TransDate = DAPEmplContract::findActiveContractForEmpl(worker).ValidFrom;
GITS_CertificateOfSalaryTmp.JoiningDate = subStr(any2Str(GITS_CertificateOfSalaryTmp.TransDate),1,10);
GITS_CertificateOfSalaryTmp.PassportNumber = hcmPersonIdentificationNumber.IdentificationNumber;
GITS_CertificateOfSalaryTmp.Position = hcmPositionDetail.Description;
GITS_CertificateOfSalaryTmp.Salary = DAPEmplContract::findActiveContractForEmpl(worker).BasicSalary;
GITS_CertificateOfSalaryTmp.SalaryWords = Global::numeralsToTxt(GITS_CertificateOfSalaryTmp.Salary);
GITS_CertificateOfSalaryTmp.Course = HRMCourseTableLocal.description;
GITS_CertificateOfSalaryTmp.CourseLocaltion = HRMCourseTableLocal.hrmCourseLocationId;
GITS_CertificateOfSalaryTmp.Department = hcmWorker.primaryDepartmentName();
str b = any2Str(DatetimeUtil::month(HRMCourseTableLocal.startDateTime)); str c = any2Str(DatetimeUtil::year(HRMCourseTableLocal.startDateTime)); str h = any2Str(DatetimeUtil::day(HRMCourseTableLocal.startDateTime));
str e = any2Str(DatetimeUtil::month(HRMCourseTableLocal.endDateTime)); str f = any2Str(DatetimeUtil::year(HRMCourseTableLocal.endDateTime)); str g = any2Str(DatetimeUtil::day(HRMCourseTableLocal.endDateTime));
str Duration = h + "-" + b + "-" + c + " to " + g + "-" + e + "-" + f;
GITS_CertificateOfSalaryTmp.CourseDuration = Duration;
if(HcmPersonPrivateDetails::findByPerson(HcmWorker::find(worker).Person).Gender == HcmPersonGender::Male)
{
GITS_CertificateOfSalaryTmp.HisHer = "His"; GITS_CertificateOfSalaryTmp.HeShe = "He"; GITS_CertificateOfSalaryTmp.HeSheSmall = "he";
GITS_CertificateOfSalaryTmp.MrMrs = "Mr"; GITS_CertificateOfSalaryTmp.HimHer = "Him"; GITS_CertificateOfSalaryTmp.HimHerSmall = "him";
}
if(HcmPersonPrivateDetails::findByPerson(HcmWorker::find(worker).Person).Gender == HcmPersonGender::Female)
{
GITS_CertificateOfSalaryTmp.HisHer = "Her"; GITS_CertificateOfSalaryTmp.HeShe = "She"; GITS_CertificateOfSalaryTmp.HeSheSmall = "she";
GITS_CertificateOfSalaryTmp.MrMrs = "Mrs"; GITS_CertificateOfSalaryTmp.HimHer = "Her"; GITS_CertificateOfSalaryTmp.HimHerSmall = "her";
}
GITS_CertificateOfSalaryTmp.insert();
}
}