BEGIN
FOR
SELECT Store_ID, StoreCard_ID, SUM(Quantity) FROM
(
-- Načteme aktuální stav
SELECT SSC.Store_ID, SSC.StoreCard_ID, SSC.Quantity FROM StoreSubCards SSC
WHERE
SSC.StoreCard_ID = :AStoreCard_ID AND
SSC.Store_ID = :AStore_ID
UNION ALL
-- Načteme sumu z pohybů realizovaných po zvoleném datu. U pohybů obrátíme znaménka.
SELECT SD2.Store_ID, SD2.StoreCard_ID,
-SUM(SD2.Quantity * SD2.FlowSign)
FROM
StoreDocuments SD
JOIN StoreDocuments2 SD2 ON SD2.Parent_ID = SD.ID
JOIN PMStates PMS ON SD2.PMState_ID = PMS.ID
JOIN StoreCards SC ON SD2.StoreCard_ID = SC.ID
WHERE
(SD.DocDate$DATE > :ADate OR ((SD.DocDate$DATE = :ADate) AND (SD2.OrderFlow > :AOrderFlow AND :AOrderFlow <> 0))) AND
SD2.RowType = 3 AND
SD2.StoreCard_ID = :AStoreCard_ID AND
SD2.Store_ID = :AStore_ID AND
PMS.SystemState = 3 AND
SC.NonStockType = 'N'
GROUP BY SD2.Store_ID, SD2.StoreCard_ID
) A
GROUP BY Store_ID, StoreCard_ID
HAVING SUM(Quantity) <> 0
INTO :Store_ID, :StoreCard_ID, :Quantity
DO
BEGIN
SUSPEND;
END
END;