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;