diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 31cc056..a02d0d1 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -3,6 +3,9 @@ namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Http; +use App\Models\UserToActivity; +use App\Models\Activity; +use App\Models\AssignMaterial; use Laravel\Lumen\Routing\Controller as BaseController; use App\Models\ReportK3Detail; @@ -250,7 +253,10 @@ class Controller extends BaseController private function calculateMaterialCost($activity_id, $proyek_id) { - $totalCost = AssignMaterial::selectRaw("ISNULL(qty_planning,0)*ISNULL(budget,0) as totalCost")->where("proyek_id", $proyek_id)->where("activity_id", $activity_id)->sum("totalCost"); + $totalCost = AssignMaterial::selectRaw("COALESCE(qty_planning,0)*COALESCE(budget,0) as totalCost") + ->where("proyek_id", $proyek_id) + ->where("activity_id", $activity_id) + ->sum(AssignMaterial::raw("COALESCE(qty_planning, 0) * COALESCE(budget, 0)")); return $totalCost; } diff --git a/app/Http/Controllers/HierarchyFtthController.php b/app/Http/Controllers/HierarchyFtthController.php index e172ddc..1184109 100644 --- a/app/Http/Controllers/HierarchyFtthController.php +++ b/app/Http/Controllers/HierarchyFtthController.php @@ -49,8 +49,9 @@ class HierarchyFtthController extends Controller } } - public function show(HierarchyFtth $hierarchyFtth) + public function show($id) { + $hierarchyFtth = HierarchyFtth::where('id', $id)->first(); try { return response()->json($hierarchyFtth); } catch (\Exception $e) { @@ -61,8 +62,9 @@ class HierarchyFtthController extends Controller } } - public function update(Request $request, HierarchyFtth $hierarchyFtth) + public function update(Request $request, $id) { + $hierarchyFtth = HierarchyFtth::where('id', $id)->first(); try { $hierarchyFtth->update($request->all()); @@ -78,8 +80,9 @@ class HierarchyFtthController extends Controller } } - public function destroy(HierarchyFtth $hierarchyFtth) + public function destroy($id) { + $hierarchyFtth = HierarchyFtth::where('id', $id)->first(); try { $hierarchyFtth->delete(); @@ -94,4 +97,29 @@ class HierarchyFtthController extends Controller ], 500); } } + + public function getTreeByProject($project_id) + { + $data = HierarchyFtth::where('project_id', $project_id)->whereNull('parent_id')->orderByRaw('id ASC')->get(); + $finalData = []; + foreach($data as $objRow){ + $objRow->children = $this->getChildren($project_id, $objRow->id); + $objRow->key = rand(1, 1000); + $finalData[] = $objRow; + } + + return response()->json(['status'=>'success','data'=>$finalData,'code'=>200], 200); + } + + private function getChildren($project_id, $parent_id) + { + $finalData = []; + $data = HierarchyFtth::where('project_id', $project_id)->where('parent_id', $parent_id)->orderByRaw('id ASC')->get(); + foreach($data as $objRow){ + $objRow->key = rand(1, 1000); + $objRow->children = $this->getChildren($project_id, $objRow->id); + $finalData[] = $objRow; + } + return $finalData; + } } diff --git a/app/Http/Controllers/UserToActivityController.php b/app/Http/Controllers/UserToActivityController.php index 8cf9ad6..168af3d 100644 --- a/app/Http/Controllers/UserToActivityController.php +++ b/app/Http/Controllers/UserToActivityController.php @@ -72,6 +72,17 @@ class UserToActivityController extends Controller } + private function updatedCostPlanning($parent_id) { + $sumBiaya = Activity::selectRaw('sum(cast(rencana_biaya as double precision))') + ->where("parent_id", $parent_id) + ->first(); + if($parent = Activity::find($parent_id)){ + $parent->update([ + "rencana_biaya" => $sumBiaya->sum, + ]); + } + } + public function update(Request $request, $id){ if(empty($id) || !is_int((int)$id)) return response()->json(['status'=>'failed','message'=>'id is required!','code'=>400], 400); diff --git a/routes/web.php b/routes/web.php index 61a480c..b403f54 100644 --- a/routes/web.php +++ b/routes/web.php @@ -442,9 +442,10 @@ $router->group(['prefix'=>'api', 'middleware' => 'cors'], function () use ($rout $router->get('/hierarchy-ftths', 'HierarchyFtthController@index'); $router->post('/hierarchy-ftths', 'HierarchyFtthController@store'); $router->post('/hierarchy-ftths/search', 'HierarchyFtthController@search'); - $router->get('/hierarchy-ftths/{hierarchyFtth}', 'HierarchyFtthController@show'); - $router->put('/hierarchy-ftths/{hierarchyFtth}', 'HierarchyFtthController@update'); - $router->delete('/hierarchy-ftths/{hierarchyFtth}', 'HierarchyFtthController@destroy'); + $router->get('/hierarchy-ftths/{id}', 'HierarchyFtthController@show'); + $router->put('/hierarchy-ftths/{id}', 'HierarchyFtthController@update'); + $router->delete('/hierarchy-ftths/{id}', 'HierarchyFtthController@destroy'); + $router->get('/hierarchy-ftths/tree/{project_id}', 'HierarchyFtthController@getTreeByProject'); $router->post('/map-monitoring/search', 'MapMonitoringController@search'); });