[FormControlEventHandler(formControlStr(HRMRecruitingTable, HRMRecruitingTable_Position), FormControlEventType::Lookup)]
public static void HRMRecruitingTable_Position_OnLookup(FormControl sender, FormControlEventArgs e)
{
HRMRecruitingTable HRMRecruitingTable = sender.formRun().dataSource(1).cursor();
HRMRecruitingTable HRMRecruitingTableCheck;
HcmPosition HcmPosition;
HcmPositionDetail HcmPositionDetail;
Query query = new Query();
QueryBuildDataSource qbds;
str Recids;
HcmPositionWorkerAssignment HcmPositionWorkerAssignment;
while select HcmPosition
join HcmPositionDetail
where HcmPositionDetail.Position == HcmPosition.Recid
//&& HcmPositionDetail.Job == HRMRecruitingTable.Job
&& HcmPositionDetail.Department == HRMRecruitingTable.Department
{
HRMRecruitingTableCheck.clear();
select HRMRecruitingTableCheck
where HRMRecruitingTableCheck.Position == HcmPosition.PositionId;
if(!HRMRecruitingTableCheck)
{
HcmPositionWorkerAssignment.Clear();
select HcmPositionWorkerAssignment
where HcmPositionWorkerAssignment.Position == HcmPosition.Recid;
//&& HcmPositionWorkerAssignment.Worker == 0;
if(!HcmPositionWorkerAssignment)
//&& HcmPositionWorkerAssignment.Validto > DateTimeUtil::getSystemDateTime())
Recids = queryRangeConcat(Recids , queryValue(HcmPosition.Recid));
//if(!HcmPositionWorkerAssignment
// || HcmPositionWorkerAssignment.Validto > DateTimeUtil::getSystemDateTime())
// Recids = queryRangeConcat(Recids , queryValue(HcmPosition.Recid));
}
}
SysTableLookup _sysTableLookup = SysTableLookup::newParameters(tableNum(HcmPosition),sender);
qbds= query.addDataSource(tableNum(HcmPosition));
if(Recids)
qbds.addRange(fieldNum(HcmPosition,Recid)).value(Recids);
else
qbds.addRange(fieldNum(HcmPosition,Recid)).value(int2Str(0));
_sysTableLookup.parmQuery(query);
_sysTableLookup.addLookupfield(fieldNum(HcmPosition,PositionID),true);
_sysTableLookup.addLookupMethod(tableMethodStr(HcmPosition, description));
_sysTableLookup.performFormLookup();
}