none
Controle de estoque, movimentação de saída

    Question

  • Boa tarde amigos!

    Sou iniciante na área de desenvolvimento e quero ajuda para montar uma query no visual studio 2008 aonde eu possa impedir que o usuário ao realizar um movimento de saída no estoque e se o valor referente ao produto for igual a o possa receber uma mensagem de erro. Criei as tabelas de estoque e movimento no SQL 2005. 

    Eu desenvolvo utilizando o C# e estou gostando muito, porem limitado por estar começando. Se alguem puder me ajudar!

    Monday, April 12, 2010 6:54 PM

Answers

  • Se eu entendi bem, vc tem uma tabela estoque com

    IDProduto, QtdeDisponivel

    e Movimento 

    IDProduto, QtdSaida, DataSaida

     

    No metodo executa Baixa, vc deve estar fazendo um

    update estoque set QtdeDisponivel=QtdeDisponivel-qtdSaida where IDProduto=produtox

     

    e um 

    insert into Movimento (IDProduto, QtdSaida, DataSaida) values(produtox,qtdSaida, hoje)

     

    Entao crie uma funcao VerificaEstoque que retorne um booleano

    private boolean VerificaEstoque (int IDProduto,int QtdSaida)

    {

    string SQL="Select QtdeDisponivel from Estoque where IDProduto=" +IDProduto;

    //metodo que chama um ExecuteEscalar()

    int qtdeDisponivel=bdutils.ExecuteScalar(SQL);

    return (qtdeDisponivel-QtdSaida>0);

    }

     

    Depois veja se o resultado for TRUE, execute a baixa, senao de uma mensagem informando que o usuario nao pode executar pq nao tem produtos suficientes no estoque.

     

    Em linhas gerais é isso.

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Monday, April 12, 2010 7:54 PM

All replies

  • Desculpe, mas eu sinceramente nao entendi sua duvida. 

    Poderia dar um exemplo de como estao montadas essas tabelas de movimento e estoque? Poderia discriminar qual mensagem de erro vc gostaria de exibir?

    Att

     


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Monday, April 12, 2010 7:03 PM
  • Descupe por não ser claro na pergunta.

     

    Eu tenho uma tabela de estoque, aonde tenho meus produtos cadastrados e quantidade disponivel. Tenho outra tabela com movimentação de saída aonde tenho o campo que mostra os produtos disponiveis no estoque (um DropDownlist) e um campo aonde digito a quantidade que irá sair do estoque. Bem eu gostaria de um exemplo de query, no meu webforms de saida de produto, para quando o usuário selecionar um produto e este produto tiver quantidade zero na tabela de estoque o processo não seja executado, gerando um erro que informe que o produto não tem saldo disponivel. Atualmente a execução é feita alimentando a tabela de saída e colocando na tabela de estoque, um valor negativo para o produto que estava com quantidade zero.

     

    Espero que eu tenha sido mais claro, pois preciso de ajuda para terminar este aplicativo Web e apresenta-lo ao meu gerente.

    Obrigado pela atenção!

    Monday, April 12, 2010 7:40 PM
  • Você pode fazer via banco ou validar via aplicação e não deixar ir para o banco!

     

    Exemplo feito no banco(um índice na tabela que ira gravar os movimentos)

     

    CREATE NONCLUSTERED INDEX [IX_Movimento] ON [dbo].[MovimentoEstoque]
    (
        [qtd] ASC
    )
    WHERE ([qtd] > 0)

     

    Isso vai validar, mas a mensagem nao sera muito amigavel!

     

     

    Monday, April 12, 2010 7:50 PM
  • Se eu entendi bem, vc tem uma tabela estoque com

    IDProduto, QtdeDisponivel

    e Movimento 

    IDProduto, QtdSaida, DataSaida

     

    No metodo executa Baixa, vc deve estar fazendo um

    update estoque set QtdeDisponivel=QtdeDisponivel-qtdSaida where IDProduto=produtox

     

    e um 

    insert into Movimento (IDProduto, QtdSaida, DataSaida) values(produtox,qtdSaida, hoje)

     

    Entao crie uma funcao VerificaEstoque que retorne um booleano

    private boolean VerificaEstoque (int IDProduto,int QtdSaida)

    {

    string SQL="Select QtdeDisponivel from Estoque where IDProduto=" +IDProduto;

    //metodo que chama um ExecuteEscalar()

    int qtdeDisponivel=bdutils.ExecuteScalar(SQL);

    return (qtdeDisponivel-QtdSaida>0);

    }

     

    Depois veja se o resultado for TRUE, execute a baixa, senao de uma mensagem informando que o usuario nao pode executar pq nao tem produtos suficientes no estoque.

     

    Em linhas gerais é isso.

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Monday, April 12, 2010 7:54 PM
  • Muito obrigado Willian!
    Tuesday, April 13, 2010 11:09 AM