• Tidak ada hasil yang ditemukan

LISTING PROGRAM

7. Tampilan Form Penyerahan Cucian

Private Sub Form_Activate()

'adodc di pasang provider pada saat run time, dan pembacaan database menggunaman app path agar aman dari ketergantungan direktori dan folder

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\DBLoundry.mdb"

'sumber data untuk adodc adalah tabel transaksi Adodc1.RecordSource = "Transaksi"

'hub datagrid ke adodc

Set DataGrid1.DataSource = Adodc1 DataGrid1.Refresh

'jika kode kasir tidak terdeteksi dalam form transaksi munculkan pesan...

If Kodeksr = "" Then

MsgBox "Kasir tidak terdeteksi" Login.Show

Exit Sub End If

'buka database dan tabel barang, nama barang dan kode tampilkan dalam list

Call BukaDB

RSBarang.Open "Barang", Conn List1.Clear

Do Until RSBarang.EOF

List1.AddItem RSBarang!NamaBrg & Space(50) & RSBarang!Kodebrg RSBarang.MoveNext

Loop

'buka database dan tabel konsumen, kode konsumen tampilkan dalam combo

RSKonsumen.Open "Konsumen", Conn Combo1.Clear

Do Until RSKonsumen.EOF

Combo1.AddItem RSKonsumen!NomorKsm RSKonsumen.MoveNext

Loop

'panggil prosedur nomor pemesanan otomatis Call AutoPsn

'panggil prosedur nomor konsumen otomatis Call AutoKsm

'panggil prosedur untuk mengosongkan tabel transaksi Call Tabel_Kosong Adodc1.Recordset.MoveFirst Tanggal = Date TglMintakrm.Value = Date NomorKsm.Enabled = False CmdSimpan.Enabled = False End Sub

Private Sub Form_Load()

'kode dna nama kasir diambil dari login Kodeksr = Login.TxtKodeKsr

DataGrid1.Col = 1

CmdSimpan.Enabled = False End Sub

'Private Sub TeleponKsm_Change() 'End Sub

Private Sub Timer1_Timer() Jam = Time$

End Sub

'prosedur untuk memanggil nomor pemesanan otomatis dengan pola PYYMMDD999

Private Sub AutoPsn() Call BukaDB

RSPesanan.Open ("select * from pesanan Where NomorPsn In(Select Max(NomorPsn)From Pesanan)Order By NomorPsn Desc"), Conn

RSPesanan.Requery

Dim Urutan As String * 10 Dim Hitung As Long

With RSPesanan If .EOF Then

Urutan = "P" + Format(Date, "YYMMDD") + "001" NomorPsn = Urutan

Exit Sub Else

If Mid(!NomorPsn, 2, 6) <> Format(Date, "YYMMDD") Then Urutan = "P" + Format(Date, "YYMMDD") + "001" Else

Hitung = Right(!NomorPsn, 9) + 1

Urutan = "P" + Format(Date, "YYMMDD") + Right("000" & Hitung, 3) End If End If NomorPsn = Urutan End With End Sub

'prosedur untuk membuat nomor konsumen otomatis dengan pola KSM999 Private Sub AutoKsm()

Call BukaDB

RSKonsumen.Open ("select * from Konsumen Where NomorKsm In(Select Max(NomorKsm)From Konsumen)Order By NomorKsm Desc"), Conn

RSKonsumen.Requery

Dim Urutan As String * 6 Dim Hitung As Long

With RSKonsumen If .EOF Then Urutan = "KSM001" NomorKsm = Urutan Else Hitung = Right(!NomorKsm, 3) + 1

Urutan = "KSM" + Right("000" & Hitung, 3) End If

NomorKsm = Urutan End With

End Sub

Private Sub Nomorksm_Change() Call BukaDB

RSKonsumen.Open "Select * from konsumen where nomorksm='" & NomorKsm & "'", Conn

RSKonsumen.Requery

If Not RSKonsumen.EOF Then

NamaKsm = RSKonsumen!NamaKsm RayonKsm = RSKonsumen!RayonKsm KelasKsm = RSKonsumen!KelasKsm End If

End Sub

Private Sub kelasksm_KeyPress(Keyascii As Integer) If Keyascii = 13 Then

Call BukaDB

RSKonsumen.Open "Select * from konsumen where kelasksm='" & KelasKsm & "'", Conn

