Advertisement
kura2yamato

driver valas_datatable

Feb 23rd, 2018
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.08 KB | None | 0 0
  1.     function valas_datatable($params, $debug = FALSE) {
  2.         ob_start();
  3.         $CI = & get_instance();
  4.         $result = array(
  5.             'raw' => array(),
  6.             'data' => array(),
  7.             'sql' => array(),
  8.             'time' => array(),
  9.             'params' => $params,
  10.             'head' => array()
  11.         );
  12.         $get = isset($params['get']) ? $params["get"] : FALSE;
  13.  
  14.         /* Konfigurasi datatable */
  15.         $result['draw'] = isset($get['draw']) ? $get['draw'] : rand(10000, 99999);
  16.         $result['recordsTotal'] = $result['recordsFiltered'] = 0; //default
  17.         $result['time']['start'] = microtime(); //wajib ada.. buat debug proses mana yg lambat
  18.         $result['recordsTotal'] = $result['recordsFiltered'] = $CI->items_db
  19.             ->valas_get_data(array(), 1, 0, TRUE);
  20.         $start = isset($get['start']) ? $get['start'] : 0;
  21.         $limit = isset($get['length']) ? $get['length'] : 10;
  22.  
  23.         $data_city = array();
  24.         $filters = array();
  25.  
  26.         /* Konfigurasi sort by */
  27.         $result['time']['sort 1'] = microtime();
  28.         $column = "u_modified";
  29.         if (isset($get['order'][0])) {
  30.             $pos_column = $get['order'][0]['column'];
  31.             $filters['order_dir'] = $get['order'][0]['dir'];
  32.             if ($pos_column == 0) {
  33.                 $column = 'item_code';
  34.             }
  35.             if ($pos_column == 1) {
  36.                 $column = 'item_title';
  37.             }
  38.             if ($pos_column == 4) {
  39.                 $column = 'item_status';
  40.             }
  41.  
  42.             $filters['order_by'] = array($column, $filters['order_dir']);
  43.         }
  44.  
  45.         $result['time']['sort 2'] = microtime();
  46.  
  47.         /* ===== Konfigurasi Search ===== */
  48.         $SEARCH = $get['search']['value'];
  49.         if (!isset($params['limit'])) {
  50.             if (!isset($SEARCH)) { // Apabila tidak ada pencarian
  51.                 // Perhatikan bahwa dalam model user perlu ada perbaikan
  52.                 $raw_data = $CI->items_db
  53.                     ->valas_get_data($filters, $limit, $start, FALSE, true);
  54.                 $result['time']['get all'] = microtime();
  55.                 $result['raw']['r'] = $raw_data;
  56.                 $result['sql'][] = isset($raw_data['sql']) ? $raw_data['sql'] : '';
  57.                 $raw_data = $raw_data['data'];
  58.             } else {
  59.                 $filters['datatable_search'] = $SEARCH;
  60.                 $raw_data = $CI->items_db->_get_data($filters, $limit, $start, FALSE, true);
  61.  
  62.                 $result['raw'][] = $raw_data;
  63.                 $result['sql'][] = isset($raw_data['sql']) ? $raw_data['sql'] : FALSE;
  64.                 $raw_data = $raw_data['data'];
  65.                 $result['recordsFiltered'] = $CI->items_db
  66.                     ->valas_get_data($filters, 1, 0, TRUE);
  67.                 // Bila ada pencarian
  68.                 // Bila dirasa menyulitkan.. kerjakan dalam driver ini. pisahkan dalam fungsi berbeda
  69.                 // Sebisa mungkin tidak memanfaatkan $this->db_main->query() !!!
  70.             }
  71.         } else {
  72.             $raw_data = array();
  73.         }
  74.  
  75.         /* ===== Parse Data ===== */
  76.         $result['time']['parse begin'] = microtime();
  77.         $n = 0;
  78.         $result['head'] = array(
  79.             'kode', 'nama produk', 'stock', 'harga', 'status','aksi'
  80.         );
  81.  
  82.         $data = array();
  83.         foreach ($raw_data as $id_account => $row) {
  84.             $url = site_url('user/settings/items/add/' . $row['id']);
  85.             $aksi = '<a href="' . $url . '" class="btn btn-default">'; //user/settings/categories/add/id
  86.             $aksi .= "EDIT</a>";
  87.             $status = '-';
  88.             if ($row['item_status'] == 0) {
  89.                 $status = 'tidak aktif';
  90.             }
  91.             if ($row['item_status'] == 1) {
  92.                 $status = 'Aktif';
  93.             }
  94.             if ($row['item_status'] == -1) {
  95.                 $status = 'Di Hapus';
  96.             }
  97.             //$cat_data = $CI->settings_db->category_get_by_field($row['item_cat'], 'cat_code');
  98.             $tmp = array(
  99.                 //$row['id'],
  100.                 $row['item_code'],
  101.                 $row['item_title'],
  102.                 0,
  103.                 $row['cat_title'],
  104.                 $status,
  105.                 $aksi
  106.             );
  107.             $tmp['raw'] = array($row);
  108.  
  109.             // Memakai site_url karena masalah intern saja. Jangan diganti base_url
  110.             $data[] = $tmp;
  111.             $row2 = $row;
  112.             // $row2['testing']=true;
  113.             // db_backup('account',$row['u_id'],$row,$row2);
  114.             $n++;
  115.         }
  116.  
  117.         //  $result['raw'] = array($filters, $raw_data);
  118.         $result['time']['parse end'] = microtime();
  119.         $result['data'] = $data;
  120.         $result['time']['end'] = microtime();
  121.  
  122.         if ($debug)
  123.             $result['debug'] = $params;
  124.  
  125.         unset($result['raw']);
  126.         unset($result['time']);
  127.         unset($result['sql']);
  128.         unset($result['params']);
  129.  
  130.         $out1 = ob_get_contents();
  131.         if ($out1 != '') {
  132.             $result['warning'] = explode("\n", $out1);
  133.         }
  134.         ob_end_clean();
  135.         ksort($result);
  136.         return $result;
  137.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement