Studi kasus 1 :
Berikut pola penomoran reset per tahun, setiap gudang punya nomor urut sendiri (Gudang G1 dan G2)
| NomorPO | TGLPO | GUDANG | KODESUPPLIER |
| PO-2008-G1-00001 | 16/09/2008 | G1 | S-00001 |
| PO-2008-G1-00002 | 16/09/2008 | G1 | S-00001 |
| PO-2008-G2-00001 | 17/09/2008 | G2 | S-00002 |
| PO-2008-G2-00002 | 17/10/2008 | G2 | S-00002 |
| PO-2009-G1-00001 | 17/10/2009 | G1 | S-00002 |
| PO-2009-G2-00001 | 17/10/2009 | G2 | S-00002 |
Studi kasus 2 :
Berikut pola penomoran reset per Awalan Nama Barang, Untuk Awalan Barang A nomornya adalah A001 sd A999, Awalan Barang B adalah B001 sd/ B999, dst untuk awalan lainnya.
| Nama Barang | Kode Barang | Stok |
| Meja Biro | M001 | 5 |
| Meja Makan | M002 | 3 |
| Kursi Tamu | K001 | 2 |
| Kursi Goyang | K002 | 4 |
| Karpet | K003 | 3 |
| Mantel | M003 | 4 |
| Bath Tube Toto 234 | B001 | 2 |
JAWABAN !!!
1.
Create PROCEDURE SP_TambahTBPOGudang
@TglPO datetime, @Gudang varchar(10), @KodeSupplier varchar(50)
AS
BEGIN
DECLARE @NOAKHIR INT
DECLARE @NOBaru INT
DECLARE @NomorPO varchar(20)
--1.Cari Nomor Akhir
select @NoAkhir = convert(int, Max(right(NomorPO,5)))
from tbPOGudang
where substring(NomorPO,4,4) = convert(char(4), Datepart(yyyy, @TglPO)) AND
substring(NomorPO,9,2) = @Gudang
--2.Cari Nomor Baru
if @NoAkhir is null
Set @Nobaru=1
else
Set @NoBaru = @NoAkhir + 1
Set @NomorPO = 'PO-' + convert(char(4), Datepart(yyyy, @TglPO )) + '-' + @Gudang + '-' +
RIGHT('00000'+Convert(varchar, @NoBaru), 5)
--3.Insert Data baru
Insert tbPOGudang (NomorPO, TglPO, Gudang, KodeSupplier) Values (@NomorPO, @TglPO, @Gudang, @KodeSupplier)
END
EXEC SP_TambahTBPOGudang '09/10/2009','G2','S-00001'
SELECT * FROM TbPOGudang
Delete from TbPOGudang
----
2.
CREATE PROCEDURE SP_TambahBarang
@NamaBarang varchar (50), @stok int
AS
BEGIN
DECLARE @NOAKHIR INT
DECLARE @NOBaru INT
DECLARE @KodeBarang varchar(10)
--1.Cari Nomor Akhir
select @NoAkhir = convert(int, Max(right(KodeBarang,3)))
from Barang
where left(Namabarang,1) = left(@NamaBarang,1)
--2.Cari Nomor Baru
if @NoAkhir is null
Set @Nobaru=1
else
Set @NoBaru = @NoAkhir + 1
Set @KodeBarang = Left(@Namabarang, 1) + RIGHT('000'+ Convert(varchar, @NoBaru), 3)
--3.Insert Data baru
Insert Barang (KodeBarang, NamaBarang, Stok) Values (@KodeBarang, @NamaBarang, @stok)
END
EXEC SP_TambahBarang 'Bath Tube BMW', 3
SELECT * FROM Barang
Delete from Barang
Tidak ada komentar:
Posting Komentar