Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //bprl_inoutline_trg
- CREATE OR REPLACE FUNCTION public.bprl_inoutline_trg()
- RETURNS trigger
- LANGUAGE plpgsql
- AS $function$ DECLARE
- v_calcelmovementqty NUMERIC;
- v_faktorkali NUMERIC;
- v_bp_id varchar(32);
- v_bpreturn_id varchar(32);
- v_product_id varchar(32);
- v_productreturn_id varchar(32);
- BEGIN
- IF AD_isTriggerEnabled()='N' THEN IF TG_OP = 'DELETE' THEN RETURN OLD; ELSE RETURN NEW; END IF;
- END IF;
- -- trigger defintion here:
- /*
- * mencegah shipment/receipt negatif tanpa cancel ID
- * cek apakah movement qty <0
- * jika tidak, return
- * jika iya, cek apakah ada cancell id
- * jika tidak, maka exception
- * cek qty di cancell id, cek apakah faktor kali=-1
- * jika tidak, maka exception
- * jika iya, maka return
- * */
- if new.ad_client_id='0BB4BA036586421AB4BA6B4272B927A0' then --khusus BPR lestari
- if (new.movementqty<0) then
- if new.canceled_inoutline_id is null then
- RAISE EXCEPTION '%','DATA_EXCEPTION' ;
- end if;
- select movementqty into v_calcelmovementqty from m_inoutline where m_inoutline_id=new.canceled_inoutline_id;
- if (v_calcelmovementqty is null or v_calcelmovementqty=0) then
- RAISE EXCEPTION '%','DATA_EXCEPTION' ;
- end if;
- v_faktorkali = v_calcelmovementqty/new.movementqty;
- if (v_faktorkali<>-1.0) then
- RAISE EXCEPTION '%','DATA_EXCEPTION' ;
- end if;
- select c_bpartner_id into v_bp_id
- from m_inoutline where m_inoutline_id=new.m_inoutline_id;
- select c_bpartner_id into v_bpreturn_id
- from m_inoutline where m_inoutline_id=new.canceled_inoutline_id;
- if (v_bp_id!=v_bpreturn_id) then
- RAISE EXCEPTION '%','DATA_EXCEPTION' ;
- end if;
- select m_product_id into v_product_id
- from m_inoutline where m_inoutline_id=new.m_inoutline_id;
- select m_product_id into v_productreturn_id
- from m_inoutline where m_inoutline_id=new.canceled_inoutline_id;
- if (v_product_id!=v_productreturn_id) then
- RAISE EXCEPTION '%','DATA_EXCEPTION' ;
- end if;
- end if;
- end if;
- IF TG_OP = 'DELETE' THEN RETURN OLD; ELSE RETURN NEW; END IF;
- END
- ; $function$
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement