BEGIN
FOR
SELECT ID, EmployPattern_ID
FROM WorkingRelations A
WHERE
((:AEmployee_ID='') OR (A.Employee_ID IN (SELECT Obj_ID FROM Seldat WHERE Sel_ID=:AEmployee_ID))) AND
((:AAnEmployPattern_ID='') OR (A.EmployPattern_ID IN (SELECT Obj_ID FROM Seldat WHERE Sel_ID=:AAnEmployPattern_ID))) AND
((:ADateOfBeginUsed<>'A') OR (((A.DateOfBegin$DATE BETWEEN :ADateOfBeginFrom AND :ADateOfBeginTo-1) and (:ADateOfBeginIsNegation = '0')) or (not (A.DateOfBegin$DATE BETWEEN :ADateOfBeginFrom AND :ADateOfBeginTo-1) and (:ADateOfBeginIsNegation = '1')) ) ) AND
((:ADateOfEndUsed<>'A') OR (((A.DateOfEnd$DATE BETWEEN :ADateOfEndFrom AND :ADateOfEndTo-1) and (:ADateOfEndIsNegation = '0')) or (not (A.DateOfEnd$DATE BETWEEN :ADateOfEndFrom AND :ADateOfEndTo-1) and (:ADateOfEndIsNegation = '1')) ) ) AND
((:AExternIdentification='') OR (A.ExternIdentification LIKE :AExternIdentification ESCAPE '~')) AND
((:ARecordedStatus = '*') OR (A.RecordedStatus = :ARecordedStatus)) AND
((:ACalcWage = '*') OR (A.CalcWage = :ACalcWage)) AND
((:ACalcInsurance = '*') OR (A.CalcInsurance = :ACalcInsurance))
INTO ID, EmployPattern_ID
DO BEGIN
mUseThis = 1;
HISTORYDIVISION_ID='';
IF ((mUseThis > 0) AND (:ADivision_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 218, :AHistoryDate) INTO HISTORYDIVISION_ID;
SELECT COUNT(*) FROM Divisions Bx
WHERE Bx.Hidden = 'N' AND
Bx.ID = :HISTORYDIVISION_ID AND
( (Bx.ID in (select OBJ_ID from SELDAT where SEL_ID = :ADivision_ID)) OR
((:ADivisionWithChildren in ('1', 'A')) and
(Bx.ID in (select ID from Sys$Divisions2
where Superior_ID in (select OBJ_ID from SELDAT where SEL_ID = :ADivision_ID)))))
INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of Division_ID */
IF ((mUseThis > 0) AND (:ABusOrder_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 219, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM BusOrders Bx
WHERE Bx.Hidden = 'N' AND
Bx.ID = :mIDValue AND
( (Bx.ID in (select OBJ_ID from SELDAT where SEL_ID = :ABusOrder_ID)) OR
((:ABusOrderWithChildren in ('1', 'A')) and
(Bx.ID in (select ID from Sys$BusOrders2
where Superior_ID in (select OBJ_ID from SELDAT where SEL_ID = :ABusOrder_ID)))))
INTO mCount;
IF (mCount =0) THEN mUseThis = 0;
END /* of BusOrder_ID */
IF ((mUseThis > 0) AND (:ABusTransaction_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 220, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM BusTransactions Bx
WHERE Bx.Hidden = 'N' AND
Bx.ID = :mIDValue AND
( (Bx.ID in (select OBJ_ID from SELDAT where SEL_ID = :ABusTransaction_ID)) OR
((:ABusTransactionWithChildren in ('1', 'A')) and
(Bx.ID in (select ID from Sys$BusTransactions2
where Superior_ID in (select OBJ_ID from SELDAT where SEL_ID = :ABusTransaction_ID)))))
INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of BusTransaction_ID */
IF ((mUseThis > 0) AND (:ABusProject_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 307, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM BusProjects Bx
WHERE Bx.Hidden = 'N' AND
Bx.ID = :mIDValue AND
( (Bx.ID in (select OBJ_ID from SELDAT where SEL_ID = :ABusProject_ID)) OR
((:ABusProjectWithChildren in ('1', 'A')) and
(Bx.ID in (select ID from Sys$BusProjects2
where Superior_ID in (select OBJ_ID from SELDAT where SEL_ID = :ABusProject_ID)))))
INTO mCount;
IF (mCount =0) THEN mUseThis = 0;
END /* of BusProject_ID */
IF ((mUseThis > 0) AND (:ACategory > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 221, :AHistoryDate, '0') INTO mSValue;
IF (CAST(mSValue AS Numeric) <> :ACategory) THEN mUseThis = 0;
END /* of Category */
IF ((mUseThis > 0) AND (:AWorkPosition_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 222, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM WorkPositions Bx
WHERE Bx.Hidden = 'N' AND
Bx.ID = :mIDValue AND
( (Bx.ID in (select OBJ_ID from SELDAT where SEL_ID = :AWorkPosition_ID)) OR
((:AWorkPositionWithChildren in ('1', 'A')) and
(Bx.ID in (select ID from Sys$WorkPositions2
where Superior_ID in (select OBJ_ID from SELDAT where SEL_ID = :AWorkPosition_ID)))))
INTO mCount;
IF (mCount =0) THEN mUseThis = 0;
END /* of WorkPosition_ID */
IF ((mUseThis > 0) AND (:ATypeOfWage > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 224, :AHistoryDate, '0') INTO mSValue;
IF (CAST(mSValue AS Numeric) <> :ATypeOfWage) THEN mUseThis = 0;
END /* TypeOfWage */
IF ((mUseThis > 0) AND (:AWageAmountLow > -1)) THEN BEGIN
SELECT CAST(SValue AS Numeric) FROM WageStringValueOfFldWithDef(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 225, :AHistoryDate, '0') INTO mFValue;
IF ((mFValue < :AWageAmountLow) OR (mFValue > :AWageAmountHigh)) THEN mUseThis = 0;
END /* of WageAmount */
IF ((mUseThis > 0) AND (:AAlertCompensationLow > -1)) THEN BEGIN
SELECT CAST(SValue AS Numeric) FROM WageStringValueOfFldWithDef(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 226, :AHistoryDate, '0') INTO mFValue;
IF ((mFValue < :AAlertCompensationLow) OR (mFValue > :AAlertCompensationHigh)) THEN mUseThis = 0;
END
IF ((mUseThis > 0) AND (:AShiftCalendar_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 227, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM Seldat WHERE Sel_ID=:AShiftCalendar_ID AND Obj_ID=:mIDValue INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of ShiftCalendar_ID */
IF ((mUseThis > 0) AND (:ACalcWorkingHours <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 228, :AHistoryDate) INTO mSValue;
IF (mSValue <> :ACalcWorkingHours) THEN mUseThis = 0;
END /* of CalcWorkingHours */
IF ((mUseThis > 0) AND (:ACalcOverTime <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 229, :AHistoryDate) INTO mSValue;
IF (mSValue <> :ACalcOverTime) THEN mUseThis = 0;
END /* of CalcOverTime */
IF ((mUseThis > 0) AND (:ACalcMinimalWage <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 230, :AHistoryDate) INTO mSValue;
IF (mSValue <> :ACalcMinimalWage) THEN mUseThis = 0;
END /* of CalcMinimalWage */
IF ((mUseThis > 0) AND (:AWorkingTime <> '')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 233, :AHistoryDate) WHERE SValue LIKE :AWorkingTime ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of WorkingTime */
IF ((mUseThis > 0) AND (:AWorkingDestination <> '')) THEN BEGIN
IF (:AIgnoreCaseOnDestination in ('A','1')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 234, :AHistoryDate) WHERE UPPER(SValue Collate PXW_CSY) LIKE UPPER(:AWorkingDestination Collate PXW_CSY) ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END ELSE BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 234, :AHistoryDate) WHERE SValue LIKE :AWorkingDestination ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END
END /* of WorkingDestination */
IF ((mUseThis > 0) AND (:AWorkingPlace <> '')) THEN BEGIN
IF (:AIgnoreCaseOnPlace in('A','1')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 235, :AHistoryDate) WHERE UPPER(SValue Collate PXW_CSY) LIKE UPPER(:AWorkingPlace Collate PXW_CSY) ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END ELSE BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 235, :AHistoryDate) WHERE SValue LIKE :AWorkingPlace ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END
END /* of WorkingPlace */
IF ((mUseThis > 0) AND (:ATypeOfActivity > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 239, :AHistoryDate, '0') INTO mSValue;
IF (CAST(mSValue AS Numeric) <> :ATypeOfActivity) THEN mUseThis = 0;
END /* of TypeOfActivity */
IF ((mUseThis > 0) AND (:AJobClasification_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 243, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM Seldat WHERE Sel_ID=:AJobClasification_ID AND Obj_ID=:mIDValue INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of JobClasification_ID */
IF ((mUseThis > 0) AND (:AJobPosition_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 242, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM Seldat WHERE Sel_ID=:AJobPosition_ID AND Obj_ID=:mIDValue INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of JobPosition_ID */
IF (mUseThis > 0) THEN BEGIN
IF (HISTORYDIVISION_ID='') THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'RFW3EQ50IEVOF2F5F33OWL1GXC', 218, :AHistoryDate) INTO HISTORYDIVISION_ID;
END
Suspend;
END
END
END;