Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Правила генерации номеров документов : Супермаг Плюс (Супермаг 2000)

22.11.2024 22:34


17.11.2008 10:40
Цитата:
Mihon Все делалось намного легче... Сначала придумали схему, потом настраивали префиксы в момент открытия каждого магазина как в ЦБ, так и в базе магазина. Ну, минут 5-10 на это уходило.
Ну 5-10 минут это если настраивать только 3 самых необходимых документа: ПН, РН, АП
а когда нужны почти все документы, то уйдет времени намного больше.
17.11.2008 11:22
Цитата:
Mihon ...
И если префиксы будут одинаковые, то может возникнуть ситуация: Создали (по неизвестной причине) документ в ЦБ с автоматическим номером МАГ1ПН001451. Через десять минут в базе магазина операторы тоже создали документ, тоже с авто-номером МАГ1ПН001451. Подняли статус, почтовик успешно перезаписал тот документ, который сделали в ЦБ. Документ утерян.
Документ не утерян, а получает отлуп от ЦБ с ошибкой "два разных объекта имеют одинаковый идентификатор", т.е. тип и номер совпадают, а DBID разные
17.11.2008 16:22
Цитата:
kadr Документ не утерян, а получает отлуп от ЦБ с ошибкой "два разных объекта имеют одинаковый идентификатор", т.е. тип и номер совпадают, а DBID разные
Точно, точно. Но все равно, ничего хорошего:)
18.11.2008 10:16
Цитата:
ReDHawK Твой вариант привлекательнее тем, что понятно: где создан, что за документ, для какого МХ. Но это же пипец как геморойно создавать для каждого магазина, если магазинов несколько, то ни один час убьешь ((
Мы к примеру ставим префиксы на MX - т.е. например в ЦС стоит одинаковый префикс для склада и всех МХ для которых могут быть созданы документы.
По префиксу мы видим где был создан документ.
По поводу - не один час
для ЦО (примеры)

Создание префиксов документов для магазина.
Код:
DECLARE
MID NUMBER(3) := '&Magazin_ID_number';
BEGIN
	INSERT INTO SADOCDEFAULTS ( DOCTYPE, LOCATION, NAMEPREFIX, NUMBERSIZE, PRICEKIND ) 
		VALUES ( 'OR', MID, 'ЗПЦ', 6, NULL); 
	INSERT INTO SADOCDEFAULTS ( DOCTYPE, LOCATION, NAMEPREFIX, NUMBERSIZE, PRICEKIND ) 
		VALUES ( 'CO', MID, 'КЗЦ', 6, NULL); 
	INSERT INTO SADOCDEFAULTS ( DOCTYPE, LOCATION, NAMEPREFIX, NUMBERSIZE, PRICEKIND ) 
		VALUES ( 'AC', MID, 'АЦ', 6, NULL); 
	INSERT INTO SADOCDEFAULTS ( DOCTYPE, LOCATION, NAMEPREFIX, NUMBERSIZE, PRICEKIND ) 
		VALUES ( 'WI', MID, 'ПНЦ', 6, NULL); 
	COMMIT;
END;
/
Для всех магазинов по типу
Код:
DECLARE
BEGIN
    DELETE FROM SADOCDEFAULTS WHERE DOCTYPE ='WI';
    COMMIT;
    FOR c_rec IN (SELECT ID FROM SMSTORELOCATIONS WHERE ID > 1 ORDER BY NAME)
   LOOP
        INSERT INTO SADOCDEFAULTS ( DOCTYPE, LOCATION, NAMEPREFIX, NUMBERSIZE, PRICEKIND )
        VALUES ( 'WI', c_rec.id, 'ПНЦ', 6, NULL);
        COMMIT;
   END LOOP;
END;
/
04.10.2011 10:33
А как удалить изменить префиксы уже созданных документов?
04.10.2011 10:49
Зачем? Чтобы потерять ссылочную целостность базы данных?
04.10.2011 11:21
Для работы с имеющейся обработкой для выгрузки в 1C.
04.10.2011 11:23
А не проще переделать имеющуюся обработку выгрузки в 1С?
04.10.2011 11:25
В данном случае к сожалению нет.
Часовой пояс GMT +3, время: 22:34.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.