Ir para conteúdo
Fórum Script Brasil

João Villar

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Posts postados por João Villar

  1. Faltou o cod de incluir 

     

    Private Sub btnIncluir_Click(sender As Object, e As EventArgs) Handles btnIncluir.Click
    
            'Verificamos a quantidade foi informada
            If txtQuantidadeUni.Text = String.Empty Then
                MsgBox("Informe a quantidade requerida.")
                txtQuantidadeUni.Focus()
                Exit Sub
            End If
            If txtData.Text = String.Empty Then
                MsgBox("Informe a data da venda.")
                txtData.Focus()
            End If
            'Verificamos se o nome do produto , preço e quantidade não estão vazios
            If txtNomeProduto.Text <> "" And txtPrecoProduto.Text <> "" And txtQuantidadeUni.Text <> "" And txtCodigoCliente.Text <> "" Then
                'Verificamos se o Do produto não é menor do que o solicitado
                If Convert.ToInt32(estoqueProduto) < Convert.ToInt32(txtQuantidadeUni.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) = MsgBoxResult.Yes Then
                        'Establecemos a nova quantidade em estoque
                        txtQuantidadeUni.Text = estoqueProduto
                        'Inicializamos o objeto da classe DetalhesPedidos
                        oDetalhesPedidos = New DetalhesPedidos
                        'Preenchemos os valores 
                        '-----------------------------------------------------------------
                        oDetalhesPedidos.QuantidadeUni = Convert.ToInt32(txtQuantidadeUni.Text)
                        oDetalhesPedidos.QuantidadeCX = Convert.ToInt32(txtQuantidadeUni.Text / txtQuantidadeProduto.Text) = quantidadeCX
                        oDetalhesPedidos.CodProduto = codProduto
                        oDetalhesPedidos.NomeProduto = nomeProduto
                        oDetalhesPedidos.PrecoUni = txtPrecoProduto.Text
                        oDetalhesPedidos.PrecoCX = (txtPrecoProduto.Text * txtQuantidadeProduto.Text)
                        oDetalhesPedidos.EstoqueProduto = estoqueProduto
                        oDetalhesPedidos.Prazo1 = Convert.ToInt32(txtPrazo1.Text)
                        oDetalhesPedidos.Prazo2 = Convert.ToInt32(txtPrazo2.Text)
                        oDetalhesPedidos.Prazo3 = Convert.ToInt32(txtPrazo3.Text)
                        oDetalhesPedidos.Prazo4 = Convert.ToInt32(txtPrazo4.Text)
                        oDetalhesPedidos.Subtotal = txtPrecoProduto.Text * Convert.ToInt32(txtQuantidadeUni.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.dgvVendas.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 DetalhesPedidos
                    'Preenchemos os valores no objeto
                    oDetalhesPedidos.QuantidadeUni = Convert.ToInt32(txtQuantidadeUni.Text)
                    oDetalhesPedidos.QuantidadeCX = Convert.ToInt32(txtQuantidadeUni.Text / txtQuantidadeProduto.Text)
                    oDetalhesPedidos.CodProduto = codProduto
                    oDetalhesPedidos.NomeProduto = nomeProduto
                    oDetalhesPedidos.PrecoUni = txtPrecoProduto.Text
                    oDetalhesPedidos.PrecoCX = (txtPrecoProduto.Text * Convert.ToInt32(txtQuantidadeProduto.Text))
                    oDetalhesPedidos.EstoqueProduto = estoqueProduto
                    oDetalhesPedidos.Prazo1 = Convert.ToInt32(txtPrazo1.Text)
                    oDetalhesPedidos.Prazo2 = Convert.ToInt32(txtPrazo2.Text)
                    oDetalhesPedidos.Prazo3 = Convert.ToInt32(txtPrazo3.Text)
                    oDetalhesPedidos.Prazo4 = Convert.ToInt32(txtPrazo4.Text)
                    oDetalhesPedidos.Subtotal = txtPrecoProduto.Text * Convert.ToInt32(txtQuantidadeUni.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.dgvVendas.DataSource = ArrDetalhesPedidos.ToList
                End If
            End If
            'Limpamos os textBox
            Me.limpar_produto()
            'Calculamos o Total do Pedido
            Me.calcular_total()
        End Sub

     

  2. Não estou conseguindo salvar mais de uma linha do datagrid no banco de dados.

    segue imagem a baixo e configuração

    Public Class frmVendasPedidos
        Inherits System.Windows.Forms.Form
        'Definir o objeto bd da classe JcmSoftDataContext
        Dim bd As New dcVRDataContext
    
        'Definir objeto da clase DetalhesPedidos
        Dim oDetalhesPedidos As DetalhesPedidos
        Dim nomeProduto As String
        Dim codProduto As String
        Dim QuantidadeUni As Integer
        Dim quantidadeCX As Integer
        Dim precoUniProduto As Double
        Dim precoCx As Double
        Dim codigoCliente As String
        Dim estoqueProduto As Integer
        Dim Prazo1 As Integer
        Dim Prazo2 As Integer
        Dim Prazo3 As Integer
        Dim Prazo4 As Integer
        Dim data As Date
        Dim precoTotal As Double
    
        'Definir una LISTA de Objetos DetalhesPedidos
        Dim ArrDetalhesPedidos As New List(Of DetalhesPedidos)

     

    
        Private Sub btnSalvar_Click(sender As Object, e As EventArgs) Handles btnSalvar.Click
            'Vamos usar o mapeamento feito pelo LINQ
            'para efetivar as atualizações nas bases de dados
            Try
                'A expressão lambda a seguir devolve um objeto Cliente
                'Estamos usando o codigo do cliente para identificar unicamento o cliente
                Dim Cli As tblCliente = bd.tblClientes.Single(Function(p) p.IdCliente = Me.txtCodigoCliente.Text)
                '-------------------------------------------------
                'Cria um  novo objeto Pedido
                '-------------------------------------------------
                Dim oPedido As New tblPedido
                oPedido.Data = txtData.Text
                oPedido.IdCliente = Cli.IdCliente
                oPedido.tblCliente = Cli
                oPedido.NomeCliente = Cli.Cliente
                oPedido.NomeProduto = nomeProduto
                oPedido.QuantidadeUni = oDetalhesPedidos.QuantidadeUni
                oPedido.QuantidadeCX = oDetalhesPedidos.QuantidadeCX
                oPedido.PrecoUni = oDetalhesPedidos.PrecoUni
                oPedido.PrecoCx = oDetalhesPedidos.PrecoCX
                oPedido.Prazo1 = oDetalhesPedidos.Prazo1
                oPedido.Prazo2 = oDetalhesPedidos.Prazo2
                oPedido.Prazo3 = oDetalhesPedidos.Prazo3
                oPedido.Prazo4 = oDetalhesPedidos.Prazo4
                oPedido.PrecoTotal = oDetalhesPedidos.Subtotal
    
                '--------------------------------------------------
                'Obtendo os detalhes do pedido 
                'realizo a geração dos objetos Pedido
                'vou percorrer o array dos detalhes do pedido
                '----------------------------------------------------
                For Each o As DetalhesPedidos In ArrDetalhesPedidos
                    'Instancio um objeto Produto selecionando pelo codigo do produto
                    Dim prod As tblProduto = bd.tblProdutos.Single(Function(a) a.IdProduto = o.CodProduto.ToString())
                    'Cria um novo detalhe do pedido
                    Dim detPedido As New tblProduto
                    detPedido.Produto = prod.Produto
                    detPedido.IdProduto = prod.IdProduto
                    detPedido.Quantidade = o.QuantidadeUni
    
    
                    '-altera a quantidade de estoque do produto
                    prod.Estoque = prod.Estoque - o.QuantidadeUni
                Next
                '------------------------------------------------------
                'Aqui atualizo a base de dados
                bd.SubmitChanges()
                MsgBox("Venda registrada com sucesso...")
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                'chama as rotinas para limpar clientes e produtos e vendas
                limpar_cliente()
                limpar_produto()
                limpar_venda()
                Me.calcular_total()
            End Try
        End Sub

    imagens anexadas

     

     

    Sem título.png

    Sem título1.png

×
×
  • Criar Novo...