Files
citrus-cms/resources/views/admin-ajax/repair-table/subcontractor-rt-ut-analysis.blade.php
T
2026-04-28 21:15:09 +03:00

79 lines
2.9 KiB
PHP

<?php
use Illuminate\Support\Facades\DB;
$results = DB::table('weld_logs')
->select([
'ste_subcontractor',
// RT Shop
DB::raw('SUM(CASE WHEN type_of_joint = "S" AND rt_result IS NOT NULL AND rt_result != "" THEN 1 ELSE 0 END) as rt_shop_total'),
DB::raw('SUM(CASE WHEN type_of_joint = "S" AND rt_result NOT IN ("", "Accept / Годен") THEN 1 ELSE 0 END) as rt_shop_repair'),
// RT Field
DB::raw('SUM(CASE WHEN type_of_joint = "F" AND rt_result IS NOT NULL AND rt_result != "" THEN 1 ELSE 0 END) as rt_field_total'),
DB::raw('SUM(CASE WHEN type_of_joint = "F" AND rt_result NOT IN ("", "Accept / Годен") THEN 1 ELSE 0 END) as rt_field_repair'),
// UT Shop
DB::raw('SUM(CASE WHEN type_of_joint = "S" AND ut_result IS NOT NULL AND ut_result != "" THEN 1 ELSE 0 END) as ut_shop_total'),
DB::raw('SUM(CASE WHEN type_of_joint = "S" AND ut_result NOT IN ("", "Accept / Годен") THEN 1 ELSE 0 END) as ut_shop_repair'),
// UT Field
DB::raw('SUM(CASE WHEN type_of_joint = "F" AND ut_result IS NOT NULL AND ut_result != "" THEN 1 ELSE 0 END) as ut_field_total'),
DB::raw('SUM(CASE WHEN type_of_joint = "F" AND ut_result NOT IN ("", "Accept / Годен") THEN 1 ELSE 0 END) as ut_field_repair'),
])
->whereNotNull('ste_subcontractor')
->where('ste_subcontractor', '!=', '')
->groupBy('ste_subcontractor')
->orderBy('ste_subcontractor')
->get();
$formattedResults = [];
foreach ($results as $r) {
// Calculate RT Shop Rate
$rtShopRate = 0;
if ($r->rt_shop_total > 0) {
$rtShopRate = round(($r->rt_shop_repair * 100.0) / $r->rt_shop_total, 2);
}
// Calculate RT Field Rate
$rtFieldRate = 0;
if ($r->rt_field_total > 0) {
$rtFieldRate = round(($r->rt_field_repair * 100.0) / $r->rt_field_total, 2);
}
// Calculate UT Shop Rate
$utShopRate = 0;
if ($r->ut_shop_total > 0) {
$utShopRate = round(($r->ut_shop_repair * 100.0) / $r->ut_shop_total, 2);
}
// Calculate UT Field Rate
$utFieldRate = 0;
if ($r->ut_field_total > 0) {
$utFieldRate = round(($r->ut_field_repair * 100.0) / $r->ut_field_total, 2);
}
// Calculate General Rate
$totalRepair = $r->rt_shop_repair + $r->rt_field_repair + $r->ut_shop_repair + $r->ut_field_repair;
$totalExamined = $r->rt_shop_total + $r->rt_field_total + $r->ut_shop_total + $r->ut_field_total;
$generalRate = 0;
if ($totalExamined > 0) {
$generalRate = round(($totalRepair * 100.0) / $totalExamined, 2);
}
$formattedResults[] = [
'Subcontractor' => $r->ste_subcontractor,
'RT Shop' => $rtShopRate,
'RT Field' => $rtFieldRate,
'UT Shop' => $utShopRate,
'UT Field' => $utFieldRate,
'General Rate %' => $generalRate
];
}
echo json_encode($formattedResults, JSON_PRETTY_PRINT);
?>