get(); foreach($weldLogs AS $weldLog) { $welderId = get_welder_id($weldLog->real_welder_1); $date = $weldLog->welding_date; $nps = (float) $weldLog->nps_1; if(!in_array($welderId, $weldlogWelders)) { $weldlogWelders[] = $welderId; } if(!isset($totalWelderWdi[$welderId])) $totalWelderWdi[$welderId] = 0; if(!isset($totalWelderJoint[$welderId])) $totalWelderJoint[$welderId] = 0; if(!isset($todayTotalWelderWdi[$welderId])) $todayTotalWelderWdi[$welderId] = 0; if(!isset($todayTotalWelderJoint[$welderId])) $todayTotalWelderJoint[$welderId] = 0; if(!isset($dailyTotalWdi[$welderId][$date])) $dailyTotalWdi[$welderId][$date] = 0; if(!isset($dailyShopTotalWdi[$welderId][$date])) $dailyShopTotalWdi[$welderId][$date] = 0; if(!isset($dailyFieldTotalWdi[$welderId][$date])) $dailyFieldTotalWdi[$welderId][$date] = 0; $totalWelderWdi[$welderId] += $nps; $totalWelderJoint[$welderId]++; $weldingDate = Carbon::parse($weldLog->welding_date); // Karşılaştırılacak tarih if ($weldingDate->isYesterday()) { $todayTotalWelderWdi[$welderId] += $nps; $todayTotalWelderJoint[$welderId]++; } if($weldLog->type_of_joint == "S") { $dailyShopTotalWdi[$welderId][$date] += $nps; } else { $dailyFieldTotalWdi[$welderId][$date] += $nps; } } foreach($dailyTotalWdi AS $welderId => $data) { try { $dailyAverage[$welderId] = round(array_sum($data) / count(array_filter($data)), 2); } catch (\Throwable $th) { $dailyAverage[$welderId] = 0; } } foreach($dailyShopTotalWdi AS $welderId => $data) { try { $dailyShopAverage[$welderId] = round(array_sum($data) / count(array_filter($data)), 2); } catch (\Throwable $th) { $dailyShopAverage[$welderId] = 0; } } foreach($dailyFieldTotalWdi AS $welderId => $data) { try { $dailyFieldAverage[$welderId] = round(array_sum($data) / count(array_filter($data)), 2); } catch (\Throwable $th) { $dailyFieldAverage[$welderId] = 0; } } $totalExaminedJoint = []; $totalAcceptedJoint = []; $totalNotAcceptedJoint = []; $todayNotAcceptedJoint = []; $repairRate = []; $rtLogs = db("radiographic_tests")->get(); foreach($rtLogs AS $rtLog) { $welderId = get_welder_id($rtLog->real_welder_1); if(!isset($totalExaminedJoint[$welderId])) $totalExaminedJoint[$welderId] = 0; if(!isset($repairRate[$welderId])) $repairRate[$welderId] = 0; if(!isset($totalAcceptedJoint[$welderId])) $totalAcceptedJoint[$welderId] = 0; if(!isset($totalNotAcceptedJoint[$welderId])) $totalNotAcceptedJoint[$welderId] = 0; if(!isset($todayNotAcceptedJoint[$welderId])) $todayNotAcceptedJoint[$welderId] = 0; if($rtLog->rt_result != "") { $totalExaminedJoint[$welderId]++; } if($rtLog->rt_result == "Accept / Годен") { $totalAcceptedJoint[$welderId]++; } elseif($rtLog->rt_result != "") { $totalNotAcceptedJoint[$welderId]++; } $weldingDate = Carbon::parse($rtLog->welding_date); // Karşılaştırılacak tarih if ($weldingDate->isYesterday()) { $todayNotAcceptedJoint[$welderId]++; } } $query = db("naks_welders")->orderBy("id","DESC") ->select( DB::raw("1 AS num"), "welder_name_ru", "company", "status", "welder_id", /* DB::raw("(SELECT SUM(nps_1) FROM weld_logs WHERE weld_logs.real_welder_1 = naks_welders.welder_id) AS total_welder_wdi"), DB::raw("(SELECT COUNT(nps_1) FROM weld_logs WHERE weld_logs.real_welder_1 = naks_welders.welder_id) AS total_welder_joint"), DB::raw("(SELECT SUM(nps_1) FROM weld_logs WHERE weld_logs.real_welder_1 = naks_welders.welder_id AND DATE(welding_date) = CURRENT_DATE()) AS today_total_welder_wdi"), DB::raw("(SELECT COUNT(nps_1) FROM weld_logs WHERE weld_logs.real_welder_1 = naks_welders.welder_id AND DATE(welding_date) = CURRENT_DATE()) AS today_total_welder_joint"), */ ) ->whereIn("welder_id", $weldlogWelders) ->groupBy("welder_id") ->get(); $k = 0; foreach($query AS $q) { $k++; $q->num = $k; $q->total_welder_wdi = isset($totalWelderWdi[$q->welder_id]) ? round($totalWelderWdi[$q->welder_id], 2) : 0; $q->total_welder_joint = isset($totalWelderJoint[$q->welder_id]) ? round($totalWelderJoint[$q->welder_id], 2) : 0; $q->today_total_welder_wdi = isset($todayTotalWelderWdi[$q->welder_id]) ? round($todayTotalWelderWdi[$q->welder_id], 2) : 0; $q->today_total_welder_joint = isset($todayTotalWelderJoint[$q->welder_id]) ? round($todayTotalWelderJoint[$q->welder_id], 2) : 0; $q->total_examined_joint = isset($totalExaminedJoint[$q->welder_id]) ? round($totalExaminedJoint[$q->welder_id], 2) : 0; $q->total_accepted_joint = isset($totalAcceptedJoint[$q->welder_id]) ? round($totalAcceptedJoint[$q->welder_id], 2) : 0; $q->total_not_accepted_joint = isset($totalNotAcceptedJoint[$q->welder_id]) ? round($totalNotAcceptedJoint[$q->welder_id], 2) : 0; try { $q->repair_rate = round($q->total_not_accepted_joint * 100 / $q->total_examined_joint,2); } catch (\Throwable $th) { $q->repair_rate = 0; } if(isset($dailyAverage[$q->welder_id])) { $q->daily_average = $dailyAverage[$q->welder_id]; } else { $q->daily_average = 0; } if(isset($dailyShopAverage[$q->welder_id])) { $q->daily_shop_average = $dailyShopAverage[$q->welder_id]; } else { $q->daily_shop_average = 0; } if(isset($dailyFieldAverage[$q->welder_id])) { $q->daily_field_average = $dailyFieldAverage[$q->welder_id]; } else { $q->daily_field_average = 0; } if(isset($todayNotAcceptedJoint[$q->welder_id])) { $q->today_not_acc_joint = $todayNotAcceptedJoint[$q->welder_id]; } else { $q->today_not_acc_joint = 0; } } $json = json_encode_tr($query); $json = str_replace("_", " ", $json); echo $json; ?>