BEGIN
AccGroup_ID = '__________';
CreditAmount = 0;
DebetAmount = 0;
FOR
SELECT
Coalesce(D.DebitBusOrder_ID, '0000000000'),
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 (SELECT DISTINCT OBJ_ID, SEL_ID FROM SELDAT WHERE SEL_ID=:IDSelID) SLD
ON SLD.OBJ_ID = D.ID and SLD.SEL_ID=:IDSelID --rychlost a jen unikatni ID!!!
WHERE
D.IsRequest = 'N'
UNION ALL
SELECT
Coalesce(D.CreditBusOrder_ID, '0000000000'),
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 (SELECT DISTINCT OBJ_ID, SEL_ID FROM SELDAT WHERE SEL_ID=:IDSelID) SLD
ON SLD.OBJ_ID = D.ID and SLD.SEL_ID=:IDSelID --rychlost a jen unikatni ID!!!
WHERE
(Coalesce(D.CreditBusOrder_id, '0000000000') <> Coalesce(D.DebitBusorder_ID, '0000000000')) and (D.IsRequest = 'N')
ORDER BY 1 ASC, 2 DESC
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 (SELECT DISTINCT OBJ_ID, SEL_ID FROM SELDAT WHERE SEL_ID=:IDSelID) SLD
ON SLD.OBJ_ID = D.ID and SLD.SEL_ID=:IDSelID --rychlost a jen unikatni ID!!!
WHERE
Coalesce(D.DebitBusOrder_ID, '0000000000') = :AccGroup_ID and
D.IsRequest='N'
UNION ALL
SELECT D.ID
FROM GeneralLedger D
JOIN (SELECT DISTINCT OBJ_ID, SEL_ID FROM SELDAT WHERE SEL_ID=:IDSelID) SLD
ON SLD.OBJ_ID = D.ID and SLD.SEL_ID=:IDSelID --rychlost a jen unikatni ID!!!
WHERE
(Coalesce(D.CreditBusOrder_id, '0000000000') <> Coalesce(D.DebitBusorder_ID, '0000000000')) and
Coalesce(D.CreditBusOrder_ID, '0000000000') = :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 (SELECT DISTINCT OBJ_ID, SEL_ID FROM SELDAT WHERE SEL_ID=:IDSelID) SLD
ON SLD.OBJ_ID = D.ID and SLD.SEL_ID=:IDSelID --rychlost a jen unikatni ID!!!
WHERE
Coalesce(D.DebitBusOrder_ID, '0000000000') = :AccGroup_ID and
D.IsRequest='N'
UNION ALL
SELECT D.ID
FROM GeneralLedger D
JOIN (SELECT DISTINCT OBJ_ID, SEL_ID FROM SELDAT WHERE SEL_ID=:IDSelID) SLD
ON SLD.OBJ_ID = D.ID and SLD.SEL_ID=:IDSelID --rychlost a jen unikatni ID!!!
WHERE
(Coalesce(D.CreditBusOrder_id, '0000000000') <> Coalesce(D.DebitBusorder_ID, '0000000000')) and
Coalesce(D.CreditBusOrder_ID, '0000000000') = :AccGroup_ID and
D.IsRequest='N'
INTO :ID
DO
SUSPEND;
end
END;