Menyambung artikel sebelumnya di
http://it.maranatha.edu/artikel/5-hal-penting-no…sebuah-transaksi/ ‎  mengenai pentingnya penomoran transaksi.  Kali ini dibahas mengenai cara membuat autonumber reset periodik atau nomor kembali ke awal secara periodik.

Autonumber dapat pula digunakan untuk pencatatan nomor dokumen transaksi seperti Nomor Dokumen Permintaan Barang, Nomor Pesanan Barang, Nomor Penerimaan Barang, Nomor Pengeluaran Barang, Nomor Pembelian, Nomor Kontra Bon, dsb.

Penomoran ini memiliki pola yang khas. Contoh :
 Penomoran Dokumen Permintaan Barang : SPP-Tahun-NomorUrut
 Penomoran Dokumen Pesanan Barang : PO-Tahun-NomorUrut

Dua Jenis Autonumber

Penomoran ini tergantung dari kebijakan perusahaan setempat. Namun pada prinsipnya Nomor Urut
dapat dibagi menjadi 2 kelompok, yaitu :
1) Nomor Urut berlanjut terus (tanpa reset ke semula)
2) Nomor Urut Reset Periodik, reset biasanya mengambil pola sbb :

     Nomor Urut dengan reset Harian
     Nomor Urut dengan reset Bulanan
     Nomor Urut dengan reset Tahunan

Penomoran dengan Nomor Urut Reset Tahunan

Nomor Urut ini akan direset otomatis ke nomor awal (seed) saat tanggal komputer berada di tahun yang
baru. Contoh penomoran dokumen pesanan barang dengan pola: PO-Tahun-NomorUrut.
Tabel : TbPO

NomorPO TGLPO KODESUPPLIER
PO-2008-00001 16/09/2008 S-00001
PO-2008-00002 16/09/2008 S-00001
PO-2008-00003 17/09/2008 S-00002

Saat tahun berada di Tahun 2009, maka NomorPO akan direset kenomor baru yaitu menjadi :

PO-2009-00001, PO-2009-00002, PO-2009-00003, dst.

Jadi saat akan insert record baru sistem akan memeriksa nomor terakhir di tahun tersebut, kemudian tambahkan 1 (asumsi increment 1). Jika tidak ada nomor terakhir ditahun tersebut maka dapat dipastikan nomor akan reset kenomor semula.

 

Mempersiapkan Tabel tbPO (Purchase Order = Pembelian)

Siapkan sebuah tabel tbPO dengan atribut NomorPO dengan tipe data varchar(13), TglPO date, KodeSupplier varchar(10).  Lebar NomorPO dibuat 13 dengan komposisi :

  • 3 digit untuk PO-
  • 4 digit untuk tahun
  • 1 digit untuk –
  • 5 digit untuk nomor urut

Tabel Purchase Order

 

Store Procedure Insert dengan NomorUrut Reset Tahunan

Untuk Pembuatan Store Procedure Insert pada table TbPO sbb:

 

CREATEPROCEDURE SP_TambahTBPO

@TglPO datetime, @KodeSupplier varchar(10)
AS
BEGIN
DECLARE @NOAKHIR INT
DECLARE @NOBaru INT
DECLARE @NomorPO varchar(13)

–1.Cari Nomor Akhir
select @NoAkhir =convert(int,Max(right(NomorPO,5)))
from tbPO
where substring(NomorPO,4,4) = convert(char(4),Datepart(yyyy,@TglPO)))

–2.Cari Nomor Baru
if @NoAkhir isnull
Set @Nobaru=1
else
Set @NoBaru = @NoAkhir + 1

Set @NomorPO =‘PO-‘ + convert(char(4),Datepart(yyyy,@TglPO)) + ‘-‘ +
RIGHT(‘00000’+Convert(varchar, @NoBaru), 5)

–3.Insert Data baru
Insert tbPO (NomorPO, TglPO, KodeSupplier)Values(@NomorPO, @TglPO, @KodeSupplier)
END

 

Compile Store Procedure – Berhasil

 

Eksekusi Store Procedure, untuk menambah data baru untuk TAHUN 2008

 

 

Eksekusi Store Procedure, untuk menambah data baru TAHUN 2009

Selamat mencoba.  Tiga langkah yang perlu diingat untuk membuat Autonumber atau penomoran otomatis yang berurutan.  (1) Cari Nomor Terakhir   (2) Cari Nomor Baru  (3) Insert Data