diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index c131d43..a77975b 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -37,73 +37,6 @@ class Controller extends BaseController $this->pathActivityDocument = config('assets.activity'); } - protected function setUpPayloadByUser($condition) - { - $alias = "utp"; - - $userProyek = UserToProyek::from('assign_hr_to_proyek AS ' . $alias); - $userProyek = $userProyek->where([ - ['is_customer', true], - ['user_id', $condition['user_id']['user_id']] - ])->select('m_proyek.*', 'm_type_proyek.name AS join_second_name'); - - if (isset($condition['joins'])) { - $no = 0; - foreach ($condition['joins'] as $join) { - $tableJoin = isset($join['name1']) ? $join['name1'] : $alias; - $tableName = $join['name']; - $columnJoin = $join['column_join']; // foreign key table sini - $columnSelf = isset($join['column_self']) ? $join['column_self'] : "id"; // primary key table lawan - $columnResult = $join['column_results']; - - foreach ($columnResult as $sColumn) { - $userProyek = $userProyek->addSelect($tableName . "." . $sColumn . " as join_" . $this->listJoinAll[$no] . "_" . $sColumn); - } - $userProyek = $userProyek->leftJoin($tableName, $tableJoin . "." . $columnJoin, '=', $tableName . '.' . $columnSelf); - $no++; - } - $userProyek->leftJoin('m_type_proyek', 'm_proyek.type_proyek_id', '=', 'm_type_proyek.id'); - } - - if (isset($condition['columns'])) { - $listWhere = $condition['columns']; - - $userProyek = $userProyek->where(function ($query) use ($listWhere, $alias) { - foreach ($listWhere as $where) { - $value = $where['value']; - if ($value && $value != "" && $value != " ") { - $column = $where['name']; - $operator = strtolower($where['logic_operator']); // like, =, <>, range - $value2 = isset($where['value1']) ? $where['value1'] : ""; - $tableColumn = isset($where['table_name']) ? $where['table_name'] : $alias; - $query = $this->whereCondition($query, $operator, $tableColumn, $column, $value, $value2); - } - } - }); - } - - if (isset($condition['group_column'])) { - $userProyek = $this->groupWhere($userProyek, $condition['group_column'], $alias); - } - - $data['count'] = clone $userProyek; - - if (isset($condition['paging'])) { - $userProyek = $userProyek->offset($condition['paging']['start'])->limit($condition['paging']['length']); - } - - if (isset($condition['orders'])) { - $orders = $condition['orders']; - $sortBy = $orders['ascending'] ? "ASC" : "DESC"; - $columnOrder = $orders['columns']; - foreach ($columnOrder as $column) { - $userProyek = $userProyek->orderBy($alias . "." . $column, $sortBy); - } - } - $data['userProyek'] = $userProyek; - return $data; - } - protected function setUpPayload($condition, $tableSelf) { $alias = "selfTable"; diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index 7117d65..553a5dd 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -204,16 +204,23 @@ class ProjectController extends Controller DokumenProject::where("type_dokumen", "project-document-in-folder")->whereIn('ref_id', $ref_ids)->delete(); } - public function getByUser(Request $request) + public function getByUser($id) { - $payload = $request->all(); - $dataBuilder = $this->setUpPayloadByUser($payload); - $builder = $dataBuilder['userProyek']; - $countBuilder = $dataBuilder['count']; - $dataGet = $builder->get(); - $totalRecord = $countBuilder->count(); - - return response()->json(['status' => 'success', 'code' => 200, 'data' => $dataGet, 'totalRecord' => $totalRecord], 200); + $alias = "utp"; + $userProyek = UserToProyek::query() + ->from('assign_hr_to_proyek AS ' . $alias) + ->where([ + ['is_customer', true], + ['user_id', $id] + ]) + ->leftJoin('m_users', $alias.'.user_id', '=', 'm_users.id') + ->leftJoin('m_proyek', $alias.'.proyek_id', '=', 'm_proyek.id') + ->leftJoin('m_type_proyek', 'm_proyek.type_proyek_id', '=', 'm_type_proyek.id') + ->select('m_proyek.*', 'm_type_proyek.name AS join_second_name','m_users.name AS join_first_name') + ->get(); + $totalRecord = $userProyek->count(); + + return response()->json(['status' => 'success', 'code' => 200, 'data' => $userProyek, 'totalRecord' => $totalRecord], 200); } public function search(Request $request) diff --git a/routes/web.php b/routes/web.php index 47ed601..254d963 100644 --- a/routes/web.php +++ b/routes/web.php @@ -53,7 +53,7 @@ $router->group(['prefix' => 'api', 'middleware' => 'cors'], function () use ($ro $router->post('/document-activity/search', 'ActivityDokumenController@searchDocProject'); $router->get('/document-activity/download/{id}', 'ActivityDokumenController@downloadDokumen'); - $router->post('/project-by-customer', 'ProjectController@getByUser'); + $router->get('/project-by-customer/{id}','ProjectController@getByUser'); $router->post('/project/search', 'ProjectController@search'); $router->post('/project/add', 'ProjectController@add'); $router->put('/project/update/{id}', 'ProjectController@update');