BEGIN
/* Procedura typu SELECT
Výsledkem dotazu je součet za doklady, které odpovídají předaným podmínkám. */
/* získám levou stranu intervalu pro součet */
SELECT datefrom$date FROM periods WHERE id = :IN_FIRST_PERIOD_ID INTO OUT_DATE_FROM$DATE;
/* získám pravou část intervalu pro součet */
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;
/* Součtový dotaz */
SELECT
SUM(out_amount), SUM(out_localamount), MAX(OUT_DQCode), MAX(OUT_OrdNumber), MAX(OUT_PCode)
FROM
getdocsforcashbookreport(:IN_FIRST_PERIOD_ID, :OUT_DATE_FROM$DATE, :OUT_DATE_TO$DATE,
:IN_CASHDESK_ID, :IN_DIVISION_SEL_ID, :IN_DOCQUEUE_SEL_ID, :IN_FIRM_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
OUT_AMOUNT, OUT_LOCALAMOUNT, OUT_DQCode, OUT_OrdNumber, OUT_PCode;
EXECUTE PROCEDURE init_float OUT_AMOUNT, 0 RETURNING_VALUES :OUT_AMOUNT;
EXECUTE PROCEDURE init_float OUT_LOCALAMOUNT, 0 RETURNING_VALUES :OUT_LOCALAMOUNT;
OUT_PERIOD_ID = IN_FIRST_PERIOD_ID;
OUT_CASHDESK_ID = IN_CASHDESK_ID;
SUSPEND;
END;