|
|
|
@ -36,10 +36,11 @@ class MasterFunctionsHelper
|
|
|
|
|
return json_decode($output); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static function countDays($ganttId, $start, $end){ |
|
|
|
|
public static function countDays($ganttId, $start, $end) |
|
|
|
|
{ |
|
|
|
|
$dayOffs = VersionGantt::where('id', $ganttId)->first()->config_dayoff; |
|
|
|
|
$diff = date_diff($start, $end); |
|
|
|
|
$endCount = clone $end; |
|
|
|
|
$endCount = clone $end; |
|
|
|
|
$duration = $diff->days + 1; |
|
|
|
|
$daysRemaining = $duration; |
|
|
|
|
// Loop until the remaining days become zero |
|
|
|
@ -206,7 +207,7 @@ class MasterFunctionsHelper
|
|
|
|
|
$end = new \DateTime($maxDate . ' Friday'); |
|
|
|
|
$end->modify('next Friday'); |
|
|
|
|
$end->modify('next Friday'); |
|
|
|
|
/* $interval = \DateInterval::createFromDateString('1 day'); */// should be using this but its bugged |
|
|
|
|
/* $interval = \DateInterval::createFromDateString('1 day'); */ // should be using this but its bugged |
|
|
|
|
$interval = new \DateInterval('P7D'); |
|
|
|
|
} else { |
|
|
|
|
$actualMaxDate = DB::table('assign_material_to_activity as ama') |
|
|
|
@ -402,7 +403,7 @@ class MasterFunctionsHelper
|
|
|
|
|
|
|
|
|
|
// if($tempTtlPercentActual >= $keyGantt['progress']) |
|
|
|
|
// $tempTtlPercentActual = $keyGantt['progress']; |
|
|
|
|
// todo |
|
|
|
|
// todo |
|
|
|
|
// if ($tempTtlPercentPlan >= 100) |
|
|
|
|
// $tempTtlPercentPlan = 100; |
|
|
|
|
// $sumPercentageActual > $keyGantt['progress'] ? $keyGantt['progress'] : $sumPercentageActual |
|
|
|
@ -448,8 +449,8 @@ class MasterFunctionsHelper
|
|
|
|
|
$potential = $costDeviation == 0 ? "ON BUDGET" : "OVERRUN"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$lastReal = $tempPercentageReal[count($tempPercentageReal) - 1]; |
|
|
|
|
$totalBCWP = $lastReal * $dataProject->rencana_biaya / 100; |
|
|
|
|
$lastReal = $tempPercentageReal[count($tempPercentageReal) - 1]; |
|
|
|
|
$totalBCWP = $lastReal * $dataProject->rencana_biaya / 100; |
|
|
|
|
$dataResponse = array( |
|
|
|
|
"date" => $tempDate, |
|
|
|
|
"percentage" => $tempPercentage, |
|
|
|
@ -514,7 +515,7 @@ class MasterFunctionsHelper
|
|
|
|
|
$end = new \DateTime($maxDate); |
|
|
|
|
$end->modify('next Friday'); |
|
|
|
|
$end->modify('next Friday'); |
|
|
|
|
/* $interval = \DateInterval::createFromDateString('1 day'); */// should be using this but its bugged |
|
|
|
|
/* $interval = \DateInterval::createFromDateString('1 day'); */ // should be using this but its bugged |
|
|
|
|
$interval = new \DateInterval('P7D'); |
|
|
|
|
} else { |
|
|
|
|
// $maxDate = DB::table('assign_material_to_activity as ama') |
|
|
|
@ -655,17 +656,17 @@ class MasterFunctionsHelper
|
|
|
|
|
->where('activity_id', '=', $keyActualM->activity_id) |
|
|
|
|
->orderBy('status_activity', 'ASC') |
|
|
|
|
->first(); |
|
|
|
|
if (!isset($checkStatusActivity)) { |
|
|
|
|
$checkStatusActivity = (object) [ |
|
|
|
|
'activity_id' => $keyActualM->activity_id, |
|
|
|
|
'status_activity' => 'open' |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
if ($sumVolActual->ttl_qty_plan == "0") { |
|
|
|
|
$actual = 0; |
|
|
|
|
} else { |
|
|
|
|
$actual = $keyActualM->qty / $sumVolActual->ttl_qty_plan; |
|
|
|
|
} |
|
|
|
|
if (!isset($checkStatusActivity)) { |
|
|
|
|
$checkStatusActivity = (object) [ |
|
|
|
|
'activity_id' => $keyActualM->activity_id, |
|
|
|
|
'status_activity' => 'open' |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
if ($sumVolActual->ttl_qty_plan == "0") { |
|
|
|
|
$actual = 0; |
|
|
|
|
} else { |
|
|
|
|
$actual = $keyActualM->qty / $sumVolActual->ttl_qty_plan; |
|
|
|
|
} |
|
|
|
|
$dataTempReport[$w]['percentage'] = $actual * $keyActualM->bobot_planning; |
|
|
|
|
// $sumPercentageActual+=($keyActualM->qty/$sumVolActual->ttl_qty_plan)*$keyActualM->bobot_planning; |
|
|
|
|
// if($keyActualM->qty/$sumVolActual->ttl_qty_plan >= 1){ |
|
|
|
@ -673,7 +674,7 @@ class MasterFunctionsHelper
|
|
|
|
|
$sumPercentageActual += $keyActualM->bobot_planning / $reportCount; |
|
|
|
|
// $sumPercentageActual = $sumPercentageActual > $keyGantt['progress'] ? $keyGantt['progress'] : $sumPercentageActual; |
|
|
|
|
} else { |
|
|
|
|
if ( $actual >= 1 || (int) $sumVolActual->ttl_qty_plan == (int) $sumReportActual) { |
|
|
|
|
if ($actual >= 1 || (int) $sumVolActual->ttl_qty_plan == (int) $sumReportActual) { |
|
|
|
|
$sumPercentageActual += ($actual * $keyActualM->bobot_planning) * (95 / 100); |
|
|
|
|
// $sumPercentageActual = $sumPercentageActual > $keyGantt['progress'] ? $keyGantt['progress'] : $sumPercentageActual; |
|
|
|
|
} else { |
|
|
|
@ -708,13 +709,10 @@ class MasterFunctionsHelper
|
|
|
|
|
if (isset($dataPayload['period']) && $dataPayload['period'] == 'week') { |
|
|
|
|
$tempTtlPercentPlan += $sumPercentagePlan; |
|
|
|
|
$tempTtlPercentActual += $sumPercentageActual; |
|
|
|
|
// todo |
|
|
|
|
// todo |
|
|
|
|
// if ($tempTtlPercentPlan >= 100) |
|
|
|
|
// $tempTtlPercentPlan = 100; |
|
|
|
|
|
|
|
|
|
if ($tempTtlPercentPlan >= 100) |
|
|
|
|
$tempTtlPercentPlan = 100; |
|
|
|
|
|
|
|
|
|
$currentACWP += $totalACWP; |
|
|
|
|
$currentBCWP += $totalBCWP; |
|
|
|
|
|
|
|
|
@ -755,7 +753,7 @@ class MasterFunctionsHelper
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$lastReal = $tempPercentageReal[count($tempPercentageReal) - 1]; |
|
|
|
|
$totalBCWP = $lastReal * $dataProject->rencana_biaya / 100; |
|
|
|
|
$totalBCWP = $lastReal * $dataProject->rencana_biaya / 100; |
|
|
|
|
$dataResponse = array( |
|
|
|
|
"date" => $tempDate, |
|
|
|
|
"percentage" => $tempPercentage, |
|
|
|
@ -820,7 +818,7 @@ class MasterFunctionsHelper
|
|
|
|
|
if (isset($dataPayload['end_date'])) { |
|
|
|
|
$maxDate = $dataPayload['end_date']; |
|
|
|
|
$end = new \DateTime($maxDate); |
|
|
|
|
/* $interval = \DateInterval::createFromDateString('1 day'); */// should be using this but its bugged |
|
|
|
|
/* $interval = \DateInterval::createFromDateString('1 day'); */ // should be using this but its bugged |
|
|
|
|
$interval = new \DateInterval('P7D'); |
|
|
|
|
} else { |
|
|
|
|
// $maxDate = DB::table('assign_material_to_activity as ama') |
|
|
|
@ -1009,5 +1007,4 @@ class MasterFunctionsHelper
|
|
|
|
|
|
|
|
|
|
return $dataFinal; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|