ikinci temizlik tamamlandı
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
/**
|
||||
* @api-readonly
|
||||
* Returns welder qualification table
|
||||
*/
|
||||
use App\Models\WelderTest;
|
||||
use App\Models\MaterialGroupMap;
|
||||
use Carbon\Carbon;
|
||||
|
||||
$query = WelderTest::leftJoin('naks_welders', function($join) {
|
||||
$join->on('naks_welders.naks_certificate_no', '=', 'welder_tests.naks_no')
|
||||
->orWhereRaw("FIND_IN_SET(naks_welders.naks_certificate_no, welder_tests.naks_no)");
|
||||
})
|
||||
->orderBy("id", "DESC")
|
||||
->select(
|
||||
"welder_tests.id",
|
||||
"welder_tests.naks_id",
|
||||
"welder_tests.wpq_document_no",
|
||||
DB::raw("GROUP_CONCAT(kss_number SEPARATOR ', ') AS kss_number"),
|
||||
"welder_tests.material_group_1",
|
||||
"welder_tests.material_group_2",
|
||||
"welder_tests.grade_1",
|
||||
"welder_tests.grade_2",
|
||||
DB::raw("MIN(dia_min) AS dia_min"), // Get the smallest dia_min
|
||||
DB::raw("
|
||||
MAX(CASE
|
||||
WHEN dia_max IS NULL OR dia_max = 0 THEN '♾️'
|
||||
ELSE dia_max
|
||||
END) AS dia_max
|
||||
"),
|
||||
DB::raw("MIN(thk_min) AS thk_min"), // Get the smallest thk_min
|
||||
DB::raw("
|
||||
MAX(CASE
|
||||
WHEN thk_max IS NULL OR thk_max = 0 THEN '♾️'
|
||||
ELSE thk_max
|
||||
END) AS thk_max
|
||||
"),
|
||||
"welder_tests.welding_method",
|
||||
"welder_tests.naks_no",
|
||||
"welder_tests.welding_date",
|
||||
"welder_tests.naks_technology_group",
|
||||
"welder_tests.approval_date",
|
||||
"welder_tests.naks_validity",
|
||||
DB::raw("MIN(naks_welders.period_of_validity) AS period_of_validity"), // Get the smallest period_of_validity
|
||||
"welder_tests.status",
|
||||
)
|
||||
->groupBy(
|
||||
"welder_tests.material_group_1",
|
||||
"welder_tests.material_group_2",
|
||||
"welder_tests.naks_id",
|
||||
"welder_tests.wpq_document_no",
|
||||
"welder_tests.welding_method",
|
||||
"welder_tests.naks_no"
|
||||
)
|
||||
->get();
|
||||
|
||||
|
||||
|
||||
|
||||
$materialGroupMap = MaterialGroupMap::all();
|
||||
$materialGroupMap2 = [];
|
||||
|
||||
$welderQualitificationStatusExpiredDate = setting("WelderQualitificationStatusExpiredDate");
|
||||
|
||||
foreach($materialGroupMap AS $material) {
|
||||
$materialGroupMap2[$material->material_name] = $material->qualified_materials;
|
||||
}
|
||||
foreach($query AS $q) {
|
||||
$q->qualified_materials = "";
|
||||
if ($q->material_group_1 != $q->material_group_2) {
|
||||
|
||||
// Check both orders: material_group_1+material_group_2 and material_group_2+material_group_1
|
||||
$key1 = $q->material_group_1 . "+" . $q->material_group_2;
|
||||
$key2 = $q->material_group_2 . "+" . $q->material_group_1;
|
||||
|
||||
if(isset($materialGroupMap2[$key1]))
|
||||
{
|
||||
$q->qualified_materials = $materialGroupMap2[$key1];
|
||||
} elseif(isset($materialGroupMap2[$key2]))
|
||||
{
|
||||
$q->qualified_materials = $materialGroupMap2[$key2];
|
||||
} else {
|
||||
$materialGroups1 = explode(",", $q->material_group_1);
|
||||
$materialGroups2 = explode(",", $q->material_group_2);
|
||||
|
||||
// Her iki grup için eşleşen materyalleri al
|
||||
$qualifiedMaterials1 = array_map(function ($group) use ($materialGroupMap2) {
|
||||
return $materialGroupMap2[$group] ?? null;
|
||||
}, $materialGroups1);
|
||||
|
||||
$qualifiedMaterials2 = array_map(function ($group) use ($materialGroupMap2) {
|
||||
return $materialGroupMap2[$group] ?? null;
|
||||
}, $materialGroups2);
|
||||
|
||||
// Her iki sonucu birleştir, benzersiz değerleri al ve null'ları filtrele
|
||||
$q->qualified_materials = implode(",", array_filter(array_unique(array_merge($qualifiedMaterials1, $qualifiedMaterials2))));
|
||||
}
|
||||
|
||||
} else {
|
||||
$materialGroups = explode(",", $q->material_group_1);
|
||||
|
||||
// Tek grup için eşleşen materyalleri al
|
||||
$qualifiedMaterials = array_map(function ($group) use ($materialGroupMap2) {
|
||||
return $materialGroupMap2[$group] ?? null;
|
||||
}, $materialGroups);
|
||||
|
||||
// Benzersiz değerleri al ve null'ları filtrele
|
||||
$q->qualified_materials = implode(",", array_filter(array_unique($qualifiedMaterials)));
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
if(!rejected_date($q->welding_date))
|
||||
{
|
||||
$q->expired_date = Carbon::parse($q->welding_date)->addDays($welderQualitificationStatusExpiredDate);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
echo json_encode_tr($query);
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user