/** * { show } * * @param * 1. id * 2. org_id * * @return * 1. Layout * 2. page_attributes * 3. page_datas * * steps * 1. validate * 2. get data * 3. set page attributes * 4. set page datas * 5. generate view */ public function show($org_id = null, $id = null) { //1. validate if (is_null($org_id)) { App::abort(403, 'Id Organisasi tidak ada'); } if (is_null($id)) { App::abort(403, 'Id cabang tidak ada'); } //2. get data $APIBranch = new APIBranch(); $data = $APIBranch->getShow($org_id, $id); $branches = $APIBranch->getIndex($org_id, []); $APIChart = new APIChart(); $charts = $APIChart->getIndex($org_id, $id); //3. set page attributes $this->page_attributes->page_title = $data['data']['name']; $this->page_attributes->page_subtitle = $data['data']['name']; $this->page_attributes->breadcrumb = array_merge($this->page_attributes->breadcrumb, [$data['data']['organisation']['name'] => route('org.show', ['id' => $org_id]), 'Cabang' => route('branch.index', ['org_id' => $org_id]), $data['data']['name'] => route(Route::CurrentRouteName(), ['org_id' => $org_id, 'id' => $id])]); //4. set page datas //shape chart data $charts = $charts['data']['data']; $chartData = []; if (count($charts) != 0) { foreach ($charts as $dt) { if ($dt['chart_id'] == 0) { $chartData[$dt['id']] = ['name' => $dt['name'], 'id_parent' => $dt['chart_id'], 'department' => $dt['department'], 'parent' => "Cabang " . $data['data']['name'], 'childs' => [], 'branch_id' => $id, 'org_id' => $org_id]; } else { $parents = explode(",", $dt['path']); $trash = array_pop($parents); $current =& $chartData; foreach ($parents as $key => $value) { $current =& $current[$value]['childs']; } $current[$dt['id']] = ['name' => $dt['name'], 'id_parent' => $dt['chart_id'], 'department' => $dt['department'], 'parent' => $dt['chart']['name'], 'childs' => [], 'branch_id' => $id, 'org_id' => $org_id]; } } } $this->page_datas->datas['charts'] = ['name' => "Cabang " . $data['data']['name'], 'id_parent' => 0, 'department' => '', 'parent' => null, 'childs' => $chartData, 'branch_id' => $id, 'org_id' => $org_id]; // dd($this->page_datas->datas['charts'] ); $this->page_datas->datas['branches'] = $branches['data']['data']; $this->page_datas->datas['branch'] = $data['data']; $this->page_datas->datas['id'] = $org_id; $this->page_datas->datas['name'] = $data['data']['organisation']['name']; $this->page_datas->cust_paging = 0; //5. generate view $view_source = $this->view_source_root . '.show'; $route_source = route(Route::CurrentRouteName(), ['org_id' => $org_id, 'id' => $id]); return $this->generateView($view_source, $route_source); }
/** * { FindChartByOrganisation } * * @param *1. name *2. org id * * @return * 1. id * 2. name * * Step: * 1. get data * 2. validate * 3. returning data */ public function FindChartByOrganisation($org_id = null) { //1. get data if (is_null($org_id)) { App::abort(403, 'Id Organisasi tidak ada'); } $APIChart = new APIChart(); $search = array_merge(['name' => Input::get('term'), 'branch' => true]); $chart = $APIChart->getIndex($org_id, 0, ['search' => $search]); //2. validate if ($chart['status'] != 'success') { return \App::abort(404); } //3. returning data $datas = []; foreach ($chart['data']['data'] as $key => $dt) { $datas[$key]['id'] = $dt['id']; $datas[$key]['text'] = ucwords($dt['name'] . ' cabang ' . $dt['branch']['name']); } return Response::json($datas); }