Advertisement
EvgenyRudenko

Пакеты пакеты

Feb 21st, 2023
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.99 KB | None | 0 0
  1. Пакеты
  2. мои пакеты
  3. больше пакетов богу пакетов
  4.  
  5.  
  6.  
  7.  
  8. ---Строки заказа до сборки без пакетов
  9. SELECT * FROM Loyalty..Order_line WITH (NOLOCK)
  10. WHERE id_order = 142632386
  11. ORDER BY id_tov
  12.  
  13. -- собранный заказ -- уже с пакетами, но по правильной нулевой цене
  14. SELECT TOP 100 * FROM Loyalty.dbo.order_line_collected WITH (NOLOCK)
  15. WHERE id_order = 142632386
  16.  
  17. --- то что оплачено уже с платными пакетами
  18. SELECT TOP 100 * FROM dbo.Payed_Order_Lines WITH (NOLOCK)
  19. WHERE Id_Order = 142632386
  20.  
  21.  
  22. SELECT TOP (100) ln.*
  23. FROM
  24. OnlinePay.dbo.Payed_Order_Lines pol (NOLOCK)
  25. OUTER APPLY OPENJSON(pol.Lines)
  26. WITH (Id_Tov int, Quantity decimal(12,3), Price decimal(15,2), Amount decimal(15,2)) AS ln
  27. WHERE id_order=142632386
  28. AND Id_Tov = 647
  29.  
  30.  
  31. SELECT TOP (10) * FROM OnlinePay.dbo.Payed_Order_Lines (NOLOCK)
  32. WHERE id_order=142632386
  33.  
  34.  
  35. Проверяем как отработала онлайн касса :
  36. Воспользуемся записями логов входящих исходящих параметров
  37.  
  38. Таблица с логом входящих исходящих параметров
  39. https://bookstack.int.vkusvill.ru/books/upravlenie-zakazami/page/tablitsa-loyaltydboorder-onlinepay-log
  40.  
  41. лог
  42. SELECT TOP (1000) [id_order] --идентификатор заказа
  43. ,[verification] --успех/не успех верификации собранного заказа (1 - успешно, >1 не успешно)
  44. ,[payment] --успех/не успех оплаты заказа (1 - успешно, -1 не успешно)
  45. ,[date_add] -- дата добавления записи
  46. ,[json_out] --json отданный на выход
  47. ,[id_log] --идентификатор лога
  48. ,[json_in] --json отданый на вход
  49. ,[message] --сообщение отданное на выход
  50. FROM [Loyalty].[dbo].[Order_OnlinePay_log] (nolock)
  51. WHERE id_order = 142632386
  52.  
  53. кусок лога , который выдает онлайн касса. Пакеты расчитаны по нулевой цене (код 647)
  54. расчет стоимости корзины 2023-02-17 20:11:31.357
  55.  
  56. 2023-02-17 20:11:31.357
  57.  
  58. {
  59. "Id_Tov":606,
  60. "Barcode":"3013971",
  61. "GreenPrice":0,
  62. "Quantity":0.650,
  63. "Price":73.00,
  64. "Calculated_Price":73.44,
  65. "Customer_Price":73.44,
  66. "Discount_Ch":0.000,
  67. "Price_type":0,
  68. "Result_Code":0
  69. },
  70. {
  71. "Id_Tov":647,
  72. "Barcode":"",
  73. "GreenPrice":0,
  74. "Quantity":4.000,
  75. "Price":8.00,
  76. "Calculated_Price":0.00,
  77. "Customer_Price":0.00,
  78. "Result_Code":0
  79. },
  80.  
  81. кусок лога проверки заказа
  82. Заказ успешно отгружен 2023-02-17 20:11:31.990
  83.  
  84. {
  85. "Id_Order":142632386,
  86. "verification":{
  87. "success":1,
  88. "message":"",
  89. "manually":0
  90. },
  91. "Payment":{
  92. "success":1,
  93. "message":"Заказ успешно отгружен"
  94. },
  95. "Lines":[
  96. {
  97. "Id_Tov":373,
  98. "Price":50.00
  99. },
  100. {
  101. "Id_Tov":559,
  102. "Price":237.00
  103. },
  104. {
  105. "Id_Tov":606,
  106. "Price":73.44
  107. },
  108. {
  109. "Id_Tov":647,
  110. "Price":0.00
  111. },
  112.  
  113.  
  114.  
  115.  
  116. Судя по логам - расчет корзины и проверка заказов отработали штатно.
  117. Проверяем процесс обработки далее
  118.  
  119.  
  120. Документация на букстек
  121.  
  122. Взаимодействие сборки и управления заказами
  123. https://bookstack.int.vkusvill.ru/books/upravlenie-zakazami/page/vzaimodeystvie-sborki-upravleniya-zakazami-i-onlayn-kassy
  124.  
  125. Кусок про пакеты
  126. https://bookstack.int.vkusvill.ru/link/20051#bkmrk-%C2%A0-2
  127.  
  128.  
  129. Проверка собранного заказа
  130.  
  131. По id_order находим заказ в таблице orders_header и делаем проверки:
  132.  
  133. Проверки статусов:
  134. По таблице [Loyalty].[dbo].[Orders_header]: id_status<>6 (отменен). Если в статусе 6, то передаем в результат значение 2 (расшифровка значений в таблице Assembled_order_failures)
  135. Заказ в статусе 1 или 10. Если в другом статусе, то передаем результат 3
  136. По таблице [Frontol].[dbo].[OrderStatus] проверяем последний статус заказа. Если статус НЕ 3, то продолжаем. Если статус 3, то передаем результат 4
  137. Проверяем, что переданный список товаров не пуст. Если пуст, то передаем результат 5
  138. Проверяем, является ли заказ, заказом от внешних партнеров. Если ext_order НЕ NULL в таблице [Loyalty].[dbo].[Orders_header], то это заказ от внешнего партнера. Производим дополнительные проверки в соответствии с настройками из таблицы [Loyalty].[dbo].[Order_ExternalSettings] по source заказа:
  139.  
  140.  
  141.  
  142. SELECT TOP 100 ext_order,
  143. * FROM [Loyalty].[dbo].[Orders_header] WITH (NOLOCK)
  144. WHERE id_order = 142632386
  145. 230217-2508844
  146. ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ
  147. Это внешний заказ !!!! И он подпадает на условия про платные и бесплатные пакеты
  148.  
  149.  
  150.  
  151. Если в заказе есть товары с зеленым ценником, то проверяем разрешено ли для данного партнера добавлять такие товары в заказ (по полю Green_price). Если нет, то передаем результат 6
  152. Проверка на возможность превышения суммы заказа. Проверка по трем полям:
  153. Incr_order_amount – можно ли превышать сумму в собранном заказе по сравнению с размещенным
  154. Incr_order_amount_percent - на сколько процентов можно превышать сумму в собранном заказе по сравнению с суммой в размещенном заказе
  155. Incr_order_amount_percent_unlimited - можно превышать сумму безлимитно
  156.  
  157. Если цена превышена больше, чем на разрешенный лимит, то передаем результат 7
  158.  
  159. Проверить наличие пакетов (id_tov = 647). У таких товаров передавать в онлайн кассу цену отличную от 0, если такая настройка установлена для данного партнера в таблице
  160.  
  161. [Loyalty].[dbo].[Order_ExternalSettings]
  162.  
  163. Если заказ НЕ от партнера, то проверяем ограничение на минимальную сумму заказа по данной карте лояльности (номер карты: number из orders_header). Выполнить запрос процедуры: loyalty.dbo.takeaway_permission_sborka. Процедура вернет минимальную сумму заказа для данной карты. Сравнить текущую стоимость заказа с данным ограничением, если проверка не пройдена, то передать результат 8
  164.  
  165. SELECT TOP 100 ext_order, source , id_order,
  166. * FROM [Loyalty].[dbo].[Orders_header] WITH (NOLOCK)
  167. WHERE id_order = 142632386
  168.  
  169. source = 31
  170. source = 30
  171.  
  172. (из файла, который прислала тех поддержка)
  173.  
  174. у заказов в которые вошли платные пакеты
  175.  
  176. Смотрим что в таблице с настройками внешнего партнера/контрагента
  177.  
  178. SELECT TOP 1000 Paid_package, *
  179. FROM Loyalty.dbo.Order_ExternalSettings WITH (NOLOCK)
  180. WHERE source IN (30 , 31)
  181.  
  182. у 31 не заполнен параметр Paid_package
  183. у партнера source = 30 параметры отсутствуют
  184.  
  185. Предварительно что можно сделать:
  186.  
  187. Заполнить явно параметры в Loyalty.dbo.Order_ExternalSettings
  188.  
  189. Также остались что проверить
  190. процедура которую рефакторили
  191. Loyalty.dbo.Order_v02_CollectedOrder_check
  192.  
  193. процедура отправки на фискализацию
  194. SRV-SQL03.OnlinePay.dbo.sp_Bascket_Pay_Fiscal_Put
  195.  
  196.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement