SET TERM ^ ;

ALTER TRIGGER TBPDV_CONF_TROCA_ITEM_B01U POSITION 3^

ALTER TRIGGER TBPDV_CONF_TROCA_ITEM_B01D POSITION 3^

CREATE OR ALTER TRIGGER TBPDV_CONF_TROCA_ITEM_B02UD FOR TBPDV_CONFERENCIA_TROCA_ITEM
ACTIVE BEFORE UPDATE OR DELETE POSITION 0
AS
DECLARE VARIABLE ITEM_FATURADO INTEGER;
BEGIN
  IF(UPDATING AND OLD.QUANTIDADE IS DISTINCT FROM NEW.QUANTIDADE)THEN
  BEGIN
      :ITEM_FATURADO = COALESCE((SELECT FIRST 1 B.ID FROM TBPDV_CONFERENCIA_ITEM B WHERE B.ID = OLD.PRE_PEDIDO_ITEM_ID AND B.PDV_CONFERENCIA_ID = OLD.PRE_PEDIDO_ID AND B.SITUACAO = 3),0);
      IF(:ITEM_FATURADO > 0)THEN
      BEGIN
         EXCEPTION "..." ' PRE-PEDIDO:'||FN_LPAD(OLD.PRE_PEDIDO_ID,7,0)||' JA FATURADO, ALTERACAO NOS ITENS CANCELADA!';
      END
  END

  IF(DELETING)THEN
  BEGIN
      :ITEM_FATURADO = COALESCE((SELECT FIRST 1 B.ID FROM TBPDV_CONFERENCIA_ITEM B WHERE B.ID = OLD.PRE_PEDIDO_ITEM_ID AND B.PDV_CONFERENCIA_ID = OLD.PRE_PEDIDO_ID AND B.SITUACAO = 3),0);
      IF(:ITEM_FATURADO > 0)THEN
      BEGIN
         EXCEPTION "..." ' PRE-PEDIDO:'||FN_LPAD(OLD.PRE_PEDIDO_ID,7,0)||' JA FATURADO, EXCLUSAO CANCELADA!';
      END
  END

END^

^ SET TERM ; ^