если еще актуально, то список закрытых чеков можно получить таким запросом:
Код:
SET DATEFORMAT DMY
SELECT
FORMAT(GLOBALSHIFTS00.SHIFTDATE, 'dd.MM.yyyy') AS CheckDate,
c.NAME AS CheckFIO,
CONVERT(varchar,PrintChecks00.CHECKNUM) AS CheckNumber,
CONVERT(varchar, CurrLines.BINDEDSUM) AS CheckSumm,
Orders00.VISIT AS CheckVisit
FROM CURRLINES
LEFT JOIN Payments P ON P.Visit = CurrLines.Visit AND P.MidServer = CurrLines.MidServer
LEFT JOIN CURRENCIES c ON c.SIFR = p.SIFR
LEFT JOIN PaymentsExtra PaymentsExtra00 ON PaymentsExtra00.Visit = CurrLines.Visit AND PaymentsExtra00.MidServer = CurrLines.MidServer AND PaymentsExtra00.PayUNI = CurrLines.PayUNIForOwnerInfo
LEFT JOIN CASHGROUPS CASHGROUPS00 ON CASHGROUPS00.SIFR = CurrLines.Midserver
LEFT JOIN RESTAURANTS RESTAURANTS00 ON RESTAURANTS00.SIFR = CASHGROUPS00.Restaurant
LEFT JOIN PrintChecks PrintChecks00 ON PrintChecks00.Visit = CurrLines.Visit AND PrintChecks00.MidServer = CurrLines.MidServer AND PrintChecks00.UNI = CurrLines.CheckUNI
LEFT JOIN Orders Orders00 ON Orders00.Visit = PrintChecks00.Visit AND Orders00.MidServer = PrintChecks00.MidServer AND Orders00.IdentInVisit = PrintChecks00.OrderIdent
LEFT JOIN GLOBALSHIFTS GLOBALSHIFTS00 ON GLOBALSHIFTS00.MidServer = Orders00.MidServer AND GLOBALSHIFTS00.ShiftNum = Orders00.iCommonShift
WHERE
1=1
AND CurrLines.BINDEDSUM > 0
AND SHIFTDATE between CAST(N'20210701' AS DateTime) and CAST(N'20210731' AS DateTime)
ORDER BY GLOBALSHIFTS00.SHIFTDATE, CHECKNUM ASC
для получения списка строк в конкретном чеке\визите
Код:
SELECT
CAST(mi.NAME AS VARCHAR) AS Product,
CAST(SUM(sd.QUANTITY) AS VARCHAR) AS Quantity,
CAST(sd.PRICE AS NUMERIC(10,2)) AS PriceSumm,
CAST(SUM(sd.CLEARSUM) AS NUMERIC(10,2)) AS ClearSumm,
CAST(SUM(sd.CLEARSUM - sd.SUMWITHDISCOUNTS) AS NUMERIC(10,2)) AS DiscountSumm,
CAST(SUM(sd.SUMWITHDISCOUNTS) AS NUMERIC(10,2)) AS FiscalSumm
FROM SESSIONDISHES sd
LEFT JOIN MENUITEMS mi ON mi.SIFR = sd.SIFR
WHERE
1 = 1
AND sd.QUANTITY > 0
AND sd.VISIT IN ({0})
GROUP BY mi.NAME,sd.PRICE,mi.SIFR,sd.CLEARSUM, sd.SUMWITHDISCOUNTS,sd.CLOSEDPAYSUM
ORDER BY mi.NAME
где {0} - список номеров визита из предыдущего запроса, указанных через запятую