first(); $punchLists = PunchList::where("test_package", $punchListOne->test_package)->get(); $punchTotal = []; $punchTotalTP = []; foreach($punchLists AS $punchList) { if(!isset($punchTotal[$punchList->line_isometric_no][$punchList->test_package][$punchList->category])) { $punchTotal[$punchList->line_isometric_no][$punchList->test_package][$punchList->category] = 0; } if(!isset($punchTotalTP[$punchList->test_package][$punchList->category])) { $punchTotalTP[$punchList->test_package][$punchList->category] = 0; } if($punchList->status == "Open") { $punchTotal[$punchList->line_isometric_no][$punchList->test_package][$punchList->category]++; } if($punchList->status == "Open") { $punchTotalTP[$punchList->test_package][$punchList->category]++; } } $count = 0; $count2 = 0; foreach($punchTotalTP AS $testPackage => $subData) { $punchStatus = $punchList->status; if(@$subData['A']>0) { $punchStatus = "Open"; } $updatedCount = TestPackage::where([ "test_package_number" => $testPackage, ])->update([ 'a_punch_point_open' => @$subData['A'], 'b_punch_point_open' => @$subData['B'], 'c_punch_point_open' => @$subData['C'], 'punch_list' => $punchList->punch_list_no, 'punch_status' => $punchStatus, 'walkdown_date' => $punchList->found_date, ]); $count2 += $updatedCount; } foreach($punchTotal AS $isoNumber => $subData) { foreach($subData AS $testPackage => $data) { $updatedCount = TestPackBaseStatus::where([ "test_package_no" => $testPackage, "drawing_no" => $isoNumber, ])->update([ 'punch_a_quantity' => @$data['A'], 'punch_status' => $punchList->status, 'punch_b_quantity' => @$data['B'], 'punch_c_quantity' => @$data['C'], ]); $count += $updatedCount; } } dump("$count Calculated Punch List ==> Test Pack ISO Base Status"); dump("$count2 Calculated Punch List ==> Test Pack Base Status"); ?>