BEGIN
IF (InPeriod_ID IS NOT NULL) THEN BEGIN
SELECT A.DateFrom$DATE, A.DateTo$DATE
FROM Periods A
WHERE A.ID = :InPeriod_ID
INTO :mDateFrom, :mDateTo;
/* Seznam pouzitych uctu */
FOR
SELECT
GL.DebitAccount_ID
FROM
GeneralLedger GL
join Accounts A ON GL.DebitAccount_ID = A.ID
WHERE
GL.AccDate$Date >= :mDateFrom AND GL.AccDate$Date < :mDateTo AND
GL.IsRequest = 'N' AND
A.IsIncomplete = 'N'
UNION
SELECT
GL.CreditAccount_ID
FROM
GeneralLedger GL
join Accounts A ON GL.CreditAccount_ID = A.ID
WHERE
GL.AccDate$Date >= :mDateFrom AND GL.AccDate$Date < :mDateTo AND
GL.IsRequest = 'N' AND
A.IsIncomplete = 'N'
UNION
SELECT
AB.Account_ID
FROM
AccountBeginnings AB
join Accounts A ON AB.Account_ID = A.ID
WHERE
AB.Period_ID = :InPeriod_ID AND
A.IsIncomplete = 'N'
INTO :Account_ID
DO BEGIN /* FOR Accounts */
FOR
SELECT
A.Division_ID,
SUM(A.DebitAmount),
SUM(A.CreditAmount),
CAST(0.00 AS NUMERIC(15, 2)),
CAST(0.00 AS NUMERIC(15, 2))
FROM
AccountBeginnings A
WHERE
A.Account_ID = :Account_ID AND
A.Period_ID = :InPeriod_ID
GROUP BY
A.Account_ID, A.Division_ID
UNION ALL
SELECT
GL.DebitDivision_ID,
CAST(0.00 AS NUMERIC(15, 2)),
CAST(0.00 AS NUMERIC(15, 2)),
SUM(GL.Amount),
CAST(0.00 AS NUMERIC(15, 2))
FROM
GeneralLedger GL
WHERE
GL.DebitAccount_ID = :Account_ID AND
GL.IsRequest = 'N' AND
GL.Audited LIKE :InAudited AND
GL.AccDate$DATE >= :mDateFrom AND GL.AccDate$DATE < :mDateTo
GROUP BY
GL.DebitAccount_ID, GL.DebitDivision_ID
UNION ALL
SELECT
GL.CreditDivision_ID,
CAST(0.00 AS NUMERIC(15, 2)),
CAST(0.00 AS NUMERIC(15, 2)),
CAST(0.00 AS NUMERIC(15, 2)),
SUM(GL.Amount)
FROM
GeneralLedger GL
WHERE
GL.CreditAccount_ID = :Account_ID AND
GL.IsRequest = 'N' AND
GL.Audited LIKE :InAudited AND
GL.AccDate$DATE >= :mDateFrom AND GL.AccDate$DATE < :mDateTo
GROUP BY
GL.CreditAccount_ID, GL.CreditDivision_ID
INTO :Division_ID, :DebitBeginning, :CreditBeginning, :DebitTurnover,
:CreditTurnover
DO BEGIN /* For Turnovers */
IF (DebitBeginning IS NULL) THEN
DebitBeginning = 0.00;
IF (CreditBeginning IS NULL) THEN
CreditBeginning = 0.00;
IF (DebitTurnover IS NULL) THEN
DebitTurnover = 0.00;
IF (CreditTurnover IS NULL) THEN
CreditTurnover = 0.00;
IF ( (DebitBeginning <> 0.00) OR (CreditBeginning <> 0.00) OR
(DebitTurnover <> 0.00) OR (CreditTurnover <> 0.00) )
THEN
SUSPEND;
END
END
END
END;