Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Пакеты
- мои пакеты
- больше пакетов богу пакетов
- ---Строки заказа до сборки без пакетов
- SELECT * FROM Loyalty..Order_line WITH (NOLOCK)
- WHERE id_order = 142632386
- ORDER BY id_tov
- -- собранный заказ -- уже с пакетами, но по правильной нулевой цене
- SELECT TOP 100 * FROM Loyalty.dbo.order_line_collected WITH (NOLOCK)
- WHERE id_order = 142632386
- --- то что оплачено уже с платными пакетами
- SELECT TOP 100 * FROM dbo.Payed_Order_Lines WITH (NOLOCK)
- WHERE Id_Order = 142632386
- SELECT TOP (100) ln.*
- FROM
- OnlinePay.dbo.Payed_Order_Lines pol (NOLOCK)
- OUTER APPLY OPENJSON(pol.Lines)
- WITH (Id_Tov int, Quantity decimal(12,3), Price decimal(15,2), Amount decimal(15,2)) AS ln
- WHERE id_order=142632386
- AND Id_Tov = 647
- SELECT TOP (10) * FROM OnlinePay.dbo.Payed_Order_Lines (NOLOCK)
- WHERE id_order=142632386
- Проверяем как отработала онлайн касса :
- Воспользуемся записями логов входящих исходящих параметров
- Таблица с логом входящих исходящих параметров
- https://bookstack.int.vkusvill.ru/books/upravlenie-zakazami/page/tablitsa-loyaltydboorder-onlinepay-log
- лог
- SELECT TOP (1000) [id_order] --идентификатор заказа
- ,[verification] --успех/не успех верификации собранного заказа (1 - успешно, >1 не успешно)
- ,[payment] --успех/не успех оплаты заказа (1 - успешно, -1 не успешно)
- ,[date_add] -- дата добавления записи
- ,[json_out] --json отданный на выход
- ,[id_log] --идентификатор лога
- ,[json_in] --json отданый на вход
- ,[message] --сообщение отданное на выход
- FROM [Loyalty].[dbo].[Order_OnlinePay_log] (nolock)
- WHERE id_order = 142632386
- кусок лога , который выдает онлайн касса. Пакеты расчитаны по нулевой цене (код 647)
- расчет стоимости корзины 2023-02-17 20:11:31.357
- 2023-02-17 20:11:31.357
- {
- "Id_Tov":606,
- "Barcode":"3013971",
- "GreenPrice":0,
- "Quantity":0.650,
- "Price":73.00,
- "Calculated_Price":73.44,
- "Customer_Price":73.44,
- "Discount_Ch":0.000,
- "Price_type":0,
- "Result_Code":0
- },
- {
- "Id_Tov":647,
- "Barcode":"",
- "GreenPrice":0,
- "Quantity":4.000,
- "Price":8.00,
- "Calculated_Price":0.00,
- "Customer_Price":0.00,
- "Result_Code":0
- },
- кусок лога проверки заказа
- Заказ успешно отгружен 2023-02-17 20:11:31.990
- {
- "Id_Order":142632386,
- "verification":{
- "success":1,
- "message":"",
- "manually":0
- },
- "Payment":{
- "success":1,
- "message":"Заказ успешно отгружен"
- },
- "Lines":[
- {
- "Id_Tov":373,
- "Price":50.00
- },
- {
- "Id_Tov":559,
- "Price":237.00
- },
- {
- "Id_Tov":606,
- "Price":73.44
- },
- {
- "Id_Tov":647,
- "Price":0.00
- },
- Судя по логам - расчет корзины и проверка заказов отработали штатно.
- Проверяем процесс обработки далее
- Документация на букстек
- Взаимодействие сборки и управления заказами
- https://bookstack.int.vkusvill.ru/books/upravlenie-zakazami/page/vzaimodeystvie-sborki-upravleniya-zakazami-i-onlayn-kassy
- Кусок про пакеты
- https://bookstack.int.vkusvill.ru/link/20051#bkmrk-%C2%A0-2
- Проверка собранного заказа
- По id_order находим заказ в таблице orders_header и делаем проверки:
- Проверки статусов:
- По таблице [Loyalty].[dbo].[Orders_header]: id_status<>6 (отменен). Если в статусе 6, то передаем в результат значение 2 (расшифровка значений в таблице Assembled_order_failures)
- Заказ в статусе 1 или 10. Если в другом статусе, то передаем результат 3
- По таблице [Frontol].[dbo].[OrderStatus] проверяем последний статус заказа. Если статус НЕ 3, то продолжаем. Если статус 3, то передаем результат 4
- Проверяем, что переданный список товаров не пуст. Если пуст, то передаем результат 5
- Проверяем, является ли заказ, заказом от внешних партнеров. Если ext_order НЕ NULL в таблице [Loyalty].[dbo].[Orders_header], то это заказ от внешнего партнера. Производим дополнительные проверки в соответствии с настройками из таблицы [Loyalty].[dbo].[Order_ExternalSettings] по source заказа:
- SELECT TOP 100 ext_order,
- * FROM [Loyalty].[dbo].[Orders_header] WITH (NOLOCK)
- WHERE id_order = 142632386
- 230217-2508844
- ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ
- Это внешний заказ !!!! И он подпадает на условия про платные и бесплатные пакеты
- Если в заказе есть товары с зеленым ценником, то проверяем разрешено ли для данного партнера добавлять такие товары в заказ (по полю Green_price). Если нет, то передаем результат 6
- Проверка на возможность превышения суммы заказа. Проверка по трем полям:
- Incr_order_amount – можно ли превышать сумму в собранном заказе по сравнению с размещенным
- Incr_order_amount_percent - на сколько процентов можно превышать сумму в собранном заказе по сравнению с суммой в размещенном заказе
- Incr_order_amount_percent_unlimited - можно превышать сумму безлимитно
- Если цена превышена больше, чем на разрешенный лимит, то передаем результат 7
- Проверить наличие пакетов (id_tov = 647). У таких товаров передавать в онлайн кассу цену отличную от 0, если такая настройка установлена для данного партнера в таблице
- [Loyalty].[dbo].[Order_ExternalSettings]
- Если заказ НЕ от партнера, то проверяем ограничение на минимальную сумму заказа по данной карте лояльности (номер карты: number из orders_header). Выполнить запрос процедуры: loyalty.dbo.takeaway_permission_sborka. Процедура вернет минимальную сумму заказа для данной карты. Сравнить текущую стоимость заказа с данным ограничением, если проверка не пройдена, то передать результат 8
- SELECT TOP 100 ext_order, source , id_order,
- * FROM [Loyalty].[dbo].[Orders_header] WITH (NOLOCK)
- WHERE id_order = 142632386
- source = 31
- source = 30
- (из файла, который прислала тех поддержка)
- у заказов в которые вошли платные пакеты
- Смотрим что в таблице с настройками внешнего партнера/контрагента
- SELECT TOP 1000 Paid_package, *
- FROM Loyalty.dbo.Order_ExternalSettings WITH (NOLOCK)
- WHERE source IN (30 , 31)
- у 31 не заполнен параметр Paid_package
- у партнера source = 30 параметры отсутствуют
- Предварительно что можно сделать:
- Заполнить явно параметры в Loyalty.dbo.Order_ExternalSettings
- Также остались что проверить
- процедура которую рефакторили
- Loyalty.dbo.Order_v02_CollectedOrder_check
- процедура отправки на фискализацию
- SRV-SQL03.OnlinePay.dbo.sp_Bascket_Pay_Fiscal_Put
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement