Здравствуйте!
Подскажите, пож-та, как SQL-запросом получить из базы SQL пречеки и нефискальные чеки? В какой таблице они "живут"?
Вид для печати
Здравствуйте!
Подскажите, пож-та, как SQL-запросом получить из базы SQL пречеки и нефискальные чеки? В какой таблице они "живут"?
В разных...
Там структура довольно сложная.
В одних таблицах шапки чеков, в других товары, в третьих оплаты
Вот тут описание базы (не полное) но то что вам нужно есть
https://docs.rkeeper.ru/rk7/7.6.5/ru...db-description
Еще вот это может помочь
https://docs.rkeeper.ru/rk7/7.6.5/ru....7.CHECKTABLES
и еще альтернативный вариант
Воспользоваться вот этим
https://docs.rkeeper.ru/rk7/7.6.5/ru...v-v-format-dbf
и брать данные из dbf (там структура проще будет гораздо)
если еще актуально, то список закрытых чеков можно получить таким запросом:
для получения списка строк в конкретном чеке\визитеКод: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
где {0} - список номеров визита из предыдущего запроса, указанных через запятуюКод: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