RSKonsumen.Requery

If Not RSKonsumen.EOF Then

NomorKsm = RSKonsumen!NomorKsm NamaKsm = RSKonsumen!NamaKsm RayonKsm = RSKonsumen!RayonKsm KelasKsm = RSKonsumen!KelasKsm List1.SetFocus Else NamaKsm.SetFocus End If End If

If Not (Keyascii >= Asc("0") And Keyascii <= Asc("9") Or Keyascii = vbKeyBack) Then Keyascii = 0

End Sub

Private Sub Namaksm_KeyPress(Keyascii As Integer) Keyascii = Asc(UCase(Chr(Keyascii)))

If Keyascii = 13 Then Call BukaDB

RSKonsumen.Open "Select * from konsumen where namaksm='" & NamaKsm & "'", Conn

RSKonsumen.Requery

If Not RSKonsumen.EOF Then

NomorKsm = RSKonsumen!NomorKsm RayonKsm = RSKonsumen!RayonKsm KelasKsm = RSKonsumen!KelasKsm End If RayonKsm.SetFocus End If End Sub

Private Sub rayonksm_KeyPress(Keyascii As Integer) Keyascii = Asc(UCase(Chr(Keyascii)))

If Keyascii = 13 Then Call BukaDB

RSKonsumen.Open "Select * from konsumen where rayonksm='" & RayonKsm & "'", Conn

RSKonsumen.Requery

If Not RSKonsumen.EOF Then

NomorKsm = RSKonsumen!NomorKsm NamaKsm = RSKonsumen!NamaKsm KelasKsm = RSKonsumen!KelasKsm End If

DataGrid1.SetFocus End If

End Sub

Private Sub Combo1_KeyPress(Keyascii As Integer) Keyascii = Asc(UCase(Chr(Keyascii)))

If Keyascii = 13 Then If Combo1 = "" Then Call AutoKsm

MsgBox "silakan isi data konsumen baru" Kosongksm KelasKsm.SetFocus Exit Sub Else DataGrid1.SetFocus End If End If If Keyascii = 27 Then Combo1 = "" Call AutoKsm

MsgBox "silakan isi data konsumen baru" Kosongksm

KelasKsm.SetFocus Exit Sub

End If End Sub

Private Sub Combo1_Click() Call BukaDB

RSKonsumen.Open "Select * from Konsumen where Nomorksm='" & Combo1 & "'", Conn

If Not RSKonsumen.EOF Then

NomorKsm = RSKonsumen!NomorKsm End If

Conn.Close End Sub

'prosedur untuk mengosongkan tabel transaksi dari bekas entrian data

Function Tabel_Kosong()

Adodc1.Recordset.MoveFirst

Do While Not Adodc1.Recordset.EOF Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext Loop For i = 1 To 1 Adodc1.Recordset.AddNew Adodc1.Recordset!Nomor = i Adodc1.Recordset.Update Next i DataGrid1.Col = 1 End Function

'jika transaksi di baris pertama telah selesai maka tambahkan satu nomor baru dibawahnya

Function Tambah_Baris()

For i = Adodc1.Recordset.RecordCount To Adodc1.Recordset.RecordCount

Adodc1.Recordset.AddNew

Adodc1.Recordset.Update Next i

End Function

Private Sub DataGrid1_KeyPress(Keyascii As Integer) Keyascii = Asc(UCase(Chr(Keyascii)))

End Sub

'jika kolom 1 (kode barang) diisi data, maka buka database dan tabel barang,

'carilah data barang yang kodenya diketik, jika tidak ditemukan maka munculkan pesan

'jika ditemukan maka tampilkan nama barang dan tarifnya

Private Sub DataGrid1_AfterColEdit(ByVal ColIndex As Integer) If DataGrid1.Col = 1 Then

Call BukaDB

RSBarang.Open "Select * from Barang where Kodebrg='" & Adodc1.Recordset!Kode & "'", Conn

If RSBarang.EOF Then

Pesan = MsgBox("Kode Barang Tidak Terdaftar") List1.SetFocus Exit Sub End If Adodc1.Recordset!Kode = RSBarang!Kodebrg Adodc1.Recordset!Nama = RSBarang!NamaBrg Adodc1.Recordset!Harga = RSBarang!Tarif DataGrid1.Col = 4 Exit Sub End If

'jika kolom diisi data maka tampilkan totalnya sebagai perkalian antara tarif dan jumlah

