where("id", $request['key'])->first(); $uniqueFields = [ 'line' => $data->drawing_no, 'component_code_id' => $data->support_code, ]; $dataToUpdate = [ 'project' => $data->zone, 'line' => $data->line_number, 'rev' => $data->rev, 'discipline' => 'Piping Support', 'component_code_id' => $data->support_code, // 'longdescription' => $data->line_number, // 'description_en' => $data->line_number, 'description_ru' => $data->erection_materials_name, 'manufacturing_standard' => $data->standart, 'material' => $data->materials, // 'material_quality_standard' => $data->line_number, 'quantity' => $data->quantity, 'dia_inch_1' => $data->pipe_dia, 'dn_1' => $data->pipe_dia, 'odmm_1' => $data->welded_pad_measure, // 'schedule_1' => $data->line_number, 'thicknessmm_1' => $data->thickness, // 'diainch_2' => $data->line_number, // 'dn_2' => $data->line_number, // 'odmm_2' => $data->line_number, // 'schedule_2' => $data->line_number, // 'thicknessmm_2' => $data->line_number, // 'pn_mpa' => $data->line_number, 'weight' => $data->unit_weight, 'total_weight' => $data->total_weight, // 'total_weight' => $data->line_number, 'designer' => $data->designer, ]; echo db('m_t_o_s')->updateOrInsert($uniqueFields, $dataToUpdate); //dump("save trigger"); dump($dataToUpdate); // Update or insert into weld_logs table db("weld_logs") ->where([ 'iso_number' => $data->drawing_no, 'element_code_1' => $data->support_code, ]) ->update([ 'product_standart_1' => $data->standart ]); db("weld_logs") ->where([ 'iso_number' => $data->drawing_no, 'element_code_2' => $data->support_code, ]) ->update([ 'product_standart_2' => $data->standart ]); $isoToTP = db("weld_logs") ->where("line_number", $data->line_number) ->select('test_package_no', 'line_number')->pluck('test_package_no', 'line_number'); $supports = db("supports")->where("line_number", $data->line_number)->get(); $supportStats = []; $supportStatsTP = []; foreach($supports AS $support) { $tpNo = @$isoToTP[$support->line_number]; if(!isset($supportStatsTP[$tpNo]['support_remaining'])) { $supportStatsTP[$tpNo]['support_remaining'] = 0; $supportStatsTP[$tpNo]['welded_support_quantity'] = 0; $supportStatsTP[$tpNo]['support_progress'] = 0; } if(!isset($supportStats[$support->line_number]['support_remaining'])) $supportStats[$support->line_number]['support_remaining'] = 0; if(!isset($supportStats[$support->line_number]['welded_support_quantity'])) $supportStats[$support->line_number]['welded_support_quantity'] = 0; if(!isset($supportStats[$support->line_number]['support_progress'])) $supportStats[$support->line_number]['support_progress'] = 0; if($support->erection_type == "Weld") { $thisQty = $support->quantity - $support->assembled_su_rt_quanti; if(!rejected_date($support->weld_or_assembled_date)) { $supportStats[$support->line_number]['welded_support_quantity']+= $thisQty; $supportStatsTP[$tpNo]['welded_support_quantity']+= $thisQty; $supportStats[$support->line_number]['support_remaining']+= $support->assembled_su_rt_quanti; $supportStatsTP[$tpNo]['support_remaining']+= $support->assembled_su_rt_quanti; } else { $supportStats[$support->line_number]['support_remaining']+= $thisQty; $supportStatsTP[$tpNo]['support_remaining']+= $thisQty; } } if($supportStats[$support->line_number]['welded_support_quantity'] > 0) { $supportStats[$support->line_number]['support_progress'] = 100 - ($supportStats[$support->line_number]['support_remaining'] * 100) / ($supportStats[$support->line_number]['welded_support_quantity'] + $supportStats[$support->line_number]['support_remaining']); } else { $supportStats[$support->line_number]['support_progress'] = 0; // Eğer welded_support_quantity sıfırsa } if($supportStatsTP[$tpNo]['welded_support_quantity'] > 0) { $supportStatsTP[$tpNo]['support_progress'] = 100 - ($supportStatsTP[$tpNo]['support_remaining'] * 100) / ($supportStatsTP[$tpNo]['welded_support_quantity'] + $supportStatsTP[$tpNo]['support_remaining']); } else { $supportStatsTP[$tpNo]['support_progress'] = 0; // Eğer welded_support_quantity sıfırsa } } dump($supportStatsTP); dump($supportStats); // Repair logs calculation - similar to repair_logs.php $repairLogs = db("repair_logs") ->whereIn("iso_number", array_keys($supportStats)) ->get(); $repairLogsSummary = []; $repairLogsSummary2 = []; $repairLogsSummaryCompleted = []; $repairLogsSummaryCompleted2 = []; $repairLogsSummaryRemaining = []; $repairLogsSummaryRemaining2 = []; foreach($repairLogs AS $repairLog) { if(!isset($repairLogsSummary[$repairLog->iso_number][$repairLog->test_package_no])) $repairLogsSummary[$repairLog->iso_number][$repairLog->test_package_no] = 0; if(!isset($repairLogsSummary2[$repairLog->test_package_no])) $repairLogsSummary2[$repairLog->test_package_no] = 0; if(!isset($repairLogsSummaryCompleted[$repairLog->iso_number][$repairLog->test_package_no])) $repairLogsSummaryCompleted[$repairLog->iso_number][$repairLog->test_package_no] = 0; if(!isset($repairLogsSummaryRemaining[$repairLog->iso_number][$repairLog->test_package_no])) $repairLogsSummaryRemaining[$repairLog->iso_number][$repairLog->test_package_no] = 0; if(!isset($repairLogsSummaryCompleted2[$repairLog->test_package_no])) $repairLogsSummaryCompleted2[$repairLog->test_package_no] = 0; if(!isset($repairLogsSummaryRemaining2[$repairLog->test_package_no])) $repairLogsSummaryRemaining2[$repairLog->test_package_no] = 0; $repairLogsSummary[$repairLog->iso_number][$repairLog->test_package_no]++; $repairLogsSummary2[$repairLog->test_package_no]++; if(!rejected_date($repairLog->repair_date)) { $repairLogsSummaryCompleted[$repairLog->iso_number][$repairLog->test_package_no]++; $repairLogsSummaryCompleted2[$repairLog->test_package_no]++; } else { $repairLogsSummaryRemaining[$repairLog->iso_number][$repairLog->test_package_no]++; $repairLogsSummaryRemaining2[$repairLog->test_package_no]++; } } dump("Repair Logs Summary:"); dump($repairLogsSummary); dump($repairLogsSummaryCompleted); dump($repairLogsSummaryRemaining); foreach($supportStats AS $isoNumber => $thisSupportStats) { if($isoNumber != "") { // Get test package number for this ISO $tpNo = @$isoToTP[$isoNumber]; // Prepare update data with repair information $updateData = [ 'welded_support_quantity' => $thisSupportStats['welded_support_quantity'], 'support_remaining' => $thisSupportStats['support_remaining'], 'support_progress' => $thisSupportStats['support_progress'], ]; // Add repair data if available if($tpNo && isset($repairLogsSummary[$isoNumber][$tpNo])) { $updateData['repair_qty'] = $repairLogsSummary[$isoNumber][$tpNo]; $updateData['repair_completed'] = $repairLogsSummaryCompleted[$isoNumber][$tpNo]; $updateData['repair_remaining'] = $repairLogsSummaryRemaining[$isoNumber][$tpNo]; } db("test_pack_base_statuses") ->where("drawing_no", $isoNumber) ->update($updateData); } } // Update test packages with repair data as well foreach($supportStatsTP AS $tpNo => $thisSupportStats) { if($tpNo != "") { // Prepare update data with repair information $updateData = [ 'welded_support_quantity' => $thisSupportStats['welded_support_quantity'], 'support_remaining' => $thisSupportStats['support_remaining'], 'support_progress' => $thisSupportStats['support_progress'], ]; // Add repair data if available if(isset($repairLogsSummary2[$tpNo])) { $updateData['repair_qty'] = $repairLogsSummary2[$tpNo]; $updateData['repair_completed'] = $repairLogsSummaryCompleted2[$tpNo]; $updateData['repair_remaining'] = $repairLogsSummaryRemaining2[$tpNo]; } db("test_packages") ->where("test_package_number", $tpNo) ->update($updateData); } } ?>