Thursday, 17 January 2019

Create Applicant x++

[
SysEntryPointAttribute(true),
AifCollectionTypeAttribute(“_hrOnBoardingContract”,Types::Class,classStr(FCC_AgencyAccessToESSContract)),
AifCollectionTypeAttribute(“return”,Types::String)
]
public str createApplicant(FCC_AgencyAccessToESSContract _agencyAccessToESSContract)
{
HcmApplicant hcmApplicant;
HcmAllPersonRecId person;
FirstName personName;
DirPartyRecId partyRecId;
DirPersonName dirPersonName;
RecId dirPersonRecid;
DirPerson dirPerson, dirPersonLocal, dirPersonUpdate;
DirPartyTable dirPartyTable;
HcmPersonPrivateDetails hcmPersonPrivateDetails;
HcmApplicantId applicantId;
str msg;

try
{
ttsBegin;
if (_agencyAccessToESSContract)
{

if(!person)
{
personName = _agencyAccessToESSContract.parmFirstName()+” “+_agencyAccessToESSContract.parmMiddleName()+” “+_agencyAccessToESSContract.parmLastName();

select firstOnly dirPersonName
join dirPersonLocal
where dirPersonName.Person == dirPersonLocal.RecId
join dirPartyTable
where dirPersonLocal.RecId == dirPartyTable.RecId
&& dirPersonName.FirstName == _agencyAccessToESSContract.parmFirstName()
&& dirPersonName.MiddleName == _agencyAccessToESSContract.parmMiddleName()
&& dirPersonName.LastName == _agencyAccessToESSContract.parmLastName();

if(dirPersonName)
{
applicantId = this.getHcmApplicantId();
hcmApplicant.ApplicantId = applicantId;
hcmApplicant.Person = dirPersonLocal.RecId;
hcmApplicant.insert();

this.identificationDetails( dirPersonLocal.RecId,
_agencyAccessToESSContract.parmCivilId(),
_agencyAccessToESSContract.parmIdentificationType(),
_agencyAccessToESSContract.parmCivilIdValidFrom(),
_agencyAccessToESSContract.parmCivilIdValidTo());

this.identificationDetails( dirPersonLocal.RecId,
_agencyAccessToESSContract.parmPassportNumber(),
_agencyAccessToESSContract.parmIdentificationType(),
_agencyAccessToESSContract.parmPassportValidFrom(),
_agencyAccessToESSContract.parmPassportValidTo());

select hcmPersonPrivateDetails
where hcmPersonPrivateDetails.Person == dirPersonLocal.RecId;
if(!hcmPersonPrivateDetails)
{

hcmPersonPrivateDetails.Person = dirPersonLocal.RecId;
hcmPersonPrivateDetails.Gender = _agencyAccessToESSContract.parmGender();
hcmPersonPrivateDetails.BirthDate = _agencyAccessToESSContract.parmBirthDate();
hcmPersonPrivateDetails.FCC_TotalYearsOfExperiance = _agencyAccessToESSContract.parmTotalYearsOfExperiance();
hcmPersonPrivateDetails.insert();
}
else
{
select forUpdate hcmPersonPrivateDetails
where hcmPersonPrivateDetails.Person == dirPersonLocal.RecId;

{
//hcmPersonPrivateDetails.Person = dirPersonLocal.RecId;
hcmPersonPrivateDetails.Gender = _agencyAccessToESSContract.parmGender();
hcmPersonPrivateDetails.BirthDate = _agencyAccessToESSContract.parmBirthDate();
hcmPersonPrivateDetails.FCC_TotalYearsOfExperiance = _agencyAccessToESSContract.parmTotalYearsOfExperiance();
hcmPersonPrivateDetails.update();
}
}

select forUpdate dirPersonUpdate
where dirPersonUpdate.RecId == dirPersonLocal.RecId;
//ttsBegin;
dirPersonUpdate.Nationality = _agencyAccessToESSContract.parmNationality();
dirPersonUpdate.update();
//ttsCommit;

msg = (“Applicant is created”);
}
else
{
partyRecId = DirPartyTable::createNew(DirPartyType::Person, personName).RecId;
dirPersonRecId = DirPerson::find(partyRecId).RecId;
dirPersonLocal = DirPerson::find(partyRecId);

dirPersonName.FirstName = _agencyAccessToESSContract.parmFirstName();
dirPersonName.MiddleName = _agencyAccessToESSContract.parmMiddleName();
dirPersonName.LastName = _agencyAccessToESSContract.parmLastName();
dirPersonName.Person = dirPersonRecId;

if (dirPersonName.validateWrite())
{
dirPersonName.insert();
}
applicantId = this.getHcmApplicantId();
hcmApplicant.ApplicantId = applicantId;

this.identificationDetails( dirPersonLocal.RecId,
_agencyAccessToESSContract.parmCivilId(),
_agencyAccessToESSContract.parmIdentificationType(),
_agencyAccessToESSContract.parmCivilIdValidFrom(),
_agencyAccessToESSContract.parmCivilIdValidTo());

this.identificationDetails( dirPersonLocal.RecId,
_agencyAccessToESSContract.parmPassportNumber(),
_agencyAccessToESSContract.parmIdentificationType(),
_agencyAccessToESSContract.parmPassportValidFrom(),
_agencyAccessToESSContract.parmPassportValidTo());

if(dirPersonRecId != hcmApplicant.Person)
{
hcmApplicant.Person = dirPersonRecId;
hcmApplicant.insert();

hcmPersonPrivateDetails.Person = dirPersonLocal.RecId;
hcmPersonPrivateDetails.Gender = _agencyAccessToESSContract.parmGender();
hcmPersonPrivateDetails.BirthDate = _agencyAccessToESSContract.parmBirthDate();
hcmPersonPrivateDetails.FCC_TotalYearsOfExperiance = _agencyAccessToESSContract.parmTotalYearsOfExperiance();
hcmPersonPrivateDetails.insert();

select forUpdate dirPersonUpdate
where dirPersonUpdate.RecId == dirPersonLocal.RecId;
//ttsBegin;
dirPersonUpdate.Nationality = _agencyAccessToESSContract.parmNationality();
dirPersonUpdate.update();
//ttsCommit;
}
msg = (“Applicant is created with new person”);
}
}
}
else
{
throw error(‘Error:Empty contract’);
}
ttsCommit;
}
catch
{
msg = infolog.text(infologLine());
infolog.clear();
}
return msg;
}

No comments:

Post a Comment