Anda di halaman 1dari 3

Membuat Kode unik berdasarkan tanggal dengan

Codeigniter
Buat database dengan mengeksekusi query berikut:

1CREATE DATABASE db_invoice;


2USE db_invoice;

4CREATE TABLE tbl_invoice(
5no_invoice VARCHAR(15) PRIMARY KEY,
6tanggal TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)ENGINE INNODB;
7

Instalasi codeigniter

Extract codeigniter ke C:wampwww (jika menggunakan wampserver) atau C:xampphtdocs (jika


menggunakan XAMPP). Kemudian rename project codeigniter anda sesuai dengan project Anda.
Disini penulis memberi nama ci_invoice.

Konfigusi beberapa file berikut:

Buka application/config/autoload.php atur menjadi seperti berikut:

1$autoload['libraries'] = array('database');
2$autoload['helper'] = array('url');

Buka application/config/config.php dan atur menjadi seperti berikut:

1$config['base_url'] = 'http://localhost/ci_invoice/';

Terakhir buka application/config/database.php

1 $active_group = 'default';
2 $query_builder = TRUE;
3  
4 $db['default'] = array(
5     'dsn'   => '',
6     'hostname' => 'localhost',
7     'username' => 'root',
8     'password' => '',
9     'database' => 'db_invoice',
10    'dbdriver' => 'mysqli',
11    'dbprefix' => '',
12    'pconnect' => FALSE,
13    'db_debug' => (ENVIRONMENT !== 'production'),
14    'cache_on' => FALSE,
15    'cachedir' => '',
16    'char_set' => 'utf8',
17    'dbcollat' => 'utf8_general_ci',
18    'swap_pre' => '',
19    'encrypt' => FALSE,
20    'compress' => FALSE,
21    'stricton' => FALSE,
22    'failover' => array(),
23    'save_queries' => TRUE
24);

4. Buat controller dengan nama Invoice.php dengan kode sebagai berikut:

1 <?php
2 class Invoice extends CI_Controller{
3     function __construct(){
4         parent::__construct();
5         $this->load->model('m_invoice');
6     }
7  
8     function index(){
9         $x['invoice']=$this->m_invoice->get_no_invoice();
10        $this->load->view('v_invoice',$x);
11    }
12    function simpan_invoice(){
13        $no_invoice=$this->input->post('no_invoice');
14        $this->m_invoice->simpan_invoice($no_invoice);
15        redirect('invoice');
16    }
17 
18}

5. Buat model dengan nama M_invoice.php dengan kode sebagai berikut:

1 <?php
2 class M_invoice extends CI_Model{
3  
4     function get_no_invoice(){
5         $q = $this->db->query("SELECT MAX(RIGHT(no_invoice,4)) AS kd_max
6 FROM tbl_invoice WHERE DATE(tanggal)=CURDATE()");
7         $kd = "";
8         if($q->num_rows()>0){
9             foreach($q->result() as $k){
10                $tmp = ((int)$k->kd_max)+1;
11                $kd = sprintf("%04s", $tmp);
12            }
13        }else{
14            $kd = "0001";
15        }
16        date_default_timezone_set('Asia/Jakarta');
17        return date('dmy').$kd;
18    }
19 
    function simpan_invoice($no_invoice){
20        $hasil=$this->db->query("INSERT INTO tbl_invoice (no_invoice) VALUES
21('$no_invoice')");
22        return $hasil;
23    }
24 
}

6. Buat view dengan nama v_invoice.php dengan kode sebagai berikut:

<!DOCTYPE html>
1
<html>
2
<head>
3
    <title>Invoice</title>
4
</head>
5
<body>
6
    <form action="<?php echo base_url().'index.php/invoice/simpan_invoice'?
7
>" method="post">
8
        <input type="text" name="no_invoice" value="<?php echo $invoice;?>">
9
        <button type="submit">Simpan</button>
10
    </form>
11
</body>
12
</html>

7. Jalankan projectnya dengan mengunjungi URL berikut:

1http://localhost/ci_invoice/index.php/invoice/

klik tombol simpan dan dan lihat hasilnya!, silahkan ganti tanggal pada komputer anda untuk
melihat perbedaannya.

Anda mungkin juga menyukai