If DataGrid1.Col = 4 Then Adodc1.Recordset!Jumlah = Adodc1.Recordset!Jumlah Adodc1.Recordset!Total = Adodc1.Recordset!Harga * Adodc1.Recordset!Jumlah Adodc1.Recordset.Update Call Tambah_Baris Adodc1.Recordset.MoveNext DataGrid1.Col = 1 Adodc1.Recordset.MoveLast DataGrid1.Refresh Total = TotalHarga JmlItem = TotalItem End If End Sub

'prosedur untuk mencari total dalam grid Function TotalHarga()

Set TTlHarga = New ADODB.Recordset

TTlHarga.Open "select sum(Total) as JumTotal from Transaksi", Conn

TotalHarga = TTlHarga!JumTotal End Function

'prosedur untuk mencari total item dalam grid Function TotalItem()

Set TTlItem = New ADODB.Recordset

TTlItem.Open "select sum(Jumlah) as JumItem from Transaksi", Conn

TotalItem = TTlItem!Jumitem End Function

Private Sub Bersihkan() JmlItem = "" Total = "" DP = "" Sisa = "" Stok = "" End Sub Sub Kosongksm() NamaKsm = "" RayonKsm = "" KelasKsm = "" End Sub

'validasi pada pembayaran agar jangan kurang atau tidak diisi Private Sub DP_KeyPress(Keyascii As Integer)

If Keyascii = 13 Then If DP = "" Then DP = 0

Sisa = Total

ElseIf DP = Total Then Sisa = 0

ElseIf DP > Val(Total) Then

MsgBox "Kembali : " & DP - Total & "" Sisa = 0

ElseIf DP < Val(Total) Then Sisa = Total - DP End If CmdSimpan.Enabled = True CmdSimpan.SetFocus End If

If Not (Keyascii >= Asc("0") And Keyascii <= Asc("9") Or Keyascii = vbKeyBack) Then Keyascii = 0

End Sub

Private Sub CmdSimpan_Keypress(Keyascii As Integer) If Keyascii = 27 Then CmdSimpan.Enabled = False DP = "" DP.SetFocus End If End Sub

'pengisian data konsumen dalam dilakukan langsung pada form transaksi

Sub SimpanKsm() Call BukaDB

RSKonsumen.Open "select * from konsumen where nomorksm='" & NomorKsm & "'", Conn

RSKonsumen.Requery If RSKonsumen.EOF Then

Dim SQLTambahksm As String

SQLTambahksm = "Insert Into Konsumen(NomorKsm,namaksm,RayonKsm,Rayonksm)" & _

"values('" & NomorKsm & "','" & NamaKsm & "','" & RayonKsm & "','" & KelasKsm & "')"

Conn.Execute (SQLTambahksm) End If

End Sub

Private Sub CmdSimpan_Click()

If NamaKsm = "" Or RayonKsm = "" Or KelasKsm = "" Then MsgBox "data pemesan belum lengkap"

Exit Sub End If

'simpan data transaksi ke tabel pesanan (hanya satu kali) Dim Input1 As String

Input1 = "Insert Into Pesanan(NomorPsn,TanggalPsn,Totalitem,TotalHrg,DP,Sisa,Nomorksm,Kod

eksr,TglMintakrm,Ket)" & _

"values('" & NomorPsn & "','" & Tanggal & "','" & JmlItem & "','" & Total & "','" & DP & "','" & Sisa & "','" & NomorKsm & "','" & Kodeksr & "','" & TglMintakrm & "','BELUM DIKIRIM')"

Conn.Execute (Input1)

'simpan data transaksi ke tabel detail pesanan (berulang kali sebanyak data dalam grid)

RSTransaksi.Open "select * from Transaksi", Conn RSTransaksi.MoveFirst

Do While Not RSTransaksi.EOF

If RSTransaksi!Kode <> vbNullString Then Dim SQLTambahDetail As String

SQLTambahDetail = "Insert Into DetailPsn(Nomorpsn,KodeBrg,Tarif,Jumlahpsn) " & _

"values ('" & NomorPsn & "','" & RSTransaksi!Kode & "','" & RSTransaksi!Harga & "','" & RSTransaksi!Jumlah & "')"

