BAIXA DE ESTOQUE AO FINALIZAR VENDA

 Tópico anterior Próximo tópico Novo tópico

BAIXA DE ESTOQUE AO FINALIZAR VENDA

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#494661 - 22/08/2020 00:08:58

GENUSS
SORRISO
Cadast. em:Setembro/2017


Ola boa noite estou criandouma tela de pdv para mercado e nela quero implementar a baixat de estoque ao finalizar a venda
Alguem ai pode me passar um exemplo de como fazer, se é pelo UPDATE ou se tem outra forma se for
me passem um exemplo pra que eu possa estudar uma forma aqui por gentileza

obrigado...

Jean Silva Frazao

#494662 - 22/08/2020 00:28:22

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
O que você precisa entender e definir, não são comandos, mas sim como funciona a estrutura de um sistema de estoque no mínimo decente.
Saldo em estoque, não é apenas um número no produto. É a soma de todas as transações dele, de entrada e saída. Cada movimentação de estoque deve ser um registro separado contendo toda e qualquer informação pertinente à ela. Para obter o saldo, você faz a soma dessas trasanções.
Pessoalmente gosto de fazer as trasações com o tipo correto(entrada, saída, relocação, perda, quebra ou qualquer outra) e também o valor correto. Por exemplo, se for uma saída, gravo o registro com a quantidade movimentada negativada. Isso faz com que na soma para obtenção do saldo(seja por qual for o critério, por exemplo, em um determinado período), a soma esteja sempre correta, sem precisar efetuar nenhum loop para verificação. Uma alternativa para melhorar o desempenho disso, é o uso de VIEWS que geralmente são auto indexadas e otimizadas internamente no banco.

Tenho visto vários tópicos seus e sua evolução tem sido bem fraca. O que quero é que você seja capaz de entender o que está fazendo, não simplesmente focar em comandos e 'exemplos'.  

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#494663 - 22/08/2020 11:53:49

GENUSS
SORRISO
Cadast. em:Setembro/2017


Citação:
:
O que você precisa entender e definir, não são comandos, mas sim como funciona a estrutura de um sistema de estoque no mínimo decente.
Saldo em estoque, não é apenas um número no produto. É a soma de todas as transações dele, de entrada e saída. Cada movimentação de estoque deve ser um registro separado contendo toda e qualquer informação pertinente à ela. Para obter o saldo, você faz a soma dessas trasanções.
Pessoalmente gosto de fazer as trasações com o tipo correto(entrada, saída, relocação, perda, quebra ou qualquer outra) e também o valor correto. Por exemplo, se for uma saída, gravo o registro com a quantidade movimentada negativada. Isso faz com que na soma para obtenção do saldo(seja por qual for o critério, por exemplo, em um determinado período), a soma esteja sempre correta, sem precisar efetuar nenhum loop para verificação. Uma alternativa para melhorar o desempenho disso, é o uso de VIEWS que geralmente são auto indexadas e otimizadas internamente no banco.

Tenho visto vários tópicos seus e sua evolução tem sido bem fraca. O que quero é que você seja capaz de entender o que está fazendo, não simplesmente focar em comandos e 'exemplos'.  

Obrigado pela ajuda, mas estou estudando uma forma aqui, migrei agora pro .net por isso etou me arrastando ainda, obrigado pelo toque

Jean Silva Frazao

#494664 - 22/08/2020 13:31:16

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Eu sei que está se arrastando, podemos notar pelas perguntas que faz. Isso ocorre porque você não começou da maneira correta. Estude conceitos, entenda OOP e tudo vai ficar muito mais claro e perguntas como essa sequer irão existir.

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#494884 - 10/09/2020 18:44:57

GENUSS
SORRISO
Cadast. em:Setembro/2017


 Anexos estao visíveis somente para usuários registrados

Boa noite voltando aqui no assunto baixa de etoque eu consegui fazer uma rotina aqui mas ela so da baixa em um produto de cada vez,
se ouver mais que um produto na grid ela so da baixa no primeiro, eu queria fazer um laço pra pegar todos os produtos da grid e dar baixa no estoque
relacionados ao codigo de barras tipo assim vou postar meu codigo aqui.......

Public Sub BaixaEstoqueProduto()
        ' salva os produtos no banco de dados Genuss
        Using con As OleDbConnection = GetConnection()
            Try
                For r As Integer = 0 To dgvProdutos.Rows.Count  - 1

                    Dim ValorSaida As String
                    Dim codigoBarras As String

                    con.Open()
                    ValorSaida = dgvProdutos.Rows(r).Cells(3).Value.ToString
                    codigoBarras = dgvProdutos.Rows(r).Cells(0).Value.ToString
                    Dim sql As String = 'UPDATE Produtos SET  Quantidade = Quantidade -'' & ValorSaida & '' WHERE CodBarra='' & codigoBarras & '''
                    Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
                    cmd.Parameters.Add(New OleDb.OleDbParameter('@Quantidade', SqlDbType.VarChar)).Value = ValorSaida
                    cmd.ExecuteNonQuery()
                Next
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                '  con.Close()
            End Try
        End Using
    End Sub

