select( "welder_name_ru", "welder_name_en", "welder_id", "period_of_validity", ) ->orderBy("period_of_validity", "ASC") ->groupBy("welder_id") ->get(); $welder_tests = db("welder_tests") ->groupBy("wpq_document_no") ->get(); $expired_date = setting("WelderQualitificationStatusExpiredDate"); $naksData = []; foreach($welder_tests AS $welder_test) { $naksData[$welder_test->naks_id] = $welder_test; } $today = Carbon::now(); foreach($naks_welders AS $q) { try { $periodOfValidity = Carbon::createFromFormat('Y-m-d', $q->period_of_validity); $q->remaining_days = $today->diffInDays($periodOfValidity, false); $q->expired_days = $today->diffInDays($periodOfValidity, false) + $expired_date; $q->expired_date = $periodOfValidity; if(isset($naksData[$q->welder_id])) { $q->remaining_days2 = Carbon::parse($naksData[$q->welder_id]->naks_validity)->diffInDays(Carbon::now(), true); $q->expired_days2 = Carbon::parse($naksData[$q->welder_id]->welding_date)->diffInDays(Carbon::now(), true) + $expired_date; $q->expired_date2 = Carbon::parse($naksData[$q->welder_id]->welding_date)->addDays($expired_date)->format("Y-m-d"); } } catch (\Throwable $th) { //throw $th; } } echo json_encode_tr($naks_welders); ?>