Generate Nomor Surat Otomatis di PHP
Selamat Siang.. Salam Coding and Happy Coding sahabat semua.. Pada kesempatan ini admin akan share Cara Membuat No Surat atau No Faktur dengan PHP.
Tentu nya sering kita jumpai No Surat Otomatis Yang biasanya ada pada Surat Penawaran, Surat Perjalaan Dinas, Surat Tugas , dan lain sebagainya.. Adapun format no surat yang ada, tentunya menyesuaikan dengan kegunaan masing-masing surat.
Misalnya Format No Surat yang diinginkan adalah :
20/SPT/VIII/2018
Ketentuan :
20 : adalah nomor surat yang akan merest ke 01 lagi jika awal bulan
SPT : string tetap
VIII : adalah bulan sekarang dalam bentuk romawi
2018 : adalah tahun sekarang
Tentunya dalam pembuatan Aplikasi kita harus membuat fungsi yang dapat meng-Generate Otomatis no surat tersebut. Dengan begitu tentu dibutuhkan logika dan script yang dapat menangani masalah dalam pembuatan no surat seperti diatas.
Nah pada kesempatan kali ini kita akan berbagi source code No Surat otomatis, yang tentunya dapat dimodifikasi untuk disesuaikan dengan kebutuhan kita.
Kembali pada Contoh No Surat 20/SPT/VIII/2018 , kita akan membuat Code PHP nya dengan berdasarkan ketentuan diatas :
Untuk Desain tabel di database, Misalnya kita mempunya tabel di database dengan nama "transaksi" , kira-kira struktur tabelnya seperti ini :
--id_transaksi
--kode_transaksi
--nama_transaksi
--tanggal
Nah.. Nomor tersebut akan kita simpan di dalam field kode_transaksi di tabel "transaksi" , Ok untuk kode PHP nya akan saya jelaskan dibawah ini :
Pertama Kita dapat membuat variabel untuk format kode yang mudah dan bisa kita dapatkan secara langsung, seperti :
$bulan = date('n');
$tahun = date ('Y');
$nomor = "/SPT/".$bulan."/".$tahun;
jika kita jalankan variabel $nomor , tentu kita akan mendapatkan output :
/SPT/02/2018
Sampai disini kita harus merubah bulan dalam bentuk romawi, karna format sesuai ketentuan diatas, bulan dalam bentuk romawi.. pada artikel sebelumnya saya sudah menjelaskan Merubah Format Bulan Menjadi Romawi di PHP, kita bisa terapkan disini , dengan memanggil fungsi Romawi :
fungsi_romawi.php
<?php
function getRomawi($bln){
switch ($bln){
case 1:
return "I";
break;
case 2:
return "II";
break;
case 3:
return "III";
break;
case 4:
return "IV";
break;
case 5:
return "V";
break;
case 6:
return "VI";
break;
case 7:
return "VII";
break;
case 8:
return "VIII";
break;
case 9:
return "IX";
break;
case 10:
return "X";
break;
case 11:
return "XI";
break;
case 12:
return "XII";
break;
}
}
?>
untuk membuat bulan romawi , kita rubah sedikit code penomoran yang sudah ada dengan memanggil fungsi_romawi.php ,
sehingga kodenya menjadi :
<?php
include "fungsi_romawi.php";
$bulan = date('n');
$romawi = getRomawi($bulan);
$tahun = date ('Y');
$nomor = "/SPT/".$romawi."/".$tahun;
?>
Dengan Code diatas maka Output kode yang kita dapatkan akan menjadi :
/SPT/II/2018
Dengan code diatas,, kita sudah mendapatkan format bulan , dan tahun otomatis , sesuai dengan bulan dan tahun berjalan. Sekarang , kita perlu membuat nomor surat yang akan merest ke 01 lagi jika awal bulan , Disini kita perlu meggunakan query di database.
Source Code Final generate_id.php :
<?php
include "fungsi_romawi.php";
$bulan = date('n');
$romawi = getRomawi($bulan);
$tahun = date ('Y');
$nomor = "/SPT/".$romawi."/".$tahun;
// membaca kode terbesar dari penomoran yang ada didatabase berdasarkan tanggal
$query = "SELECT max(kode_transaksi) as maxKode FROM transaksi WHERE month(tanggal)='$bulan'";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);
$no= $data['maxKode'];
$noUrut= $no + 1;
//Membuat Nomor dengan awalan depan 0 misalnya , 01,02
//Jika ingin 003 ,tinggal ganti %03
$kode = sprintf("%02s", $noUrut);
$nomorbaru = $kode.$nomor;
?>
Untuk keterangan code sudah saya include kan pada script diatas ya. Nah Output yang akan dihasilkan adalah 01/SPT/II/2018
Dengan Code diatas, kita akan mendapatkan nomor surat yang akan merest ke 01 lagi jika awal bulan , Kemudian Tahun dan Bulannya akan dinamis berganti sesuai dengan bulan dan tahun yang sedang berjalan .
Demikian tutorial ini semoga dapat bermanfaat.