![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 30.09.2013
Сообщений: 3
|
![]()
Доброе утро.
Опишу ситуацию: у нас есть 2 кассы с приложениями, написанными на делфи, для продажи и пробивания чеков, одна база, которая находится на одной из касс. Запись в БД происходит по нажатию кнопки с помощью SQL запросов. Когда народа много, работают обе кассы. При одновременном пробивании чека (записи информации о чеках в БД) данные о товарах перемешиваются, т.е. товар из одного чека может записаться в другой, суммы меняются, отчеты по кассам не сходятся. Потом приходится искать этот косяк и вручную править чеки, что очень напрягает. Запись происходит одновременно с помощью 2х SQL запросов в одни и те же таблицы: JOURNALDOC (общая информация о чеке:дата,сумма,кассир и тд..) и TABLEDOC (товары в чеке: №чека,наименование товара, кол-во и тд..). Пример: после исправления чеков:снимок до исправления (суммы указаны красным):снимок2 если открыть чек 58829, то в нем обнаруживаются товары из чека 58828, но сумма верная, при этом чек 58828 пустой, а сумма сохраняется с прошлого чека этой кассы. Вот такая вот белеберда... Сначала грешили на то,что на кассах время совпадало секунда в секунду,поменяли,а косяк остался. Следовательно причина в том,что пробивают чек одновременно. Подскажите, как можно избежать этих перекрестов? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,544
|
![]()
чтобы товар не попадал в чужой чек.
исправить запросы для записи данных по чеку(фиксации товаров), чтобы использовать не некий ВЫЧИСЛЕННЫЙ код чека ( к примеру последний номер), а реальный указанный. номер чека должен быть известен ДО фиксации товара в чеке. Вычислять сумму чека после фиксации всех товаров в чеке. обсуждение похожей проблемы.
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 30.09.2013
Сообщений: 3
|
![]()
номер документа мы берем из генератора в самой бд при пробивании чека, т.е., как я поняла, при одновременном нажатии кнопки обоим кассам выдается одинаковый номер чека...Переставлю генерацию номера в самое начало, т.е. при заведении нового чека.
А не получится такая же история,если кассиры одновременно заведут новый чек? |
![]() |
![]() |
![]() |
#4 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,544
|
![]() Цитата:
Цитата:
Разница между номер документа(чека) как отчетного документа, и идентификатор чека как записи БД смотри ссылку на обсуждение в предыдущем посте. Цитата:
потом к нему цепляем(добавляем) все товары (в TABLEDOC). и рассчитываем цену по прицепленным товарам (по сути "сумма чека" в journalDoc это лишнее поле его всегда можно и нужно считать по TABLEDOC)
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 30.09.2013 в 11:21. |
|||
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 30.09.2013
Сообщений: 3
|
![]()
Спасибо большое, теперь будем тестить.
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) | Schutze | Помощь студентам | 6 | 29.11.2009 22:15 |
Запись формул в ячейки с помощью VBA | Lyubov1990 | Microsoft Office Excel | 6 | 13.05.2009 16:53 |
Добавление столбца в таблицу с помощью SQL | andirock2112 | БД в Delphi | 15 | 11.04.2009 09:15 |
вставить запись с помощью AbsQuery | furstenberg | БД в Delphi | 2 | 07.08.2008 14:49 |
написать БД на Delphi с помощью SQL | Tanchik | Фриланс | 2 | 13.06.2007 19:06 |