@extends('layouts.app') @section('title', 'Element 7: Management of Change') @section('content')

Element 7: Management of Change

Implement MOC process, assess risks before approval, document approvals and reviews with full traceability

Management of Change Dashboard

{{ $changeRequests->count() }}

Total change requests

{{ $changeRequests->whereIn('status', ['draft', 'submitted', 'under_review'])->count() }}

Pending review

@php $riskAssessed = $changeRequests->filter(fn($c) => $c->riskAssessment !== null)->count(); $riskAssessmentRate = $changeRequests->count() > 0 ? round(($riskAssessed / $changeRequests->count()) * 100) : 0; @endphp

{{ $riskAssessmentRate }}%

Risk assessed before approval

@php $totalApprovals = $changeRequests->flatMap(fn($c) => $c->approvals)->count(); $approvedCount = $changeRequests->flatMap(fn($c) => $c->approvals)->where('approval_status', 'approved')->count(); @endphp

{{ $totalApprovals }}

Documented approvals

{{ $changeRequests->whereIn('status', ['implemented', 'closed'])->count() }}

Successfully implemented

Management of Change Process Workflow

1

Initiate

Submit CR

2

Risk Assess

Evaluate impact

3

Review

Stakeholders

4

Approve

Management

5

Implement

Execute

6

Close

Verify & Close

Changes by Stage

@php $stageMapping = [ 'draft' => 'Initiate', 'submitted' => 'Initiate', 'under_review' => 'Review', 'risk_assessed' => 'Risk Assess', 'approved' => 'Approve', 'rejected' => 'Review', 'implemented' => 'Implement', 'closed' => 'Close' ]; $stageCounts = [ 'Initiate' => $changeRequests->whereIn('status', ['draft', 'submitted'])->count(), 'Risk Assess' => $changeRequests->where('status', 'risk_assessed')->count(), 'Review' => $changeRequests->whereIn('status', ['under_review', 'rejected'])->count(), 'Approve' => $changeRequests->where('status', 'approved')->count(), 'Implement' => $changeRequests->where('status', 'implemented')->count(), 'Close' => $changeRequests->where('status', 'closed')->count(), ]; @endphp

{{ $stageCounts['Initiate'] }}

Initiate

{{ $stageCounts['Risk Assess'] }}

Risk Assess

{{ $stageCounts['Review'] }}

Review

{{ $stageCounts['Approve'] }}

Approve

{{ $stageCounts['Implement'] }}

Implement

{{ $stageCounts['Close'] }}

Close

Change Traceability Tracker

Traceability Metrics

Changes with unique IDs {{ $changeRequests->count() }}/{{ $changeRequests->count() }}
Changes with audit trail {{ $changeRequests->count() }}
Changes with approvals {{ $changeRequests->filter(fn($c) => $c->approvals->count() > 0)->count() }}

Recent Activity Trail

@php $recentChanges = $changeRequests->sortByDesc('updated_at')->take(3); @endphp
@forelse($recentChanges as $change)

{{ $change->change_number }}

Updated {{ $change->updated_at->diffForHumans() }}

@empty

No recent activity

@endforelse

Traceability Status

Full Traceability

All changes tracked with unique CR numbers

Every change request is assigned a unique identifier and maintains a complete audit trail from initiation to closure.

Change Requests (CR) - MOC Process

@forelse($changeRequests as $change) @empty @endforelse
CR Number Title Type/Category Priority Status Risk Assessed Approvals Target Date
{{ $change->change_number }} {{ Str::limit($change->title, 40) }}
{{ ucfirst($change->change_type) }} {{ ucfirst($change->change_category) }}
{{ ucfirst($change->priority) }} {{ str_replace('_', ' ', ucwords($change->status, '_')) }} @if($change->riskAssessment)
Yes
@else
No
@endif
@if($change->approvals->count() > 0)
{{ $change->approvals->where('approval_status', 'approved')->count() }}/{{ $change->approvals->count() }}
@else No approvals @endif
{{ $change->target_implementation_date ? \Carbon\Carbon::parse($change->target_implementation_date)->format('d M Y') : 'N/A' }}
No change requests found

Risk Assessments (Before Approval)

@forelse($changeRequests->filter(fn($c) => $c->riskAssessment) as $change) @empty @endforelse
CR Number Overall Risk Level Impact Areas Hazards Identified Mitigation Required Assessed By Assessment Date
{{ $change->change_number }} {{ ucfirst($change->riskAssessment->overall_risk_level) }} {{ Str::limit($change->riskAssessment->impact_areas ?? 'N/A', 30) }} {{ Str::limit($change->riskAssessment->hazards_identified ?? 'N/A', 30) }} @if($change->riskAssessment->mitigation_measures_required) Yes @else No @endif {{ $change->riskAssessment->assessed_by }} {{ $change->riskAssessment->assessment_date ? $change->riskAssessment->assessment_date->format('d M Y') : 'N/A' }}
No risk assessments completed

Approvals & Reviews Documentation

@forelse($changeRequests->flatMap(fn($c) => $c->approvals->map(fn($a) => ['change' => $c, 'approval' => $a])) as $item) @empty @endforelse
CR Number Approver Name Approver Role Approval Status Approval Date Comments/Review Notes
{{ $item['change']->change_number }} {{ $item['approval']->approver_name }} {{ $item['approval']->approver_role }} {{ ucfirst($item['approval']->approval_status) }} {{ $item['approval']->approval_date ? $item['approval']->approval_date->format('d M Y H:i') : 'Pending' }} {{ Str::limit($item['approval']->comments ?? 'No comments', 50) }}
No approvals documented yet
@endsection