SET TERM ^ ;

CREATE OR ALTER trigger ttbminuta_coleta_item_b02i for tbminuta_coleta_item
active before insert position 0
AS

DECLARE VARIABLE ESTABELECIMENTO_EMBARQUE INTEGER;
DECLARE VARIABLE ESTABELECIMENTO_DOCUMENTO INTEGER;

BEGIN

    ESTABELECIMENTO_EMBARQUE = COALESCE((SELECT FIRST 1 T.ESTABELECIMENTO_ID FROM TBMINUTA_COLETA T WHERE T.ID = NEW.MINUTA_COLETA_ID), 0);
    
    IF(NEW.NF_ID > 0 AND NEW.PDV_CFE_ID = 0) THEN
    BEGIN
        ESTABELECIMENTO_DOCUMENTO = COALESCE((SELECT FIRST 1 T.ESTABELECIMENTO_CODIGO FROM TBNFS T WHERE T.CONTROLE = NEW.NF_ID), 0);
    END

    IF(NEW.PDV_CFE_ID > 0 AND NEW.NF_ID = 0) THEN
    BEGIN
        ESTABELECIMENTO_DOCUMENTO = COALESCE((SELECT FIRST 1 T.ESTABELECIMENTO_ID FROM TBPDV_CFE T WHERE T.ID = NEW.PDV_CFE_ID), 0);
    END

    IF(ESTABELECIMENTO_EMBARQUE IS DISTINCT FROM ESTABELECIMENTO_DOCUMENTO) THEN
    BEGIN
        EXCEPTION "..." 'ESTABELECIMENTO DO DOCUMENTO '||FN_LPAD(NEW.DOCUMENTO_FISCAL, 9, '0')||' A SER INCLUÍDO, DIFERE DO ESTABELECIMENTO INFORMADO NO ROMANEIO DE EMBARQUE/MINUTA DE COLETA';
    END

END
^

SET TERM ; ^