Public Class Tugas40B_36109067
Dim V As New OleDb.OleDbConnection("Provider=microsoft.ACE.OLEDB.12.0;data source=" & Application.StartupPath & "\DATAMAJEMUK.accdb")
Dim DT As New DataTable
Public Sub Valentine()
Dim L As New OleDb.OleDbDataAdapter
L = New OleDb.OleDbDataAdapter("Select BARANG.KODEBARANG, BARANG.NAMABARANG, DETAILTRANSAKSI.UNIT, DETAILTRANSAKSI.HARGA, DETAILTRANSAKSI.UNIT*DETAILTRANSAKSI.HARGA AS JUMLAH from DETAILTRANSAKSI INNER JOIN BARANG ON DETAILTRANSAKSI.KODEBARANG=BARANG.KODEBARANG WHERE NOTRANS= '" & tb1.Text & "'", V)
DT.Rows.Clear()
L.Fill(DT)
End Sub
Private Sub Latihan40B017_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim dataPrimary(1) As DataColumn
dataPrimary(0) = DT.Columns("NOTRANS")
DT.PrimaryKey = dataPrimary
dgv40b1.DataSource = DT
TOTALJUMLAH()
End Sub
Public Sub TOTALJUMLAH()
Dim TOT As Double = 0
For Each y As DataRow In DT.Rows
TOT = TOT + y("JUMLAH")
Next
tb3.Text = TOT
End Sub
Private Sub dgv40b1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv40b1.CellEndEdit
If dgv40b1.Columns(e.ColumnIndex).Name = "KODEBARANG" Then
'Cari nama barang'
dgv40b1.CurrentRow.Cells("NAMABARANG").Value = ""
dgv40b1.CurrentRow.Cells("UNIT").Value = 0
dgv40b1.CurrentRow.Cells("HARGA").Value = 0
dgv40b1.CurrentRow.Cells("JUMLAH").Value = 0
Dim Pencari As New ByIskandar.CariKeDataBaseByIskandar
Pencari.AturPencarianDataBase("BARANG", "KODEBARANG", dgv40b1.CurrentRow.Cells("KODEBARANG").Value, 1, V)
'Menampilkan nama barang jika isi kolom kodebarang ditemukan oleh proses diatas'
If Pencari.JumlanBaris > 0 Then
dgv40b1.CurrentRow.Cells("NAMABARANG").Value = Pencari.DataTablenya.Rows(0).Item("NAMABARANG")
Else
dgv40b1.CurrentRow.Cells("KODEBARANG").Value = ""
If Tugas383940_36109067.ShowDialog = Windows.Forms.DialogResult.OK Then
dgv40b1.CurrentRow.Cells("KODEBARANG").Value = Tugas383940_36109067.DGV38.CurrentRow.Cells("KODEBARANG").Value
dgv40b1.CurrentRow.Cells("NAMABARANG").Value = Tugas383940_36109067.DGV38.CurrentRow.Cells("NAMABARANG").Value
End If
End If
ElseIf dgv40b1.Columns(e.ColumnIndex).Name = "UNIT" Or dgv40b1.Columns(e.ColumnIndex).Name = "HARGA" Then
'Hitung kolom jumlah'
dgv40b1.CurrentRow.Cells("JUMLAH").Value = dgv40b1.CurrentRow.Cells("UNIT").Value * dgv40b1.CurrentRow.Cells("HARGA").Value
End If
TOTALJUMLAH()
End Sub
Private Sub Simpan_tambah()
If tb1.Text.Length = 0 Then
MsgBox("Maaf, Nomor transaksi harus diisi dulu")
Exit Sub
End If
If tb2.Text.Length = 0 Then
MsgBox("Maaf, Jenis transaksi harus diisi dulu")
Exit Sub
End If
If DT.Rows.Count() = 0 Then
MsgBox("Maaf, Proses tidak dapat dilanjutkan")
Exit Sub
End If
If NO1.Text <> tb1.Text Then
Dim pencari As New ByIskandar.CariKeDataBaseByIskandar
pencari.AturPencarianDataBase("MASTERTRANSAKSI", "NOTRANS", tb1.Text, 1, V)
If pencari.JumlanBaris > 0 Then
MsgBox("Nomor transaksi sudah ada")
Exit Sub
End If
End If
Dim MV As New OleDb.OleDbCommand
MV = New OleDb.OleDbCommand("INSERT INTO MASTERTRANSAKSI(NOTRANS, TANGGALTRANSAKSI, JENISTRANSAKSI) VALUES ('" & tb1.Text & "', #" & dtp.Value.Month & "/" & dtp.Value.Day & "/" & dtp.Value.Year & "#, '" & tb2.Text & "')", V)
'Membuka koneksi'
V.Open()
'Eksekusi prose penyimpanan'
MV.ExecuteNonQuery()
'Menutup koneksi'
V.Close()
'Memeriksa isi jumlah baris dalam object tabel'
For Each X As DataRow In DT.Rows
'Mengatur perintah simpan'
MV = New OleDb.OleDbCommand("INSERT INTO DETAILTRANSAKSI (NOTRANS, KODEBARANG, UNIT, HARGA) VALUES ('" & tb1.Text & "', '" & X("KODEBARANG") & "'," & X("UNIT") & ", " & X("HARGA") & ")", V)
V.Open()
MV.ExecuteNonQuery()
V.Close()
MV.Dispose()
Next
NO1.Text = "-"
tb1.Text = ""
tb2.Text = ""
DT.Rows.Clear()
TOTALJUMLAH()
'Prosedur mengambil data dari Latihan40A017'
Tugas40A_36109067.Valentine()
End Sub
Private Sub Simpan_edit()
If tb1.Text.Length = 0 Then
MsgBox("Maaf, Nomor transaksi harus diisi dulu")
Exit Sub
End If
If tb2.Text.Length = 0 Then
MsgBox("Maaf, Jenis transaksi harus diisi dulu")
Exit Sub
End If
If DT.Rows.Count() = 0 Then
MsgBox("Maaf, Proses tidak dapat dilanjutkan")
Exit Sub
End If
If NO1.Text <> tb1.Text Then
Dim pencari As New ByIskandar.CariKeDataBaseByIskandar
pencari.AturPencarianDataBase("MASTERTRANSAKSI", "NOTRANS", tb1.Text, 1, V)
If pencari.JumlanBaris > 0 Then
MsgBox("Nomor transaksi sudah ada")
Exit Sub
End If
End If
Dim NV As New OleDb.OleDbCommand
NV = New OleDb.OleDbCommand("DELETE * FROM MASTERTRANSAKSI WHERE NOTRANS= '" & tb1.Text & "'", V)
V.Open()
NV.ExecuteNonQuery()
V.Close()
NV = New OleDb.OleDbCommand("INSERT INTO MASTERTRANSAKSI (NOTRANS, TANGGALTRANSAKSI, JENISTRANSAKSI) VALUES ('" & tb1.Text & "', #" & dtp.Value.Month & "/" & dtp.Value.Day & "/" & dtp.Value.Year & "#, '" & tb2.Text & "')", V)
V.Open()
NV.ExecuteNonQuery()
V.Close()
NV = New OleDb.OleDbCommand("DELETE * FROM DETAILTRANSAKSI WHERE NOTRANS= '" & tb1.Text & "'", V)
V.Open()
NV.ExecuteNonQuery()
V.Close()
'Memeriksa isi jumlah baris dalam object tabel'
For Each XX As DataRow In DT.Rows
'Mengatur perintah simpan'
NV = New OleDb.OleDbCommand("INSERT INTO DETAILTRANSAKSI (NOTRANS, KODEBARANG, UNIT, HARGA) VALUES ('" & tb1.Text & "', '" & XX("KODEBARANG") & "', " & XX("UNIT") & ", " & XX("HARGA") & ")", V)
V.Open()
NV.ExecuteNonQuery()
V.Close()
NV.Dispose()
Next
NO1.Text = "-"
tb1.Text = ""
tb2.Text = ""
DT.Rows.Clear()
TOTALJUMLAH()
Tugas40A_36109067.Valentine()
End Sub
Private Sub Simpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Simpan.Click
If NO1.Text = "-" Then
Simpan_tambah()
Else
Simpan_edit()
End If
End Sub
End Class