/**
  * Get total referral fee by all selected solution
  * $coll, ID of each solutions
  */
 public function totalRefferalFee($coll)
 {
     $data = Solution::whereIn('id', $coll)->sum('fee');
     if ($data) {
         return $data;
     }
 }
 public function ajaxlist()
 {
     $field_names = ['sort_order', 'name', 'price', 'fee'];
     # init query object
     $query = Solution::query();
     # setup ordering
     if (isset($_POST['order'])) {
         # TO-DO: add this code as library
         # this is works only for single ordering
         $field_key = $_POST['order'][0]['column'];
         $field_ord = $_POST['order'][0]['dir'];
         $field_name = $field_names[$field_key];
         $query->orderBy($field_name, $field_ord);
     }
     # get total
     $total = $query->count();
     # add offset
     $query->offset($_POST['start']);
     # add limit
     $query->take($_POST['length']);
     # get data
     $rows = $query->get();
     $data = ['recordsTotal' => $total, 'recordsFiltered' => $total, 'data' => []];
     if (!$rows->isEmpty()) {
         foreach ($rows as $row) {
             # TO-DO add this to library
             # create flexibility on assigning data
             $fields = [];
             for ($i = 0, $c = count($field_names); $i < $c; $i++) {
                 $fields[] = $row->{$field_names}[$i];
             }
             # Add action button here, on last column
             $fields[] = $this->list_action_button($row);
             $data['data'][] = $fields;
         }
     }
     return json_encode($data);
 }