Jumat, 02 Desember 2011

LATIHAN 40B

Public Class LATIHAN_040B_36109075
    Dim BALON As New OleDb.OleDbConnection("Provider=microsoft.ACE.OLEDB.12.0;datasource=" & Application.StartupPath & "\DataMajemuk.accdb")
    Dim CIKY As New DataTable
    Public Sub PUTRY()
        Dim Z As New OleDb.OleDbDataAdapter
        Z = 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= '" & nt075.Text & "'", BALON)
        CIKY.Rows.Clear()
        Z.Fill(CIKY)
    End Sub

    Private Sub LATIHAN_040B_36109075_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim dataPrimary(1) As DataColumn
        dataPrimary(0) = CIKY.Columns("NOTRANS")
        CIKY.PrimaryKey = dataPrimary

        DGV075.DataSource = CIKY

        TOTALJUMLAH()
    End Sub
    Public Sub TOTALJUMLAH()
        Dim TOT As Double = 0
        For Each x As DataRow In CIKY.Rows
            TOT = TOT + x("JUMLAH")

        Next
        tot075.Text = TOT
    End Sub

    Private Sub DGV075_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV075.CellEndEdit
        If DGV075.Columns(e.ColumnIndex).Name = "KODEBARANG" Then
            'Cari nama barang'
            DGV075.CurrentRow.Cells("NAMABARANG").Value = ""
            DGV075.CurrentRow.Cells("UNIT").Value = 0
            DGV075.CurrentRow.Cells("HARGA").Value = 0
            DGV075.CurrentRow.Cells("JUMLAH").Value = 0

            Dim Pencari As New ByIskandar.CariKeDataBaseByIskandar
            Pencari.AturPencarianDataBase("BARANG", "KODEBARANG", DGV075.CurrentRow.Cells("KODEBARANG").Value, 1, BALON)

            'Menampilkan nama barang jika isi kolom kodebarang ditemukan oleh proses diatas'
            If Pencari.JumlanBaris > 0 Then
                DGV075.CurrentRow.Cells("NAMABARANG").Value = Pencari.DataTablenya.Rows(0).Item("NAMABARANG")
            Else
                DGV075.CurrentRow.Cells("KODEBARANG").Value = ""
                If LATIHAN_383940_075.ShowDialog = Windows.Forms.DialogResult.OK Then
                    DGV075.CurrentRow.Cells("KODEBARANG").Value = LATIHAN_383940_075.DGV38_075.CurrentRow.Cells("KODEBARANG").Value
                    DGV075.CurrentRow.Cells("NAMABARANG").Value = LATIHAN_383940_075.DGV38_075.CurrentRow.Cells("NAMABARANG").Value

                End If
            End If

        ElseIf DGV075.Columns(e.ColumnIndex).Name = "UNIT" Or DGV075.Columns(e.ColumnIndex).Name = "HARGA" Then
            'Hitung kolom jumlah'
            DGV075.CurrentRow.Cells("JUMLAH").Value = DGV075.CurrentRow.Cells("JUMLAH").Value = DGV075.CurrentRow.Cells("UNIT").Value * DGV075.CurrentRow.Cells("HARGA").Value
        End If
        TOTALJUMLAH()
    End Sub
    Private Sub simpan_tambah()
        If nt075.Text.Length = 0 Then
            MsgBox("Maaf, Nomor transaksi harus diisi dulu")
            Exit Sub
        End If

        If jt075.Text.Length = 0 Then
            MsgBox("Maaf, Jenis transaksi harus diisi dulu")
            Exit Sub
        End If

        If CIKY.Rows.Count() = 0 Then
            MsgBox("Maaf, Proses tidak dapat dilanjutkan")
            Exit Sub
        End If

        If NO_075.Text <> nt075.Text Then
            Dim pencari As New ByIskandar.CariKeDataBaseByIskandar
            pencari.AturPencarianDataBase("MASTERTRANSAKSI", "NOTRANS", nt075.Text, 1, BALON)
            If pencari.JumlanBaris > 0 Then
                MsgBox("Nomor transaksi sudah ada")
                Exit Sub
            End If
        End If

        Dim CM As New OleDb.OleDbCommand
        CM = New OleDb.OleDbCommand("INSERT INTO MASTERTRANSAKSI(NOTRANS, TANGGALTRANSAKSI, JENISTRANSAKSI) VALUES ('" & nt075.Text & "', #" & DTP075.Value.Month & "/" & DTP075.Value.Day & "/" & DTP075.Value.Year & "#, '" & jt075.Text & "')", BALON)
        'Membuka koneksi'
        BALON.Open()
        'Eksekusi prose penyimpanan'
        CM.ExecuteNonQuery()
        'Menutup koneksi'
        BALON.Close()

        'Memeriksa isi jumlah baris dalam object tabel'
        For Each X As DataRow In CIKY.Rows
            'Mengatur perintah simpan'
            CM = New OleDb.OleDbCommand("INSERT INTO DETAILTRANSAKSI (NOTRANS, KODEBARANG, UNIT, HARGA) VALUES ('" & nt075.Text & "', '" & X("KODEBARANG") & "'," & X("UNIT") & ", " & X("HARGA") & ")", BALON)
            BALON.Open()
            CM.ExecuteNonQuery()
            BALON.Close()
            CM.Dispose()
        Next

        NO_075.Text = "-"
        nt075.Text = ""
        jt075.Text = ""

        CIKY.Rows.Clear()

        TOTALJUMLAH()
        'Prosedur mengambil data dari LATIHAN_040A_36109075'
        LATIHAN_040A_36109075.ina()
    End Sub
    Private Sub simpan_edit()
        If nt075.Text.Length = 0 Then
            MsgBox("Maaf, Nomor transaksi harus diisi dulu")
            Exit Sub
        End If

        If jt075.Text.Length = 0 Then
            MsgBox("Maaf, Jenis transaksi harus diisi dulu")
            Exit Sub
        End If

        If CIKY.Rows.Count() = 0 Then
            MsgBox("Maaf, Proses tidak dapat dilanjutkan")
            Exit Sub
        End If

        If NO_075.Text <> nt075.Text Then
            Dim pencari As New ByIskandar.CariKeDataBaseByIskandar
            pencari.AturPencarianDataBase("MASTERTRANSAKSI", "NOTRANS", nt075.Text, 1, BALON)
            If pencari.JumlanBaris > 0 Then
                MsgBox("Nomor transaksi sudah ada")
                Exit Sub
            End If
        End If

        Dim CM As New OleDb.OleDbCommand
        CM = New OleDb.OleDbCommand("DELETE * FROM MASTERTRANSAKSI WHERE NOTRANS= '" & nt075.Text & "'", BALON)
        BALON.Open()
        CM.ExecuteNonQuery()
        BALON.Close()

        CM = New OleDb.OleDbCommand("INSERT INTO MASTERTRANSAKSI (NOTRANS, TANGGALTRANSAKSI, JENISTRANSAKSI) VALUES ('" & nt075.Text & "', #" & DTP075.Value.Month & "/" & DTP075.Value.Day & "/" & DTP075.Value.Year & "#, '" & jt075.Text & "')", BALON)
        BALON.Open()
        CM.ExecuteNonQuery()
        BALON.Close()

        CM = New OleDb.OleDbCommand("DELETE * FROM DETAILTRANSAKSI WHERE NOTRANS= '" & nt075.Text & "'", BALON)
        BALON.Open()
        CM.ExecuteNonQuery()
        BALON.Close()

        'Memeriksa isi jumlah baris dalam object tabel'
        For Each XX As DataRow In CIKY.Rows
            'Mengatur perintah simpan'
            CM = New OleDb.OleDbCommand("INSERT INTO DETAILTRANSAKSI (NOTRANS, KODEBARANG, UNIT, HARGA) VALUES ('" & nt075.Text & "', '" & XX("KODEBARANG") & "', " & XX("UNIT") & ", " & XX("HARGA") & ")", BALON)
            BALON.Open()
            CM.ExecuteNonQuery()
            BALON.Close()
            CM.Dispose()
        Next

        NO_075.Text = "-"
        nt075.Text = ""
        jt075.Text = ""

        CIKY.Rows.Clear()


        TOTALJUMLAH()
        LATIHAN_040A_36109075.ina()
    End Sub

    Private Sub simpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles simpan.Click
        If NO_075.Text = "-" Then
            simpan_tambah()
        Else
            simpan_edit()
        End If
    End Sub
End Class

Tidak ada komentar:

Posting Komentar