Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Unhandled exception
System.InvalidOperationException: Order entry already has been registered
ВАЖЛИВО!

Не забуваємо, що під час БУДЬ-ЯКИХ робіт з БД фронту - ми маємо зробити повний бекап всього CashServer без логів
В лозі проблема виглядає ось так:
[2025-05-27 23:00:44,029] FATAL [ 1] [MainController:UnhandledExceptionEventHandler:0] - Unhandled exception
System.InvalidOperationException: Order entry already has been registered
Проблема виникає під час оплати проблемного замовлення. Яке саме це замовлення - з логу не зрозуміло, тому за номером йдемо до клієнта (просимо відкрити замовлення, на якому відбулась помилка і з нього дивимось його номер)

Щоб вирішити проблему - треба видалити запис з БД про це замовлення.

Варіант 1: зробити це своїми силами
Для цього відкриваємо БД entities.sdf, і шукаємо проблемне замовлення:
select * from FrontEntities
where xml like '%number>X%'
Де X - це номер замовлення, який ми дізнались

В результаті ми маємо отримати у відповідь один єдиний рядок, в якому Type - буде або CommonOrder (звичайне замовлення) або DeliveryOrder (замовлення з модуля доставки)
Нас цікавить тут тільки стовпчик Id. Копіюємо його вміст і проводимо ще один запит:
delete from FrontEntities
where id='orderId'
Де orderId - це айдішка, яку ми зкопіювали в попередньому запиті

Варіант 2: Використати утиліту Мар'яна
Як працювати з утилітою описано в окремій статті. В цій же статті можна взяти і саму утиліту

Заходимо в розділ Видалення даних/ Робота з БД - вибираємо БД, вводимо номер замовлення і натискаємо Видалити за номером. В формі вибираємо тип замовлення (звичайне або доставочне)

Після цього запускаємо фронт, наново створюємо це замовлення і закриваємо