azmicolejr

Card - Model

Jan 7th, 2022 (edited)
718
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.55 KB | None | 0 0
  1. -- Model --
  2.  
  3. <?php
  4.     var $column = array(
  5.         'modified_at', 'no_nota_pelunasan', 'nota_spk', 'nama_customer', 'no_hp', 'plat_nomor', 'jenis_mobil', 'nama_produk', 'validUntil', 'maintenance_notes'
  6.     );
  7.  
  8. private function generate_query_by_nota_pelunasan($count = false)
  9.     {
  10.         $this->db->select("
  11.             pelunasan.id_pelunasan, spk.id_spk, spk_detail.produk_id,  
  12.             pelunasan.modified_at, pelunasan.no_nota_pelunasan, spk.nota_spk, spk.nama_customer, spk.no_hp, spk.plat_nomor, spk.jenis_mobil,
  13.             produk.nama_produk,
  14.             spk_detail.spk_valid_until AS validUntil,
  15.             spk_detail.spk_maintenance_notes AS maintenance_notes
  16.         ");
  17.  
  18.         $this->db->from('spk');
  19.  
  20.         $this->db->join("spk_detail", "spk.id_spk = spk_detail.spk_id");
  21.         $this->db->join("produk", "spk_detail.produk_id = produk.id_produk");
  22.         $this->db->join("pelunasan", "spk.id_spk = pelunasan.pelunasan_nota_spk", 'left');
  23.  
  24.         $this->db->where('pelunasan.is_delete', 0);
  25.         $this->db->where('spk.is_delete', 0);
  26.  
  27.         $i = 0;
  28.  
  29.         foreach ($this->column as $item) {
  30.             if ($item == 'validUntil') {
  31.                 $item = 'spk_valid_until';
  32.             }
  33.             if ($item == 'maintenance_notes') {
  34.                 $item = 'spk_maintenance_notes';
  35.             }
  36.             if ($_POST['search']['value']) // if datatable send POST for search
  37.             {
  38.                 if (!$count) {
  39.                     if ($i === 0) // first loop
  40.                     {
  41.                         $this->db->group_start();
  42.                         $this->db->like($item, $_POST['search']['value']);
  43.                     } else {
  44.                         $this->db->or_like($item, $_POST['search']['value']);
  45.                     }
  46.  
  47.                     if (count($this->column) - 1 == $i)
  48.                         $this->db->group_end(); //close bracket
  49.                 }
  50.             }
  51.             $column[$i] = $item; // set column array variable to order processing
  52.             $i++;
  53.         }
  54.  
  55.         $this->db->get();
  56.         $subQuery1 = $this->db->last_query();
  57.  
  58.         $this->db->select('
  59.             pelunasan.id_pelunasan, spk.id_spk, pelunasan_detail.produk_id,
  60.             pelunasan.modified_at, pelunasan.no_nota_pelunasan, spk.nota_spk, spk.nama_customer, spk.no_hp, spk.plat_nomor, spk.jenis_mobil,
  61.             produk.nama_produk,
  62.             pelunasan_detail.pelunasan_valid_until AS validUntil,
  63.             pelunasan_detail.pelunasan_maintenance_notes AS maintenance_notes
  64.         ');
  65.  
  66.         $this->db->from('pelunasan');
  67.  
  68.         $this->db->join("pelunasan_detail", "pelunasan.id_pelunasan = pelunasan_detail.pelunasan_id");
  69.         $this->db->join("produk", "pelunasan_detail.produk_id = produk.id_produk");
  70.         $this->db->join("spk", "pelunasan.pelunasan_nota_spk = spk.id_spk");
  71.  
  72.         $this->db->where('pelunasan.is_delete', 0);
  73.         $this->db->where('spk.is_delete', 0);
  74.  
  75.         $i = 0;
  76.  
  77.         foreach ($this->column as $item) {
  78.             if ($item == 'validUntil') {
  79.                 $item = 'pelunasan_valid_until';
  80.             }
  81.             if ($item == 'maintenance_notes') {
  82.                 $item = 'pelunasan_maintenance_notes';
  83.             }
  84.             if ($_POST['search']['value']) // if datatable send POST for search
  85.             {
  86.                 if (!$count) {
  87.                     if ($i === 0) // first loop
  88.                     {
  89.                         $this->db->group_start();
  90.                         $this->db->like($item, $_POST['search']['value']);
  91.                     } else {
  92.                         $this->db->or_like($item, $_POST['search']['value']);
  93.                     }
  94.  
  95.                     if (count($this->column) - 1 == $i)
  96.                         $this->db->group_end(); //close bracket
  97.                 }
  98.             }
  99.             $column[$i] = $item; // set column array variable to order processing
  100.             $i++;
  101.         }
  102.  
  103.         $this->db->get();
  104.         $subQuery2 = $this->db->last_query();
  105.  
  106.         $order = " ";
  107.  
  108.         if (isset($_POST['order'])) {
  109.             if ($column[$_POST['order']['0']['column']] == 'pelunasan_maintenance_notes') {
  110.                 $column[$_POST['order']['0']['column']] = "maintenance_notes";
  111.             }
  112.             if ($column[$_POST['order']['0']['column']] == 'pelunasan_valid_until') {
  113.                 $column[$_POST['order']['0']['column']] = 'validUntil';
  114.             }
  115.             if ($column[$_POST['order']['0']['column']] == 'spk_maintenance_notes') {
  116.                 $column[$_POST['order']['0']['column']] = "maintenance_notes";
  117.             }
  118.             if ($column[$_POST['order']['0']['column']] == 'spk_valid_until') {
  119.                 $column[$_POST['order']['0']['column']] = 'validUntil';
  120.             }
  121.             $order = " order by " . $column[$_POST['order']['0']['column']] . " " . $_POST['order']['0']['dir'];
  122.         }
  123.  
  124.         return $subQuery1 . " union all " . $subQuery2 . $order;
  125.     }
  126.  
  127.     public function get_datatables_by_nota_pelunasan()
  128.     {
  129.         $query = $this->generate_query_by_nota_pelunasan();
  130.  
  131.         $limit = "";
  132.         if (isset($_POST['length']) && $_POST['length'] != -1)
  133.             $limit = " limit " . $_POST['start'] . "," . $_POST['length'];
  134.         return $this->db->query($query . " " . $limit)->result();
  135.     }
  136.  
  137.     public function count_filtered_by_nota_pelunasan()
  138.     {
  139.         $query_tmp = $this->generate_query_by_nota_pelunasan();
  140.         $query = $this->db->query($query_tmp);
  141.         return $query->num_rows();
  142.     }
  143.  
  144. ?>
Add Comment
Please, Sign In to add comment