SET TERM ^ ;

CREATE trigger ttbpdv_conferencia_b04i for tbpdv_conferencia
active before insert position 4
AS
DECLARE VARIABLE CHECK_PRE_PEDIDO_CONSIG_EXIS INTEGER;
DECLARE VARIABLE DESC_PESSOA VARCHAR(500);
BEGIN

    IF(NEW.TIPO = 2) THEN
    BEGIN
        IF(COALESCE(NEW.CLIENTE_ID, 0) > 0) THEN
        BEGIN
            :CHECK_PRE_PEDIDO_CONSIG_EXIS = COALESCE((SELECT FIRST 1 T.ID FROM TBPDV_CONFERENCIA T WHERE T.CLIENTE_ID = NEW.CLIENTE_ID AND T.STATUS_ITENS = 0 AND T.TIPO = 2 AND T.ID <> NEW.ID), 0);

            IF(:CHECK_PRE_PEDIDO_CONSIG_EXIS > 0) THEN
            BEGIN
                :DESC_PESSOA = COALESCE((SELECT FIRST 1 FN_LPAD(E.CODIGO, 5, '0')||' - '||E.NOMEFANTASIA FROM TBEMPRESA E WHERE E.CODIGO = NEW.CLIENTE_ID), '');

                EXCEPTION "..."'EXISTEM PRE PEDIDOS CONSIGNADO EM ABERTO PARA O CLIENTE '||:DESC_PESSOA;

            END


        END

        IF(COALESCE(NEW.COLABORADOR_ID, 0) > 0) THEN
        BEGIN
            :CHECK_PRE_PEDIDO_CONSIG_EXIS = COALESCE((SELECT FIRST 1 T.ID FROM TBPDV_CONFERENCIA T WHERE T.COLABORADOR_ID = NEW.COLABORADOR_ID AND T.STATUS_ITENS = 0 AND T.TIPO = 2 AND T.ID <> NEW.ID), 0);

            IF(:CHECK_PRE_PEDIDO_CONSIG_EXIS > 0) THEN
            BEGIN
                :DESC_PESSOA = COALESCE((SELECT FIRST 1 FN_LPAD(E.CODIGO, 5, '0')||' - '||E.PESSOAL_NOME FROM TBCOLABORADOR E WHERE E.CODIGO = NEW.COLABORADOR_ID), '');

                EXCEPTION "..."'EXISTEM PRE PEDIDOS CONSIGNADO EM ABERTO PARA O COLABORADOR '||:DESC_PESSOA;

            END
        END



    END
END
^

SET TERM ; ^

