Browse Source

Merge pull request 'staging' (#15) from staging into master

Reviewed-on: ibnu/generic-ospro-backend#15
pull/1/head
farhantock 1 year ago
parent
commit
9bd7cf78c2
  1. 150
      app/Http/Controllers/ProjectCarausellController.php
  2. 3
      app/Models/ChecklistK3.php
  3. 2
      app/Models/Role.php

150
app/Http/Controllers/ProjectCarausellController.php

@ -11,145 +11,31 @@ use App\Models\{
};
class ProjectCarausellController extends Controller
{
// public function invoke() {
// // Master Data
// $projectData = Project::query()
// ->select("id","nama","kode_sortname","pm_id","budget_health","calculation_status","mulai_proyek","akhir_proyek","rencana_biaya","company","scurve")
// ->get();
// $projectRisk = ProjectRisks::query()
// ->select('proyek_id','description','level_risk','preventive_risk')
// ->get();
// $projectIssue = ProjectIssues::query()
// ->select('proyek_id','description','level_issue')
// ->get();
// $ganttData = VersionGantt::query()
// ->select('id', 'name_version','hierarchy_ftth_id','cost_to_complete','proyek_id','calculation_type')
// ->get();
// $arr = [];
// foreach ($ganttData as $gantt) {
// $projectArr = [];
// $riskProject = [];
// $issueProject = [];
// foreach($projectData as $project) {
// if($project['id'] === $gantt['proyek_id']) {
// foreach ($projectRisk as $risk) {
// if ($risk['proyek_id'] === $project['id']) {
// $riskProject[] = [
// 'level_risk' => $risk['level_risk'],
// 'preventive_risk' => $risk['preventive_risk'],
// 'description' => $risk['description']
// ];
// }
// }
// foreach ($projectIssue as $issue) {
// if ($issue['proyek_id'] === $project['id']) {
// $issueProject[] = [
// 'level_issue' => $issue['level_issue'],
// 'description' => $issue['description']
// ];
// }
// }
// $projectArr[] = [
// "project" => [
// "id" => $project['id'],
// "pm_id" => $project['pm_id'],
// "nama" => $project['nama'],
// "kode_sortname" => $project['kode_sortname'],
// "budget_health" => $project['budget_health'],
// "calculation_status" => $project['calculation_status'],
// "mulai_proyek" => $project['mulai_proyek'],
// "akhir_proyek" => $project['akhir_proyek'],
// "rencana_biaya" => $project['rencana_biaya'],
// "company" => $project['company'],
// "scurve" => $project['scurve'],
// "project_risk" => $riskProject,
// "project_issues" => $issueProject
// ],
// ];
// }
// }
// $arr[] = [
// "gantt" => [
// "gantt_id" => $gantt['id'],
// 'proyek_id' => $gantt['proyek_id'],
// "name_version" => $gantt['name_version'],
// "hierarchy_ftth_id" => $gantt['hierarchy_ftth_id'],
// "cost_to_complete" => $gantt['cost_to_complete'],
// "calculation_type" => $gantt['calculation_type'],
// "project"=> $projectArr
// ],
// ];
// }
// return response()->json(['status'=>'success','code'=> 200,'data'=>$projectArr, "total_project"=>count($arr)], 200);
// }
// public function getParents(&$data, $id) {
// $ftth = HierarchyFtth::find($id);
// array_push($data, $ftth);
// if ($ftth->parent_id) {
// $this->getParents($data, $ftth->parent_id);
// }
// }
public function invoke() {
// Master Data
$projectData = Project::query()
->select("id","nama","kode_sortname","pm_id","budget_health","calculation_status","mulai_proyek","akhir_proyek","rencana_biaya","company","scurve")
->get();
$arr = [];
foreach($projectData as $project) {
$projectRisk = ProjectRisks::query()
->select('proyek_id','description','level_risk','preventive_risk')
->get();
->where('proyek_id', $project['id'])
->get()
->toArray();
$projectIssue = ProjectIssues::query()
->select('proyek_id','description','level_issue')
->get();
->where('proyek_id',$project['id'])
->get()
->toArray();
$ganttData = VersionGantt::query()
->select('id', 'name_version','hierarchy_ftth_id','cost_to_complete','proyek_id','calculation_type')
->get();
// Nested looping
$arr = [];
foreach ($ganttData as $gantt) {
$riskProject = [];
$issueProject = [];
foreach ($projectRisk as $risk) {
if ($risk['proyek_id'] === $gantt['proyek_id']) {
$riskProject[] = [
'level_risk' => $risk['level_risk'],
'preventive_risk' => $risk['preventive_risk'],
'description' => $risk['description']
];
}
}
foreach ($projectIssue as $issue) {
if ($issue['proyek_id'] === $gantt['proyek_id']) {
$issueProject[] = [
'level_issue' => $issue['level_issue'],
'description' => $issue['description']
];
}
}
$arr[$gantt['proyek_id']][] = [
"gantt" => [
"gantt_id" => $gantt['id'],
'proyek_id' => $gantt['proyek_id'],
"name_version" => $gantt['name_version'],
"hierarchy_ftth_id" => $gantt['hierarchy_ftth_id'],
"cost_to_complete" => $gantt['cost_to_complete'],
"calculation_type" => $gantt['calculation_type'],
],
"project_risk" => $riskProject,
"project_issue"=>$issueProject
];
}
foreach($projectData as $project) {
->where('proyek_id',$project['id'])
->orderByDesc('id')
->first();
$projectManager = User::where('id', $project['pm_id'])->value('name');
$arr[$project['id']][] = [
$arr[]= [
"project" => [
"id" => $project['id'],
"pm_id" => $project['pm_id'],
@ -161,12 +47,14 @@ class ProjectCarausellController extends Controller
"akhir_proyek" => $project['akhir_proyek'],
"rencana_biaya" => $project['rencana_biaya'],
"company" => $project['company'],
"project_manager" => $projectManager,
"scurve" => $project['scurve']
"scurve" => $project['scurve'],
],
"project_manager" => $projectManager,
"project_risk" => $projectRisk,
"project_issue" => $projectIssue,
"gantt"=> $ganttData
];
}
return response()->json(['status'=>'success','code'=> 200,'data'=>$arr, "total_project"=>count($arr)], 200);
return response()->json(['status'=>'success','code'=> 200,'data'=> $arr, "total_project"=>count($arr)], 200);
}
}

3
app/Models/ChecklistK3.php

@ -17,6 +17,7 @@ class ChecklistK3 extends Model
'created_at',
'created_by',
'updated_at',
'updated_by'
'updated_by',
'company_id'
];
}

2
app/Models/Role.php

@ -12,6 +12,6 @@ class Role extends Model
const UPDATED_AT = 'updated_at';
protected $fillable = [
'name', 'description', 'default_page', 'created_at', 'created_by', 'updated_at', 'updated_by', 'company_id'
'name', 'description', 'default_page', 'created_at', 'created_by', 'updated_at', 'updated_by', 'company_id', 'all_project'
];
}

Loading…
Cancel
Save