Jump to content

dev botao

baixa no estoque


dreamsoft_PR
  • Este tópico foi criado há 2582 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

minha Procedure:

 

begin
   if ( :OPE = 'V_N') then
      begin
        for
         select
            T.codprod,
            T.qtdprod,
            p.kitstau
          from
            tab_item T
          left join tab_vend TS on (TS.codvend = t.codvend)
          left join tab_prod P on (P.codprod = t.codprod)
          where
            T.codvend =:codvend
        into
         :codprod, :qtdprod, :kit

        do
         begin
         if (KIT = 'N' ) then
           begin
             update tab_prod  set ESTPRODE = (ESTPRODE - :qtdprod)
             where codprod =:codprod;
           end
         else
           begin
             for
               select
                 i.intkite,
                 i.qtdikit
               from
                 tab_ikit i
               where
                 i.codprod =:codprod
            into
              :codprod1, :qtdprod1

            do
             update tab_prod  set ESTPRODE = (ESTPRODE -    (:qtdprod1 * :qtdprod ))
             where codprod =:codprod1;
             update tab_prod  set ESTPRODE = (ESTPRODE - :qtdprod)
             where codprod =:codprod;


           end

           end
      end
 

disparo quando ele salva a venda.. mas se abrir ele reabre o estoque

9 horas atrás, Marcelo Calvi Belanga disse:

@dreamsoft_PR depende muito de como seu aplicativo deve e quando baixar o estoque. Como o @Sérgio Assunção disse, é uma tarefa simples.

No meu caso faço através de trigger somente quando a venda é confirmada.

Como está essa sua SP? E quando você dispara ela?

e como vc usar essa triger em caso dele editar a venda e mudar os produtos ou deletar 

Link to comment
Share on other sites

  • Membros Pro

Como eu disse anteriormente, disparo a TRIGGER somente na confirmação da minha venda. No INSERT ou UPDATE, verifico o estado de um campo chamado CONFIRMADO, na tabela MASTER e disparo essa TRIGGER através dele. Algo mais ou menos assim:

--SE A COMPRA ESTA SENDO CONFIRMADA
  if ((OLD.CONFIRMADO='False') AND (NEW.CONFIRMADO='True')) then
  begin
    FOR SELECT CODIGOPRODUTO, QUANTIDADE FROM COMPRAITENS
    WHERE COMPRAITENS.NUMEROCOMPRA=NEW.NUMEROCOMPRA
    INTO :CODPRO, :QTDE DO
    begin
      UPDATE PRODUTOS SET PRODUTOS.QUANTIDADE = COALESCE(PRODUTOS.QUANTIDADE,0) + COALESCE(:QTDE,0)
      WHERE CODIGOPRODUTO = :CODPRO;

.......continua.

Varia muito da necessidade de cada ERP...

  • Thanks 1
Link to comment
Share on other sites

  • Membros Pro

Sim, minha TRIGGER é INSERT ou UPDATE.

Esse pequeno exemplo seria de entrada "COMPRA", para VENDA é só fazer ao contrário...

Se a compra é cancelada concorda que o campo CONFIRMADO muda de True para False? Como eu disse, existem várias formas e momentos de mexer no estoque.

Então, algo parecido com isso

 

....continua

--SE A COMPRA ESTA SENDO CANCELADA
  if ((OLD.CONFIRMADO='True') AND (NEW.CONFIRMADO='False')) then
  begin
    FOR SELECT CODIGOPRODUTO, QUANTIDADE FROM COMPRAITENS
    WHERE COMPRAITENS.NUMEROCOMPRA=NEW.NUMEROCOMPRA
    INTO :CODPRO, :QTDE DO
    begin
      UPDATE PRODUTOS SET PRODUTOS.QUANTIDADE = COALESCE(PRODUTOS.QUANTIDADE,0) - COALESCE(:QTDE,0)
      WHERE CODIGOPRODUTO = :CODPRO;

...continua

 

  • Thanks 1
Link to comment
Share on other sites

  • 4 weeks later...

Estoque realmente é algo muito importante para qualquer empresa, minha sugestão seria controlar o seu estoque via fixa kardex. Pois ela possui um dinâmica de histórico, isso facilita o acompanhamento do item que está sendo movimentado. Outra vantagem é o calculo do custo médio que pode ser feito na mesma fixa, alem de compor os livro fiscais exigido pelo fisco sendo esse o livro modelo 3.

 

Exemplo de uma fixa kardex.

fichaEstoque_devPcPlast.jpg

Link to comment
Share on other sites

  • Este tópico foi criado há 2582 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.