Public Class Form_Transaksi
Dim proses As New ClsKoneksi
Dim tbcustomer As DataTable
Dim tbTransaksi As DataTable
Dim tbBarang As DataTable
Dim SQL As String
Dim ismember As Boolean
Private Sub Form_Transaksi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
init_form()
End Sub
Private Sub init_form()
ismember = False
auto_code_customer()
auto_code_transaksi()
TxtTanggal.Text = Now.Date
TxtKasir.Text = gl_user_login
TxtNamaCustomer.Clear()
TxtTelpCus.Clear()
TxtIDBarang.Clear()
TxtNamaBarang.Clear()
TxtMerkBarang.Clear()
TxtHargaBarang.Clear()
TxtQty.Clear()
TxtTotalBayar.Text = "0"
TxtUangBayar.Clear()
TxtUangKembali.Text = "0"
TxtPotongan.Text = "0"
TxtTotal.Text = "0"
If DgTrans.RowCount <> 0 Then
DgTrans.Rows.Clear()
End If
TxtIdTransaksi.Enabled = False
TxtTanggal.Enabled = False
TxtKasir.Enabled = False
TxtCustomer.Enabled = False
TxtNamaCustomer.Enabled = True
TxtTelpCus.Enabled = True
TxtIDBarang.Enabled = False
TxtNamaBarang.Enabled = False
TxtMerkBarang.Enabled = False
TxtHargaBarang.Enabled = False
TxtQty.Enabled = True
TxtTotalBayar.Enabled = False
TxtUangBayar.Enabled = False
TxtUangKembali.Enabled = False
TxtPotongan.Enabled = False
End Sub
Private Sub BtnCariBarang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCariBarang.Click
Form_Cari_Barang.ShowDialog()
If Form_Cari_Barang.DialogResult = Windows.Forms.DialogResult.OK Then
TxtIDBarang.Text = gl_kode_Barang
TxtNamaBarang.Text = gl_nama_Barang
TxtMerkBarang.Text = gl_merk_Barang
TxtHargaBarang.Text = gl_harga_Barang
TxtQty.Focus()
End If
End Sub
Private Sub BtnDeleteCustomer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDeleteCustomer.Click
auto_code_customer()
TxtNamaCustomer.Clear()
TxtTelpCus.Clear()
TxtNamaCustomer.Enabled = True
TxtTelpCus.Enabled = True
TxtNamaCustomer.Focus()
ismember = False
TxtMember.Visible = False
get_total()
End Sub
Private Sub auto_code_customer()
tbcustomer = proses.ExecuteQuery("Select * from tb_customer order by id_customer desc")
If tbcustomer.Rows.Count = 0 Then
TxtCustomer.Text = "CS001"
Else
With tbcustomer.Rows(0)
TxtCustomer.Text = .Item("id_customer")
End With
TxtCustomer.Text = Val(Microsoft.VisualBasic.Mid(TxtCustomer.Text, 3, 3)) + 1
If Len(TxtCustomer.Text) = 1 Then
TxtCustomer.Text = "CS00" & TxtCustomer.Text & ""
ElseIf Len(TxtCustomer.Text) = 2 Then
TxtCustomer.Text = "CS0" & TxtCustomer.Text & ""
ElseIf Len(TxtCustomer.Text) = 3 Then
TxtCustomer.Text = "CS" & TxtCustomer.Text & ""
End If
End If
End Sub
Private Sub auto_code_transaksi()
Dim dateno, tgl, bln, thn As String
Dim code As String
tgl = Format(Now.Date, "dd")
bln = Format(Now.Date, "MM")
thn = Format(Now.Date, "yyyy")
dateno = "TRX" & bln & tgl & thn
tbTransaksi = proses.ExecuteQuery("select id_transaksi from tb_transaksi order by cast(SUBSTRING(id_transaksi, 12,100) as INT) desc")
If tbTransaksi.Rows.Count = 0 Then
TxtIdTransaksi.Text = dateno & "1"
Else
With tbTransaksi.Rows(0)
code = .Item("id_transaksi")
End With
Dim trans As String
trans = dateno & Val(Integer.Parse(Microsoft.VisualBasic.Mid(code, 12))) + 1
TxtIdTransaksi.Text = trans
End If
End Sub
Private Sub add()
If TxtIDBarang.Text = "" Then
MsgBox("Tidak ada barang yang dibeli", MsgBoxStyle.Critical, "Error")
BtnCariBarang.Focus()
Return
End If
If TxtQty.Text = "" Then
MsgBox("Silahkan isi jumlah beli", MsgBoxStyle.Critical, "Error")
TxtQty.Focus()
Return
End If
If TxtQty.Text = "0" Then
MsgBox("jumlah beli minimal 1", MsgBoxStyle.Critical, "Error")
TxtQty.Focus()
Return
End If
If DgTrans.RowCount <> 0 Then
Dim i As Integer
For i = 0 To DgTrans.RowCount - 1
If (TxtIDBarang.Text = DgTrans.Rows(i).Cells(0).Value.ToString) Then
MsgBox("Id barang " & TxtIDBarang.Text & " sudah ada", MsgBoxStyle.Critical, "Error")
Return
End If
Next
End If
tbBarang = proses.ExecuteQuery("select stock from tb_barang where id_barang = '" & TxtIDBarang.Text & "'")
Dim stok As Integer
If tbBarang.Rows.Count <> 0 Then
stok = Val(tbBarang.Rows(0).Item("stock").ToString)
If stok < Val(TxtQty.Text) Then
MsgBox("Id barang " & TxtIDBarang.Text & "ada" & stok, MsgBoxStyle.Critical, "Stok tidak mencukupi")
Return
End If
Else
MsgBox("Data barang tidak valid", MsgBoxStyle.Critical, "Error")
Return
End If
Dim row As String() = New String() {TxtIDBarang.Text, TxtNamaBarang.Text, TxtMerkBarang.Text, TxtHargaBarang.Text, TxtQty.Text, Val(TxtQty.Text) * Val(TxtHargaBarang.Text)}
DgTrans.Rows.Add(row)
TxtIDBarang.Clear()
TxtNamaBarang.Clear()
TxtHargaBarang.Clear()
TxtMerkBarang.Clear()
TxtQty.Clear()
get_total()
End Sub
Private Sub BtnCariCus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCariCus.Click
Form_Cari_Customer.ShowDialog()
If Form_Cari_Customer.DialogResult = Windows.Forms.DialogResult.OK Then
TxtCustomer.Text = gl_kode_Customer
TxtNamaCustomer.Text = gl_nama_Customer
TxtTelpCus.Text = gl_telepon_Customer
TxtNamaCustomer.Enabled = False
TxtTelpCus.Enabled = False
If gl_status_Customer = "member" Then
ismember = True
TxtMember.Visible = Visible
Else
ismember = False
TxtMember.Visible = False
End If
get_total()
End If
End Sub
Private Sub BtnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdd.Click
add()
End Sub
Private Sub TxtQty_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtQty.KeyPress
If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack Or e.KeyChar = Chr(13)) Then e.Handled() = True
If e.KeyChar = Chr(13) Then
add()
End If
End Sub
Private Sub TxtQty_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtQty.TextChanged
End Sub
Private Sub DgTrans_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DgTrans.CellContentClick
End Sub
Private Sub get_total()
If DgTrans.RowCount <> 0 Then
Dim i As Integer
Dim total As Integer
For i = 0 To DgTrans.RowCount - 1
If (DgTrans.Rows(i).Cells(0).Value.ToString <> "") Then
total += Val(DgTrans.Rows(i).Cells(5).Value.ToString)
End If
Next
TxtTotal.Text = total
Else
TxtPotongan.Text = "0"
End If
If ismember Then
TxtPotongan.Text = Val(TxtTotal.Text) * (10 / 100)
Else
TxtPotongan.Text = "0"
End If
TxtTotalBayar.Text = Val(TxtTotal.Text) - Val(TxtPotongan.Text)
TxtUangBayar.Enabled = True
End Sub
Private Sub DgTrans_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DgTrans.CellDoubleClick
If e.RowIndex < 0 Then
Exit Sub
End If
If MessageBox.Show("anda yakin ingin hapus", "Konfirmasi", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No Then
Return
Else
DgTrans.Rows.RemoveAt(e.RowIndex)
get_total()
End If
End Sub
Private Sub save()
If Val(TxtUangBayar.Text) < Val(TxtTotalBayar.Text) Then
MsgBox("Uang bayar kurang ", MsgBoxStyle.Critical, "Error")
Return
Else
TxtUangKembali.Text = Val(TxtUangBayar.Text) - Val(TxtTotalBayar.Text)
End If
If TxtCustomer.Text = "" Then
MsgBox("Customer tidak boleh kosong ", MsgBoxStyle.Critical, "Error")
Return
End If
If DgTrans.RowCount < 1 Then
MsgBox("Barang yang dibeli tidak boleh kosong", MsgBoxStyle.Critical, "Error")
Return
End If
If TxtUangBayar.Text = "" Then
MsgBox("Silahkan bayar terlebih dahulu", MsgBoxStyle.Critical, "Error")
Return
End If
Try
SQL = "insert into tb_transaksi values ('" & TxtIdTransaksi.Text & "','" & CDate(Now) & "','" & TxtCustomer.Text & "','" & TxtPotongan.Text & "','" & TxtTotalBayar.Text & "','" & gl_user_login & "','" & TxtUangBayar.Text &"')"
proses.ExecuteNonQuery(SQL)
tbcustomer = proses.ExecuteQuery("select id_customer from tb_customer where id_customer = '" & TxtCustomer.Text & "'")
If tbcustomer.Rows.Count = 0 Then
SQL = "insert into tb_customer values ('" & TxtCustomer.Text & "','" & TxtNamaCustomer.Text & "' , null, '" & TxtTelpCus.Text & "','non member')"
proses.ExecuteNonQuery(SQL)
End If
Dim i As Integer
For i = 0 To DgTrans.RowCount - 1
SQL = "insert into tb_detail_transaksi (id_transaksi,id_barang,jml_beli,harga_satuan,sub_total) values ('" & TxtIdTransaksi.Text & "','" & DgTrans.Rows(i).Cells(0).Value.ToString & "','" & DgTrans.Rows(i).Cells(4).Value.ToString & "','" & DgTrans.Rows(i).Cells(3).Value.ToString & "','" & DgTrans.Rows(i).Cells(5).Value.ToString & "')"
proses.ExecuteNonQuery(SQL)
SQL = "update tb_barang set stock = stock - " & Val(DgTrans.Rows(i).Cells(4).Value.ToString) & " where id_barang = '" & DgTrans.Rows(i).Cells(0).Value.ToString & "'"
proses.ExecuteNonQuery(SQL)
Next
If MessageBox.Show("Transaksi berhasil, ingin cetak ?", "konfirmasi", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
Form_Cetak_Struk.cetak_struk1.SetParameterValue("id_transaksi", TxtIdTransaksi.Text)
Form_Cetak_Struk.Show()
End If
init_form()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Private Sub cetak(ByVal idtrans As String)
SQL = " SELECT tb_transaksi.id_transaksi, tb_transaksi.tgl_transaksi, tb_transaksi.id_customer, tb_customer.nm_customer, tb_customer.no_telp, " & _
"tb_detail_transaksi.id_barang, tb_barang.nm_barang, tb_supplier.nama_supplier, tb_barang.hrg_barang, tb_detail_transaksi.jml_beli, " & _
" tb_detail_transaksi.sub_total, tb_transaksi.total_bayar " & _
"FROM tb_detail_transaksi INNER JOIN " & _
"tb_transaksi ON tb_detail_transaksi.id_transaksi ="
'tbTransaksi.id_transaksi INNER JOIN " & _
' "tb_customer ON tb_transaksi.id_customer =
'tb_customer.id_customer INNER JOIN " & _
' "tb_barang ON tb_detail_transaksi.id_barang =
'tb_barang.id_barang(" & _")
' "left join tb_supplier on tb_barang.merk_barang =
'tb_supplier.id_supplier(" & _")
' " where tb_transaksi.id_transaksi = '" & idtrans & "'"
'tbTransaksi = proses.ExecuteQuery(SQL)
'Dim objRpt As New cetakTrans
'objRpt.SetDataSource(tbTransaksi)
'reportViewer.Crpt.ReportSource = objRpt
'reportViewer.Crpt.Refresh()
'reportViewer.ShowDialog()
End Sub
Private Sub TxtUangBayar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtUangBayar.KeyPress
If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack Or e.KeyChar = Chr(13)) Then e.Handled() = True
If e.KeyChar = Chr(13) Then
save()
End If
End Sub
Private Sub BtnCetak_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCetak.Click
save()
End Sub
Private Sub TxtTelpCus_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtTelpCus.KeyPress
If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True
End Sub
Private Sub Label19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label19.Click
End Sub
Private Sub TxtKasir_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtKasir.TextChanged
End Sub
End Class
Tidak ada komentar:
Posting Komentar