Conn.Execute (SQLTambahDetail) End If RSTransaksi.MoveNext Loop Call SimpanKsm Bersihkan Kosongksm Combo1.SetFocus Form_Activate Call Cetak End Sub

Private Sub CmdBatal_Click() Bersihkan

Combo1.SetFocus Form_Activate End Sub

Private Sub CmdTutup_Click() Unload Me

End Sub

Function Cetak() Call BukaDB

RSPesanan.Open "select * from Pesanan Where NomorPsn In(Select Max(NomorPsn)From Pesanan)Order By NomorPsn Desc", Conn

Tampilkan.Show

Dim JmlHarga, JmlJual, JmlHasil As Double Dim MGrs As String

Tampilkan.Font = "Courier New" Tampilkan.Print

Tampilkan.Print

RSKasir.Open "select * From Kasir where KodeKsr= '" & RSPesanan!Kodeksr & "'", Conn

RSKonsumen.Open "select * From Konsumen where Nomorksm= '" & RSPesanan!NomorKsm & "'", Conn

Tampilkan.Print Tab(5); "Nomor : "; RSPesanan!NomorPsn

Tampilkan.Print Tab(5); "Tanggal : "; Format(RSPesanan!TanggalPsn, "DD-MMMM-YYYY")

Tampilkan.Print Tab(5); "Kasir : "; RSKasir!Namaksr MGrs = String$(33, "-")

Tampilkan.Print Tab(5); "Pemesan : "; RSKonsumen!NamaKsm Tampilkan.Print Tab(5); "Rayon : "; RSKonsumen!RayonKsm Tampilkan.Print Tab(5); "Kelas : "; RSKonsumen!KelasKsm Tampilkan.Print Tab(5); MGrs

RSDetailPsn.Open "select * from detailpsn Where NomorPsn='" & RSPesanan!NomorPsn & "'", Conn

RSDetailPsn.MoveFirst no = 0

Do While Not RSDetailPsn.EOF no = no + 1

Set RSBarang = New ADODB.Recordset

RSBarang.Open "select * From Barang where Kodebrg= '" & RSDetailPsn!Kodebrg & "'", Conn

RSBarang.Requery

Harga = RSBarang!Tarif

Jumlah = RSDetailPsn!JumlahPsn Hasil = Harga * Jumlah

Tampilkan.Print Tab(5); no; Space(2); RSBarang!NamaBrg

Tampilkan.Print Tab(10); RKanan(Jumlah, "##"); Space(1); "X"; Tampilkan.Print Tab(15); Format(Harga, "###,###,###");

Tampilkan.Print Tab(25); RKanan(Hasil, "###,###,###") RSDetailPsn.MoveNext

Loop

Tampilkan.Print Tab(5); MGrs

Tampilkan.Print Tab(5); "Total :";

Tampilkan.Print Tab(25); RKanan(RSPesanan!TotalHrg, "###,###,###"); Tampilkan.Print Tab(5); "Uang Muka :";

Tampilkan.Print Tab(25); RKanan(RSPesanan!DP, "###,###,###"); Tampilkan.Print Tab(5); MGrs

Tampilkan.Print Tab(5); "Sisa :";

Tampilkan.Print Tab(25); RKanan(RSPesanan!Sisa, "###,###,###"); Tampilkan.Print Tab(5); MGrs Tampilkan.Print Tampilkan.Print Tampilkan.Print Conn.Close End Function

Private Function RKanan(NData, CFormat) As String RKanan = Format(NData, CFormat)

RKanan = Space(Len(CFormat) - Len(RKanan)) + RKanan End Function

'data tersebut akan masuk ke dalam grid

'hal ini dibuat untuk memudahkan proses transaksi Private Sub List1_keyPress(Keyascii As Integer) If Keyascii = 13 Then

If DataGrid1.SelText <> Right(List1, 5) Then DataGrid1.SelText = Right(List1, 5) Adodc1.Recordset.Update

Call BukaDB

RSBarang.Open "Select * from Barang where KodeBrg='" & Right(List1, 5) & "'", Conn

RSBarang.Requery

If Not RSBarang.EOF Then

Adodc1.Recordset!Kode = RSBarang!Kodebrg Adodc1.Recordset!Nama = RSBarang!NamaBrg Adodc1.Recordset!Harga = RSBarang!Tarif Adodc1.Recordset.Update DataGrid1.SetFocus DataGrid1.Col = 4 End If End If End If End Sub

Dokumen terkait