Files
2026-04-28 21:14:25 +03:00

235 lines
8.4 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
$data = db("supports")->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);
}
}
?>