Public Class frmCadastroProduto

    Private Sub CarregaGrid()

        'Limpa o GridView
        gvProduto.Columns.Clear()
        'Instancia o clsProduto
        Dim clsProduto As New clsProduto
        'Instancia o Ds e faz com que receba o Dataset de Produto
        Dim ds As DataSet = clsProduto.SelectProdutoforGridCompleto()

        'Atribuio s valores corretos ao GridView
        With gvProduto
            .DataSource = ds.Tables(0)
            .Columns(0).Visible = False
            .Columns(1).HeaderText = "Código"
            .Columns(2).HeaderText = "Descrição"
            .Columns(3).HeaderText = "Valor"
            .Columns(4).HeaderText = "Unidade"
            .Columns(5).HeaderText = "Divisão"
        End With

    End Sub
    Private Sub PreencheCombo()

        'Instancia o clsDivisao
        Dim clsDivisao As New clsDivisao

        'Instancia o clsUnidade
        Dim clsUnidadeMedida As New clsUnidadeMedida

        'Preenche a DIVISAO
        With cboDivisao
            .DataSource = clsDivisao.SelectDIVISAOForCombo().Tables(0)
            .DisplayMember = "NOME_DIV"
            .ValueMember = "CODIGO_DIV"
            .SelectedIndex = -1
        End With

        'Preenche a UNIDADE DE MEDIDA
        With cboUnidade
            .DataSource = clsUnidadeMedida.SelectUNIDADEMEDIDA().Tables(0)
            .DisplayMember = "NOME_UNID"
            .ValueMember = "CODIGO_UNID"
            .SelectedIndex = -1
        End With
    End Sub
    Private Sub frmCadastroProduto_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'Preenche as Combos de dados
        Call PreencheCombo()
        'Preenche Grid
        Call CarregaGrid()
    End Sub
    Private Sub txtValor_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtValor.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        KeyAscii = CShort(SoNumeros(KeyAscii))
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub
    Private Sub txtValor_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtValor.LostFocus
        If IsNumeric(txtValor.Text) Then
            Try
                txtValor.Text = FormatCurrency(txtValor.Text)
            Catch ex As Exception
                Throw ex
            End Try
        End If
    End Sub
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIncluirProduto.Click
        If Not String.IsNullOrEmpty(txtCodigo.Text) Then
            If Not String.IsNullOrEmpty(txtDescricao.Text) Then
                If Not String.IsNullOrEmpty(txtValor.Text) Then
                    If Not String.IsNullOrEmpty(cboUnidade.Text) Then
                        If Not String.IsNullOrEmpty(cboDivisao.Text) Then
                            'Instancia o clsPRoduto
                            Dim clsProduto As New clsProduto
                            'Atribui as propriedades
                            With clsProduto
                                .NOME_PROD = txtCodigo.Text
                                .DESCR_PROD = txtDescricao.Text
                                .VALORUNITARIO_PROD = CSng(txtValor.Text)
                                .CODIGO_DIV = CInt(cboDivisao.SelectedValue)
                                .CODIGO_UNID = CInt(cboUnidade.SelectedValue)

                                'verifica se o lblCodigo é vazio ou Não
                                If Not String.IsNullOrEmpty(lblCodigo.Text) Then
                                    .UpdatePRODUTO(CInt(lblCodigo.Text))
                                    MsgBox("Registro alterado com sucesso!")
                                Else
                                    .InsertPRODUTO()
                                    MsgBox("Registro gravado com sucesso!")
                                End If
                                'Chama o Carregagrid
                                Call CarregaGrid()

                                'Limpa os Dados
                                Call LimpaControle()

                            End With
                        Else
                            MsgBox("Defina a Divisão")
                            txtCodigo.Focus()
                        End If
                    Else
                        MsgBox("Defina a Unidade de Medida")
                        cboUnidade.Focus()
                    End If
                Else
                    MsgBox("Defina o Valor Unitário")
                    txtValor.Focus()
                End If
            Else
                MsgBox("Defina a Descrição")
                txtDescricao.Focus()
            End If
        Else
            MsgBox("Defina o Código do Produto")
            txtCodigo.Focus()
        End If
    End Sub
    Private Sub LimpaControle()
        'Limpa os Dados
        lblCodigo.Text = ""
        txtCodigo.Text = ""
        txtDescricao.Text = ""
        txtValor.Text = ""
        cboDivisao.SelectedIndex = -1
        cboUnidade.SelectedIndex = -1

    End Sub
    Private Sub btnExcluirProduto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluirProduto.Click
        If gvProduto.RowCount >= 1 Then
            'Instancia a clsProduto
            Dim clsProduto As New clsProduto
            'Instancia e atribui as propriedades
            With clsProduto
                .DeletePRODUTO(CInt(gvProduto.CurrentRow.Cells(0).Value))
                'Carrega o GridView
                Call CarregaGrid()
                'Limpa os controles
                Call LimpaControle()
            End With
        End If
    End Sub
    Private Sub gvProduto_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles gvProduto.CellClick
        'verifica se tem registro
        If gvProduto.RowCount >= 1 Then
            'Caso positivo traz os dados para os campos
            With gvProduto.CurrentRow
                lblCodigo.Text = CStr(.Cells(0).Value)
                txtCodigo.Text = CStr(.Cells(1).Value)
                txtDescricao.Text = CStr(.Cells(2).Value)
                txtValor.Text = CStr(.Cells(3).Value)
                cboUnidade.Text = CStr(.Cells(4).Value)
                cboDivisao.Text = CStr(.Cells(5).Value)
            End With
        End If
    End Sub

   
End Class
