diff --git a/.gitignore b/.gitignore index 466ebe8..6209512 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ bootstrap/backup .config-prod.json activity_log.txt .swp +composer.lock diff --git a/app/Http/Controllers/ActivityDokumenController.php b/app/Http/Controllers/ActivityDokumenController.php index d5540e1..7db4eee 100644 --- a/app/Http/Controllers/ActivityDokumenController.php +++ b/app/Http/Controllers/ActivityDokumenController.php @@ -8,6 +8,11 @@ use App\Models\ActivityDokumen; class ActivityDokumenController extends Controller { + public $directories; + public function __construct() { + $this->directories = $this->setCustomeDirectoryUpload(); + } + public function dokumenByActivityId($id) { if (empty($id) || !is_int((int)$id)) diff --git a/app/Http/Controllers/DashboardBoDController.php b/app/Http/Controllers/DashboardBoDController.php index 77ad72b..86e1491 100644 --- a/app/Http/Controllers/DashboardBoDController.php +++ b/app/Http/Controllers/DashboardBoDController.php @@ -28,29 +28,24 @@ class DashboardBoDController extends Controller - public function getCompanyCashFlow($company_id, $all_project, $hierarchy, $role_name) + public function getCompanyCashFlow($all_project, $hierarchy, $role_name) { $totalExpenditure = $totalInvoice = $totalPaidInvoice = 0; $totalBudgets = null; $role = urldecode($role_name); - if ($role === "Super Admin") { + if (!empty($all_project) || $role === "Super Admin") { $totalBudgets = Project::sum(DB::raw('CAST("rencana_biaya" AS DOUBLE PRECISION)')); - } elseif (!empty($all_project)) { - $totalBudgets = Project::where('company_id', $company_id) - ->sum(DB::raw('CAST("rencana_biaya" AS DOUBLE PRECISION)')); } else { $totalBudgets = Project::where('created_by_id', $hierarchy) - ->sum(DB::raw('CAST("rencana_biaya" AS DOUBLE PRECISION)')); + ->sum(DB::raw('CAST("rencana_biaya" AS DOUBLE PRECISION)')); } - + $totalBudgets = Project::sum(DB::raw('CAST("rencana_biaya" AS DOUBLE PRECISION)')); + dd($totalBudgets); $projects = null; - if ($role === "Super Admin") { + if (!empty($all_project) || $role === "Super Admin") { $projects = Project::get(); - } elseif (!empty($all_project)) { - $projects = Project::where('company_id', $company_id) - ->get(); } else { $projects = Project::where('created_by_id', $hierarchy) ->get(); @@ -85,15 +80,11 @@ class DashboardBoDController extends Controller ], 200); } - public function getDetailExpenditureColor($role_name, $company_id) + public function getDetailExpenditureColor($role_name) { $role = urldecode($role_name); $query = null; - if ($role === 'Super Admin') { - $query = ProjectExpenditure::get(); - } else { - $query = ProjectExpenditure::where('company_id', $company_id)->get(); - } + $query = ProjectExpenditure::get(); $data = []; foreach ($query as $value) { @@ -120,16 +111,11 @@ class DashboardBoDController extends Controller ], 200); } - public function getDetailFinancialHealthColor($role_name, $company_id) + public function getDetailFinancialHealthColor($role_name) { $role = urldecode($role_name); $query = null; - if ($role === 'Super Admin') { - $query = ProjectFinancialHealth::get(); - } else { - $query = ProjectFinancialHealth::where('company_id', $company_id)->get(); - } - + $query = ProjectFinancialHealth::get(); $data = []; foreach ($query as $value) { @@ -152,15 +138,11 @@ class DashboardBoDController extends Controller ], 200); } - public function getDetailScheduleHealthColor($role_name, $company_id) + public function getDetailScheduleHealthColor($role_name) { $role = urldecode($role_name); $query = null; - if ($role === 'Super Admin') { - $query = ProjectScheduleHealth::get(); - } else { - $query = ProjectScheduleHealth::where('company_id', $company_id)->get(); - } + $query = ProjectScheduleHealth::get(); $data = []; foreach ($query as $value) { @@ -183,15 +165,11 @@ class DashboardBoDController extends Controller ], 200); } - public function getDetailInvoiceColor($role_name, $company_id) + public function getDetailInvoiceColor($role_name) { $role = urldecode($role_name); $query = null; - if ($role === 'Super Admin') { - $query = ProjectInvoice::get(); - } else { - $query = ProjectInvoice::where('company_id', $company_id)->get(); - } + $query = ProjectInvoice::get(); $data = []; foreach ($query as $value) { if ($value['name'] === 'Invoiced') { @@ -210,15 +188,12 @@ class DashboardBoDController extends Controller } // integrasi - public function getInvoiceOutstanding($role_name, $company_id, $all_project, $hierarchy) + public function getInvoiceOutstanding($role_name, $all_project, $hierarchy) { $role = urldecode($role_name); $projects = null; - if ($role === 'Super Admin') { + if (!empty($all_project) || $role === 'Super Admin') { $projects = Project::get(); - } elseif (!empty($all_project)) { - $projects = Project::where('company_id', $company_id) - ->get(); } else { $projects = Project::where('created_by_id', $hierarchy) ->get(); @@ -241,7 +216,7 @@ class DashboardBoDController extends Controller ], 200); } - public function getTotalProjectPerScheduleHealth($role_name, $company_id, $all_project, $hierarchy) + public function getTotalProjectPerScheduleHealth($role_name, $all_project, $hierarchy) { $role = urldecode($role_name); $replaceHierarchy = preg_replace('/[\[\]]/', '', $hierarchy); @@ -253,11 +228,8 @@ class DashboardBoDController extends Controller ]; $projects = null; - if ($role === 'Super Admin') { + if ($all_project == 'true' || $role === 'Super Admin') { $projects = Project::get(); - } elseif ($all_project == 'true') { - $projects = Project::where('company_id', $company_id) - ->get(); } else { $projects = Project::where('created_by_id', $replaceHierarchy) ->get(); @@ -274,18 +246,11 @@ class DashboardBoDController extends Controller } - public function getTotalProjectScheduleHealthPerDivision($role_name, $company_id) + public function getTotalProjectScheduleHealthPerDivision($role_name) { $role = urldecode($role_name); - $divisions = null; - if ($role === 'Super Admin') { - $divisions = Divisi::whereNull('parent') - ->get(); - } else { - $divisions = Divisi::whereNull('parent') - ->where('company_id', $company_id) - ->get(); - } + $divisions = Divisi::whereNull('parent') + ->get(); foreach ($divisions as $index => $division) { $behindSchedule = $warning = $onSchedule = 0; @@ -311,7 +276,7 @@ class DashboardBoDController extends Controller return response()->json(['data' => $divisions], 200); } - public function getTotalProjectPerBudgetHealth($role_name, $company_id, $all_project, $hierarchy) + public function getTotalProjectPerBudgetHealth($role_name, $all_project, $hierarchy) { $role = urldecode($role_name); $replaceHierarchy = preg_replace('/[\[\]]/', '', $hierarchy); @@ -324,7 +289,6 @@ class DashboardBoDController extends Controller ] ]; $divisi = Divisi::query() - ->where('company_id', $company_id) ->pluck('id'); // arr overrun @@ -333,7 +297,7 @@ class DashboardBoDController extends Controller ->count(); } elseif ($all_project == 'true') { $response['data']['overrun'] = Project::whereIn('divisi_id', $divisi) - ->where([['budget_health', 'overrun'], ['company_id', $company_id]]) + ->where([['budget_health', 'overrun']]) ->count(); } else { $response['data']['overrun'] = Project::whereIn('divisi_id', $divisi) @@ -346,7 +310,7 @@ class DashboardBoDController extends Controller ->count(); } elseif ($all_project == 'true') { $response['data']['warning'] = Project::whereIn('divisi_id', $divisi) - ->where([['budget_health', 'warning'], ['company_id', $company_id]]) + ->where([['budget_health', 'warning']]) ->count(); } else { $response['data']['warning'] = Project::whereIn('divisi_id', $divisi) @@ -359,7 +323,7 @@ class DashboardBoDController extends Controller ->count(); } elseif ($all_project == 'true') { $response['data']['on-budget'] = Project::whereIn('divisi_id', $divisi) - ->where([['company_id', $company_id], ['budget_health', 'on-budget']]) + ->where([['budget_health', 'on-budget']]) ->count(); } else { $response['data']['on-budget'] = Project::whereIn('divisi_id', $divisi) @@ -376,7 +340,7 @@ class DashboardBoDController extends Controller } - public function getTotalProjectBudgetHealthPerDivision($role_name, $company_id) + public function getTotalProjectBudgetHealthPerDivision($role_name) { $role = urldecode($role_name); $divisions = null; @@ -389,7 +353,6 @@ class DashboardBoDController extends Controller $divisions = Divisi::select('id', 'name') ->with('children') ->whereNull('parent') - ->where('company_id', $company_id) ->get(); } @@ -414,26 +377,17 @@ class DashboardBoDController extends Controller ], 200); } - public function getTotalProjectPerPhase($role_name, $company_id, $all_project, $hierarchy) + public function getTotalProjectPerPhase($role_name, $all_project, $hierarchy) { $role = urldecode($role_name); $projectPhases = null; - if ($role === 'Super Admin') { - $projectPhases = ProjectPhase::orderBy('order')->get(); - } else { - $projectPhases = ProjectPhase::where('company_id', $company_id)->orderBy('order')->get(); - } - + $projectPhases = ProjectPhase::orderBy('order')->get(); foreach ($projectPhases as $phase) { - if ($role === 'Super Admin') { + if ($role === 'Super Admin' || $all_project) { $phase->totalProject = Project::where('phase_id', $phase->id) ->count(); - } elseif ($all_project) { - $phase->totalProject = Project::where('phase_id', $phase->id) - ->where('company_id', $company_id) - ->count(); } else { $phase->totalProject = Project::where('phase_id', $phase->id) ->where('created_by_id', $hierarchy) @@ -453,25 +407,14 @@ class DashboardBoDController extends Controller ->count(); } - public function getTotalProjectPerDivision($role_name, $company_id) + public function getTotalProjectPerDivision($role_name) { $role = urldecode($role_name); $divisions = null; - if ($role === 'Super Admin') { - $divisions = Divisi::select('id', 'name', 'parent', 'color') - ->with('children') - ->whereNull('parent') - ->get(); - } else { - $divisions = Divisi::select('id', 'name', 'parent', 'color') - ->with('children') - ->whereNull('parent') - ->where('company_id', $company_id) - ->get(); - } - - - + $divisions = Divisi::select('id', 'name', 'parent', 'color') + ->with('children') + ->whereNull('parent') + ->get(); // to do : count in more than 1 level child foreach ($divisions as $v) { @@ -495,22 +438,13 @@ class DashboardBoDController extends Controller ->first(); } - public function getTotalProjectValuePerDivision($role_name, $company_id) + public function getTotalProjectValuePerDivision($role_name) { $role = urldecode($role_name); - if ($role === 'Super Admin') { - $divisions = Divisi::select('id', 'name', 'color') - ->with('children') - ->whereNull('parent') - ->get(); - } else { - $divisions = Divisi::select('id', 'name', 'color') - ->with('children') - ->whereNull('parent') - ->where('company_id', $company_id) - ->get(); - } - + $divisions = Divisi::select('id', 'name', 'color') + ->with('children') + ->whereNull('parent') + ->get(); foreach ($divisions as $v) { $v->total = $this->countTotalProjectValueInDivision($v->id); @@ -526,13 +460,12 @@ class DashboardBoDController extends Controller } - public function getDetailExpenditure($year = '%', $company_id, $all_project, $hierarchy) + public function getDetailExpenditure($year = '%', $all_project, $hierarchy) { $year = $this->interpolateYear($year); $projects = null; if ($all_project) { $projects = Project::where('mulai_proyek', 'like', $year) - ->where('company_id', $company_id) ->orderBy('id', 'desc') ->get(); } else { @@ -562,7 +495,7 @@ class DashboardBoDController extends Controller return response()->json([ 'data' => $projects, - 'total_manpowers' => User::where('company_id', $company_id)->count() + 'total_manpowers' => User::count() ], 200); } } diff --git a/app/Http/Controllers/ProjectCarausellController.php b/app/Http/Controllers/ProjectCarausellController.php index 6abd158..6df55d9 100644 --- a/app/Http/Controllers/ProjectCarausellController.php +++ b/app/Http/Controllers/ProjectCarausellController.php @@ -16,16 +16,13 @@ class ProjectCarausellController extends Controller public function invoke(Request $request) { // Master Data - $company_id = $request->route('company_id'); $all_project = $request->route('all_project'); $hierarchy = $request->route('hierarchy'); $query = Project::query() ->select("id", "nama", "kode_sortname", "pm_id", "budget_health", "calculation_status", "mulai_proyek", "akhir_proyek", "rencana_biaya", "company", "scurve"); - if ($all_project) { - $query->where('company_id', $company_id); - } else { + if (!$all_project) { $query->where('created_by_id', $hierarchy); } diff --git a/routes/web.php b/routes/web.php index a0e5f25..71144ee 100644 --- a/routes/web.php +++ b/routes/web.php @@ -42,20 +42,20 @@ $router->group(['prefix' => 'api', 'middleware' => 'cors'], function () use ($ro $router->group(['middleware' => ['auth', 'cors']], function () use ($router) { - $router->get('/dashboard/get-company-cashflow/{company_id}/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getCompanyCashFlow'); // project expenditure - $router->get('/dashboard/get-invoice-outstanding/{company_id}/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getInvoiceOutstanding'); // project invoice vs cash in - $router->get('/dashboard/get-total-project-per-schedule-health/{company_id}/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectPerScheduleHealth'); - $router->get('/dashboard/get-total-project-per-budget-health/{company_id}/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectPerBudgetHealth'); - $router->get('/dashboard/get-total-project-schedule-health-per-division/{company_id}/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectScheduleHealthPerDivision'); - $router->get('/dashboard/get-total-project-budget-health-per-division/{company_id}/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectBudgetHealthPerDivision'); - $router->get('/dashboard/get-total-project-per-phase/{company_id}/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectPerPhase'); - $router->get('/dashboard/get-total-project-per-division/{company_id}/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectPerDivision'); - $router->get('/dashboard/get-total-project-value-per-division/{company_id}/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectValuePerDivision'); - $router->get('/dashboard/get-detail-expenditure/{company_id}/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getDetailExpenditure'); - $router->get('/dashboard/get-detail-expenditure-color/{company_id}/{role_name}', 'DashboardBoDController@getDetailExpenditureColor'); - $router->get('/dashboard/get-detail-financial-health-color/{company_id}/{role_name}', 'DashboardBoDController@getDetailFinancialHealthColor'); - $router->get('/dashboard/get-detail-schedule-health-color/{company_id}/{role_name}', 'DashboardBoDController@getDetailScheduleHealthColor'); - $router->get('/dashboard/get-detail-invoice-color/{company_id}/{role_name}', 'DashboardBoDController@getDetailInvoiceColor'); + $router->get('/dashboard/get-company-cashflow/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getCompanyCashFlow'); // project expenditure + $router->get('/dashboard/get-invoice-outstanding/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getInvoiceOutstanding'); // project invoice vs cash in + $router->get('/dashboard/get-total-project-per-schedule-health/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectPerScheduleHealth'); + $router->get('/dashboard/get-total-project-per-budget-health/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectPerBudgetHealth'); + $router->get('/dashboard/get-total-project-schedule-health-per-division/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectScheduleHealthPerDivision'); + $router->get('/dashboard/get-total-project-budget-health-per-division/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectBudgetHealthPerDivision'); + $router->get('/dashboard/get-total-project-per-phase/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectPerPhase'); + $router->get('/dashboard/get-total-project-per-division/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectPerDivision'); + $router->get('/dashboard/get-total-project-value-per-division/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getTotalProjectValuePerDivision'); + $router->get('/dashboard/get-detail-expenditure/{all_project}/{hierarchy}/{role_name}', 'DashboardBoDController@getDetailExpenditure'); + $router->get('/dashboard/get-detail-expenditure-color/{role_name}', 'DashboardBoDController@getDetailExpenditureColor'); + $router->get('/dashboard/get-detail-financial-health-color/{role_name}', 'DashboardBoDController@getDetailFinancialHealthColor'); + $router->get('/dashboard/get-detail-schedule-health-color/{role_name}', 'DashboardBoDController@getDetailScheduleHealthColor'); + $router->get('/dashboard/get-detail-invoice-color/{role_name}', 'DashboardBoDController@getDetailInvoiceColor'); $router->post('/role/search', 'RoleController@search'); $router->post('/role/add', 'RoleController@add'); @@ -106,7 +106,7 @@ $router->group(['prefix' => 'api', 'middleware' => 'cors'], function () use ($ro /* $router->get('/project/get-status-health-schedule/{id}', 'ProjectController@getStatusSchedule'); */ /* $router->get('/project/get-status-health-budget/{id}', 'ProjectController@getStatusBudget'); */ - $router->get('/project-carausell/{company_id}/{all_project}/{hierarchy}', 'ProjectCarausellController@invoke'); + $router->get('/project-carausell/{all_project}/{hierarchy}', 'ProjectCarausellController@invoke'); $router->post('/project-charter/search', 'ProjectCharterController@search'); $router->post('/project-charter/add', 'ProjectCharterController@add');