SET TERM ^ ;

CREATE OR ALTER trigger ttbcatalogo_produto_import_b01i for tbcatalogo_produto_import
active before insert position 0
AS
DECLARE VARIABLE NEW_MODELO VARCHAR(500);
BEGIN

    :NEW_MODELO = COALESCE((SELECT FIRST 1 FN_LPAD(A.CODIGO, 6, '0')||' - '||A.DESCRICAO FROM TBCATALOGO_PRODUTO_IMPORT T, TBMODELO A WHERE T.MODELO_ID = A.CODIGO AND T.MODELO_ID = NEW.MODELO_ID AND T.CATALOGO_PRODUTO_ID = NEW.CATALOGO_PRODUTO_ID), '');

    IF (COALESCE(:NEW_MODELO, '') <> '') THEN
    BEGIN
        EXCEPTION "..." 'MODELO '||:NEW_MODELO||' JA INCLUIDO NO CATALOGO '||FN_LPAD(NEW.CATALOGO_PRODUTO_ID, 4, '0')||'';
    END


    IF (NEW.ID IS NULL) THEN
        NEW.ID = GEN_ID(GTBCATALOGO_PRODUTO_IMPORT, 1);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbcatalogo_produto_formpa_b01i for tbcatalogo_produto_formpag
active before insert position 0
AS
DECLARE VARIABLE NEW_PAGAMENTO_FORMA VARCHAR(500);
BEGIN

    :NEW_PAGAMENTO_FORMA = COALESCE((SELECT FIRST 1 FN_LPAD(A.CODIGO, 4, '0')||' - '||A.DESCRICAO FROM TBCATALOGO_PRODUTO_FORMPAG T, TBPAGAMENTO_FORMA A WHERE T.PAGAMENTO_FORMA_ID = A.CODIGO AND T.PAGAMENTO_FORMA_ID = NEW.PAGAMENTO_FORMA_ID AND T.CATALOGO_PRODUTO_ID = NEW.CATALOGO_PRODUTO_ID), '');
    IF (COALESCE(:NEW_PAGAMENTO_FORMA, '') <> '') THEN
    BEGIN
        EXCEPTION "..." 'FORMA DE PAGAMENTO '||:NEW_PAGAMENTO_FORMA||' JA INCLUIDO NO CATALOGO '||FN_LPAD(NEW.CATALOGO_PRODUTO_ID, 4, '0')||'';
    END


    IF (COALESCE(NEW.ID, 0) = 0) THEN
        NEW.ID = GEN_ID(GTBCATALOGO_PRODUTO_FORMPAG, 1);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbempresa_catalogo_b01i for tbempresa_catalogo
active before insert position 0
AS
DECLARE VARIABLE NEW_EMPRESA VARCHAR(500);
BEGIN

    :NEW_EMPRESA = COALESCE((SELECT FIRST 1 FN_LPAD(A.CODIGO, 6, '0')||' - '||A.NOMEFANTASIA FROM TBEMPRESA_CATALOGO T, TBEMPRESA A WHERE T.EMPRESA_ID = A.CODIGO AND T.EMPRESA_ID = NEW.EMPRESA_ID AND T.CATALOGO_PRODUTO_ID = NEW.CATALOGO_PRODUTO_ID), '');
    IF (COALESCE(:NEW_EMPRESA, '') <> '') THEN
    BEGIN
        IF (NEW.TIPO_INC = 1) THEN
        BEGIN
            EXCEPTION "..." 'CLIENTE '||:NEW_EMPRESA||' JA INCLUIDO NO CATALOGO '||FN_LPAD(NEW.CATALOGO_PRODUTO_ID, 4, '0')||'';
        END ELSE
        BEGIN
            EXCEPTION "..." 'REPRESENTANTE '||:NEW_EMPRESA||' JA INCLUIDO NO CATALOGO '||FN_LPAD(NEW.CATALOGO_PRODUTO_ID, 4, '0')||'';
        END
    END


    IF (NEW.ID IS NULL) THEN
        NEW.ID = GEN_ID(GTBEMPRESA_CATALOGO, 1);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbcatalogo_produto_revend_b01i for tbcatalogo_produto_revendedores
active before insert position 0
AS
DECLARE VARIABLE NEW_EMPRESA VARCHAR(500);
BEGIN

    :NEW_EMPRESA = COALESCE((SELECT FIRST 1 FN_LPAD(A.CODIGO, 6, '0')||' - '||A.NOMEFANTASIA FROM TBCATALOGO_PRODUTO_REVENDEDORES T, TBEMPRESA A WHERE T.EMPRESA_ID = A.CODIGO AND T.EMPRESA_ID = NEW.EMPRESA_ID AND T.CATALOGO_PRODUTO_ID = NEW.CATALOGO_PRODUTO_ID), '');
    IF (COALESCE(:NEW_EMPRESA, '') <> '') THEN
    BEGIN
        EXCEPTION "..." 'REVENDEDOR '||:NEW_EMPRESA||' JA INCLUIDO NO CATALOGO '||FN_LPAD(NEW.CATALOGO_PRODUTO_ID, 4, '0')||'';
    END


    IF (NEW.ID IS NULL) THEN
        NEW.ID = GEN_ID(GTBCATALOGO_PRODUTO_REVEND, 1);
END
^

SET TERM ; ^

