Procedura-GeneralLedgerGroupsB

Popis:
Účetní deník souvztažně - omezení přímo za ID z účetního deníku / žádostí

Parametry:

NázevPopisDatový typ
IDSelIDChar(10)

Návratové hodnoty:

NázevPopisDatový typ
AccGroup_IDChar(10)
AccDate$DATEFloat(0, 0)
IDChar(10)
CreditAmountNumeric(15, 2)
DebetAmountNumeric(15, 2)

Tělo:

BEGIN
  AccGroup_ID = '__________';
  CreditAmount = 0;
  DebetAmount = 0;
  FOR
    SELECT
      D.AccGroup_ID,
      D.AccDate$DATE,
      D.Amount * (select Max(IValue) from SYS$DECIDETable where IValue = 0 or
        D.DebitAccount_ID in (select AC.ID from Accounts AC where D.DebitAccount_ID = AC.ID)),
      D.Amount * (select Max(IValue) from SYS$DECIDETable where IValue = 0 or
         D.CreditAccount_ID in (select AC.ID from Accounts AC where D.CreditAccount_ID = AC.ID))
    FROM
      GeneralLedger D
      join SELDAT SLD on SLD.OBJ_ID = D.ID and SLD.SEL_ID=:IDSelID --rychlost !!!
    WHERE
      D.IsRequest = 'N'
    ORDER BY
      D.AccGroup_ID ASC, D.AccDate$DATE ASC
  INTO
    :mAccGroup_ID, :mAccDate$DATE, :mDebetAmount, :mCreditAmount
  DO BEGIN
    IF (AccGroup_ID = '__________' or
      ((AccGroup_ID = mAccGroup_ID) or
      (AccGroup_ID is null and mAccGroup_ID is null)))
    THEN BEGIN
      CreditAmount = CreditAmount + mCreditAmount;
      DebetAmount = DebetAmount + mDebetAmount;
      AccGroup_ID = mAccGroup_ID;
      AccDate$DATE = mAccDate$DATE;
    END
    ELSE BEGIN
      FOR
        SELECT D.ID
        FROM GeneralLedger D
             join SELDAT SLD on SLD.OBJ_ID = D.ID and SLD.SEL_ID=:IDSelID --rychlost !!!
        WHERE
          D.AccGroup_ID = :AccGroup_ID and
          D.IsRequest='N'
        INTO :ID
      DO
        SUSPEND;
      CreditAmount = mCreditAmount;
      DebetAmount = mDebetAmount;
      AccGroup_ID = mAccGroup_ID;
      AccDate$DATE = mAccDate$DATE;
    END
  END
  IF (AccGroup_ID <> '__________') THEN BEGIN
    FOR
      SELECT D.ID
      FROM GeneralLedger D
           join SELDAT SLD on SLD.OBJ_ID = D.ID and SLD.SEL_ID=:IDSelID --rychlost !!!
      WHERE
        D.AccGroup_ID = :AccGroup_ID and
        D.IsRequest='N'
      INTO :ID
    DO
      SUSPEND;
  end
END;

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