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

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

29.03.2024 8:31


01.08.2016 09:07
Elena
 
Добрый день, коллеги.
вот была тема, где упомянули что это возможно.
https://olegon.ru/showthread.php?t=24672&page=2
нас интересует проверка 122, необходимо создать ее аналог, которая не будет срабатывать при некоторых пользовательских операциях.
01.08.2016 11:15
vdm
 
У вас какая версия СМ? В 1.032 не нашел проверку №122.
В принципе, при условии "исключить некоторые операции, а всю прочую логику оставить" не нужно знать код. Достаточно иметь имя процедуры, которая соответствует проверке 122.
Покажите
SQL код:
select from SSInspectDoc where InspectID=122 
02.08.2016 06:19
Elena
 
Цитата:
vdm У вас какая версия СМ? В 1.032 не нашел проверку №122.
В принципе, при условии "исключить некоторые операции, а всю прочую логику оставить" не нужно знать код. Достаточно иметь имя процедуры, которая соответствует проверке 122.
Покажите
SQL код:
select from SSInspectDoc where InspectID=122 
спасибо за участие.
В этот то и проблема как найти какая процедура соответствует этой проверке.
Версия 1.33.1 сп4
02.08.2016 06:59
OlegON
 
Так результат запроса покажите?
03.08.2016 04:33
Elena
 
Цитата:
OlegON Так результат запроса покажите?
WI 3 2 122 INSPECT2.DocWIUseEGAIS 1
WO 3 2 122 INSPECT2.DocWIUseEGAIS 1
03.08.2016 10:15
vdm
 
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(indoctypeindocidinoldstateinnewstateindummy);
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(idnamedefinspectmodevalues (INSPECT_IDINSPECT_NAME2);
  
insert into supermag.ssinspectdoc (doctypedocstatedocstatebeforeinspectidinspectoranamedobefore)
    
values ('WI'32INSPECT_IDINSPECT_ORANAME1);
  
insert into supermag.ssinspectdoc (doctypedocstatedocstatebeforeinspectidinspectoranamedobefore)
    
values ('WO'32INSPECT_IDINSPECT_ORANAME1);
  
commit;
END;

Номер проверки выставлен в 950, проверьте что у вас такой нет.
В адм. модуле 122 отключить, 950 включить.
25.10.2016 07:54
john_the_ripper
 
Каким-то образом можно получить код проверки самостоятельно? Интересует проверка №151
Часовой пояс GMT +3, время: 08:31.

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