BEGIN
DebitBeginning = 0.00;
CreditBeginning = 0.00;
DebitTurnover = 0.00;
CreditTurnover = 0.00;
FOR
/* Pocatky z tabulky pocatku pro ucty 431, 751 a 791 */
SELECT
A.Account_ID,
A.Division_ID,
0.00,
0.00,
SUM(A.DebitAmount),
SUM(A.CreditAmount),
NULL
FROM
AccountBeginnings A
join Accounts AC ON A.Account_ID = AC.ID
WHERE
A.Period_ID = :InPeriod_ID AND
( (:InDivisionSelID = '') OR
(A.Division_ID IN
(
SELECT Bx.ID FROM Divisions Bx WHERE Bx.Hidden = 'N' AND
( (Bx.ID in (select OBJ_ID from SELDAT where SEL_ID = :InDivisionSelID)) OR
((:InDivisionsWithChilds in ('1', 'A')) and (Bx.ID in (select ID from SYS$Divisions2 where Superior_ID in (select OBJ_ID from SELDAT where SEL_ID = :InDivisionSelID)))))
)
)
) AND
( (:InAllowRequest = 'A') OR
(:InAllowRequest = 'N' AND AC.IsIncomplete = 'N') ) AND
( ( AC.code like '431%' ) or (AC.code like '751%') or (AC.code like '791%') )
GROUP BY
A.Account_ID, A.Division_ID
UNION ALL
/* Pocatky pocitane pomoci obratu za vsechny data zpetne - kvuli pocatkum za jednotlive firmy */
SELECT
A.Account_ID,
A.Division_ID,
0.00,
0.00,
SUM(A.Amount * A.DebitSide),
SUM(A.Amount * A.CreditSide),
A.Firm_ID
FROM
LimitGeneralLedger('', 0, :InAccPeriodDateFrom,
:InAllowRequest, :InAudited, :InDivisionSelID, :InDivisionsWithChilds,
:InBusOrderSelID, :InBusOrdersWithChilds, :InBusTransactionSelID,
:InBusTransactionsWithChilds, :InBusProjectSelID, :InBusProjectsWithChilds, :InFirmSelID, '%', '%') A
LEFT join Accounts AC ON A.Account_ID = AC.ID
WHERE
( (:InAllowRequest = 'A') OR
(:InAllowRequest = 'N' AND AC.IsIncomplete = 'N') ) AND
NOT ( (AC.Code like '5%') OR (AC.Code like '6%') OR
(AC.Code like '751%') OR (AC.Code like '791%') OR (AC.Code like '431%') )
GROUP BY
A.Account_ID, A.Division_ID, A.Firm_ID
UNION ALL
/* Dopocet pocatku, pokud by nekdo vytvoril vykaz pro obdobi mimo fiskal */
SELECT
A.Account_ID,
A.Division_ID,
0.00,
0.00,
SUM(A.Amount * A.DebitSide),
SUM(A.Amount * A.CreditSide),
A.Firm_ID
FROM
LimitGeneralLedger('', :InAccPeriodDateFrom, :InAccDateFrom,
:InAllowRequest, :InAudited, :InDivisionSelID, :InDivisionsWithChilds,
:InBusOrderSelID, :InBusOrdersWithChilds, :InBusTransactionSelID,
:InBusTransactionsWithChilds, :InBusProjectSelID, :InBusProjectsWithChilds, :InFirmSelID, '%', '%') A
LEFT join Accounts AC ON A.Account_ID = AC.ID
WHERE
( (:InAllowRequest = 'A') OR
(:InAllowRequest = 'N' AND AC.IsIncomplete = 'N') )
GROUP BY
A.Account_ID, A.Division_ID, A.Firm_ID
UNION ALL
/* Vypocet obratu uctu */
SELECT
A.Account_ID,
A.Division_ID,
SUM(A.Amount * A.DebitSide),
SUM(A.Amount * A.CreditSide),
0.00,
0.00,
A.Firm_ID
FROM
LimitGeneralLedger('', :InAccDateFrom, :InAccDateTo,
:InAllowRequest, :InAudited, :InDivisionSelID, :InDivisionsWithChilds,
:InBusOrderSelID, :InBusOrdersWithChilds, :InBusTransactionSelID,
:InBusTransactionsWithChilds, :InBusProjectSelID, :InBusProjectsWithChilds, :InFirmSelID, '%', '%') A
LEFT join Accounts AC ON A.Account_ID = AC.ID
WHERE
( (:InAllowRequest = 'A') OR
(:InAllowRequest = 'N' AND AC.IsIncomplete = 'N') )
GROUP BY
A.Account_ID, A.Division_ID, A.Firm_ID
INTO
:Account_ID, :Division_ID, :DebitTurnover, :CreditTurnover, :DebitBeginning,
:CreditBeginning, :Firm_ID
DO BEGIN
IF (DebitTurnover IS NULL) THEN
DebitTurnover = 0.00;
IF (CreditTurnover IS NULL) THEN
CreditTurnover = 0.00;
IF (DebitBeginning IS NULL) THEN
DebitBeginning = 0.00;
IF (CreditBeginning IS NULL) THEN
CreditBeginning = 0.00;
SUSPEND;
END
END;