BEGIN
/* procedura typu SELECT */
/* vymezeni casoveho intervalu */
SELECT datefrom$date FROM periods WHERE id = :IN_FIRST_PERIOD_ID INTO OUT_DATE_FROM$DATE;
OUT_DATE_TO$DATE = IN_DATE_FROM$DATE;
IF (IN_DATE_FROM$DATE < OUT_DATE_FROM$DATE) THEN
OUT_DATE_TO$DATE = OUT_DATE_FROM$DATE;
/* souctovy dotaz */
OUT_AMOUNT = 0;
OUT_LOCALAMOUNT = 0;
FOR
SELECT out_document_id, out_documenttype
FROM GetDocsForBankBookReport(:IN_FIRST_PERIOD_ID, :OUT_DATE_FROM$DATE,
:OUT_DATE_TO$DATE, :IN_BANKACCOUNT_ID, :IN_FIRM_SEL_ID, :IN_DOCQUEUE_SEL_ID,
:IN_DIVISION_SEL_ID, :IN_BUSORDER_SEL_ID, :IN_BUSTRANSACTION_SEL_ID, :IN_BUSPROJECT_SEL_ID,
:IN_CREATEDBY_SEL_ID, :IN_CORRECTEDBY_SEL_ID, :IN_ACCOUNTING,
:ADivisionsWithChilds, :ABusOrdersWithChilds, :ABusTransactionsWithChilds, :ABusProjectsWithChilds)
INTO
DOCUMENT_ID, DOCUMENT_TYPE
DO BEGIN
SELECT SUM(out_amount), SUM(out_localamount)
FROM GetDocsForBankBookReportRow(:IN_FIRST_PERIOD_ID, :OUT_DATE_FROM$DATE,
:OUT_DATE_TO$DATE, :DOCUMENT_ID, :DOCUMENT_TYPE, :IN_FIRM_SEL_ID,
:IN_DOCQUEUE_SEL_ID, :IN_DIVISION_SEL_ID, :IN_BUSORDER_SEL_ID,
:IN_BUSTRANSACTION_SEL_ID, :IN_BUSPROJECT_SEL_ID, :IN_CREATEDBY_SEL_ID, :IN_CORRECTEDBY_SEL_ID,
:IN_ACCOUNTING, :ADivisionsWithChilds, :ABusOrdersWithChilds, :ABusTransactionsWithChilds, :ABusProjectsWithChilds)
INTO AMOUNT, LOCAL_AMOUNT;
IF (AMOUNT IS NOT NULL) THEN
OUT_AMOUNT = OUT_AMOUNT + AMOUNT;
IF (LOCAL_AMOUNT IS NOT NULL) THEN
OUT_LOCALAMOUNT = OUT_LOCALAMOUNT + LOCAL_AMOUNT;
END
OUT_PERIOD_ID = IN_FIRST_PERIOD_ID;
OUT_BANKACCOUNT_ID = IN_BANKACCOUNT_ID;
SUSPEND;
END;