@php @endphp

Writer Assessment Reports

@foreach($active_writers as $key => $file_writer) @php $writer=App\Models\User::where('UserID',$file_writer)->first(); @endphp
{{-- --}} @php $name=$writer->FullName; $writers_assigned_project_ids=App\Models\ProjectAssignments::where('created_at','>=',$start_date)->where('created_at','<=',$end_date)->where('WriterID',$writer->UserID)->distinct('ProjectID')->pluck('ProjectID'); $total_points=0; $total_rejected_points=0; $total_completed_points=0; $total_quality_points=0; $total_net_points=0; $total_done_words=0; $revenue=0; $total_revenue=0; @endphp @foreach($writers_assigned_project_ids as $project_id) @php $completed_points=0; $rejected_points=0; $quality_points=0; $net_points=0; $doneWords=0; $revenue=0; $project= App\Models\Projects::where('ProjectID',$project_id)->first(); if (!empty($project->ProjectTotalWords) && $project->ProjectTotalWords != 0) { $per_word_points = $project->ProjectPoints / $project->ProjectTotalWords; } else { $per_word_points = $project->hourly_total_words ?? 0; } $total_points=$total_points+$project->ProjectPoints; $project_files=App\Models\ProjectFiles::where('ProjectID',$project_id)->get(); foreach ($project_files as $files) { if($project->Status==11) { $cancelled_file= App\Models\ProjectFiles::where('FileID', $files->FileID)->where('WriterID',$writer->UserID)->first(); if(isset( $cancelled_file)){ $rejected_points = $rejected_points + ($per_word_points * $cancelled_file->UploadedWords) ; $completed_points = ($rejected_points) * -1 ; $total_rejected_points= $total_rejected_points + $rejected_points; $total_completed_points = $total_completed_points + $completed_points; } }else if($project->Status == 12 || $project->Status == 13){ $total_words=0; $file = App\Models\ProjectFiles::where('FileID', $files->FileID)->where('WriterID', $writer->UserID)->first(); if (isset($file)) { $uploaded_words = $file->UploadedWords ?? 0; if (!empty($project->ProjectTotalWords) && $project->ProjectTotalWords != 0) { $rate = $project->ProjectAmount / $project->ProjectTotalWords; } else if (!empty($project->hourly_total_words) && $project->hourly_total_words != 0) { $rate = $project->ProjectAmount / $project->hourly_total_words; } else { $rate = 0; // fallback if both values are missing } $revision = is_numeric($file->majorRevision) ? floatval($file->majorRevision) : 1; $revision = min($revision, 1); // max 100% deduction $doneWords += $uploaded_words; $earnedPoints = $file->EarnedPoints; $deducted = $earnedPoints * $revision; $completed_points += $earnedPoints; $quality_points += $deducted; $net_points += $earnedPoints - $deducted; $total_completed_points += $earnedPoints; $total_quality_points += $deducted; $total_net_points += ($earnedPoints - $deducted); $revenue += $uploaded_words * $rate; $total_revenue += $uploaded_words * $rate; } } } $total_done_words += $doneWords; @endphp {{-- --}} @endforeach {{-- --}}
Project ID Project Name Available Points Cancelled Points Earned Points Quality Points Lost Net PointsDone WordsRevenue
{{$project->ProjectID }} {{$project->Title}} {{$project->ProjectPoints??0}} {{round($rejected_points,2)}} {{round($completed_points,2)}} {{round($quality_points,2)}} {{round($net_points,2)}}{{ $doneWords}}$ {{number_format($revenue)}}
{{$total_points}} {{round($total_rejected_points,2)}} {{round($total_completed_points,2)}} {{round($total_quality_points,2)}} {{round($total_net_points,2)}} {{ $total_done_words }}$ {{number_format($total_revenue)}}
@endforeach