SET TERM ^ ;

CREATE OR ALTER trigger ttbadiant_pre_pedidos_b02i for tbadiantamento_pre_pedidos
active before insert position 1
AS
declare variable VALOR_TOTAL_ADIANT NUMERIC(15,2);
declare variable VALOR_TOTAL_PRE_PEDIDO NUMERIC(15,2);
BEGIN
    IF(COALESCE(NEW.VALOR, 0) = 0) THEN
    BEGIN
        :VALOR_TOTAL_ADIANT = COALESCE((SELECT FIRST 1 SUM(T.VALOR) FROM TBPDV_MOVIMENTO_ANTECIPACAO T WHERE T.AGRUPAMENTO_ID = NEW.ADIANTAMENTO_ID), 0);

        :VALOR_TOTAL_PRE_PEDIDO = COALESCE((SELECT FIRST 1 SUM(T.VALOR_LIQUIDO) FROM TBPDV_CONFERENCIA_ITEM T WHERE T.PDV_CONFERENCIA_ID = NEW.PRE_PEDIDO_ID AND T.SITUACAO = 0), 0);

        IF(:VALOR_TOTAL_ADIANT > :VALOR_TOTAL_PRE_PEDIDO) THEN
        BEGIN
            NEW.VALOR = :VALOR_TOTAL_PRE_PEDIDO;
        END ELSE IF(:VALOR_TOTAL_ADIANT <= :VALOR_TOTAL_PRE_PEDIDO) THEN
        BEGIN   
            NEW.VALOR = :VALOR_TOTAL_ADIANT;
        END
    END
END
^

SET TERM ; ^

ALTER TABLE TBFAMILIA
    ADD EXIGE_PECA INTEGER DEFAULT 0 NOT NULL;

COMMENT ON COLUMN TBFAMILIA.EXIGE_PECA IS
'EXIGE INFORMACAO DA PECA NO LANCAMENTO DA NF, ESTOQUE, BAIXA POR EMPENHO';

CREATE INDEX ITBFAMILIA_07
ON TBFAMILIA (EXIGE_PECA);

ALTER TABLE TBNFE_ITEM
    ADD FAMILIA_ALTERNATIVA INTEGER DEFAULT 0 NOT NULL,
    ADD EXIGE_PECA INTEGER DEFAULT 0 NOT NULL,
    ADD PARAMETROS_INSUMO_ID INTEGER DEFAULT 0 NOT NULL;

CREATE INDEX ITBNFE_ITEM_19
ON TBNFE_ITEM (FAMILIA_ALTERNATIVA);

CREATE INDEX ITBNFE_ITEM_20
ON TBNFE_ITEM (EXIGE_PECA);

CREATE INDEX ITBNFE_ITEM_21
ON TBNFE_ITEM (PARAMETROS_INSUMO_ID);

