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

Помогите создать проверку аналогичную штатной : Супермаг Плюс (Супермаг 2000)

22.11.2024 16:54


01.08.2016 09:07
Добрый день, коллеги.
вот была тема, где упомянули что это возможно.
https://olegon.ru/showthread.php?t=24672&page=2
нас интересует проверка 122, необходимо создать ее аналог, которая не будет срабатывать при некоторых пользовательских операциях.
01.08.2016 11:15
У вас какая версия СМ? В 1.032 не нашел проверку №122.
В принципе, при условии "исключить некоторые операции, а всю прочую логику оставить" не нужно знать код. Достаточно иметь имя процедуры, которая соответствует проверке 122.
Покажите
SQL код:
select * from SSInspectDoc where InspectID=122 
02.08.2016 06:19
Цитата:
vdm У вас какая версия СМ? В 1.032 не нашел проверку №122.
В принципе, при условии "исключить некоторые операции, а всю прочую логику оставить" не нужно знать код. Достаточно иметь имя процедуры, которая соответствует проверке 122.
Покажите
SQL код:
select * from SSInspectDoc where InspectID=122 
спасибо за участие.
В этот то и проблема как найти какая процедура соответствует этой проверке.
Версия 1.33.1 сп4
02.08.2016 06:59
Так результат запроса покажите?
03.08.2016 04:33
Цитата:
OlegON Так результат запроса покажите?
WI 3 2 122 INSPECT2.DocWIUseEGAIS 1
WO 3 2 122 INSPECT2.DocWIUseEGAIS 1
03.08.2016 10:15
SQL код:
CREATE OR REPLACE PROCEDURE SUPERMAG.USR_INSP_DocWIUseEGAIS (
   indoctype    IN   smdocuments.doctype%TYPE,
   indocid      IN   smdocuments.ID%TYPE,
   inoldstate   IN   smdocuments.docstate%TYPE := NULL,
   innewstate   IN   smdocuments.docstate%TYPE := NULL,
   indummy      IN   core.smbool := NULL )
IS
-- Проверка №122 без учета операции "Списание брака"
  doc_opcode       supermag.smdocuments.locationfrom%TYPE;
BEGIN
    -- Если операция документа = 7, завершаем проверку
    SELECT d.opcode  
      INTO doc_opcode
      FROM supermag.smdocuments d 
     WHERE d.id = indocid AND d.doctype = indoctype;
    IF doc_opcode=7 THEN RETURN; END IF;

    -- Вызов стандартной проверки 122
    INSPECT2.DocWIUseEGAIS(indoctype, indocid, inoldstate, innewstate, indummy);
END USR_INSP_DocWIUseEGAIS;
/

DECLARE
  INSPECT_ID       supermag.ssinspectfunc.id%TYPE := 950;
  INSPECT_NAME     supermag.ssinspectfunc.name%TYPE := 'Пользовательская проверка №122';
  INSPECT_ORANAME  supermag.ssinspectdoc.inspectoraname%TYPE := 'USR_INSP_DocWIUseEGAIS';
BEGIN
  insert into supermag.ssinspectfunc(id, name, definspectmode) values (INSPECT_ID, INSPECT_NAME, 2);
  insert into supermag.ssinspectdoc (doctype, docstate, docstatebefore, inspectid, inspectoraname, dobefore)
    values ('WI', 3, 2, INSPECT_ID, INSPECT_ORANAME, 1);
  insert into supermag.ssinspectdoc (doctype, docstate, docstatebefore, inspectid, inspectoraname, dobefore)
    values ('WO', 3, 2, INSPECT_ID, INSPECT_ORANAME, 1);
  commit;
END;
/ 
Номер проверки выставлен в 950, проверьте что у вас такой нет.
В адм. модуле 122 отключить, 950 включить.
25.10.2016 07:54
Каким-то образом можно получить код проверки самостоятельно? Интересует проверка №151
Часовой пояс GMT +3, время: 16:54.

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