TransJual V2.0

Share:
Imports MySql.Data.MySqlClient
Imports System.Data.DataTable
Public Class TransJualV2
    Dim Value1 As Long
    Dim TABLE As New DataTable("Table")
    Dim cSQL As String
    Dim ToTal As Long

   
    Private Sub NoNotaOtomatis()
        KONEKSIS()
        CMDD = New MySqlCommand("Select * from transjualheader where NoNota in (select max(NoNota) from transjualheader)", CONN)
        DR = CMDD.ExecuteReader
        DR.Read()
        Dim URUTAN As String
        Dim HITUNG As Integer
        Dim TAHUN As String
        Dim BULAN As String
        Dim DEFUSER As String
        Dim HasilUSER As String


        TAHUN = Format(Now, "yyyy")
        BULAN = Format(Now, "MM")
        If Not DR.HasRows Then
            DR.Close()
            KONEKSIS()
            DEFUSER = "Select Kode, Alias from userprimary where alias= '" & Label4.Text & "'"
            CMDD = New MySqlCommand(DEFUSER, CONN)
            DR = CMDD.ExecuteReader
            DR.Read()
            HasilUSER = DR.Item("Kode")
            URUTAN = "TJ" + TAHUN + BULAN + "-" + "000001" + "-" + HasilUSER
            Label2.Text = URUTAN
        Else
            HITUNG = Microsoft.VisualBasic.Mid(DR.Item("NoNota"), 10, 6) + 1
            Label2.Text = HITUNG

            If Len(Label2.Text) = 1 Then
                DR.Close()
                KONEKSIS()
                DEFUSER = "Select Kode, Alias from userprimary where alias= '" & Label4.Text & "'"
                CMDD = New MySqlCommand(DEFUSER, CONN)
                DR = CMDD.ExecuteReader
                DR.Read()
                HasilUSER = DR.Item("Kode")
                Label2.Text = "TJ" & TAHUN & BULAN & "-" & "00000" & HITUNG & "-" & HasilUSER

            ElseIf Len(Label2.Text) = 2 Then
                DR.Close()
                KONEKSIS()
                DEFUSER = "Select Kode, Alias from userprimary where alias= '" & Label4.Text & "'"
                CMDD = New MySqlCommand(DEFUSER, CONN)
                DR = CMDD.ExecuteReader
                DR.Read()
                HasilUSER = DR.Item("Kode")
                Label2.Text = "TJ" & TAHUN & BULAN & "-" & "0000" & HITUNG & "-" & HasilUSER

            ElseIf Len(Label2.Text) = 3 Then
                DR.Close()
                KONEKSIS()
                DEFUSER = "Select Kode, Alias from userprimary where alias= '" & Label4.Text & "'"
                CMDD = New MySqlCommand(DEFUSER, CONN)
                DR = CMDD.ExecuteReader
                DR.Read()
                HasilUSER = DR.Item("Kode")
                Label2.Text = "TJ" & TAHUN & BULAN & "-" & "000" & HITUNG & "-" & HasilUSER

            ElseIf Len(Label2.Text) = 4 Then
                DR.Close()
                KONEKSIS()
                DEFUSER = "Select Kode, Alias from userprimary where alias= '" & Label4.Text & "'"
                CMDD = New MySqlCommand(DEFUSER, CONN)
                DR = CMDD.ExecuteReader
                DR.Read()
                HasilUSER = DR.Item("Kode")
                Label2.Text = "TJ" & TAHUN & BULAN & "-" & "00" & HITUNG & "-" & HasilUSER

            ElseIf Len(Label2.Text) = 5 Then
                DR.Close()
                KONEKSIS()
                DEFUSER = "Select Kode, Alias from userprimary where alias= '" & Label4.Text & "'"
                CMDD = New MySqlCommand(DEFUSER, CONN)
                DR = CMDD.ExecuteReader
                DR.Read()
                HasilUSER = DR.Item("Kode")
                Label2.Text = "TJ" & TAHUN & BULAN & "-" & "0" & HITUNG & "-" & HasilUSER

            ElseIf Len(Label2.Text) = 6 Then
                DR.Close()
                KONEKSIS()
                DEFUSER = "Select Kode, Alias from userprimary where alias= '" & Label4.Text & "'"
                CMDD = New MySqlCommand(DEFUSER, CONN)
                DR = CMDD.ExecuteReader
                DR.Read()
                HasilUSER = DR.Item("Kode")
                Label2.Text = "TJ" & TAHUN & BULAN & "-" & HITUNG & "-" & HasilUSER

            End If


        End If

    End Sub
    Private Sub CTable()
        TABLE.Columns.Add("Kode Barang", Type.GetType("System.String"))
        TABLE.Columns.Add("Nama Barang", Type.GetType("System.String"))
        TABLE.Columns.Add("QTY", Type.GetType("System.String"))
        TABLE.Columns.Add("Harga Jual", Type.GetType("System.String"))
        TABLE.Columns.Add("Discount", Type.GetType("System.String"))
        TABLE.Columns.Add("Total Item", Type.GetType("System.String"))

        DGV.DataSource = TABLE
        DGV.Columns(0).Width = 10
        DGV.Columns(0).Visible = False
        DGV.Columns(1).Width = 200
        DGV.Columns(2).Width = 75
        DGV.Columns(3).Width = 100
        DGV.Columns(4).Width = 75
        DGV.Columns(5).Width = 150
        DGV.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft

    End Sub
    Private Sub TransJualV2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Label6.Text = Now
        Label4.Text = Depan.Label2.Text
        Label5.Text = "0"
        CTable()
        NoNotaOtomatis()
        Timer1.Start()
        TextBox2.Enabled = False
    End Sub

    Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        Dim x As Integer
        Dim ketemu As Boolean
        If e.KeyCode = Keys.Down Then
            DGV.Focus()
        End If
        If e.KeyCode = Keys.Enter Then
            KONEKSIS()
            cSQL = "select KodeBarang, NamaBarang, HargaEceran, HargaMember, HargaGrosir1, HargaGrosir2, Discount from stokbarang where KodeBarang like '" & TextBox1.Text & "' or NamaBarang like '" & TextBox1.Text & "' order by NamaBarang"
            CMDD = New MySqlCommand(cSQL, CONN)
            DR = CMDD.ExecuteReader
            DR.Read()
            ToTal = 0
            ketemu = False
            If DR.HasRows Then
                For x = 0 To DGV.Rows.Count - 2
                    If DGV.Rows(x).Cells(0).Value = TextBox1.Text Then
                        ketemu = True
                        Exit For
                    End If
                Next x
                If ketemu Then
                    DGV.Rows(x).Cells(2).Value = DGV.Rows(x).Cells(2).Value + 1
                    DGV.Rows(x).Cells(5).Value = ((DGV.Rows(x).Cells(2).Value * DGV.Rows(x).Cells(3).Value)) - ((DGV.Rows(x).Cells(2).Value * DGV.Rows(x).Cells(3).Value) * (DGV.Rows(x).Cells(4).Value / 100))
                Else
                    TABLE.Rows.Add(DR.Item("KodeBarang"), DR.Item("NamaBarang"), 1, DR.Item("HargaEceran"), DR.Item("Discount"), (1 * DR.Item("HargaEceran")) - (1 * DR.Item("HargaEceran") * DR.Item("Discount") / 100))
                End If
                For x = 0 To DGV.Rows.Count - 1
                    ToTal = ToTal + ((DGV.Rows(x).Cells(2).Value * DGV.Rows(x).Cells(3).Value)) - ((DGV.Rows(x).Cells(2).Value * DGV.Rows(x).Cells(3).Value) * (DGV.Rows(x).Cells(4).Value / 100))
                Next
                Label5.Text = CStr(ToTal)
                TextBox1.Text = ""
            Else
                If MsgBox("Mau Di Ketik Manual?!!!", MsgBoxStyle.YesNo, "Pilihan!") = MsgBoxResult.Yes Then
                    'TABLE.Rows.Add(1, TextBox1.Text, 1, 0, 0, 0)
                    'TextBox1.Text = ""
                    TextBox2.Enabled = True
                    TextBox2.Focus()
                Else
                    MsgBox("Cari Kode Yang Lain!!!!!", MsgBoxStyle.Information, "Info!")
                End If

            End If
            'TextBox1.Text = ""
        End If


        If e.KeyCode = Keys.F4 Then
            If MsgBox("Silahkan Pilih 'Ya' untuk menyimpan transaksi ini!!!", MsgBoxStyle.YesNo, "Pilihan!") = MsgBoxResult.Yes Then
                Call Button2_Click(sender, e)
            Else
                MsgBox("Kembali Ke transaksi Sebelumnya", MsgBoxStyle.Information, "Info!")
            End If
        End If

        If e.KeyCode = Keys.F3 Then
            If MsgBox("Apakah akan Membatalkan Transaksi Ini?!!!", MsgBoxStyle.YesNo, "Pilihan!") = MsgBoxResult.Yes Then
                TABLE.Clear()
            Else
                MsgBox("Kembali Ke transaksi Sebelumnya", MsgBoxStyle.Information, "Info!")
            End If
        End If

        If e.KeyCode = Keys.Insert Then
            CariTransPenjualanV2.Show()
        End If

    End Sub

    Private Sub DGV_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellEnter

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Try
            Dim x As Integer, hBeli As Integer, disc As Integer, stok As Integer
            DR.Close()
            KONEKSIS()

            CMD.Connection = CONN
            CMD.CommandType = CommandType.Text
            CMD.CommandText = "insert into transjualheader(TglTrans, NoNota, Netto, Operator) values('" & Label6.Text & "','" & Label2.Text & "','" & Label5.Text & "','" & Label4.Text & "')"
            CMD.ExecuteNonQuery()
            CONN.Close()
            'MsgBox("masuk ke header")

            For x = 0 To DGV.Rows.Count - 2

                DR.Close()
                KONEKSIS()
                cSQL = "Select * from stokbarang where KodeBarang='" & DGV.Rows(x).Cells(0).Value & "'"
                CMDD = New MySqlCommand(cSQL, CONN)
                DR = CMDD.ExecuteReader
                DR.Read()
                If DR.HasRows Then
                    hBeli = DR.Item("hargabeli")
                    disc = DR.Item("discount")
                    stok = DR.Item("QtyToko") - DGV.Rows(x).Cells(2).Value
                    KONEKSIS()
                    CMD.Connection = CONN
                    CMD.CommandType = CommandType.Text
                    cSQL = "update stokbarang set QtyToko = " & CStr(stok) & " where kodebarang = '" & DGV.Rows(x).Cells(0).Value & "'"
                    CMD.CommandText = cSQL
                    CMD.ExecuteNonQuery()
                    CONN.Close()
                    'MsgBox("masuk ke kurangi stok")
                End If
                DR.Close()
                KONEKSIS()
                CMD.Connection = CONN
                CMD.CommandType = CommandType.Text
                cSQL = "insert into transjualisi(NoKodeUrut, NoNota, KodeBarang, Qty, HargaJual, HargaBeli, Discount, TotalJual) values('" & x & "','" & Label2.Text & "','" & DGV.Rows(x).Cells(0).Value & "','" & DGV.Rows(x).Cells(2).Value & "','" & DGV.Rows(x).Cells(3).Value & "','" & hBeli & "','" & disc & "','" & DGV.Rows(x).Cells(5).Value & "')"
                CMD.CommandText = cSQL
                CMD.ExecuteNonQuery()
                CONN.Close()
                'MsgBox("masuk ke ISI")
            Next
            MsgBox("Data Berhasil Disimpan")
            Label5.Text = "0"
            TextBox1.Focus()
            NoNotaOtomatis()
            TABLE.Clear()
        Catch ex As Exception
            MsgBox("Data Gagal")
        End Try
    End Sub

    Private Sub DGV_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DGV.CellValidating
     
    End Sub

    Private Sub DGV_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellValueChanged

        Dim x As Integer
        ToTal = 0
        For x = 0 To DGV.Rows.Count - 1
            If IsDBNull(DGV.Rows(x).Cells(2).Value) Then
                'MsgBox("Bekerja boss yang cell Quantity")
                DGV.Rows(x).Cells(2).Value = "1"
            ElseIf IsDBNull(DGV.Rows(x).Cells(3).Value) Then
                'MsgBox("Bekerja boss yang HARGA JUAL")
                DGV.Rows(x).Cells(3).Value = "0"
            ElseIf IsDBNull(DGV.Rows(x).Cells(0).Value) Then
                'MsgBox("Bekerja boss Kode Barangnya")
                DGV.Rows(x).Cells(0).Value = "0"
            ElseIf IsDBNull(DGV.Rows(x).Cells(1).Value) Then
                'MsgBox("Bekerja boss Kode Barangnya")
                DGV.Rows(x).Cells(1).Value = "BARANG KOSONG"
            ElseIf IsDBNull(DGV.Rows(x).Cells(4).Value) Then
                'MsgBox("Bekerja boss Kode Barangnya")
                DGV.Rows(x).Cells(4).Value = "0"
            ElseIf IsDBNull(DGV.Rows(x).Cells(5).Value) Then
                'MsgBox("Bekerja boss Kode Barangnya")
                DGV.Rows(x).Cells(5).Value = "0"
            Else
                ToTal = ToTal + ((DGV.Rows(x).Cells(2).Value * DGV.Rows(x).Cells(3).Value)) - ((DGV.Rows(x).Cells(2).Value * DGV.Rows(x).Cells(3).Value) * (DGV.Rows(x).Cells(4).Value / 100))
            End If
        Next

        If DGV.Rows.Count > 0 Then
            If e.ColumnIndex = 2 Then
                Dim TotalIsi As Integer = CInt(DGV.Rows(e.RowIndex).Cells(5).Value)
                Dim Discount As Integer = CInt(DGV.Rows(e.RowIndex).Cells(4).Value)
                Dim QTYY As Integer = CInt(DGV.Rows(e.RowIndex).Cells(2).Value)
                Dim HJual As Integer = CInt(DGV.Rows(e.RowIndex).Cells(3).Value)
                Dim TotalAkhir As Integer = QTYY * HJual - (QTYY * HJual * Discount / 100)
                DGV.Rows(e.RowIndex).Cells(5).Value = TotalAkhir
            ElseIf e.ColumnIndex = 3 Then
                Dim TotalIsi As Integer = CInt(DGV.Rows(e.RowIndex).Cells(5).Value)
                Dim Discount As Integer = CInt(DGV.Rows(e.RowIndex).Cells(4).Value)
                Dim QTYY As Integer = CInt(DGV.Rows(e.RowIndex).Cells(2).Value)
                Dim HJual As Integer = CInt(DGV.Rows(e.RowIndex).Cells(3).Value)
                Dim TotalAkhir As Integer = QTYY * HJual - (QTYY * HJual * Discount / 100)
                DGV.Rows(e.RowIndex).Cells(5).Value = TotalAkhir
            ElseIf e.ColumnIndex = 4 Then
                Dim TotalIsi As Integer = CInt(DGV.Rows(e.RowIndex).Cells(5).Value)
                Dim Discount As Integer = CInt(DGV.Rows(e.RowIndex).Cells(4).Value)
                Dim QTYY As Integer = CInt(DGV.Rows(e.RowIndex).Cells(2).Value)
                Dim HJual As Integer = CInt(DGV.Rows(e.RowIndex).Cells(3).Value)
                Dim TotalAkhir As Integer = QTYY * HJual - (QTYY * HJual * Discount / 100)
                DGV.Rows(e.RowIndex).Cells(5).Value = TotalAkhir
            End If
        End If
        Label5.Text = CStr(ToTal)
        'End If


    End Sub

   
    Private Sub DGV_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGV.GotFocus
     

    End Sub

    Private Sub DGV_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DGV.KeyDown
        If e.KeyCode = Keys.Delete Then
            DGV.Rows.RemoveAt(DGV.CurrentCell.RowIndex)
            ToTal = 0
            For x = 0 To DGV.Rows.Count - 1
                ToTal = ToTal + ((DGV.Rows(x).Cells(2).Value * DGV.Rows(x).Cells(3).Value)) - ((DGV.Rows(x).Cells(2).Value * DGV.Rows(x).Cells(3).Value) * (DGV.Rows(x).Cells(4).Value / 100))
            Next
            Label5.Text = CStr(ToTal)
        End If
        If e.KeyCode = Keys.ShiftKey Then
            TextBox1.Focus()
        End If
        If e.KeyCode = Keys.Insert Then
            CariTransPenjualanV2.Show()
        End If
        If e.KeyCode = Keys.F4 Then
            If MsgBox("Silahkan Pilih 'Ya' untuk menyimpan transaksi ini!!!", MsgBoxStyle.YesNo, "Pilihan!") = MsgBoxResult.Yes Then
                Call Button2_Click(sender, e)
            Else
                MsgBox("Kembali Ke transaksi Sebelumnya", MsgBoxStyle.Information, "Info!")
            End If
        End If

        If e.KeyCode = Keys.F3 Then
            If MsgBox("Apakah akan Membatalkan Transaksi Ini?!!!", MsgBoxStyle.YesNo, "Pilihan!") = MsgBoxResult.Yes Then
                TABLE.Clear()
            Else
                MsgBox("Kembali Ke transaksi Sebelumnya", MsgBoxStyle.Information, "Info!")
            End If
        End If
    End Sub

    Private Sub DGV_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV.CellContentClick

    End Sub

    Private Sub DGV_LocationChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGV.LocationChanged
     
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Label6.Text = Now
    End Sub

    Private Sub TextBox2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox2.KeyDown
        If e.KeyCode = Keys.Enter Then
            TABLE.Rows.Add(1, TextBox1.Text, 1, TextBox2.Text, 0, TextBox2.Text)
            TextBox1.Text = ""
            TextBox1.Focus()
            TextBox2.Text = ""
            TextBox2.Enabled = False
        End If
    End Sub

    Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress

    End Sub

    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged

    End Sub
End Class

No comments