ola pessoal, tou muito encrencado com esse codigo de incluir as vendas de produtos numa grid para depois calcular o total das vendas.
codigo onde instanciamos a classe vendas e declaramos algumas variaveis:
'Definir objeto da classe DetalhesPedidos
Dim oDetalhesPedidos As detalhesPedidosDAL
Dim nomeProduto As String
Dim codProduto As String
Dim precoProduto As Double
Dim codigoCliente As String
Dim estoqueProduto As Integer
'Definir una LISTA de Objetos DetalhesPedidos
Dim ArrDetalhesPedidos As New List(Of detalhesPedidosDAL)
'botao incluir produtos na grid
Private Sub btnIncluirProdt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIncluirProdt.Click
'atribui os valores as variáveis definidas no formulario
nomeProduto = RadComboBox4.Text.ToString
codProduto = lblIDprodt.Text.ToString
precoProduto = Convert.ToDouble(txtPreco.Text.ToString)
estoqueProduto = Convert.ToInt32(txtEstoque.Text.ToString)
'poe o foco no textbox quantidade
txtQntd.Focus()
'Verificamos a quantidade foi informada
If txtQntd.Text = String.Empty Then
MsgBox("Informe a quantidade requerida...")
txtQntd.Focus()
Exit Sub
End If
'Verificamos se o nome do produto , preço e quantidade não estão vazios
If RadComboBox4.Text <> "" And txtPreco.Text <> "" And txtQntd.Text <> "" Then
'Verificamos se o estoque do produto não é menor do que o solicitado
If Convert.ToInt32(estoqueProduto) < Convert.ToInt32(txtQntd.Text) Then
'Mostramos uma aviso ao usuário
MsgBox("A quantidade requerida é Superior a do estoque")
'Como a quantidade solicitada é mario que o estoque
'perguntamos se o usuário deseja estabelecer o estoque atual
'com a nova quantidade informada
If MessageBox.Show("Deseja estabelecer o estoque atual como a nova quantidade requerida", "Vendas", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
'Establecemos a nova quantidade em estoque
txtQntd.Text = estoqueProduto
'Inicializamos o objeto da classe DetalhesPedidos
oDetalhesPedidos = New detalhesPedidosDAL
'Preenchemos os valores
'-----------------------------------------------------------------
oDetalhesPedidos.Quantidade = Convert.ToInt32(txtQntd.Text)
oDetalhesPedidos.CodProduto = codProduto
oDetalhesPedidos.NomeProduto = nomeProduto
oDetalhesPedidos.preço = precoProduto
oDetalhesPedidos.EstoqueProduto = estoqueProduto
oDetalhesPedidos.Subtotal = precoProduto * Convert.ToInt32(txtQntd.Text)
'------------------------------------------------------------------------
'Verificamos se o produto esta na lista de pedidos
'e incluimos a lista de DetalhesPedidos
If buscarDetalhesVendas(ArrDetalhesPedidos, oDetalhesPedidos) = False Then
'Agregamos o pedido a lista de DetalhesPedidos
ArrDetalhesPedidos.Add(oDetalhesPedidos)
End If
'Assciamos a lista de DetalhesPedidos como fonte de dados ao datagridview
Me.DataGridView1.DataSource = ArrDetalhesPedidos
Else
'Se não deseja estabelecer o estoque atual com a quantidade solicitada
'voltamos ao formulario para escolher outro produto
'btnProcuraProduto_Click(Nothing, Nothing)
End If
Else
'Como a quantidade requerida e menor que o estoque
'iniciamos o objeto da classe DetalhesPedidos
oDetalhesPedidos = New detalhesPedidosDAL
'Preenchemos os valores no objeto
oDetalhesPedidos.Quantidade = Convert.ToInt32(txtQntd.Text)
oDetalhesPedidos.CodProduto = codProduto
oDetalhesPedidos.NomeProduto = nomeProduto
oDetalhesPedidos.preço = precoProduto
oDetalhesPedidos.EstoqueProduto = estoqueProduto
oDetalhesPedidos.Subtotal = precoProduto * Convert.ToInt32(txtQntd.Text)
'Verificamos se o produto solicitado esta na lista de pedidos
'Se não estiver incluimos na lista de DetalhesPedidos
If buscarDetalhesVendas(ArrDetalhesPedidos, oDetalhesPedidos) = False Then
'Incluimos o pedido a lista de DetalhesPedidos
ArrDetalhesPedidos.Add(oDetalhesPedidos)
End If
'Associamos a lista como origem da fonte de dados
Me.DataGridView1.DataSource = ArrDetalhesPedidos.ToList
End If
End If
'Limpamos os textBox
Me.limpar_produto()
'Calculamos o Total do Pedido
Me.calcular_total()
End Sub
Ele simplesmente inclui a primeiro produto na grid e depois não aceita a inclusao de mais produtos e não soma os subtotais na respectiva grid.
O metodo usado para calcular sub total:
'metodo para calcular o total
Sub calcular_total()
Dim soma As Double
'calcula o valor total dos pedidos
'percorre o arrayList e soma o valor Subtotal
For Each i As detalhesPedidosDAL In ArrDetalhesPedidos
soma += i.Subtotal
Next
Me.lbtTotal.Text = soma.ToString("C")
End Sub
POr ultimo temos o metodo buscarDetalhesVendas:
'Funcao buscar detalhes
Public Function buscarDetalhesVendas(ByVal array As List(Of detalhesPedidosDAL), ByVal objDV As detalhesPedidosDAL) As Boolean
'Vreificamos se um produto já foi solicitado
For Each oDetPed As detalhesPedidosDAL In array
If oDetPed.CodProduto = objDV.CodProduto Then
Dim nQuantidade As Integer
'Se encontramos o produto na lista de pedidos
'incrementamos a quantidade solicitada
'com a quantidade solicitada anteriomente
nQuantidade = oDetPed.Quantidade + objDV.Quantidade
If nQuantidade <= oDetPed.EstoqueProduto Then
oDetPed.Quantidade = nQuantidade
oDetPed.Subtotal = oDetPed.preço * oDetPed.Quantidade
Else
MsgBox("O estoque atual é insuficiente para a quantidade solicitada.")
End If
Return True
End If
Next
Return False
End Function
Necessitamos da vossa ajuda para introduzir os produtos que são selecionados numa combo para dentro da grid. O codigo acima so aceita a inser;ao de um unico produto na grid, mas nos pretendemos inserir mais de um produto em cada venda na grid e depois somar o total de acordo com as quantidades requesitadas.
Pergunta
rizuane
ola pessoal, tou muito encrencado com esse codigo de incluir as vendas de produtos numa grid para depois calcular o total das vendas.
codigo onde instanciamos a classe vendas e declaramos algumas variaveis:
Ele simplesmente inclui a primeiro produto na grid e depois não aceita a inclusao de mais produtos e não soma os subtotais na respectiva grid. O metodo usado para calcular sub total: POr ultimo temos o metodo buscarDetalhesVendas:Necessitamos da vossa ajuda para introduzir os produtos que são selecionados numa combo para dentro da grid. O codigo acima so aceita a inser;ao de um unico produto na grid, mas nos pretendemos inserir mais de um produto em cada venda na grid e depois somar o total de acordo com as quantidades requesitadas.
Esse codigo foi estraido do site macoratti:codigo copiado do site macoratti
Se alguém tiver um outro codigo que faça o mesmo, sera bem vindo.
Agradeco a ajuda desde já.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.