BEGIN
LocalAmount = 0;
Period_ID = NULL;
DateFrom$Date = 0;
DateTo$Date = 0;
CashDesk_ID = ACashDesk_ID;
/* Získání "vhodneho" obdobi podle datumu a pokladny */
SELECT Period_ID
FROM CashDesks2 A join Periods P ON P.ID = A.Period_ID
WHERE
(A.Parent_ID = :ACashDesk_ID) AND
(P.ID = (SELECT out_period_id FROM GetFirstPeriodForCash(:ADocDateFrom, :ADocDateTo, :ACashDesk_ID)) )
INTO :Period_ID;
IF (Period_ID IS NOT NULL) THEN BEGIN
/* Zjisteni zacatku z obdobi */
SELECT DateFrom$Date FROM Periods WHERE ID = :Period_ID INTO :mPeriodDateFrom;
/* datumy pro zobrazovani */
DateFrom$Date = mPeriodDateFrom;
DateTo$Date = ADocDateFrom -1;
/* datumy pro omezovani */
mDateFrom = mPeriodDateFrom;
mDateTo = ADocDateFrom;
IF (mDateTo > mPeriodDateFrom) THEN BEGIN
/* Datumove omezeni souhlasi, ma cenu ziskavat soucty z dokladu... */
/* Ziskani zauctovani... */
FOR
SELECT AccDocQueue_ID, Period_ID, OrdNumber, AccDate$Date
FROM CashBookDetailedRawAcc(:mDateFrom, :mDateTo, :AAccounted) A
INTO
:mAccDocQueue_ID, :mPeriod_ID, :mOrdNumber, :mAccDate
DO BEGIN
/* Mame informaci o zauctovani, z te se daji dohledat pokladni doklady... */
FOR
SELECT CashDoc_ID, CashDocRelDef, LocalRoundingAmount
FROM CashBookDetailedRawCash(:mAccDocQueue_ID, :mPeriod_ID, :mOrdNumber, :mAccDate,
:ACashDesk_ID, :mDateFrom, :mDateTo, :AFirmsSel_ID, :ADocQueuesSel_ID,
:ACreatedBySel_ID, :ACorrectedBySel_ID)
INTO
:mCashDoc_ID, :mCashDocRelDef, :mLocalRoundingAmount
DO BEGIN
IF (mLocalRoundingAmount IS NULL) THEN
mLocalRoundingAmount = 0;
FOR
SELECT SUM(LocalAmount)
FROM CashBookDetailedRows(:mCashDoc_ID, :mCashDocRelDef, :mLocalRoundingAmount,
:ADivisionsSel_ID, :ADivisionsWithChildren, :ABusOrdersSel_ID,
:ABusOrdersWithChildren, :ABusTransactionsSel_ID, :ABusTransactionsWithChildren,
:ABusProjectsSel_ID, :ABusProjectsWithChildren)
INTO
:mLocalAmount
DO BEGIN
IF (mLocalAmount IS NOT NULL) THEN
LocalAmount = LocalAmount + mLocalAmount;
END
END
END
END
END
ELSE BEGIN
Period_ID = '##########';
END
SUSPEND;
END;