ALTER TABLE TBPEDIDO_ITEM_PROCESSADO
    ADD BAIXA_AUTOMATICA INTEGER DEFAULT 0;

COMMENT ON COLUMN TBPEDIDO_ITEM_PROCESSADO.BAIXA_AUTOMATICA IS
'indica se esta peca foi baixada automaticamente';

ALTER TABLE TBREVISAO
    ADD BAIXA_AUTOMATICA INTEGER DEFAULT 0;

COMMENT ON COLUMN TBREVISAO.BAIXA_AUTOMATICA IS
'indica se esta peca foi baixada automaticamente';

CREATE OR ALTER trigger ttbestoque_transacao_item_a01i for tbestoque_transacao_item
active after insert position 2
AS
declare variable ID INTEGER;
declare variable tabela varchar(300);
declare variable PRODUTO_ID INTEGER;
declare variable LOCALIZACAO_ID INTEGER;
declare variable STATUS INTEGER;
declare variable TAMANHO INTEGER;
declare variable ESTABELECIMENTO_ID INTEGER;
declare variable DESCRICAO VARCHAR(100);
declare variable OPERACAO VARCHAR(10);
begin

    IF(NEW.tipo = 'E')THEN
    BEGIN
        FOR
            select first 1
                ID,
                PRODUTO_ID,
                LOCALIZACAO_ID,
                STATUS,
                DESCRICAO,
                operacao_saida,
                ESTABELECIMENTO_ID
            FROM tbestoque_baixa_automatica A
            WHERE A.produto_id          = new.produto_codigo
            AND A.localizacao_id        = new.localizacao_codigo
            and a.estabelecimento_id    = new.estabelecimento_codigo
            and a.operacao_entrada      = new.operacao_codigo
            AND A.status = 1
        INTO
            ID,
            PRODUTO_ID,
            LOCALIZACAO_ID,
            STATUS,
            DESCRICAO,
            OPERACAO,
            ESTABELECIMENTO_ID
        DO BEGIN

            :TAMANHO = iif(new.t01 > 0,  1,
                       iif(new.t02 > 0,  2,
                       iif(new.t03 > 0,  3,
                       iif(new.t04 > 0,  4,
                       iif(new.t05 > 0,  5,
                       iif(new.t06 > 0,  6,
                       iif(new.t07 > 0,  7,
                       iif(new.t08 > 0,  8,
                       iif(new.t09 > 0,  9,
                       iif(new.t10 > 0, 10,
                       iif(new.t11 > 0, 11,
                       iif(new.t12 > 0, 12,
                       iif(new.t13 > 0, 13,
                       iif(new.t14 > 0, 14,
                       iif(new.t15 > 0, 15,
                       iif(new.t16 > 0, 16,
                       iif(new.t17 > 0, 17,
                       iif(new.t18 > 0, 18,
                       iif(new.t19 > 0, 19,
                       iif(new.t20 > 0, 20,
                       0))))))))))))))))))));
            
            EXECUTE PROCEDURE SPI_ESTOQUE_TRANSACAO(
                'TBESTOQUE_BAIXA_AUTOMATICA',
                0,
                :ID,
                :ESTABELECIMENTO_ID,
                :LOCALIZACAO_ID,
                FN_DATA_PRODUCAO(),
                :PRODUTO_ID,
                :TAMANHO,
                new.QUANTIDADE,
                'S',
                :OPERACAO,
                1,
                new.centro_de_custo,
                'BAIXA AUTOMATICA DE ESTOQUE',
                null, 
                new.documento
            );

            for
               select trim(s.tabela) as tabela, s.id from SPC_PECA(new.peca_id) s
            into
              :tabela,
              :id
            do begin

               execute procedure spi_notificar(current_timestamp, 186,'Baixa Automática de Peças 2','Tabela:'||:tabela||'<br>Peça:'||:id||'',1,1);

               if(tabela = 'VWREMESSA_TALAO_DETALHE')then
               begin
                    --update TBPEDIDO_ITEM_PROCESSADO d set d.BAIXA_AUTOMATICA = 1 where d.controle = :id;
               end

               if(tabela = 'TBREVISAO')then
               begin
                    --update TBREVISAO r set r.BAIXA_AUTOMATICA = 0 where r.id = :id;
               end

            end
        END
    END

end;


