SELECT
A.ID,
A.DocDate$DATE
FROM StoreDocuments A
JOIN SYS$StoreDocuments3 SD3 ON SD3.StoreDocument_ID=A.ID
WHERE
A.DocQueue_ID = :ADocQueue AND
((A.DocDate$DATE BETWEEN :AFromDate and :AToDate) OR (:AToDate = 0 AND A.DocDate$DATE >= :AFromDate)) AND
(
(:AFilterStores = 'N') OR
EXISTS(SELECT 1 FROM StoreDocuments2 SD2 WHERE SD2.Parent_ID = A.ID AND SD2.RowType = 3 AND SD2.Store_ID IN {StoreSelFragment})
) AND
(
/* Invalidní zaúčtování chceme vždy zpracovat (přeúčtovat/zrušit zaúčtování) */
(A.InvalidAccounting = 'A') OR
(
(
/* Pokud se přeúčtovává, bez ohledu na stav zaúčtování */
(:AReaccount = 'A') OR
/* Pokud ne, tak doklady bez zaúčtování, které chceme zaúčtovat */
NOT EXISTS(SELECT 1 FROM Relations RL WHERE RL.LeftSide_ID = A.ID AND RL.Rel_Def IN ({REL_DEF}))
) AND
(
/* účtují se i oceněné neuzavřené - nesmí mít žádný neoceněný řádek} */
((:AAccValuated = 'A') AND NOT EXISTS(SELECT 1
FROM StoreDocuments2 SD2
WHERE
SD2.RowType = 3 AND
SD2.Parent_ID = A.ID AND
SD2.Valuated = 'N'))
OR
/* uzavřené je možné účtovat vždy */
(SD3.Closed = 'A')
)
)
)
ORDER BY
A.DocDate$DATE,
A.OrdNumberGenerated by ABRA Software a.s. 27.10.2021 16:34:11