diff --git a/app/Http/Controllers/PhaseController.php b/app/Http/Controllers/PhaseController.php
index 076b4a36df3dc9f91aa69a8058943a8cf42d228a..09356bd1d8f42973d7804b9b909616d8cf2d1cfd 100644
--- a/app/Http/Controllers/PhaseController.php
+++ b/app/Http/Controllers/PhaseController.php
@@ -46,6 +46,8 @@ class PhaseController extends Controller
             $view = PhaseController::phase05View($project, $phaseNumber, $userRole);
         } else if ($phaseNumber == 6) {
             $view = PhaseController::phase06View($project, $phaseNumber, $userRole);
+        } else if ($phaseNumber == 7) {
+            $view = PhaseController::phase07View($project, $phaseNumber, $userRole);
         } else {
             abort(404);
         }
@@ -69,6 +71,8 @@ class PhaseController extends Controller
             PhaseController::determineScorestatus($request->projectId);
         } else if ($currentPhaseNumber == 6) {
             PhaseController::calculateScoreStatusVotes($request->projectId);
+        } else if ($currentPhaseNumber == 7) {
+            PhaseController::calculateRequirementScore($request->projectId);
         }
 
         DB::table('projects')->where('id', $request->projectId)->increment('phase');
@@ -523,6 +527,48 @@ class PhaseController extends Controller
         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.
      */
@@ -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]);
+        }
+    }
 }
diff --git a/resources/views/phase/phase07.blade.php b/resources/views/phase/phase07.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..826ffa55945ecfbfea285053591a7a644b20afef
--- /dev/null
+++ b/resources/views/phase/phase07.blade.php
@@ -0,0 +1,89 @@
+@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
diff --git a/routes/web.php b/routes/web.php
index 00f408a4df2b291fd48dbb07dc136a1283358b47..d4b6260b7c6e94480de9de445a7d3b77770abe53 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -35,6 +35,7 @@ Route::post('/project/phase/03', [PhaseController::class, 'phase03Submit']);
 Route::post('/project/phase/04', [PhaseController::class, 'phase04Submit']);
 Route::post('/project/phase/05', [PhaseController::class, 'phase05Submit']);
 Route::post('/project/phase/06', [PhaseController::class, 'phase06Submit']);
+Route::post('/project/phase/07', [PhaseController::class, 'phase07Submit']);
 Route::post('/requirement/add', [RequirementController::class, 'add']);
 
 // Redirect