membuat tabel transaksi penjualan di form, event keypress di textbox kode barang : 4. pada saat...
TRANSCRIPT
MEMBUAT TABEL TRANSAKSI PENJUALAN
A. MENDESAIN TABEL
Langkah pertama yang perlu dilakukan adalah menyiapkan tabel-tabel yang diperlukan.
Sebelumnya kita sudah membuat tabel barang, selanjutnya lengkapi tabel faktur,
isifaktur dan semIsifaktur dengan desain tabel sbb berikut :
1. Tabel tbfaktur
2. Tabel tbIsifaktur
3. Table tempisifaktur
B. MENDESAIN FORM
Sebagai antar muka transaksi penjualan, desainlah form seperti tampak pada
gambar berikut.
C. PERSIAPAN
1. Buat ClassFaktur
2. Buat ClassIsiFaktur
3. Buat ClassTempIsiFaktur
4. Siapkan Class DAPenjualan dan bersifat public.
D. SKENARIO PROGRAM PENJUALAN.
1. Ketika form pertama kali dibuka, Tanggal akan muncul otomatis membaca
data tanggal pada system computer.
Solusi :
Pada form load,
2. Ketika form pertama kali dibuka, no faktur akan generate otomatis dengan
format “FK00001”. 5 angka dibelakang adalah angka increment, yang akan
bertambah 1 secara otomatis untuk transaksi berikutnya.
Solusi :
Stored Procedurenya :
CREATE PROCEDURE [dbo].[proc_generatefakturno]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @currentnumber int
DECLARE @lastnumber int
declare @nextnumber int
DECLARE @strnextnumber varchar(5)
DECLARE @nofaktur varchar(10)
BEGIN TRY
IF EXISTS(SELECT 1 FROM tbfaktur)
BEGIN
DECLARE @lastfaktur varchar(10)
set @lastfaktur =(select max(nofaktur) from tbfaktur)
set @currentnumber=RIGHT(@lastfaktur,5)
SET @nextnumber= @currentnumber+1
set @strnextnumber=CONVERT(varchar(5),@nextnumber)
if LEN(@strnextnumber)=1
set @nofaktur= 'FK' + '0000' + @strnextnumber
if LEN(@strnextnumber)=2
set @nofaktur= 'FK' + '000' + @strnextnumber
if LEN(@strnextnumber)=3
set @nofaktur= 'FK' + '00' + @strnextnumber
if LEN(@strnextnumber)=4
set @nofaktur= 'FK' + '0' + @strnextnumber
if LEN(@strnextnumber)=5
set @nofaktur= 'FK' + @strnextnumber
END
ELSE
BEGIN
SET @nofaktur='FK00001'
END
END TRY
BEGIN CATCH
set @nofaktur=ERROR_MESSAGE()
END CATCH
select @nofaktur as hasil
END
Kode di DAPenjualan, buat method berikut:
Kode di form :
3. Ketika textbox kodebarang diinputkan kode barang, jika kode tersebut
sudah ter record dalam table barang, maka, nama barang dan harga akan
teisi otomatis dengan data dari kode barang. Jika tidak ada, maka akan
ditampilkan message “Kode Barang belum terdaftar”
Solusi :
Stored Procedurenya:
Di DAPenjualan
Kode di form, event keypress di textbox kode barang :
4. Pada saat kasir menginput jumlah beli pada textbox dan menekan enter,
maka system akan melakukan perkalian jumlah beli dan harga, sehingga
didapatkan dan ditampilkan Total Harga.
Solusi :
Kita tambahkan code di TotalHarga Keypress
5. Ketika user mengklik tombol OK, data pembelian akan disimpan
sementara di gridview, dan kasir siap untuk menginput data pembelian
berikutnya. Dimunculkan juga nilai dari total belanja. Proses diulangi
sampai barang yang dibeli customer selesai diinput.
Solusi:
Buat Stored Procedure untuk menginput data ke table temporary :
CREATE PROCEDURE [dbo].[proc_inserttempisifaktur]
@nofaktur varchar(10)
,@kodebarang varchar(50)
,@namabarang varchar(50)
,@hargasatuan decimal(18,0)
,@jumlahbeli int
,@total decimal(18,0)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @hasil varchar(max)
BEGIN TRY
INSERT INTO tempisifaktur
([nofaktur]
,[kodebarang]
,[namabarang]
,[hargasatuan]
,[jumlahbeli]
,[total])
VALUES
(@nofaktur
,@kodebarang
,@namabarang
,@hargasatuan
,@jumlahbeli
,@total)
set @hasil='1'
END TRY
BEGIN CATCH
set @hasil=ERROR_MESSAGE()
END CATCH
select @hasil as hasil
END
GO
Buat code di DAPenjualan untuk mengeksekusi stored procedure diatas.
Untuk procedure FillGrid, diperlukan akses ke database. Maka sebelumnya harus
disiapkan juga stored procedure dan Code di DAPenjualan.
Stored Procedure untuk ambil data temporary
Kode di DAPenjualan
6. Ketika kasir sudah selesai meregister (menginput) semua kode barang,
maka customer akan memberikan uang untuk pembayaran. Ada kalanya
kasir perlu menghitung jumlah kembaliannya. Kita buatkan fungsi untuk
menghitung kembalian. Ada di textbox JumlahUang, pada event keypress
kita tambahkan kode sbb:
7. Ketika transaksi selesai dilakukan, maka kasir akan menekan tombol simpan,
untuk memastikan data tersimpan dalam database. Proses yang terjadi pada
tombol simpan antara lain :
a. Menyimpan data ke table faktur.
Stored Procedure :
CREATE PROCEDURE [dbo].[proc_insertfaktur]
-- Add the parameters for the stored procedure here
@nofaktur varchar(10)
,@total decimal(18,0)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @hasil varchar(10)
BEGIN TRY
INSERT INTO [dbtoko].[dbo].[tbfaktur]
([nofaktur]
,[tanggal]
,[total])
VALUES
(@nofaktur, GETDATE(), @total)
set @hasil='1'
END TRY
BEGIN CATCH
set @hasil=ERROR_MESSAGE()
END CATCH
select @hasil as hasil
END
GO
Kode di DAPenjualan:
b. Menyimpan data ke table isifaktur
Stored Procedure :
Kode di DAPenjualan :
d. Kode lengkap di Form, dimulai di button simpan event click. Kode dan
procedure sbb :