diff --git a/app/Console/Commands/ActualProgressProject.php b/app/Console/Commands/ActualProgressProject.php new file mode 100644 index 0000000..de21595 --- /dev/null +++ b/app/Console/Commands/ActualProgressProject.php @@ -0,0 +1,77 @@ +select('m_proyek.*', 'm_type_proyek.is_multiLocation') + ->get(); + + foreach ($projects as $project) { + if ($project->is_multiLocation == 1) { + // untuk project multi location + $versionGantt = VersionGantt::join('m_proyek', 'm_version_gantt.proyek_id', 'm_proyek.id') + ->select('m_version_gantt.*') + ->where('m_version_gantt.proyek_id', $project->id) + ->get(); + foreach ($versionGantt as $key => $gantt) { + $progress[$key] = $gantt->progress; + } + $actualProgress = round(array_sum($progress) / count($versionGantt), 2); + } else { + // untuk project single location + $gantt = MasterFunctionsHelper::getLatestGantt($project->id); + isset($gantt['last_gantt_id']) ? $lastGantt = $gantt['last_gantt_id'] : $lastGantt = 0; + + $arr = [ + 'project_id' => $project->id, + 'gantt_id' => $lastGantt, + 'periode' => 'week' + ]; + + $project->scurve = MasterFunctionsHelper::getSCurve(collect($arr)); + $actualArray = $project->scurve[0]['data']['percentageReal']; + $actualProgress = !empty($actualArray) ? round(end($actualArray), 2) : 0; + } + + Project::where('id', $project->id)->update(['persentase_progress' => $actualProgress]); + } + } +} diff --git a/app/Console/Commands/ScheduleHealth.php b/app/Console/Commands/ScheduleHealth.php index 9c4e618..87ff9de 100644 --- a/app/Console/Commands/ScheduleHealth.php +++ b/app/Console/Commands/ScheduleHealth.php @@ -45,7 +45,7 @@ class ScheduleHealth extends Command echo "\n------------------------------------------\n"; echo "Command Start. \n"; Log::info("Command Start."); - $projects = Project::where('company_id', 5)->get(); + $projects = Project::get(); $totalProjects = $projects->count(); $updatedProjects = []; Log::info($totalProjects); diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 1cafb1c..767ab7e 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -15,7 +15,8 @@ class Kernel extends ConsoleKernel protected $commands = [ Commands\ScheduleHealth::class, Commands\CalculateSCurve::class, - Commands\CalculateProgressGantt::class + Commands\CalculateProgressGantt::class, + Commands\ActualProgressProject::class ]; /** diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index caeb455..0dc108e 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -292,7 +292,7 @@ class ProjectController extends Controller $countBuilder = $dataBuilder['count']; $dataGet = $builder->get(); $totalRecord = $countBuilder->count(); - + Artisan::call('calculate:ActualProgressProject'); return response()->json(['status' => 'success', 'code' => 200, 'data' => $dataGet, 'totalRecord' => $totalRecord], 200); }