Translate

Kamis, 09 Oktober 2014

Sales Order Transaction

Public Class SO
    Dim baris, kolom, Hargasatuan As Integer
    Dim kodebrg, namabrg, statusheader As String


    Private Sub SO_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call koneksi()
        Call isicombo()
        Call settingdatagrid()
        Call tampilkan_detail_SO()
    End Sub

    Private Sub simpandata()
        If Trim(TextBox1.Text) = "" Then Exit Sub
        If Trim(TextBox2.Text) = "" Then Exit Sub
        If Trim(ComboBox1.Text) = "" Then Exit Sub
        If Trim(TextBox4.Text) = "" Then Exit Sub
        'If Trim(TextBox5.Text) = "" Then Exit Sub


        If Add.Text = "Simpan" Then
            Tampil.Connection = Dtbase
            Tampil.CommandType = CommandType.Text
            Tampil.CommandText = "insert into SalesOrder(NoSO,tglSO,kdcust,carabayar,total,nopo,tglEntry, useridd) values ('" & Trim(TextBox1.Text) & "', '" & DateTimePicker1.Value & "','" & TextBox2.Text & "','" & Microsoft.VisualBasic.Left(ComboBox1.Text, 2) & "'," & Val(TextBox5.Text) & ",'" & TextBox4.Text & "','" & tglskg & "', '" & nmorang & "' )"
            Tampil.ExecuteNonQuery()
        Else
            If Edit.Text = "Simpan" Then
                Tampil.Connection = Dtbase
                Tampil.CommandType = CommandType.Text
                Tampil.CommandText = "update SalesOrder set tglSO='" & DateTimePicker1.Value & "',kdcust='" & TextBox2.Text & "',carabayar='" & Microsoft.VisualBasic.Left(ComboBox1.Text, 2) & "',total=" & Val(TextBox5.Text) & ",nopo='" & Trim(TextBox4.Text) & "',tglEntry='" & tglskg & "', useridd='" & nmorang & "' where NoSO='" & Trim(TextBox1.Text) & "'"
                Tampil.ExecuteNonQuery()

            Else
                If Delete.Text = "Ok" Then
                    'Untuk menghapus detail SO
                    Tampil.Connection = Dtbase
                    Tampil.CommandType = CommandType.Text
                    Tampil.CommandText = "Delete from SODetail where nosoH='" & Trim(TextBox1.Text) & "'"
                    Tampil.ExecuteNonQuery()
                    'Untuk menghapus header SO
                    Tampil.Connection = Dtbase
                    Tampil.CommandType = CommandType.Text
                    Tampil.CommandText = "Delete from SalesOrder where NoSO='" & Trim(TextBox1.Text) & "'"
                    Tampil.ExecuteNonQuery()
                    Call settingdatagrid()


                Else

                End If
            End If

        End If

    End Sub
    Private Sub caristatusheader()
        Call koneksi()
        Tampil2.Connection = Dtbase
        Tampil2.CommandType = CommandType.Text
        Tampil2.CommandText = "select * from SalesOrder where NoSO='" & Trim(TextBox1.Text) & "'"
        Tampilkan = Tampil2.ExecuteReader

        If Tampilkan.HasRows = True Then
            statusheader = "T"
        Else
            statusheader = "F"

        End If
    End Sub

    Private Sub bersih()
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
        TextBox5.Text = ""
        TextBox6.Text = ""
        ComboBox1.Text = ""
    End Sub
    Private Sub normal()
        Add.Text = "Add"
        Edit.Text = "Edit"
        Delete.Text = "Delete"
        Keluar.Text = "Exit"
        Add.Enabled = True
        Edit.Enabled = True
        Delete.Enabled = True
        Keluar.Text = "Exit"
    End Sub

    Private Sub isicombo()
        Call koneksi()
        Tampil2.Connection = Dtbase
        Tampil2.CommandType = CommandType.Text
        Tampil2.CommandText = "select * from Carabayar "
        Tampilkan = Tampil2.ExecuteReader 'tampilkan=menyimpan hasil pembacaan data

        If Tampilkan.HasRows = True Then 'klw ada record(data)maka akan bertipe true
            ComboBox1.Items.Clear()
            While Tampilkan.Read() 'membaca data 1 per 1
                ComboBox1.Items.Add(Trim(Tampilkan("kdcarabyr")) & " " & Trim(Tampilkan("nmcarabyr")))
            End While
        End If
    End Sub
    Private Sub posisiList2()
        ListBox2.Top = TextBox2.Top + TextBox2.Height
        ListBox2.Left = TextBox2.Left
    End Sub

    Private Sub caricustomer()
        Call koneksi()
        Tampil2.Connection = Dtbase
        Tampil2.CommandType = CommandType.Text
        Tampil2.CommandText = "select * from Customer where nmcust like '%" & Trim(TextBox2.Text) & "%' "
        Tampilkan = Tampil2.ExecuteReader 'tampilkan=menyimpan hasil pembacaan data

        If Tampilkan.HasRows = True Then 'klw ada record(data)maka akan bertipe true
            ListBox2.Items.Clear()
            ListBox2.Visible = True
            Call posisiList2()
            While Tampilkan.Read() 'membaca data 1 per 1
                ListBox2.Items.Add(Trim(Tampilkan("kdcust")) & " " & Trim(Tampilkan("nmcust")))
            End While
        End If

    End Sub
    Private Sub carinamacustomer()
        Call koneksi()
        Tampil2.Connection = Dtbase
        Tampil2.CommandType = CommandType.Text
        Tampil2.CommandText = "select * from Customer where kdcust ='" & Trim(TextBox2.Text) & "' "
        Tampilkan = Tampil2.ExecuteReader 'tampilkan=menyimpan hasil pembacaan data

        If Tampilkan.HasRows = True Then 'klw ada record(data)maka akan bertipe true
            While Tampilkan.Read() 'membaca data 1 per 1
                TextBox3.Text = Trim(Tampilkan("nmcust"))
            End While
        End If

    End Sub
    Private Sub settingdatagrid()
        'untuk menentukan jumlah kolom
        DG1.ColumnCount = 5
        DG1.RowCount = 10

        'untuk menentukan nama header kolom
        DG1.Columns(0).Name = "Kode Barang"
        DG1.Columns(1).Name = "Nama Barang"
        DG1.Columns(2).Name = "Qty"
        DG1.Columns(3).Name = "Satuan Harga"
        DG1.Columns(4).Name = "Total Harga"

        'menentukan lebar kolom
        DG1.Columns(0).Width = 120
        DG1.Columns(1).Width = 250
        DG1.Columns(2).Width = 100
        DG1.Columns(3).Width = 100
        DG1.Columns(4).Width = 100

        Call AddButtonColumn()

        'format kolom sesuai dengan keingninan
        DG1.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight
        DG1.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight
    End Sub
    Private Sub masukandata()
        'untuk memberishkan satu baris datagridview
        DG1.Rows.Item(baris).Cells(0).Value = " "
        DG1.Rows.Item(baris).Cells(1).Value = " "
        DG1.Rows.Item(baris).Cells(2).Value = " "
        DG1.Rows.Item(baris).Cells(3).Value = " "
        DG1.Rows.Item(baris).Cells(4).Value = " "
        DG1.Rows.Item(baris).Cells(5).Value = " "
    End Sub
    Private Sub AddButtonColumn()
        'untuk membuat tombol button di datagridview
        Dim btn = New DataGridViewButtonColumn()
        DG1.Columns.Add(btn)
        btn.HeaderText = "Simpan"
        btn.Text = "Simpan"
        btn.Name = "btnsimpan"
        btn.UseColumnTextForButtonValue = True
    End Sub
    Private Sub bersih_datagrid()
        DG1.RowCount = 1
        DG1.Refresh()
        DG1.RowCount = 10
    End Sub
    Private Sub posisiList()
        ListBox1.Top = GroupBox1.Location.Y + DG1.Top + DG1.Location.Y + (DG1.Rows(0).Height * (baris + 1)) + 2
        ListBox1.Left = GroupBox1.Location.X + DG1.Location.X + 41
    End Sub
    Private Sub caridatabarang()
        Call koneksi()
        Tampil.Connection = Dtbase
        Tampil.CommandType = CommandType.Text
        Tampil.CommandText = "select * from Barang where kdbrg='" & Trim(kodebrg) & "'"
        Tampilkan = Tampil.ExecuteReader 'tampilkan=menyimpan hasil pembacaan data

        If Tampilkan.HasRows = True Then 'klw ada record(data)maka akan bertipe true
            While Tampilkan.Read() 'membaca data 1 per 1
                If IsDBNull(Tampilkan("kdbrg")) Then '

                Else
                    'memberikan nilai di cel datagridview
                    DG1.Rows.Item(baris).Cells(1).Value = Trim(Tampilkan("nmbrg"))
                    DG1.Rows.Item(baris).Cells(3).Value = Tampilkan("hrgsatuan")
                End If
            End While
        End If
    End Sub

    Private Sub tampil_data_barang()
        Call koneksi()
        Tampil2.Connection = Dtbase
        Tampil2.CommandType = CommandType.Text
        Tampil2.CommandText = "select * from Barang where nmbrg like '%" & Trim(namabrg) & "%'"
        Tampilkan = Tampil2.ExecuteReader 'tampilkan=menyimpan hasil pembacaan data
        If Tampilkan.HasRows = True Then 'klw ada record(data) maka akan bertipe true
            ListBox1.Items.Clear()
            ListBox1.Visible = True
            While Tampilkan.Read() 'membaca data satu persatu
                ListBox1.Items.Add(Trim(Tampilkan("kdbrg")) & "" & Trim(Tampilkan("nmbrg")))
            End While
        End If
    End Sub

    Private Sub simpan_datagridview()
        'cek sudah terisi semua belum
        If DG1.Rows.Item(baris).Cells(0).Value = "" Then Exit Sub
        If DG1.Rows.Item(baris).Cells(1).Value = "" Then Exit Sub
        If Trim(DG1.Rows.Item(baris).Cells(2).Value) = "" Then Exit Sub
        If Trim(DG1.Rows.Item(baris).Cells(3).Value) = "" Then Exit Sub
        If Trim(DG1.Rows.Item(baris).Cells(4).Value) = "" Then Exit Sub

        If Add.Text = "Simpan" Then
            Tampil.Connection = Dtbase
            Tampil.CommandType = CommandType.Text
            Tampil.CommandText = "insert into SODetail(nosoH,kdbrg,qty,hargasatuan,totalharga) values ('" & Trim(TextBox1.Text) & "', '" & Trim(DG1.Rows.Item(baris).Cells(0).Value) & "'," & Val(DG1.Rows.Item(baris).Cells(2).Value) & "," & Val(DG1.Rows.Item(baris).Cells(3).Value) & "," & Val(DG1.Rows.Item(baris).Cells(4).Value) & ")"
            Tampil.ExecuteNonQuery()
            ' Call tampilkan_detail_SO()
        Else
            If Edit.Text = "Simpan" Then
                Tampil.Connection = Dtbase
                Tampil.CommandType = CommandType.Text
                Tampil.CommandText = "update SODetail set qty = " & Val(DG1.Rows.Item(baris).Cells(2).Value) & ",hargasatuan=" & Val(DG1.Rows.Item(baris).Cells(3).Value) & ",totalharga =" & Val(DG1.Rows.Item(baris).Cells(4).Value) & " where nosoH='" & Trim(TextBox1.Text) & "' and kdbrg= '" & Trim(DG1.Rows.Item(baris).Cells(0).Value) & "'"
                Tampil.ExecuteNonQuery()
                'Call tampilkan_detail_SO()
            Else
                If Delete.Text = "Ok" Then
                    Tampil.Connection = Dtbase
                    Tampil.CommandType = CommandType.Text
                    Tampil.CommandText = "Delete from SODetail where nosoH='" & Trim(TextBox1.Text) & "' and kdbrg= '" & Trim(DG1.Rows.Item(baris).Cells(0).Value) & "'"
                    Tampil.ExecuteNonQuery()
                    Call bersihbaris()
                End If
            End If
        End If
    End Sub
    Private Sub bersihbaris()
        DG1.Rows.Item(baris).Cells(0).Value = ""
        DG1.Rows.Item(baris).Cells(1).Value = ""
        DG1.Rows.Item(baris).Cells(2).Value = ""
        DG1.Rows.Item(baris).Cells(3).Value = ""
        DG1.Rows.Item(baris).Cells(4).Value = ""
    End Sub
    Private Sub tampilkan_detail_SO()
        Call koneksi()
        Dim n As Integer
        DG1.RowCount = 1
        DG1.RowCount = 10

        Tabel = "SELECT SODetail.kdbrg, Barang.nmbrg, SODetail.qty, SODetail.hargasatuan, SODetail.totalharga"
        Tabel = Tabel + "  FROM SODetail INNER JOIN Barang ON SODetail.kdbrg = Barang.kdbrg WHERE  SODetail.nosoH= '" & Trim(TextBox1.Text) & "'"
        Tampil4.Connection = Dtbase
        Tampil4.CommandType = CommandType.Text
        'MsgBox(Tabel)
        Tampil4.CommandText = Tabel
        Tampilkan = Tampil4.ExecuteReader 'tampilkan=menyimpan hasil pembacaan data

        If Tampilkan.HasRows = True Then 'klw ada record(data)maka akan bertipe true
            n = 0
            While Tampilkan.Read() 'membaca data 1 per 1

                DG1.Rows.Item(n).Cells(0).Value = Tampilkan("kdbrg")
                DG1.Rows.Item(n).Cells(1).Value = Trim(Tampilkan("nmbrg"))
                DG1.Rows.Item(n).Cells(2).Value = Tampilkan("qty")
                DG1.Rows.Item(n).Cells(3).Value = Tampilkan("hargasatuan")
                DG1.Rows.Item(n).Cells(4).Value = Tampilkan("totalharga")

                n = n + 1

            End While
            'dgv1.RowCount = n + 1
            'Dim nn As Integer = dgv1.Rows.Add()
        End If
        'Dim nn As Integer = dgv1.Rows.Add()

        Tampilkan.Close()
        Tampil4.ExecuteReader.Close()
    End Sub


    Private Sub DG1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DG1.CellClick
        ' Untuk menunjukan baris yang ke berapa
        baris = DG1.CurrentRow.Index

        'untuk menentukan kolom yang mana
        If DG1.Columns(e.ColumnIndex).Name = "Kode Barang" Then
            kolom = 1
        Else
            If DG1.Columns(e.ColumnIndex).Name = "Nama Barang" Then
                kolom = 2
            Else
                If DG1.Columns(e.ColumnIndex).Name = "Harga" Then
                    kolom = 3
                Else
                    If DG1.Columns(e.ColumnIndex).Name = "Qty" Then
                        kolom = 4
                    Else
                        kolom = 5
                    End If
                End If


            End If
        End If
        If kolom = 5 Then
            If Add.Text = "Simpan" Then
                'dgv1.Rows.Add()
                Call caristatusheader()
                If statusheader = "T" Then
                    Call simpan_datagridview()
                    Call penjumlahan()

                Else
                    Call simpandata()
                    Call simpan_datagridview()
                    Call penjumlahan()
                End If

            Else
                If Edit.Text = "Simpan" Then
                    Call simpan_datagridview()
                    Call penjumlahan()
                Else
                    If Delete.Text = "Ok" Then
                        Call simpan_datagridview()
                        Call penjumlahan()
                    End If
                End If
            End If
        End If
    End Sub
  
    Private Sub DG1_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DG1.CellEnter

        If Len(Trim(DG1.Rows.Item(0).Cells(0).Value)) > 0 Then
            'untuk menunjukan kolom yang mana
            If kolom = 1 Then

                ' untuk mengambil nilai dari cell datagridview
                namabrg = DG1.Rows.Item(baris).Cells(0).Value

                'memanggil method untuk menampilkan data barang
                Call tampil_data_barang()

                'menentukan posisi listbox
                Call posisiList()

            End If

            If kolom = 3 Then

            End If

            If kolom = 4 Then

            End If

            'isi total harga
            DG1.Rows.Item(baris).Cells(4).Value = Val(DG1.Rows.Item(baris).Cells(3).Value) * Val(DG1.Rows.Item(baris).Cells(2).Value)

        End If


    End Sub

    Private Sub ListBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.Click
        ListBox1.Visible = False
        ListBox1.Top = 12
        DG1.Rows.Item(baris).Cells(0).Value = Microsoft.VisualBasic.Left(ListBox1.Text, 3)
        kodebrg = Microsoft.VisualBasic.Left(ListBox1.Text, 3)
        Call caridatabarang()


    End Sub
    Private Sub penjumlahan()
        Call koneksi()
        Tampil5.Connection = Dtbase
        Tampil5.CommandType = CommandType.Text
        Tampil5.CommandText = "SELECT SUM(totalharga) AS subtotal FROM SODetail WHERE nosoH = '" & Trim(TextBox1.Text) & "'"
        Tampilkan = Tampil5.ExecuteReader
        If Tampilkan.HasRows = True Then
            Do While Tampilkan.Read()
                If IsDBNull(Tampilkan("subtotal")) Then
                Else
                    TextBox6.Text = Format(Tampilkan("subtotal"), "###,###,###")
                    TextBox5.Text = Tampilkan("subtotal")
                End If
            Loop
        End If



    End Sub
    Private Sub UpdatePenjumlahan()

    End Sub

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar = Chr(13) Then
            caridata()
            'caricustomer()


            If e.KeyChar = Chr(13) Then
                TextBox2.Focus()

            End If
        End If
    End Sub


    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If Len(TextBox1.Text) > 0 Then
            Call tampilkan_detail_SO()
            Call penjumlahan()
        End If

    End Sub

    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
        If Len(TextBox2.Text) > 0 Then
            Call caricustomer()
            Call carinamacustomer()
        End If


    End Sub

    Private Sub ListBox2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox2.Click
        ListBox2.Visible = False
        ListBox2.Top = 12
        TextBox2.Text = Microsoft.VisualBasic.Left(ListBox2.Text, 4)

    End Sub

    Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged

    End Sub

    Private Sub Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Add.Click
        If Add.Text = "Add" Then 'jk button1 d klik,mka button 1 berubah jd simpan & button4 jd batal
            TextBox1.Focus()
            Add.Text = "Simpan"
            Edit.Enabled = False
            Delete.Enabled = False
            Keluar.Text = "Batal"

        Else
            'Call simpandata()   'jk tdak maka call simpan data, call bersih,call normal
            Call bersih()
            Call normal()

        End If

    End Sub

    Private Sub Edit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Edit.Click
        If Edit.Text = "Edit" Then 'jk button1 d klik,mka button 1 berubah jd simpan & button4 jd batal
            TextBox1.Focus()
            Edit.Text = "Simpan"
            Add.Enabled = False
            Delete.Enabled = False
            Keluar.Text = "Batal"

        Else
            Call simpandata()   'jk tdak maka call simpan data, call bersih,call normal
            Call bersih()
            Call normal()

        End If

    End Sub

    Private Sub Delete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delete.Click
        If Delete.Text = "Delete" Then 'jk button1 d klik,mka button 1 berubah jd simpan & button4 jd batal
            TextBox1.Focus()
            Delete.Text = "Ok"
            Add.Enabled = False
            Edit.Enabled = False
            Keluar.Text = "Batal"

        Else
            Call simpandata()   'jk tdak maka call simpan data, call bersih,call normal
            Call bersih()

            Call normal()

        End If

    End Sub

    Private Sub Keluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Keluar.Click
        If Keluar.Text = "Batal" Then
            Call normal()
            Call bersih()
            Call bersih_datagrid()
            TextBox1.Focus()
        Else
            Me.Close() 'untuk menutup form diri sendiri'
        End If

    End Sub
    Private Sub caridata()
        Call koneksi()
        Tampil.Connection = Dtbase
        Tampil.CommandType = CommandType.Text
        Tampil.CommandText = "select * from SalesOrder where NoSO='" & Trim(TextBox1.Text) & "'"
        Tampilkan = Tampil.ExecuteReader       'tampilkan=menyimpan hasil pembacaan data

        If Tampilkan.HasRows = True Then 'klw ada record(data)maka akan bertipe true
            While Tampilkan.Read() 'membaca data 1 per 1
                If IsDBNull(Tampilkan("NoSO")) Then '
                    TextBox1.Focus()
                Else
                    DateTimePicker1.Value = Tampilkan("tglSO")
                    ComboBox1.Text = Tampilkan("carabayar")
                    ' TextBox5.Text = Tampilkan("total")
                    TextBox4.Text = Tampilkan("nopo")
                    TextBox2.Text = Tampilkan("kdcust")
                   

                    TextBox2.Focus()

                End If
            End While
        End If
    End Sub
End Class

Tidak ada komentar:

Posting Komentar