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