MagistrAnatol
Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Код: /* Trigger: ABO_OBORYD_BI0 */ CREATE OR ALTER TRIGGER ABO_OBORYD_BI0 FOR ABO_OBORYD ACTIVE BEFORE UPDATE POSITION 2 AS declare variable adreca BLOB SUB_TYPE 1 SEGMENT SIZE 80; declare variable operaciya BLOB SUB_TYPE 1 SEGMENT SIZE 80; declare variable OBORYD_NAME char(50); declare variable ZapVidkl integer ; declare variable ZapVkl integer ; begin -------------------- АДС-------------------------------------------------------- if (new.is_adc=1) then begin select trim(a.oc_rax)||ascii_char( 10 )||trim(sm.micto_name)||','||trim(sy.yliza)||','||trim(a.bydunok_nom)||','||trim(a.kvartira_nom) from abo a left join spr_mict sm on sm.spr_mict_id=a.spr_mict_id left join spr_yliz sy on sy.spr_yliz_id=a.spr_yliz_id where a.abo_id=new.abo_id into :adreca; select OBORYD_NAME from spr_oboryd where spr_oboryd_id=new.spr_oboryd_id into boryd_name; if (new.oper_type=2) then operaciya='Проведено ПТО '||trim(:oboryd_name); if (new.oper_type=3) then begin operaciya='відключення обладнання '||trim(:oboryd_name); new.is_vidkl=1; new.data_vkl='01.01.1800'; end if (new.oper_type=4) then begin operaciya='включення обладнання '||trim(:oboryd_name); new.data_vidkl='01.01.1800'; new.akt_vidkl_nom=''; new.plomba_vidkl=''; new.spr_xarakter_vidkl_id=1; new.pruchuna_vidkl=''; new.is_vidkl=0; end if (new.edit_type=0) then begin insert into ABO_OPER (ABO_ID,ABO_OBORYD_ID,DATA_POCT_ZAYAVU,AVARIYA_REMONT,REMONT,SPR_USER_ID,OPER_TYPE) values (new.abo_id,new.ABO_OBORYD_ID,new.oper_data,trim(:adreca),:operaciya,new.spr_user_id,new.oper_type ); new.abo_oper_id=gen_id(gen_abo_oper_id,0); end if (new.edit_type=1) then begin update ABO_OPER set DATA_POCT_ZAYAVU=new.oper_data,SPR_USER_ID=new.spr_user_id where ABO_OPER_ID=new.abo_oper_id; end end end -------------------------------------------------------------------------------- | |