Procedura-CopyWageClosingDefFromMaster

Parametry:

NázevPopisDatový typ
AOrgTypeChar(1)

Tělo:

BEGIN
  mOrgTypeN = CAST(:AOrgType as integer);
  IF (mOrgTypeN = 0) THEN
    SELECT OrganisationType from GlobData INTO mOrgTypeN;
  IF (mOrgTypeN > 0) then BEGIN
    mOrgTypeC = CAST(mOrgTypeN as char);
    /*Unikátnost definice se testuje podle kódu, aby se nemnožily definice */
    FOR SELECT H.Code, H.ID FROM MasterWageClosingDefs H WHERE H.ForOrgTypes containing :mOrgTypeC INTO mCode, mOID DO
    BEGIN
      SELECT count(*) FROM WageClosingDefs A WHERE A.Code = :mCode INTO mCount;
      IF (mCount = 0) THEN
      BEGIN
        /*Definice se nenašla pod daným kódem, ale může v datech existovat pod stejným ID.
          To se může tak, že se u dodávané definice změnil kód. Takovou definici také nepřidáme, protože by to vyvolalo chybu porušení integrity díky duplikování ID.*/
        SELECT count(*) FROM WageClosingDefs A WHERE A.ID = :mOID INTO mCount;
      END
      IF (mCount = 0) THEN
      BEGIN
        FOR SELECT M.ID, M.Code, M.Hidden, M.Name, M.Periodicity, M.CalcChart_ID, M.ToAccounting, M.AccPresetDef_ID, M.SplitByOperations,
           M.OperationCodes, M.ToPaymentOrder, M.MinusSign, M.PaymentDef_ID, M.DocQueue_ID, M.CorrectedBy_ID, M.CreatedBy_ID, M.Rounding,
           M.CorrectionType, M.CorrectionExpr, M.OnlyEvalExpression           
          FROM MasterWageClosingDefs M
          WHERE (M.ID = :mOID) and
          ((EXISTS (SELECT acc.ID FROM AccPresetDefs acc WHERE acc.ID = M.AccPresetDef_ID)) /* nebudu přidávat takové definice, které se odkazují na neexistující předkontace */
          or (M.AccPresetDef_ID is null))
          INTO :m_ID, :m_Code, :m_Hidden, :m_Name, :m_Periodicity, :m_CalcChart_ID, :m_ToAccounting, :m_AccPresetDef_ID, :m_SplitByOperations,
           :m_OperationCodes, :m_ToPaymentOrder, :m_MinusSign, :m_PaymentDef_ID, :m_DocQueue_ID, :m_CorrectedBy_ID, :m_CreatedBy_ID, :m_Rounding,
           :m_CorrectionType, :m_CorrectionExpr, :m_OnlyEvalExpression
        DO BEGIN
          insert into WageClosingDefs (ID, Code, Hidden, Name, Periodicity, CalcChart_ID, ToAccounting, AccPresetDef_ID, SplitByOperations,
             OperationCodes, ToPaymentOrder, MinusSign, PaymentDef_ID, DocQueue_ID, CorrectedBy_ID, CreatedBy_ID, Rounding, CorrectionType, CorrectionExpr, OnlyEvalExpression)
            values (:m_ID, :m_Code, :m_Hidden, :m_Name, :m_Periodicity, :m_CalcChart_ID, :m_ToAccounting, :m_AccPresetDef_ID, :m_SplitByOperations,
             :m_OperationCodes, :m_ToPaymentOrder, :m_MinusSign, :m_PaymentDef_ID, :m_DocQueue_ID, :m_CorrectedBy_ID, :m_CreatedBy_ID, :m_Rounding, :m_CorrectionType, :m_CorrectionExpr, :m_OnlyEvalExpression);
        END
      END
    END
  END
END;

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