Procedura-EmployeeQuery

Parametry:

NázevPopisDatový typ
AHistoryDateFloat(0, 0)
APersonalNumberVarChar(10)
ADateOfBirthUsedChar(0)
ADateOfBirthFromFloat(0, 0)
ADateOfBirthToFloat(0, 0)
ARetirementFromUsedChar(0)
ARetirementFromFromFloat(0, 0)
ARetirementFromToFloat(0, 0)
AEmployPattern_IDChar(10)
AFormerLastnameVarChar(40)
AIgnoreCaseOnFormerLastnameChar(1)
ADrivingLicenceNumberVarChar(20)
ADrivingLicenceGroupsVarChar(20)
ANationality_IDChar(10)
AMaritalStatusInteger
AInsuranceComp_IDChar(10)
ATaxDeclarationChar(1)
AHIPaysGovermentChar(1)
AHICountMinimalChar(1)
AIsPartnerChar(1)
AMealTicketChar(1)
ADutyCarLowFloat(0, 0)
ADutyCarHighFloat(0, 0)
ARentOriginalIncomeLowFloat(0, 0)
ARentOriginalIncomeHighFloat(0, 0)
ARentActualIncomeLowFloat(0, 0)
ARentActualIncomeHighFloat(0, 0)
AToAccountChar(1)
ABankAccountVarChar(42)
AVarSymbolVarChar(30)
AIgnoreCaseOnVarSymbolChar(1)
AConstSymbol_IDChar(10)
ASpecSymbolVarChar(12)
ACurrency_IDChar(10)
ACurrAmountLowFloat(0, 0)
ACurrAmountHighFloat(0, 0)
ACurrIsPercentChar(1)
ACurrToAccountChar(1)
ACurrBankAccountVarChar(42)
ACurrVarSymbolVarChar(10)
ACurrConstSymbol_IDChar(10)
ACurrSpecSymbolVarChar(12)
ACurrBankNameVarChar(50)
ACurrSwiftCodeVarChar(11)
ACurrForeignIssueInteger
ACurrUrgentInteger
AFedPersonsLowInteger
AFedPersonsHighInteger
AWorkAbilityInteger
AMaterialResponsibilityChar(1)
AEducationGrade_IDChar(10)
AEducationBranch_IDChar(10)
ARetirementAgeUsedChar(1)
ARetirementAgeFromFloat(0, 0)
ARetirementAgeToFloat(0, 0)

Návratové hodnoty:

NázevPopisDatový typ
IDChar(10)

Závislosti:

NázevPopisTřída
WageStringValueOfFldProcedures
WageStringValueOfFldWithDefProcedures

Tělo:

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;

Generated by ABRA Software a.s. 27.10.2021 16:34:36