/**
  * { create }
  *
  * @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 create($org_id = null, $id = null)
 {
     //1. validate
     if (is_null($org_id)) {
         App::abort(403, 'Id Organisasi tidak ada');
     }
     // 2 & 3
     $APIOrg = new APIOrg();
     $organisation = $APIOrg->getShow($org_id);
     $APIEmployee = new APIEmployee();
     $employees = $APIEmployee->getIndex($org_id, []);
     $APIBranch = new APIBranch();
     $APIChart = new APIChart();
     $branches = $APIBranch->getIndex($org_id, []);
     $positions = $APIChart->getPositions($org_id, []);
     $departments = $APIChart->getDepartments($org_id, []);
     $maritalstatuses = $APIEmployee->getMaritalStatuses($org_id, []);
     $grades = $APIEmployee->getGrades($org_id, []);
     if (!is_null($id)) {
         //2. get data
         $data = $APIEmployee->getShow($org_id, $id);
         //3. set page attributes
         $current_route = route(Route::CurrentRouteName(), ['org_id' => $org_id, 'id' => $id]);
         $this->page_attributes->page_subtitle = 'Edit Karyawan ' . $data['data']['name'];
         $this->page_attributes->breadcrumb = array_merge($this->page_attributes->breadcrumb, [$organisation['data']['name'] => route('org.show', ['id' => $org_id]), 'Karyawan' => route('employee.index', ['org_id' => $org_id]), 'Edit Karyawan ' . $data['data']['name'] => $current_route]);
     } else {
         //2. get data
         $data['data'] = null;
         //3. set page attributes
         $current_route = route(Route::CurrentRouteName(), ['org_id' => $org_id]);
         $this->page_attributes->page_subtitle = 'Karyawan Baru';
         $this->page_attributes->breadcrumb = array_merge($this->page_attributes->breadcrumb, [$organisation['data']['name'] => route('org.show', ['id' => $org_id]), 'Karyawan' => route('employee.index', ['org_id' => $org_id]), 'Karyawan Baru' => $current_route]);
     }
     $APIEmployee = new APIEmployee();
     $employees = $APIEmployee->getIndex($org_id, []);
     //4. set page datas
     $this->page_datas->datas['branches'] = $branches['data']['data'];
     $this->page_datas->datas['positions'] = $positions['data'];
     $this->page_datas->datas['departments'] = $departments['data'];
     $this->page_datas->datas['maritalstatuses'] = $maritalstatuses['data'];
     $this->page_datas->datas['grades'] = $grades['data'];
     $this->page_datas->datas['employees'] = $employees['data']['data'];
     $this->page_datas->datas['employee'] = $data['data'];
     $this->page_datas->datas['id'] = $org_id;
     $this->page_datas->datas['name'] = $organisation['data']['name'];
     $this->page_datas->datas['code'] = $organisation['data']['code'];
     //5. generate view
     $view_source = $this->view_source_root . '.create';
     $route_source = $current_route;
     return $this->generateView($view_source, $route_source);
 }
Example #2
0
 /**
  * { 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);
 }
Example #3
0
 /**
  * { 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);
 }