Dalam membuat sebuah aplikasi, pada sebuah item data tertentu pasti membutuhkan penomoran unik baik untuk nomor registrasi atau nomor faktur pada aplikasi penjualan. Untuk penomoran otomatis sebenarnya dapat dilakukan dari 2 sisi, yaitu dari sisi database dimana query database yang akan menghasilkan nomor ID secara otomatis atau dari sisi aplikasi dimana menggunakan kode skrip tertentu untuk menghasilkan nomor ID secara otomatis.
Adapun pembuatan nomor ID secara otomatis dari segi aplikasi pada CodeIgniter berikut cara nya:
Asumsikan database dan tabel sudah dibuat.
Asumsikan juga instalasi codeigniter sudah sukses dan tinggal menempatkan kode untuk penomoran otomatis. Cara instalasi codeigniter dapat dibuka di link berikut.
CodeIgniter menggunakan prinsip MVC (Model View Controller)
Contoh Format ID (X01.Y02.Z03.MMYY.0001) // mmyy merupakan format bulan tanggal
skrip untuk Controller:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Register_ID extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('caridata'); // load model
}
function index(){
$nowYear = date("y");
$Nunit = $this->input->post('nilaiunit');
$Ndept = $this->input->post('nilaidept');
$Nitem = $this->input->post('nilaiitem');
$xdata=$this->caridata->nextIDNo($nowYear, $Nunit, $Ndept, $Nitem);
$data['inidata']= "<input type=\"text\" value=$xdata readonly>";
$this->load->view('register',$data);
}
}
skrip untuk Model:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Caridata extends CI_Model{
function nextIDNo($nowYear, $Nunit, $Ndept, $Nitem){
$nowMonthYear = date('my');
$this->db->select_max("id_no"); // select max (id_no)
$this->db->where("unit_loct", $Nunit); // where unit_loct
$this->db->where("dept_unit_loct", $Ndept); // and dept_unit_loct
$this->db->where("item_type", $Nitem); // and item_type
$this->db->where("DATE_FORMAT(datepublish, '%y') = ", $nowYear); // and month to year
$query = $this->db->get('id_item');
if(!empty($query)){
foreach ($query->result() as $value) {
$kode = $value->id_no; // contoh : X01.Y02.Z03.MMYY.0001
//no urut kode hanya diteruskan jika Nunit and Ndept and Nitem sudah pernah ada record sebelumnya
$lastkode = substr($kode,17,4); // urutan digit mulai ke 17 sepanjang 4 karakter
$nextkode = $lastkode + 1;
$tempnextno = $Nunit.".".$Ndept.".".$Nitem.".".$nowMonthYear.".";
$nextnoreg = $tempnextno.sprintf('%04s',$nextkode); // %04s untuk penyesuaian 4 digit no urut
}
}else{
// jika kondisi Nunit and Ndept and Nitem tidak dipenuhi maka no urut reset dari 1
$tempnextno = $Nunit.".".$Ndept.".".$Nitem.".".date('ym').".";
$nextnoreg = $tempnextno.sprintf('%04s',$nextkode);
}
return $nextnoreg;
}
}
skrip untuk view:
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<p><?php echo $inidata;?></p>
</body>
</html>
And that's all. codeingiter , php , programming , tips , web programming
No comments:
Post a Comment