Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
- class Warranty_card_model extends CI_Model
- {
- var $table = 'pelunasan';
- var $id = 'id_pelunasan';
- var $column = array(
- 'no_nota_pelunasan', 'nota_spk', 'nama_customer', 'no_hp', 'nama_produk', 'valid_until'
- );
- private function _get_datatables_query()
- {
- $this->db->select('
- produk.nama_produk,
- spk.id_spk, spk.nota_spk, spk.nama_customer, spk.no_hp,
- spk_detail.spk_valid_until as valid_until,
- pelunasan.id_pelunasan, pelunasan.no_nota_pelunasan, pelunasan.tgl_pelunasan,
- pelunasan_detail.pelunasan_valid_until as valid_until
- ');
- $this->db->from($this->table); // pelunasan
- $this->db->join('spk', 'pelunasan.pelunasan_nota_spk = spk.id_spk');
- $this->db->join(
- "(SELECT spk_id, produk_id, spk_valid_until, spk_maintenance_notes FROM spk_detail
- UNION ALL
- SELECT pelunasan_id, produk_id, pelunasan_valid_until, pelunasan_maintenance_notes FROM pelunasan_detail
- INNER JOIN pelunasan ON pelunasan_detail.pelunasan_id = pelunasan.id_pelunasan
- ) spk_detail",
- 'spk.id_spk = spk_detail.spk_id'
- );
- $this->db->join('produk', 'spk_detail.produk_id = produk.id_produk');
- $this->db->where('pelunasan.is_delete', 0);
- $this->db->where('spk.is_delete', 0);
- $i = 0;
- foreach ($this->column as $item)
- {
- if ($_POST['search']['value']) // if datatable send POST for search
- {
- if ($i === 0) // first loop
- {
- $this->db->group_start();
- $this->db->like($item, $_POST['search']['value']);
- } else {
- $this->db->or_like($item, $_POST['search']['value']);
- }
- if (count($this->column) - 1 == $i)
- $this->db->group_end(); //close bracket
- }
- $column[$i] = $item; // set column array variable to order processing
- $i++;
- }
- if (isset($_POST['order']))
- {
- $this->db->order_by($column[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
- } else if (isset($this->order)) {
- $order = $this->order;
- $this->db->order_by(key($order), $order[key($order)]);
- }
- }
- public function get_datatables()
- {
- $this->_get_datatables_query();
- if ($_POST['length'] != -1)
- $this->db->limit($_POST['length'], $_POST['start']);
- $query = $this->db->get();
- return $query->result();
- }
- public function count_filtered()
- {
- $this->_get_datatables_query();
- $query = $this->db->get();
- return $query->num_rows();
- }
- public function count_all()
- {
- $this->_get_datatables_query();
- return $this->db->count_all_results();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement