Browse Source

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

Reviewed-on: ordo/adw-backend#117
pull/3/head
ibnu 1 year ago
parent
commit
1db962d836
  1. 740
      app/Http/Controllers/ActivityController.php
  2. 42
      app/Http/Controllers/ProjectController.php

740
app/Http/Controllers/ActivityController.php

File diff suppressed because it is too large Load Diff

42
app/Http/Controllers/ProjectController.php

@ -349,6 +349,25 @@ class ProjectController extends Controller
return response()->json(['status'=>'success','code'=>200, 'data' => $data], 200);
}
public static function setSyncDate($activity_id, $activity, $report) {
$status = ReportActivityMaterial::select('description')->where('activity_id', $activity_id)->first();
if (isset($status) && $status != 'done') {
$minDate = date_create($report->report_date);
$maxDate = date_create($report->report_date);
date_add($maxDate, date_interval_create_from_date_string($activity->duration . " days"));
} else {
$material = AssignMaterial::where('activity_id', $activity_id)->first();
$minDate = $material->start_activity;
$maxDate = $material->finish_activity;
}
$reports = array(
'activity_id' => $activity_id,
'min_date' => $minDate,
'max_date' => $maxDate
);
return $reports;
}
public function synchronizeReport($gantt_id)
{
$activities = Activity::where("version_gantt_id", $gantt_id)->get();
@ -360,21 +379,12 @@ class ProjectController extends Controller
if ($countReports === 1) {
$dataReports = ReportActivityMaterial::where('activity_id', $activity_id)->orderBy('report_date')->get();
foreach($dataReports as $dr) {
$reports[] = array(
'activity_id'=>$activity_id,
'min_date'=>$dr->report_date,
'max_date'=>date_modify(date_create($dr->report_date), "1 days")
);
$reports[] = ProjectController::setSyncDate($activity_id, $activity, $dr);
}
}
if ($countReports > 1) {
$firstReport = ReportActivityMaterial::where('activity_id', $activity_id)->orderBy('report_date')->first();
$lastReport = ReportActivityMaterial::where('activity_id', $activity_id)->orderByDesc('report_date')->first();
$reports[] = array(
'activity_id'=>$activity_id,
'min_date'=>$firstReport->report_date,
'max_date'=>date_modify(date_create($lastReport->report_date), "1 days")
);
$reports[] = ProjectController::setSyncDate($activity_id, $activity, $firstReport);
}
$activity->reports = $reports;
}
@ -383,8 +393,16 @@ class ProjectController extends Controller
for ($i=0; $i < count($reports); $i++) {
$activity = Activity::find($reports[$i]['activity_id']);
$successor = Link::where('t_activity_id', $activity->id)->first();
if ($successor) {
$predecessor = Activity::find($successor->s_activity_id);
$activity->start_date = $predecessor->end_date;
$reports[$i]['max_date']->modify('1 day');
} else {
$reports[$i]['max_date']->modify('-1 day');
}
$activity->start_date = $reports[$i]['min_date'];
$activity->end_date = $reports[$i]['max_date'];
$activity->end_date = $reports[$i]['max_date']->setTime(23,59,59);
$activity->save();
}

Loading…
Cancel
Save