INSERT INTO AGENTS (ID, CAPTION, FULLNAME, ADDR_ID, FACTADDR_ID, STATUS, INSERTDT, INN, DIRECTOR_NAME, BUH_NAME, EMAIL, PHONENUMBERS, DELETEDT, DOVER_FACE, DOLZHNOST, DOVERKA, DOVERKA_DT, BASE_AGENT_ID, ADDR, FACTADDR, BIK, BANK, RS, KS, KPP, KREDITDAY, BANK_ID, FOLDER_ID, GOR, KORSHET, CREDIT_DEPTH, EGAIS_ID, EGAIS_COUNTRY_ID, EGAIS_REGION_ID, FILEMASK, MARK_TYPE, PARENT_ID, AGENT_PLACE_ID, TRUSTED, OGRN, AGENT_TYPE) VALUES (-10, 'МДЛП', 'МДЛП', 0, 0, 0, '14-SEP-2020 13:28:39.944', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL); INSERT INTO GROUP_DETAIL (GROUP_ID, PARENT_ID, GROUPTABLE_ID, GROUPTABLE) VALUES ( -7, 0, -10, 'AGENTS'); /******************************************************************************/ /*** Following SET SQL DIALECT is just for the Database Comparer ***/ /******************************************************************************/ SET SQL DIALECT 3; SET TERM ^ ; CREATE OR ALTER TRIGGER GROUP_DETAIL_AIU0 FOR GROUP_DETAIL ACTIVE AFTER INSERT OR UPDATE POSITION 0 AS begin --15/09/2020 AVO Если режим включен, то отдел НДС должен быть другой, так как один ККТ с разными предприятиями работает только на разных отделах с выделением НДС if (new.grouptable='DOC_DETAIL_ACTIVE') then begin if ((new.group_id=-43) and ((select PARAM_VALUE from PR_GETPARAMVALUE('MARKING_NDS',0))=1)) then begin update doc_detail_active dd set dd.marking=1, dd.base_agent_id=-10, dd.dep=(select first 1 d.id from deps d where d.nds=(select nds from deps where id=dd.dep) order by d.id desc ) where id=new.grouptable_id; end else begin if (new.group_id=-43) then update doc_detail_active dd set dd.marking=1, dd.base_agent_id=-10, dd.dep=(select first 1 d.id from deps d where d.nds=(select nds from deps where id=dd.dep) order by d.id desc ) where id=new.grouptable_id; end end if (new.grouptable='PARTS') then begin if ((new.group_id=-43) and ((select PARAM_VALUE from PR_GETPARAMVALUE('MARKING_NDS',0))=1)) then begin update doc_detail_active dd set dd.marking=1, dd.base_agent_id=-10, dd.dep=(select first 1 d.id from deps d where d.nds=(select nds from deps where id=dd.dep) order by d.id desc ) where dd.part_id=new.grouptable_id; end else begin if (new.group_id=-43) then update doc_detail_active dd set dd.marking=1, dd.base_agent_id=-10, dd.dep=(select first 1 d.id from deps d where d.nds=(select nds from deps where id=dd.dep) order by d.id desc ) where dd.part_id=new.grouptable_id; end end end ^ SET TERM ; ^ /******************************************************************************/ /*** Following SET SQL DIALECT is just for the Database Comparer ***/ /******************************************************************************/ SET SQL DIALECT 3; SET TERM ^ ; CREATE OR ALTER TRIGGER GROUP_DETAIL_AD0 FOR GROUP_DETAIL ACTIVE AFTER DELETE POSITION 0 AS begin --15/09/2020 AVO Если режим включен, то отдел НДС должен быть другой, так как один ККТ с разными предприятиями работает только на разных отделах с выделением НДС if (old.grouptable='DOC_DETAIL_ACTIVE') then begin if ((old.group_id=-43) and ((select PARAM_VALUE from PR_GETPARAMVALUE('MARKING_NDS',0))=1)) then begin update doc_detail_active dd set dd.marking=0, dd.base_agent_id=0, dd.dep=(select first 1 d.id from deps d where d.nds=(select nds from deps where id=dd.dep) order by d.id desc ) where id=old.grouptable_id; end else begin if (old.group_id=-43) then update doc_detail_active dd set dd.marking=0, dd.base_agent_id=0 where id=old.grouptable_id; end end if (old.grouptable='PARTS') then begin if ((old.group_id=-43) and ((select PARAM_VALUE from PR_GETPARAMVALUE('MARKING_NDS',0))=1)) then begin update doc_detail_active dd set dd.marking=0, dd.base_agent_id=0, dd.dep=(select first 1 d.id from deps d where d.nds=(select nds from deps where id=dd.dep) order by d.id desc ) where dd.part_id=old.grouptable_id; end else begin if (old.group_id=-43) then update doc_detail_active dd set dd.marking=0, dd.base_agent_id=0 where dd.part_id=old.grouptable_id; end end end ^ SET TERM ; ^ update parts p set p.base_agent_id=-10 where EXISTS (select id from GROUP_DETAIL where group_id=-43 and GROUPTABLE_ID=p.id and GROUPTABLE='PARTS') and base_agent_id<>-10; update doc_detail dd set dd.base_agent_id = -10 where base_agent_id = 0 and EXISTS (select id from GROUP_DETAIL where group_id=-43 and GROUPTABLE_ID=dd.part_id and GROUPTABLE='PARTS') update doc_detail_active dda set dda.base_agent_id = -10 where dda.base_agent_id = 0 and EXISTS (select id from GROUP_DETAIL where group_id=-43 and GROUPTABLE_ID=dda.id and GROUPTABLE='DOC_DETAIL_ACTIVE');