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

Как заполнить приходную накладную через sql? : Супермаг Плюс (Супермаг 2000)

22.11.2024 4:16


22.03.2015 08:26
подскажите куда копать, чтобы добавить позицию в ПН которая в черновике?
smspec - пустой если в нем нету ни одной позиции.

Код:
INSERT INTO smspec
(doctype, docid, article)
VALUES
('WI', 'ПН111111', '000111')
commit
OlegON:
называй тему и пиши внятно, пожалуйста
22.03.2015 09:04
это без ошибки отрабатывает? я смутно помню, но номер позиции в спецификации я тоже заполнял.
22.03.2015 09:15
дело в том, что я не пробыл, так как очкую. решил сперва спросить.
22.03.2015 09:28
где ты не пробыл? со вставкой-то что очковать? и бекап у тебя всегда есть... посмотри, какие колонки is not null
22.03.2015 11:25
не совсем в тему, но может пригодится. Мы работаем по принципу: контракт - заказ - приходная накладная. и приходка создается экспортом из заказа и в нее автоматом переносится кол-во из заказа. операторы вручную обнуляют его, а затем уже сканируют товар и проставляют кол-во по факту. если накладная небольшая, то обнуление не занимает много времени, а для больших я как раз и создал процедуру обнуления кол-ва. операторы перегоняют заказ в приход, сохраняют и закрывают накладную в черновике, затем в другой программе жмут кнопку обнулить - и готово.
1. проверяем что накладная никем не занята:
Код:
SELECT a.objtype, a.id, a.sid, a.sernum, a.locklabel, a.timepoint, a.clientproc FROM supermag.sslocks a where a.id = 'ПН111111';
результат должен быть null.
2. обнуляем кол-во
Код:
UPDATE supermag.smspec a SET a.quantity = 0, a.totalprice = 0, a.totalpricenotax = 0, a.totalpricecur = 0 WHERE a.doctype = 'WI' AND a.docid = 'ПН111111';
3. а также добавляем разницу в таблицу расхождений:
Код:
INSERT INTO supermag.slspecqmismatch b (b.doctype, b.docid, b.specitem, b.quantbydoc) VALUES (....);
* последний запрос не содержит данных...
22.03.2015 13:08
Код:
Describing smspec....

NAME                            Null?     Type
------------------------------- --------- -----
DOCTYPE                         NOT NULL  CHAR(2)
DOCID                           NOT NULL  VARCHAR2(50)
SPECITEM                        NOT NULL  NUMBER(10,0)
DISPLAYITEM                     NOT NULL  NUMBER(10,0)
ARTICLE                         NOT NULL  VARCHAR2(50)
QUANTITY                        NOT NULL  NUMBER(14,3)
ITEMPRICE                                 NUMBER(19,4)
TOTALPRICE                      NOT NULL  NUMBER(19,4)
ITEMPRICENOTAX                            NUMBER(19,4)
TOTALPRICENOTAX                           NUMBER(19,4)
ITEMPRICECUR                              NUMBER(19,4)
TOTALPRICECUR                   NOT NULL  NUMBER(19,4)
CAUSETYPE                                 CHAR(2)
CAUSEID                                   VARCHAR2(50)
CAUSESPECITEM                             NUMBER(10,0)


INSERT INTO smspec
(doctype, docid, SPECITEM, DISPLAYITEM, article, QUANTITY, TOTALPRICE, TOTALPRICECUR)
VALUES
('WI', 'ПН111111', 1,1, '000222',0,0);
нужно заполнять все поля где NOT NULL?
22.03.2015 14:08
да, и учти, что есть поля с DEFAULT, там сам смотри, устраивает ли тебя значение.
22.03.2015 14:15
если commit не прописан, то СМ не увидит результат ?
22.03.2015 14:20
не увидит. ты почитал бы хоть чуть-чуть, что делаешь... что такое commit в том числе...
22.03.2015 14:23
прошу прощения, за возможно глупые вопросы, но опыта у меня нету. т
Все я это перечитал уже по 100 раз ... и commit и rollback и таблицы поддерживающие транзакции и не поддерживающие. теории много, а практики - 0 . вот и спрашиваю

спасибо за понимание 8)
Часовой пояс GMT +3, время: 04:16.

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