BEGIN
FOR
SELECT A.ID
FROM Employees A JOIN Persons PR ON A.Person_ID = PR.ID
WHERE
((:APersonalNumber='') OR (PR.PersonalNumber LIKE :APersonalNumber ESCAPE '~')) AND
((:ADateOfBirthUsed<>'A') OR (PR.DateOfBirth$DATE BETWEEN :ADateOfBirthFrom AND :ADateOfBirthTo-1)) AND
((:ARetirementFromUsed<>'A') OR (A.RetirementFrom BETWEEN :ARetirementFromFrom AND :ARetirementFromTo-1)) AND
((:ARetirementAgeUsed<>'A') OR (A.RetirementAge BETWEEN :ARetirementAgeFrom AND :ARetirementAgeTo-1)) AND
((:AEmployPattern_ID='') OR (A.EmployPattern_ID IN (SELECT Obj_ID FROM Seldat WHERE Sel_ID=:AEmployPattern_ID)))
INTO ID
DO BEGIN
mUseThis = 1;
IF ((mUseThis > 0) AND (:AFormerLastname <> '')) THEN BEGIN
IF (:AIgnoreCaseOnFormerLastname in ('1','A')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 205, :AHistoryDate) WHERE UPPER(SValue Collate PXW_CSY) LIKE UPPER(:AFormerLastname Collate PXW_CSY) ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END ELSE BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 205, :AHistoryDate) WHERE SValue LIKE :AFormerLastname ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END
END /* of FormerLastname */
IF ((mUseThis > 0) AND (:ADrivingLicenceNumber <> '')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 210, :AHistoryDate) WHERE SValue LIKE :ADrivingLicenceNumber ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of DrivingLicenceNumber */
IF ((mUseThis > 0) AND (:ADrivingLicenceGroups <> '')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 211, :AHistoryDate) WHERE SValue LIKE :ADrivingLicenceGroups ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of DrivingLicenceGroups */
IF ((mUseThis > 0) AND (:ANationality_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 213, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM Seldat WHERE Sel_ID=:ANationality_ID AND Obj_ID=:mIDValue INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of Nationality_ID */
IF ((mUseThis > 0) AND (:AMaritalStatus > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 214, :AHistoryDate, '0') INTO mSValue;
IF (CAST(mSValue AS Numeric) <> :AMaritalStatus) THEN mUseThis = 0;
END /* of MaritalStatus */
IF ((mUseThis > 0) AND (:AInsuranceComp_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 215, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM Seldat WHERE Sel_ID=:AInsuranceComp_ID AND Obj_ID=:mIDValue INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of InsuranceComp_ID */
IF ((mUseThis > 0) AND (:ATaxDeclaration <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 217, :AHistoryDate, 'N') INTO mSValue;
IF (mSValue <> :ATaxDeclaration) THEN mUseThis = 0;
END /* of TaxDeclaration */
IF ((mUseThis > 0) AND (:AHIPaysGoverment <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 218, :AHistoryDate, 'N') INTO mSValue;
IF (mSValue <> :AHIPaysGoverment) THEN mUseThis = 0;
END /* of HIPaysGoverment */
IF ((mUseThis > 0) AND (:AHICountMinimal <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 219, :AHistoryDate, 'N') INTO mSValue;
IF (mSValue <> :AHICountMinimal) THEN mUseThis = 0;
END /* of HICountMinimal */
IF ((mUseThis > 0) AND (:AIsPartner <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 220, :AHistoryDate, 'N') INTO mSValue;
IF (mSValue <> :AIsPartner) THEN mUseThis = 0;
END /* of IsPartner */
IF ((mUseThis > 0) AND (:AMealTicket <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 221, :AHistoryDate, 'N') INTO mSValue;
IF (mSValue <> :AMealTicket) THEN mUseThis = 0;
END /* of MealTicket */
IF ((mUseThis > 0) AND (:ADutyCarLow > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 222, :AHistoryDate, '0') INTO mSValue;
IF ((CAST(mSValue AS Numeric) < :ADutyCarLow) OR (CAST(mSValue AS Numeric) > :ADutyCarHigh)) THEN mUseThis = 0;
END /* of DutyCar */
IF ((mUseThis > 0) AND (:ARentOriginalIncomeLow > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 223, :AHistoryDate, '0') INTO mSValue;
IF ((CAST(mSValue AS Numeric) < :ARentOriginalIncomeLow) OR (CAST(mSValue AS Numeric) > :ARentOriginalIncomeHigh)) THEN mUseThis = 0;
END /* of RentOriginalIncome */
IF ((mUseThis > 0) AND (:ARentActualIncomeLow > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 224, :AHistoryDate, '0') INTO mSValue;
IF ((CAST(mSValue AS Numeric) < :ARentActualIncomeLow) OR (CAST(mSValue AS Numeric) > :ARentActualIncomeHigh)) THEN mUseThis = 0;
END /* of RentActualIncome */
IF ((mUseThis > 0) AND (:AToAccount <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 225, :AHistoryDate, 'N') INTO mSValue;
IF (mSValue <> :AToAccount) THEN mUseThis = 0;
END /* of ToAccount */
IF ((mUseThis > 0) AND (:ABankAccount <> '')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 226, :AHistoryDate) WHERE SValue LIKE :ABankAccount ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of BankAccount */
IF ((mUseThis > 0) AND (:AVarSymbol <> '')) THEN BEGIN
IF (:AIgnoreCaseOnVarSymbol in ('1','A')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 227, :AHistoryDate) WHERE UPPER(SValue Collate PXW_CSY) LIKE UPPER(:AVarSymbol Collate PXW_CSY) ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END ELSE BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 227, :AHistoryDate) WHERE SValue LIKE :AVarSymbol ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END
END /* of VarSymbol */
IF ((mUseThis > 0) AND (:AConstSymbol_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 228, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM Seldat WHERE Sel_ID=:AConstSymbol_ID AND Obj_ID=:mIDValue INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of ConstSymbol_ID */
IF ((mUseThis > 0) AND (:ASpecSymbol <> '')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 229, :AHistoryDate) WHERE SValue LIKE :ASpecSymbol ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of SpecSymbol */
IF ((mUseThis > 0) AND (:ACurrency_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 230, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM Seldat WHERE Sel_ID=:ACurrency_ID AND Obj_ID=:mIDValue INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of Currency_ID */
IF ((mUseThis > 0) AND (:ACurrAmountLow > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 231, :AHistoryDate, '0') INTO mSValue;
IF ((CAST(mSValue AS Numeric) < :ACurrAmountLow) OR (CAST(mSValue AS Numeric) > :ACurrAmountHigh)) THEN mUseThis = 0;
END /* of CurrAmount */
IF ((mUseThis > 0) AND (:ACurrIsPercent <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 232, :AHistoryDate, 'N') INTO mSValue;
IF (mSValue <> :ACurrIsPercent) THEN mUseThis = 0;
END /* of CurrIsPercent */
IF ((mUseThis > 0) AND (:ACurrToAccount <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 233, :AHistoryDate, 'N') INTO mSValue;
IF (mSValue <> :ACurrToAccount) THEN mUseThis = 0;
END /* of CurrToAccount */
IF ((mUseThis > 0) AND (:ACurrBankAccount <> '')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 234, :AHistoryDate) WHERE SValue LIKE :ACurrBankAccount ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of CurrBankAccount */
IF ((mUseThis > 0) AND (:ACurrVarSymbol <> '')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 235, :AHistoryDate) WHERE SValue LIKE :ACurrVarSymbol ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of CurrVarSymbol */
IF ((mUseThis > 0) AND (:ACurrConstSymbol_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 236, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM Seldat WHERE Sel_ID=:ACurrConstSymbol_ID AND Obj_ID=:mIDValue INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of CurrConstSymbol_ID */
IF ((mUseThis > 0) AND (:ACurrSpecSymbol <> '')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 237, :AHistoryDate) WHERE SValue LIKE :ACurrSpecSymbol ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of CurrSpecSymbol */
IF ((mUseThis > 0) AND (:ACurrBankName <> '')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 238, :AHistoryDate) WHERE SValue LIKE :ACurrBankName ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of CurrBankName */
IF ((mUseThis > 0) AND (:ACurrSwiftCode <> '')) THEN BEGIN
SELECT COUNT(*) FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 239, :AHistoryDate) WHERE SValue LIKE :ACurrSwiftCode ESCAPE '~' INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of CurrSwiftCode */
IF ((mUseThis > 0) AND (:ACurrForeignIssue > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 240, :AHistoryDate, '0') INTO mSValue;
IF (CAST(mSValue AS Numeric) <> :ACurrForeignIssue) THEN mUseThis = 0;
END /* of CurrForeignIssue */
IF ((mUseThis > 0) AND (:ACurrUrgent > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 241, :AHistoryDate, '0') INTO mSValue;
IF (CAST(mSValue AS Numeric) <> :ACurrUrgent) THEN mUseThis = 0;
END /* of CurrUrgent */
/* FedPersons si nejsem jist - az podle DynSQL upresnit. Bud jako Numeric (Range), nebo jako Enumeration (Single). */
IF ((mUseThis > 0) AND (:AFedPersonsLow > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 242, :AHistoryDate, '0') INTO mSValue;
IF ((CAST(mSValue AS Numeric) < :AFedPersonsLow) OR (CAST(mSValue AS Numeric) > :AFedPersonsHigh)) THEN mUseThis = 0;
END /* of FedPersons */
IF ((mUseThis > 0) AND (:AWorkAbility > -1)) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 243, :AHistoryDate, '0') INTO mSValue;
IF (CAST(mSValue AS Numeric) <> :AWorkAbility) THEN mUseThis = 0;
END /* of WorkAbility */
IF ((mUseThis > 0) AND (:AMaterialResponsibility <> '*')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFldWithDef(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 244, :AHistoryDate, 'N') INTO mSValue;
IF (mSValue <> :AMaterialResponsibility) THEN mUseThis = 0;
END /* of MaterialResponsibility */
IF ((mUseThis > 0) AND (:AEducationGrade_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 257, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM Seldat WHERE Sel_ID=:AEducationGrade_ID AND Obj_ID=:mIDValue INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of EducationGrade */
IF ((mUseThis > 0) AND (:AEducationBranch_ID <> '')) THEN BEGIN
SELECT SValue FROM WageStringValueOfFld(:ID, 'CPP5AZU1CVF13JXS00KEZYD5AW', 258, :AHistoryDate) INTO mIDValue;
SELECT COUNT(*) FROM Seldat WHERE Sel_ID=:AEducationBranch_ID AND Obj_ID=:mIDValue INTO mCount;
IF (mCount = 0) THEN mUseThis = 0;
END /* of EducationBranch */
/* Jeste nove polozky - az po prejmenovani*/
/* Hotovo */
if (mUseThis > 0) THEN
Suspend;
END
END;