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,
coalesce(A.BusOrder_ID, '0000000000') as BusOrder_ID,
coalesce(A.BusTransaction_ID, '0000000000') as BusTransaction_ID,
coalesce(A.BusProject_ID, '0000000000') as BusProject_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, A.Busorder_ID, A.BusTransaction_ID, A.BusProject_ID
UNION ALL
SELECT
GL.DebitDivision_ID,
coalesce(GL.DebitBusOrder_ID, '0000000000') as BusOrder_ID,
coalesce(GL.DebitBusTransaction_ID, '0000000000') as BusTransaction_ID,
coalesce(GL.DebitBusProject_ID, '0000000000') as BusProject_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, GL.DebitBusorder_ID, GL.DebitBusTransaction_ID, GL.DebitBusProject_ID
UNION ALL
SELECT
GL.CreditDivision_ID,
coalesce(GL.CreditBusOrder_ID, '0000000000') as BusOrder_ID,
coalesce(GL.CreditBusTransaction_ID, '0000000000') as BusTransation_ID,
coalesce(GL.CreditBusProject_ID, '0000000000') as BusProject_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, GL.CreditBusorder_ID, GL.CreditBusTransaction_ID, GL.CreditBusProject_ID
INTO :Division_ID, :Busorder_ID, :BusTransaction_ID, :BusProject_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;