Skip to content
Snippets Groups Projects
Commit c8252ede authored by Kurniandha Sukma Yunastrian's avatar Kurniandha Sukma Yunastrian
Browse files

Add phase 07

parent 813a9eb2
No related merge requests found
...@@ -46,6 +46,8 @@ class PhaseController extends Controller ...@@ -46,6 +46,8 @@ class PhaseController extends Controller
$view = PhaseController::phase05View($project, $phaseNumber, $userRole); $view = PhaseController::phase05View($project, $phaseNumber, $userRole);
} else if ($phaseNumber == 6) { } else if ($phaseNumber == 6) {
$view = PhaseController::phase06View($project, $phaseNumber, $userRole); $view = PhaseController::phase06View($project, $phaseNumber, $userRole);
} else if ($phaseNumber == 7) {
$view = PhaseController::phase07View($project, $phaseNumber, $userRole);
} else { } else {
abort(404); abort(404);
} }
...@@ -69,6 +71,8 @@ class PhaseController extends Controller ...@@ -69,6 +71,8 @@ class PhaseController extends Controller
PhaseController::determineScorestatus($request->projectId); PhaseController::determineScorestatus($request->projectId);
} else if ($currentPhaseNumber == 6) { } else if ($currentPhaseNumber == 6) {
PhaseController::calculateScoreStatusVotes($request->projectId); PhaseController::calculateScoreStatusVotes($request->projectId);
} else if ($currentPhaseNumber == 7) {
PhaseController::calculateRequirementScore($request->projectId);
} }
DB::table('projects')->where('id', $request->projectId)->increment('phase'); DB::table('projects')->where('id', $request->projectId)->increment('phase');
...@@ -523,6 +527,48 @@ class PhaseController extends Controller ...@@ -523,6 +527,48 @@ class PhaseController extends Controller
return redirect()->route('project', ['id' => $request->projectId])->with('msg', 'Phase 6 submitted successfully'); return redirect()->route('project', ['id' => $request->projectId])->with('msg', 'Phase 6 submitted successfully');
} }
/**
* Open view seventh phase.
*/
public function phase07View($project, $phaseNumber, $userRole)
{
$requirements = DB::table('requirements')->where('idProject', $project->id)->get();
$criterias = DB::table('criterias')->where('idProject', $project->id)->where('used', 1)->get();
$scores = [];
$isAllApproved = true;
foreach($requirements as $requirement) {
foreach($criterias as $criteria) {
$score = DB::table('scores')->where('idRequirement', $requirement->id)->where('idCriteria', $criteria->id)->first();
if ($score->status == 0) {
$isAllApproved = false;
}
$scores[] = $score;
}
}
return view('phase.phase07', ['project' => $project, 'phaseNumber' => $phaseNumber, 'phaseName' => 'Discuss Unapproved Score', 'role' => $userRole, 'requirements' => $requirements, 'criterias' => $criterias, 'scores' => $scores, 'isAllApproved' => $isAllApproved]);
}
/**
* Submit seventh phase.
*/
public function phase07Submit(Request $request)
{
foreach($request->scoreId as $index => $id) {
$affected = DB::table('scores')->where('id', $id)->update(['status' => 1]);
$affected = DB::table('scores')->where('id', $id)->update(['score' => $request->scoreVal[$index]]);
}
DB::table('userprojects')->where('idUser', Auth::id())->increment('phase');
return redirect()->route('project', ['id' => $request->projectId])->with('msg', 'Phase 7 submitted successfully');
}
/** /**
* Calculate criteria votes from second phase. * Calculate criteria votes from second phase.
*/ */
...@@ -727,4 +773,27 @@ class PhaseController extends Controller ...@@ -727,4 +773,27 @@ class PhaseController extends Controller
} }
} }
} }
/**
* Calculate requirement score from seventh phase.
*/
public function calculateRequirementScore($projectId)
{
$requirements = DB::table('requirements')->where('idProject', $projectId)->get();
$criterias = DB::table('criterias')->where('idProject', $projectId)->where('used', 1)->get();
foreach($requirements as $requirement) {
$requirementScore = 0;
foreach($criterias as $criteria) {
$criteriaScore = DB::table('scores')->where('idRequirement', $requirement->id)->where('idCriteria', $criteria->id)->first();
$requirementScore += $criteriaScore->score * $criteria->weight;
}
$affected = DB::table('requirements')->where('id', $requirement->id)->update(['score' => $requirementScore]);
}
}
} }
@extends('phase')
@section('childphase')
<div class="col-md-12">
<div class="card mt-4">
<form action="/project/phase/07" method="post">
{{ csrf_field() }}
<div class="card-header font-weight-bold bg-primary text-white">Phase {{ $phaseNumber }}: {{ $phaseName }}</div>
<div class="card-body">
<b>Instruction:</b> <br>
Moderator fill new score from discussion result
</div>
<div class="card-body">
<b>Score results:</b>
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Requirement</th>
@foreach($criterias as $criteria)
<th scope="col">{{$criteria->name}} ({{$criteria->weight}})</th>
@endforeach
</tr>
</thead>
<tbody>
@foreach($requirements as $indexR => $requirement)
<tr>
<th scope="row" class="align-middle">R{{ $requirement->number + 1 }}</th>
<td class="align-middle">{{ $requirement->name }}</td>
@foreach($criterias as $indexC => $criteria)
@foreach($scores as $score)
@if (($score->idRequirement == $requirement->id) && ($score->idCriteria == $criteria->id))
<td class="align-middle {{ $score->status == 1 ? 'table-success' : '' }}">{{ $score->score }}</td>
@endif
@endforeach
@endforeach
</tr>
@endforeach
</tbody>
</table>
@if (($role == 1) && (!$isAllApproved))
<b>Fill unapproved score:</b>
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Requirement</th>
<th scope="col">Criteria</th>
<th scope="col">New Score</th>
</tr>
</thead>
<tbody>
@foreach($requirements as $indexR => $requirement)
@foreach($criterias as $indexC => $criteria)
@foreach($scores as $score)
@if (($score->idRequirement == $requirement->id) && ($score->idCriteria == $criteria->id) && ($score->status == 0))
<tr>
<th scope="row" class="align-middle">R{{ $requirement->number + 1 }}</th>
<td class="align-middle">{{ $requirement->name }}</td>
<td class="align-middle">{{ $criteria->name }} ({{ $criteria->weight }})</td>
<td class="align-middle">
<input type="hidden" name="scoreId[]" value="{{ $score->id }}">
<input type="number" class="form-control" required="required" name="scoreVal[]" min="0" max="3" step="0.01">
</td>
</tr>
@endif
@endforeach
@endforeach
@endforeach
</tbody>
</table>
@endif
<input type="hidden" id="projectId" name="projectId" value="{{ $project->id }}">
</div>
<div class="card-footer bg-white">
<a class="btn btn-secondary" href="/project/{{ $project->id }}" role="button">Back to project page</a>
@if (($role == 1) && (!$isAllApproved))
<button type="submit" class="btn btn-success float-right">Submit</button>
@endif
</div>
</form>
</div>
</div>
@endsection
...@@ -35,6 +35,7 @@ Route::post('/project/phase/03', [PhaseController::class, 'phase03Submit']); ...@@ -35,6 +35,7 @@ Route::post('/project/phase/03', [PhaseController::class, 'phase03Submit']);
Route::post('/project/phase/04', [PhaseController::class, 'phase04Submit']); Route::post('/project/phase/04', [PhaseController::class, 'phase04Submit']);
Route::post('/project/phase/05', [PhaseController::class, 'phase05Submit']); Route::post('/project/phase/05', [PhaseController::class, 'phase05Submit']);
Route::post('/project/phase/06', [PhaseController::class, 'phase06Submit']); Route::post('/project/phase/06', [PhaseController::class, 'phase06Submit']);
Route::post('/project/phase/07', [PhaseController::class, 'phase07Submit']);
Route::post('/requirement/add', [RequirementController::class, 'add']); Route::post('/requirement/add', [RequirementController::class, 'add']);
// Redirect // Redirect
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment