select("ste_subcontractor") ->whereNotNull("ste_subcontractor") ->distinct() ->pluck("ste_subcontractor") ->toArray(); $monthly = apply_welded_filter(db("weld_logs")) ->select(DB::raw('(SUM(CASE WHEN type_of_joint = "S" THEN nps_1 ELSE 0 END) + 0) as sum_S'), DB::raw('(SUM(CASE WHEN type_of_joint = "F" THEN nps_1 ELSE 0 END) + 0) as sum_F')) ->selectRaw("(SUM(nps_1) + 0) AS total_nps"); foreach ($subcontractors as $subcontractor) { $safeSubcontractor = addslashes($subcontractor); $monthly->selectRaw( "(SUM(CASE WHEN ste_subcontractor = '{$safeSubcontractor}' THEN nps_1 ELSE 0 END) + 0) as " . str_slug($subcontractor, "_") ); } $monthly = $monthly ->selectRaw('DATE_FORMAT(welding_date, "%m.%y") as month') ->whereNotNull("welding_date") ->groupByRaw('DATE_FORMAT(welding_date, "%m.%y")') ->orderByRaw('MIN(welding_date) ASC') ->get(); // String değerleri float'a dönüştür ve null değerleri 0 yap foreach ($monthly as $item) { $item->sum_S = (float) ($item->sum_S ?? 0); $item->sum_F = (float) ($item->sum_F ?? 0); $item->total_nps = (float) ($item->total_nps ?? 0); foreach ($subcontractors as $subcontractor) { $fieldName = str_slug($subcontractor, "_"); if (isset($item->$fieldName)) { $item->$fieldName = (float) ($item->$fieldName ?? 0); } else { $item->$fieldName = 0.0; } } } // Debug için veriyi kontrol et // dd($monthly->toArray()); ?>