Пример #1
0
 /**
  * [getWorklogData - Fetches worklog db data and returns a json object compatible with DT]
  * @param  [string] $type   [processed/unprocessed values]
  * @return [json]           [DT compatible object]
  */
 public function getWorklogData($type, $company = null)
 {
     $Model = 'Werklog';
     $num_skip = 0;
     $num_items = 10;
     $recordsTotal = 0;
     $recordsFiltered = 0;
     // check get vars
     if (isset($_GET['start'])) {
         $num_skip = (int) $_GET['start'];
     }
     if (isset($_GET['length'])) {
         $num_items = (int) $_GET['length'];
     }
     if (isset($_GET['search'])) {
         $search_value = $_GET['search']['value'];
     }
     $all_werklogs = Werklog::orderBy('worklogs.id', 'DESC');
     if ($type === 'unprocessed') {
         $all_werklogs->whereNull('worklogs.strippenkaarten_id')->WhereRaw('(worklogs.invoice_id IS NULL OR worklogs.invoice_id=0)');
     } elseif ($type === 'processed') {
         $all_werklogs->whereNotNull('worklogs.strippenkaarten_id')->orWhereRaw('(worklogs.invoice_id IS NOT NULL AND worklogs.invoice_id != 0)');
     } else {
         error_log('Error: No type specified');
     }
     if ($company !== null) {
         $all_werklogs->where('worklogs.company_id', '=', (int) $company->id);
         if (!empty($search_value)) {
             $all_werklogs->join('projects', 'worklogs.project_id', '=', 'projects.id')->whereRaw("(projects.name LIKE '%" . $search_value . "%')");
         }
     } else {
         if (!empty($search_value)) {
             $all_werklogs->join('companies', 'worklogs.company_id', '=', 'companies.id')->join('projects', 'worklogs.project_id', '=', 'projects.id')->whereRaw("(projects.name LIKE '%" . $search_value . "%' OR companies.bedrijfsnaam LIKE '%" . $search_value . "%')");
         }
     }
     $recordsTotal = $all_werklogs->count();
     $recordsFiltered = $recordsTotal;
     if ($num_skip > 0) {
         $all_werklogs->skip($num_skip);
     }
     $all_werklogs = $all_werklogs->take($num_items)->get();
     $data = [];
     foreach ($all_werklogs as $werklog) {
         // load relations
         $load_curr_company = $werklog->company;
         $load_curr_project = $werklog->project;
         $load_curr_user = $werklog->user;
         $load_curr_strippenkaart = $werklog->strippenkaart;
         $curr_worklog = $werklog;
         $curr_company = $werklog->company !== NULL ? (object) ['id' => $werklog->company_id, 'bedrijfsnaam' => utf8_encode($werklog->company->bedrijfsnaam)] : (object) null;
         $curr_proj = $werklog->project !== NULL ? (object) ['id' => $werklog->project_id, 'name' => utf8_encode($werklog->project->name)] : (object) null;
         $curr_strip = $werklog->strippenkaart !== NULL ? (object) ['id' => $werklog->strippenkaarten_id, 'hours' => $werklog->strippenkaart->minutes] : (object) null;
         $curr_user = $werklog->user !== NULL ? (object) ['id' => $werklog->user_id, 'username' => utf8_encode($werklog->user->username)] : (object) null;
         $data[] = (object) ['DT_RowId' => 'row_' . $werklog->id, 'worklogs' => $curr_worklog, 'users' => $curr_user, 'companies' => $curr_company, 'projects' => $curr_proj, 'strippenkaarten' => $curr_strip];
     }
     $ret = ['recordsTotal' => $recordsTotal, 'recordsFiltered' => $recordsFiltered, 'data' => $data, 'companies' => $this->getAllCompanies(), 'projects' => $this->getAllProjects(), 'users' => $this->getAllUsers(), 'strippenkaarten' => $this->getAllStrippenkaarten()];
     return Response::json($ret);
 }
Пример #2
0
 /**
  * [getData - datatables response]
  * @return [json] [DT compatible object]
  */
 public function getData($model = null)
 {
     $Model = $this->modelName;
     $num_skip = 0;
     $num_items = 10;
     $recordsTotal = 0;
     $recordsFiltered = 0;
     // check get vars
     if (isset($_GET['start'])) {
         $num_skip = (int) $_GET['start'];
     }
     if (isset($_GET['length'])) {
         $num_items = (int) $_GET['length'];
     }
     if (isset($_GET['search'])) {
         $search_value = $_GET['search']['value'];
     }
     $all_werklogs = Werklog::orderBy('worklogs.id', 'DESC');
     if ($model !== null) {
         $all_werklogs->where('worklogs.company_id', '=', (int) $model->id);
         if (!empty($search_value)) {
             $all_werklogs->join('projects', 'worklogs.project_id', '=', 'projects.id')->whereRaw("(projects.name LIKE '%" . $search_value . "%')");
         }
     } else {
         if (!empty($search_value)) {
             $all_werklogs->join('companies', 'worklogs.company_id', '=', 'companies.id')->join('projects', 'worklogs.project_id', '=', 'projects.id')->whereRaw("(projects.name LIKE '%" . $search_value . "%' OR companies.bedrijfsnaam LIKE '%" . $search_value . "%')");
         }
     }
     $recordsTotal = $all_werklogs->count();
     $recordsFiltered = $recordsTotal;
     if ($num_skip > 0) {
         $all_werklogs->skip($num_skip);
     }
     $all_werklogs = $all_werklogs->take($num_items)->get();
     $data = [];
     $i = 0;
     foreach ($all_werklogs as $werklog) {
         // load relations
         $load_curr_company = $werklog->company;
         $load_curr_project = $werklog->project;
         $load_curr_user = $werklog->user;
         $load_curr_strippenkaart = $werklog->strippenkaart;
         $curr_worklog = $werklog;
         // Encoding example from the Zanussi App (remove weird strings and prepare the string for json encoding)
         // htmlspecialchars(htmlspecialchars_decode($post['post_title'], ENT_NOQUOTES),ENT_NOQUOTES | ENT_HTML5 | ENT_SUBSTITUTE)
         $curr_company = $werklog->company !== NULL ? (object) ['id' => $werklog->company_id, 'bedrijfsnaam' => utf8_encode($werklog->company->bedrijfsnaam)] : (object) null;
         $curr_proj = $werklog->project !== NULL ? (object) ['id' => $werklog->project_id, 'name' => utf8_encode($werklog->project->name)] : (object) null;
         $curr_strip = $werklog->strippenkaart !== NULL ? (object) ['id' => $werklog->strippenkaarten_id, 'hours' => $werklog->strippenkaart->hours] : (object) null;
         $curr_user = $werklog->user !== NULL ? (object) ['id' => $werklog->user_id, 'username' => utf8_encode($werklog->user->username)] : (object) null;
         $data[] = (object) ['DT_RowId' => 'row_' . $werklog->id, 'worklogs' => $curr_worklog, 'users' => $curr_user, 'companies' => $curr_company, 'projects' => $curr_proj, 'strippenkaarten' => $curr_strip];
     }
     $ret = ['recordsTotal' => $recordsTotal, 'recordsFiltered' => $recordsFiltered, 'data' => $data, 'companies' => $this->getAllCompanies(), 'projects' => $this->getAllProjects(), 'users' => $this->getAllUsers(), 'strippenkaarten' => $this->getAllStrippenkaarten()];
     return Response::json($ret);
 }