// dessa forma ele so dar baixa no primeiro item e dar uma menssagem de erro.
alguem tem uma ideia ai de como corrigir isso
obrigado........



Jean Silva Frazao

#494888 - 10/09/2020 19:56:01

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Obviamente que vai dar mensagem de erro. Você está abrindo a conexão dentro do loop, o que vai funcionar na primeira vez, mas vai dar erro na segunda, porque a conexão já está aberta.

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#494889 - 10/09/2020 20:05:20

GENUSS
SORRISO
Cadast. em:Setembro/2017


Citação:
:
Boa noite voltando aqui no assunto baixa de etoque eu consegui fazer uma rotina aqui mas ela so da baixa em um produto de cada vez,
se ouver mais que um produto na grid ela so da baixa no primeiro, eu queria fazer um laço pra pegar todos os produtos da grid e dar baixa no estoque
relacionados ao codigo de barras tipo assim vou postar meu codigo aqui.......

Public Sub BaixaEstoqueProduto()
        ' salva os produtos no banco de dados Genuss
        Using con As OleDbConnection = GetConnection()
            Try
                For r As Integer = 0 To dgvProdutos.Rows.Count  - 1

                    Dim ValorSaida As String
                    Dim codigoBarras As String

                    con.Open()
                    ValorSaida = dgvProdutos.Rows(r).Cells(3).Value.ToString
                    codigoBarras = dgvProdutos.Rows(r).Cells(0).Value.ToString
                    Dim sql As String = 'UPDATE Produtos SET  Quantidade = Quantidade -'' & ValorSaida & '' WHERE CodBarra='' & codigoBarras & '''
                    Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
                    cmd.Parameters.Add(New OleDb.OleDbParameter('@Quantidade', SqlDbType.VarChar)).Value = ValorSaida
                    cmd.ExecuteNonQuery()
                Next
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                '  con.Close()
            End Try
        End Using
    End Sub

// dessa forma ele so dar baixa no primeiro item e dar uma menssagem de erro.
alguem tem uma ideia ai de como corrigir isso
obrigado........


esprementei tirar a conexao de dentro do loop mas continua dando baixa somente do primeiro item
Tem uma forma mais facil de fazer sem precisar deste loop
eu uso um DatagridViewer pra carregar os Itens

Jean Silva Frazao

#494890 - 10/09/2020 20:18:09

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Tem sim forma mais fácil, mas você não vai querer...

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#494891 - 10/09/2020 20:21:17

GENUSS
SORRISO
Cadast. em:Setembro/2017


Citação:
:
Tem sim forma mais fácil, mas você não vai querer...

eu ja resolvi aqui meu jovem, se nao for pra ajudar e melhor que saia deste forum, por ate onde eu sei ele e pra ajudar e ser ajudado
e vc eu nao vejo ajudando ninguem, so criticando ninguem aqui e tão bom quanto vc talvel mais pra isso que estamos aqui
obrigado mesmo assim vc ajudou

Jean Silva Frazao

#494892 - 10/09/2020 20:41:51

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Não acho que você tenha resolvido seu problema. Talvez fez rodar essa rotina aí de cima, mas garanto que você ainda está com um problema e que em pouco tempo você vai cair numa sinuca de bico que não vai ter como arrumar.
E não adianta dar ataque de pelanca não. Faz quase um mês que avisei que o seu problema não é comandinho, é estrutura de dados.

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#494893 - 10/09/2020 22:24:57

GENUSS
SORRISO
Cadast. em:Setembro/2017


Citação:
:
Não acho que você tenha resolvido seu problema. Talvez fez rodar essa rotina aí de cima, mas garanto que você ainda está com um problema e que em pouco tempo você vai cair numa sinuca de bico que não vai ter como arrumar.
E não adianta dar ataque de pelanca não. Faz quase um mês que avisei que o seu problema não é comandinho, é estrutura de dados.

Falow meu brother e por isso que estou aprendendo, so acho que nao se aprende nada da noite pro dia.
e garanto a vc que nao vou cair em sinuca de bico nao por que antes de fazer algo eu costumo aprender primeiro acho que e assim que um programador age, a errando pra aprender
agora vc e esperto em tudo eu acho ja nasceu sabendo, ainda vai ouvir falar deste software que estou desenvolvendo
falow tony Stark

Jean Silva Frazao

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por KERPLUNK em 11/09/2020 09:30:16