SET TERM ^ ;

CREATE OR ALTER trigger ttbpedido_item_processado_b04d for tbpedido_item_processado
active before delete position 4
AS
declare variable LOCALIZACAO_PROCESSO integer;
declare variable ESTOQUE_ID_ENTRADA integer;
declare variable ESTOQUE_ID_ENTRADA_CORTE integer;
declare variable CORTE integer;
begin
    -- verificar se já produzido e bloquear
    If (old.FAMILIA_CODIGO = 3) then
    BEGIN

        LOCALIZACAO_PROCESSO = Coalesce((Select First 1 Localizacao_Processo From TbFamilia_Ficha
                                          Where Familia_Codigo = Old.Familia_Codigo
                                            and Estabelecimento_Codigo = Old.Estabelecimento_Codigo),0);
        
        SELECT FIRST 1
            ESTOQUE_ID,
            COALESCE((SELECT FIRST 1 P.ESTOQUE_ID FROM TBPEDIDO_ITEM_PROCESSADO P WHERE P.CONTROLE = V.REMESSA_TALAO_DETALHE_ID),0) ESTOQUE_ID_CORTE,
            IIF(COALESCE(R.WEB,0) <> 3, 0, 1) AS CORTE
        FROM TBREMESSA_ITEM_PROCESSADO J
         LEFT JOIN TBREMESSA_CONSUMO C ON C.REMESSA = J.REMESSA AND C.TALAO = J.CONTROLE
         LEFT JOIN TBREMESSA_CONSUMO_VINCULO V ON V.CONSUMO_ID = C.ID
         LEFT JOIN TBREMESSA R ON R.NUMERO = V.REMESSA_ID
        WHERE J.ESTABELECIMENTO_CODIGO = OLD.ESTABELECIMENTO_CODIGO
         AND J.FAMILIA_CODIGO = OLD.FAMILIA_CODIGO
         AND J.REMESSA  = OLD.REMESSA
         AND J.CONTROLE = OLD.REMESSA_ACUMULADO_CONTROLE
        INTO :ESTOQUE_ID_ENTRADA, :ESTOQUE_ID_ENTRADA_CORTE, :CORTE;
        
        ESTOQUE_ID_ENTRADA = COALESCE(ESTOQUE_ID_ENTRADA,0);
        ESTOQUE_ID_ENTRADA_CORTE = COALESCE(ESTOQUE_ID_ENTRADA_CORTE,0);
        CORTE = COALESCE(CORTE,0);
        
        IF(CORTE = 1)THEN
        BEGIN
            ESTOQUE_ID_ENTRADA = ESTOQUE_ID_ENTRADA_CORTE;
            LOCALIZACAO_PROCESSO = COALESCE((SELECT FIRST 1 I.LOCALIZACAO_CODIGO FROM TBESTOQUE_TRANSACAO_ITEM I WHERE I.CONTROLE = :ESTOQUE_ID_ENTRADA_CORTE),0);
        END

        if (LOCALIZACAO_PROCESSO > 0 and ESTOQUE_ID_ENTRADA > 0) then
        Begin
            exception "..." 'Estoque do talão já está em WIP, operação cancelada!';
        end

   end
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbpedido_item_processado_b5u for tbpedido_item_processado
active before update position 5
AS
Declare variable LOCALIZACAO_PROCESSO Integer;
Declare variable ESTOQUE_ID Integer;
Declare variable ESTOQUE_ID_ENTRADA Integer;
declare variable ESTOQUE_ID_ENTRADA_CORTE Integer;
declare variable CORTE Integer;
Declare variable OBSERVACAO VARCHAR(100);
Declare variable DATA DATE;
Begin

  -- Registra no estoque
  If (NEW.FAMILIA_CODIGO = 3) then
      BEGIN

        if ((Old.Situacao = 2 and New.Situacao = 3) or
            (Old.Situacao = 2 and New.Situacao = 6) or
            (Old.Situacao = 6 and New.Situacao = 2) or
            (Old.Situacao = 3 and New.Situacao = 2)) Then
            Begin

            LOCALIZACAO_PROCESSO = Coalesce((Select First 1 Localizacao_Processo From TbFamilia_Ficha
                                              Where Familia_Codigo = Old.Familia_Codigo
                                                and Estabelecimento_Codigo = Old.Estabelecimento_Codigo),0);

               SELECT FIRST 1
                    ESTOQUE_ID,
                    COALESCE((SELECT FIRST 1 P.ESTOQUE_ID FROM TBPEDIDO_ITEM_PROCESSADO P WHERE P.CONTROLE = V.REMESSA_TALAO_DETALHE_ID),0) ESTOQUE_ID_CORTE,
                    IIF(COALESCE(R.WEB,0) <> 3, 0, 1) AS CORTE
                FROM TBREMESSA_ITEM_PROCESSADO J
                 LEFT JOIN TBREMESSA_CONSUMO C ON C.REMESSA = J.REMESSA AND C.TALAO = J.CONTROLE
                 LEFT JOIN TBREMESSA_CONSUMO_VINCULO V ON V.CONSUMO_ID = C.ID
                 LEFT JOIN TBREMESSA R ON R.NUMERO = V.REMESSA_ID
               WHERE J.ESTABELECIMENTO_CODIGO = OLD.ESTABELECIMENTO_CODIGO
                 AND J.FAMILIA_CODIGO = OLD.FAMILIA_CODIGO
                 AND J.REMESSA  = OLD.REMESSA
                 AND J.CONTROLE = OLD.REMESSA_ACUMULADO_CONTROLE
               INTO :ESTOQUE_ID_ENTRADA, :ESTOQUE_ID_ENTRADA_CORTE, :CORTE;

               ESTOQUE_ID_ENTRADA = COALESCE(ESTOQUE_ID_ENTRADA,0);
               ESTOQUE_ID_ENTRADA_CORTE = COALESCE(ESTOQUE_ID_ENTRADA_CORTE,0);
               CORTE = COALESCE(CORTE,0);

               IF(CORTE = 1)THEN
               BEGIN
                    ESTOQUE_ID_ENTRADA = ESTOQUE_ID_ENTRADA_CORTE;
                    LOCALIZACAO_PROCESSO = COALESCE((SELECT FIRST 1 I.LOCALIZACAO_CODIGO FROM TBESTOQUE_TRANSACAO_ITEM I WHERE I.CONTROLE = :ESTOQUE_ID_ENTRADA_CORTE),0);
               END

                If (Old.Situacao = 2 and New.Situacao = 3) Then
                    Begin
                     DATA = NEW.DATA_EXPEDICAO;
                     OBSERVACAO = '';
                    End
                If (Old.Situacao <> 6 and New.Situacao = 6) Then
                    Begin
                     DATA = Current_Date;--NEW.DATA_LIBERACAO;
                     OBSERVACAO = 'TALAO ENCERRADO. ITEM BAIXADO DO WIP (ID: '||coalesce(ESTOQUE_ID_ENTRADA,0)||')';
                    End
                If (Old.Situacao = 3 and New.Situacao = 2) Then
                    Begin
                     DATA = old.DATA_EXPEDICAO;
                     OBSERVACAO = 'ENTRADA EXCLUIDA NO DPA. ITEM DEVOLVIDO AO WIP (ID: '||coalesce(ESTOQUE_ID_ENTRADA,0)||')';
                    End
                If (Old.Situacao = 6 and New.Situacao <> 6) Then
                    Begin
                     DATA = NEW.DATA_LIBERACAO;
                     OBSERVACAO = 'ENCERRAMENTO DO TALAO DESFEITO. ITEM DEVOLVIDO AO WIP';
                    End

            if (LOCALIZACAO_PROCESSO > 0 and ESTOQUE_ID_ENTRADA > 0) then
                Begin

                --Baixa Estoque em Processo
                IF ((OLD.SITUACAO = 2 AND NEW.SITUACAO = 3) OR
                    (OLD.SITUACAO <> 6 AND NEW.SITUACAO = 6)) THEN
                    BEGIN

                        ESTOQUE_ID = GEN_ID(GTBESTOQUE_TRANSACAO_ITEM,1);

                        EXECUTE PROCEDURE SPU_ESTOQUE_SALDO4 (
                        NEW.ESTABELECIMENTO_CODIGO,:LOCALIZACAO_PROCESSO,
                        NEW.PRODUTO_CODIGO, 'S',:DATA,NEW.QUANTIDADE_PRODUCAO,
                        IIF(NEW.TAMANHO = 1,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO = 2,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO = 3,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO = 4,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO = 5,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO = 6,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO = 7,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO = 8,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO = 9,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO =10,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO =11,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO =12,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO =13,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO =14,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO =15,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO =16,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO =17,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO =18,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO =19,NEW.QUANTIDADE_PRODUCAO,0),
                        IIF(NEW.TAMANHO =20,NEW.QUANTIDADE_PRODUCAO,0),
                        :ESTOQUE_ID,NEW.REMESSA,0,0,'WPS',OLD.REMESSA_ACUMULADO_CONTROLE,0,0,0,0,
                        Current_Date,0,null,:OBSERVACAO,'0',0,0,0,0);

                        NEW.ESTOQUE_ID = :ESTOQUE_ID;

						/*
                        If (OLD.SITUACAO <> 6 AND NEW.SITUACAO = 6) Then
                        Begin
                            execute procedure SPI_EMAIL(
                                'suporte@delfa.com.br, anderson@delfa.com.br, wellington@delfa.com.br',
                                'Atenção - Quantidade talão Alterada (S), Remessa:'||new.remessa||', Talão:'||new.remessa_acumulado_controle,
                                '<br>Remessa:'||new.remessa||', Talão:'||new.remessa_acumulado_controle||', Estoque ID:'||NEW.ESTOQUE_ID||
                                '<br>Saida:'||NEW.QUANTIDADE_PRODUCAO||
                                '<br>Data:'||formatdatetime(current_timestamp)||'<br>Usuário:'||fn_current_user_id()||'-'||current_user,
                                1,
                                0
                            );
                        end
						*/

                      END ELSE

                    --Estorna Baixa do Estoque em Processo
                    If ((Old.Situacao = 6 and New.Situacao <> 6) or
                        (Old.Situacao = 3 and New.Situacao = 2)) Then
                         BEGIN

                            ESTOQUE_ID = GEN_ID(GTBESTOQUE_TRANSACAO_ITEM, 1);
                            EXECUTE PROCEDURE SPU_ESTOQUE_SALDO4 (
                            NEW.ESTABELECIMENTO_CODIGO,:LOCALIZACAO_PROCESSO,
                            NEW.PRODUTO_CODIGO, 'E',:DATA,NEW.QUANTIDADE_PRODUCAO,
                            IIF(NEW.TAMANHO = 1,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO = 2,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO = 3,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO = 4,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO = 5,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO = 6,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO = 7,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO = 8,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO = 9,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO =10,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO =11,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO =12,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO =13,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO =14,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO =15,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO =16,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO =17,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO =18,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO =19,NEW.QUANTIDADE_PRODUCAO,0),
                            IIF(NEW.TAMANHO =20,NEW.QUANTIDADE_PRODUCAO,0),
                            :ESTOQUE_ID,NEW.REMESSA,0,0,'WPE',OLD.REMESSA_ACUMULADO_CONTROLE,0,0,0,0,
                            Current_Date,0,null,:OBSERVACAO,'0',0,0,0,0);

                            NEW.ESTOQUE_ID_ESTORNO = :ESTOQUE_ID;

							/*
                            If (Old.Situacao = 6 and New.Situacao <> 6)then
                            begin
                                execute procedure SPI_EMAIL(
                                    'suporte@delfa.com.br, anderson@delfa.com.br, wellington@delfa.com.br',
                                    'Atenção - Quantidade talão Alterada (E), Remessa:'||new.remessa||', Talão:'||new.remessa_acumulado_controle,
                                    '<br>Remessa:'||new.remessa||', Talão:'||new.remessa_acumulado_controle||', Estoque ID:'||NEW.ESTOQUE_ID||
                                    '<br>Entrada:'||NEW.QUANTIDADE_PRODUCAO||
                                    '<br>Data:'||formatdatetime(current_timestamp)||'<br>Usuário:'||fn_current_user_id()||'-'||current_user,
                                    1,
                                    0
                                );
                            end
							*/

                         END
                   End --if (LOCALIZACAO_PROCESSO > 0 and ESTOQUE_ID_ENTRADA > 0) then
             End -- if ((Old.Situacao = 2 and New.Situacao = 3) or ...
      End --If (NEW.FAMILIA_CODIGO > 0) then
End
^

SET TERM ; ^



SET TERM ^ ;

CREATE OR ALTER trigger ttbremessa_item_processado_b3u for tbremessa_item_processado
active before update position 5
AS
Declare variable LOCALIZACAO_PROCESSO integer;
Declare variable ESTOQUE_ID integer;
Declare variable ESTOQUE_BAIXA_ID integer;
Declare variable ESTOQUE_QUANTIDADE numeric(15,4);
Declare variable consumo_kg numeric(15,4);
Declare variable perfil_up varchar(10);
Declare variable ccusto varchar(50);
Declare variable RREMESSA integer;
Declare variable WEB Char(1);
Begin

  WEB = Coalesce((Select First 1 R.WEB From TbRemessa R Where R.Numero = New.Remessa),'0');

--Registra no estoque WIP o bojo cortado - para remessas do GC-WEB
--Baixa do WIP os componentes (EDC)
  IF (COALESCE(WEB,'0') = '1') THEN
      Begin

          If (NEW.FAMILIA_CODIGO > 0) then
              BEGIN
                      
                --INSERT INTO TMPGP_ESTOQUE (GP_ID) VALUES (100);

                fn_set_context('GP_ESTOQUE', new.programacao_esteira);

                if ((Old.Situacao = 1 and New.Situacao = 2) or
                    (Old.Situacao = 2 and New.Situacao = 1)) Then
                    Begin
        
                    LOCALIZACAO_PROCESSO = Coalesce((Select First 1 Localizacao_Processo From TbFamilia_Ficha
                                                      Where Familia_Codigo = Old.Familia_Codigo
                                                        and Estabelecimento_Codigo = Old.Estabelecimento_Codigo),0);
        

                    if (LOCALIZACAO_PROCESSO > 0) then
                        Begin
        
                                --Entra no Estoque em Processo
                                If (Old.Situacao = 1 and New.Situacao = 2 and Coalesce(OLD.ESTOQUE_ID,0) = 0) Then
                                    Begin

                                    RREMESSA = coalesce((select first 1 r.remessa_id from vwremessa r where r.remessa = '1R'||NEW.REMESSA),0);

                                    if (OLD.CONTROLE < 6000 and NEW.QUANTIDADE > 0 and RREMESSA = 0) then --SOMENTE TALOES DE REMESSAS NORMAIS
                                        BEGIN
                                            ESTOQUE_ID = Coalesce((SELECT GEN_ID(GTBESTOQUE_TRANSACAO_ITEM, 1) FROM RDB$DATABASE),0);
                                            perfil_up  = coalesce((select first 1 u.perfil from tbup u where u.id = new.up_id),'');
                                            CCUSTO     = (SELECT FIRST 1 U.CCUSTO FROM TBUP U WHERE U.ID = new.up_id);

                                            EXECUTE PROCEDURE SPI_ESTOQUE_TRANSACAO_REGRA(
                                                5,
                                                100, --GP: CORTE
                                                'U',--:perfil_up,
                                                new.familia_codigo,
                                                new.localizacao_id,
                                                'TBREMESSA_ITEM_PROCESSADO',
                                                0,
                                                new.id,
                                                new.estabelecimento_codigo,
                                                NEW.DATA_PRODUCAO,
                                                new.produto_codigo,
                                                new.tamanho,
                                                new.quantidade,
                                                'E',
                                                '0',
                                                :CCUSTO,
                                                'Talao: ' || COALESCE(FN_LPAD(NEW.CONTROLE,4,0),''),
                                                :ESTOQUE_ID,
                                                NEW.REMESSA,
                                                OLD.ID
                                            );

                                            NEW.ESTOQUE_ID = :ESTOQUE_ID;
                                        End

                                    UPDATE VWREMESSA_CONSUMO RC SET
                                    RC.Quantidade_consumo = RC.quantidade,
                                    RC.quantidade_alternativa_consumo = RC.quantidade_alternativa,
                                    RC.datahora_conferencia = NEW.DATA_PRODUCAO,
                                    RC.status = '1'
                                    Where RC.estabelecimento_id = NEW.ESTABELECIMENTO_CODIGO
                                      AND RC.REMESSA_ID = NEW.REMESSA
                                      AND RC.remessa_talao_id = NEW.CONTROLE;

                            End Else
                        --Exclui do Estoque em Processo
                        If (Old.Situacao = 2 and New.Situacao = 1 and Old.Estoque_Id > 0) Then
                            Begin

                                 NEW.ESTOQUE_ID = 0;
    
                                 DELETE FROM TbEstoque_Transacao_Item
                                  WHERE TRANSACAO_CONTROLE     = 0
                                    AND CONTROLE               = OLD.ESTOQUE_ID
                                    AND ESTABELECIMENTO_CODIGO = OLD.ESTABELECIMENTO_CODIGO
                                    AND LOCALIZACAO_CODIGO     = :LOCALIZACAO_PROCESSO
                                    AND PRODUTO_CODIGO         = OLD.PRODUTO_CODIGO;
    
                                UPDATE VWREMESSA_CONSUMO RC SET
                                RC.Quantidade_consumo = 0,
                                RC.quantidade_alternativa_consumo = 0,
                                RC.datahora_conferencia = null,
                                RC.status = '0'
                                Where RC.estabelecimento_id = NEW.ESTABELECIMENTO_CODIGO
                                  AND RC.REMESSA_ID = NEW.REMESSA
                                  AND RC.remessa_talao_id = NEW.CONTROLE;

                                --lancamento para reverter baixa de talao encerrado, isso causava saldo
                                --negativo para o talao depois de reaberto e registrado novamente
                                for
                                    select distinct
                                        i.controle
                                    from tbestoque_transacao_item i, tbpedido_item_processado l
                                    where i.documento                   = l.remessa
                                    and i.remessa_item_controle         = l.remessa_acumulado_controle
                                    AND i.ESTABELECIMENTO_CODIGO        = l.estabelecimento_codigo
                                    AND i.LOCALIZACAO_CODIGO            = :LOCALIZACAO_PROCESSO
                                    AND i.PRODUTO_CODIGO                = l.produto_codigo
                                    and l.remessa                       = new.remessa
                                    and l.remessa_acumulado_controle    = new.controle
                                    and i.tipo                          = 'S'
                                    and l.situacao = 6
                                into
                                    :ESTOQUE_BAIXA_ID
                                do begin

                                    /*
                                    execute procedure SPI_EMAIL(
                                        'anderson@delfa.com.br',
                                        'Atenção - Excluir baixa para talão encerrado',
                                        'Remessa:'||new.remessa||', Talão:'||new.controle||', Estoque ID:'||:ESTOQUE_BAIXA_ID||'<br>Data:'||formatdatetime(current_timestamp)||'<br>Usuário:'||fn_current_user_id()||'-'||current_user,
                                        1,
                                        0
                                    );
                                    */

                                    DELETE FROM TbEstoque_Transacao_Item where controle = :ESTOQUE_BAIXA_ID;
                                end

                            End
                        End

                    End
        
        
                if (Old.Situacao = New.Situacao and Old.Estoque_Id > 0 and NEW.QUANTIDADE <> OLD.QUANTIDADE) Then
                    Begin
        
                    LOCALIZACAO_PROCESSO = Coalesce((Select First 1 Localizacao_Processo From TbFamilia_Ficha
                                                      Where Familia_Codigo = Old.Familia_Codigo
                                                        and Estabelecimento_Codigo = Old.Estabelecimento_Codigo),0);
        
        
                       if (LOCALIZACAO_PROCESSO > 0) then
                           Begin

								/*
                                execute procedure SPI_EMAIL(
                                    'suporte@delfa.com.br, anderson@delfa.com.br, wellington@delfa.com.br',
                                    'Atenção - Quantidade talão Alterada, Remessa:'||new.remessa||', Talão:'||new.controle,
                                    '<br>Remessa:'||new.remessa||', Talão:'||new.controle||', Estoque ID:'||OLD.ESTOQUE_ID||
                                    '<br>Quantidade:'||OLD.QUANTIDADE||' -> '||new.QUANTIDADE||
                                    '<br>Data:'||formatdatetime(current_timestamp)||'<br>Usuário:'||fn_current_user_id()||'-'||current_user,
                                    1,
                                    0
                                );
								*/

                                --exception "..." 'Quantidade talão Alterada com registro no estoque';

                                /*
                                if (OLD.CONTROLE < 8000 and NEW.QUANTIDADE > 0) then --SOMENTE TALOES DE REMESSAS NORMAIS
                                BEGIN

                                    ESTOQUE_ID = Coalesce((SELECT GEN_ID(GTBESTOQUE_TRANSACAO_ITEM, 1) FROM RDB$DATABASE),0);
                                    perfil_up  = coalesce((select first 1 u.perfil from tbup u where u.id = new.up_id),'');
                                    CCUSTO     = (SELECT FIRST 1 U.CCUSTO FROM TBUP U WHERE U.ID = new.up_id);

                                    EXECUTE PROCEDURE SPI_ESTOQUE_TRANSACAO_REGRA(
                                        5,
                                        100, -- GP: CORTE
                                        'U',--:perfil_up,
                                        new.familia_codigo,
                                        :LOCALIZACAO_PROCESSO,
                                        'TBREMESSA_ITEM_PROCESSADO',
                                        0,
                                        new.id,
                                        new.estabelecimento_codigo,
                                        NEW.DATA_PRODUCAO,
                                        new.produto_codigo,
                                        new.tamanho,
                                        new.quantidade,
                                        'E',
                                        '0',
                                        :CCUSTO,
                                        'Entra no Estoque em Processo',
                                        :ESTOQUE_ID,
                                        NEW.REMESSA,
                                        old.controle
                                    );

                                    NEW.ESTOQUE_ID = :ESTOQUE_ID;

                                END else
                                if (OLD.CONTROLE < 8000 and NEW.QUANTIDADE <= 0) then --SOMENTE TALOES DE REMESSAS NORMAIS
                                begin
                                    NEW.ESTOQUE_ID = 0;
                                end

                                if (OLD.CONTROLE < 8000) then --SOMENTE TALOES DE REMESSAS NORMAIS
                                BEGIN

                                    --Exclui do Estoque em Processo
                                     DELETE FROM TbEstoque_Transacao_Item
                                      WHERE TRANSACAO_CONTROLE     = 0
                                        AND CONTROLE               = OLD.ESTOQUE_ID
                                        AND ESTABELECIMENTO_CODIGO = OLD.ESTABELECIMENTO_CODIGO
                                        AND LOCALIZACAO_CODIGO     = :LOCALIZACAO_PROCESSO
                                        AND PRODUTO_CODIGO         = OLD.PRODUTO_CODIGO;
                                    exception "..." '1';

                               End
                               */

                           End
                    End
        
      End

      End

End
^

SET TERM ; ^

