SET TERM ^ ;

CREATE OR ALTER trigger ttbgrupo_produto_b01iu for tbgrupo_produto
active before insert or update position 0
AS
DECLARE VARIABLE FAMILIA_ID INTEGER;
BEGIN

    :FAMILIA_ID = NEW.FAMILIA_ID;

    /* CHECA A CUBAGEM */
    IF (FN_PARAMETRO('TBFAMILIA.EXIGE_CUBAGEM', :FAMILIA_ID) = 1) THEN -- 0 = NAO / 1 = SIM
    BEGIN

        IF (COALESCE(NEW.CUBAGEM_ALTURA, 0) = 0 OR COALESCE(NEW.CUBAGEM_LARGURA, 0) = 0 OR COALESCE(NEW.CUBAGEM_COMPRIMENTO, 0) = 0) THEN
        BEGIN
            EXCEPTION "..." 'GRUPO DE PRODUTO EXIGE CUBAGEM. INFORME ALTURA, LARGURA E COMPRIMENTO.' || FN_LINE(4);
        END

    END

    /* CHECA O PESO */
    IF (FN_PARAMETRO('TBFAMILIA.EXIGE_PESO', :FAMILIA_ID) = 1) THEN -- 0 = NAO / 1 = SIM
    BEGIN

        IF (COALESCE(NEW.PESOLIQUIDO, 0) = 0) THEN
        BEGIN
            EXCEPTION "..."  'PRODUTO EXIGE PESO. INFORME O PESO EM GRAMAS.' || FN_LINE(4);
        END

    END

END
^

SET TERM ; ^


