TP Haritasını Oluştur // Tüm weld_logs'u çekmek yerine sadece eşleştirme için gerekli alanları çekiyoruz $mappings = db("weld_logs") ->select("line_number", "iso_number", "test_package_no") ->whereNotNull("test_package_no") ->where("test_package_no", "!=", "") ->distinct() ->get(); $isoToTP = []; foreach($mappings as $map) { if($map->line_number) { $isoToTP[$map->line_number] = $map->test_package_no; } if($map->iso_number) { $isoToTP[$map->iso_number] = $map->test_package_no; } } // 3. Veriyi İşle (Referans: ndt-calculation-no-cache.blade.php) $tpStats = []; $tpISOStats = []; if (is_array($ndtData)) { foreach($ndtData AS $row) { // Doğru ISO/TP ilişkisini kullanarak TP numarasını al $tpNo = ""; // Veri kaynağında line_number varsa ve haritada karşılığı varsa if(isset($row['line_number']) && isset($isoToTP[$row['line_number']])) { $tpNo = trim($isoToTP[$row['line_number']]); } // Alternatif olarak iso_number kontrolü else if(isset($row['iso_number']) && isset($isoToTP[$row['iso_number']])) { $tpNo = trim($isoToTP[$row['iso_number']]); } if($tpNo != "") { $testTypes = array_keys(log_test_types()); if(!isset($tpStats[$tpNo])) { $tpStats[$tpNo]['test_package_no'] = $tpNo; foreach($testTypes AS $testType) { $tpStats[$tpNo][$testType] = 0; } } // ISO numarasını belirle $isoNum = $row['iso_number'] ?? ($row['line_number'] ?? 'Unknown'); if(!isset($tpISOStats[$tpNo][$isoNum])) { $tpISOStats[$tpNo][$isoNum]['test_package_no'] = $tpNo; $tpISOStats[$tpNo][$isoNum]['iso_number'] = $isoNum; foreach($testTypes AS $testType) { $tpISOStats[$tpNo][$isoNum][$testType] = 0; } } foreach($testTypes AS $testType) { // Backlog değeri kontrolü ve negatif değerleri sıfıra dönüştürme $backlogValue = 0; if(isset($row[$testType . '_backlog'])) { $backlogValue = max(0, (int)$row[$testType . '_backlog']); } if($backlogValue > 0) { $tpStats[$tpNo][$testType] += $backlogValue; $tpISOStats[$tpNo][$isoNum][$testType] += $backlogValue; } } } } } $tpStatsRefactor = []; foreach($tpStats AS $tpStat) { $tpStatsRefactor[] = $tpStat; } $tpISOStatsRefactor = []; foreach($tpISOStats AS $tpNo => $data) { foreach($data AS $d) { $tpISOStatsRefactor[] = $d; } } $tpDatas = [ 'tp_base' => $tpStatsRefactor, 'tp_base_iso' => $tpISOStatsRefactor, 'tpStats' => $tpStats, 'tpISOStats' => $tpISOStats, ]; echo json_encode_tr($tpDatas); } elseif(getesit("type", "backlogs")) { $ndtData = json_decode(setting("ndtCalculation"), true); $ndtBacklogStats = []; if (is_array($ndtData)) { foreach($ndtData as $d) { foreach($d as $field => $value) { if(strpos($field, "backlog") !== false) { $key = strtoupper(str_replace("_backlog", "", $field)); if($value > 0) { if(!isset($ndtBacklogStats[$key])) { $ndtBacklogStats[$key] = 0; } $ndtBacklogStats[$key] += $value; } } } } } $result = []; foreach($ndtBacklogStats as $key => $totalBacklog) { $result[] = [ 'type' => $key, 'backlog' => $totalBacklog ]; } echo json_encode($result); } else { cacheBladeLoad('ndt-calculation'); } ?>