Files
citrus-cms/resources/views/cron/punch_lists-sync-punch-qty.blade.php
T
2026-04-28 21:15:09 +03:00

65 lines
1.4 KiB
PHP

<?php
use App\Models\PunchList;
use App\Models\TestPackBaseStatus;
$cachePrefix = 'sync-punch-qty';
if(isset($id))
{
$punchLists = PunchList::where("id", $id)->get();
} else {
$punchLists = PunchList::get();
}
$punchTotal = [];
Log::debug("$cachePrefix start");
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($punchList->status == "Open") {
$punchTotal[$punchList->line_isometric_no][$punchList->test_package][$punchList->category]++;
}
}
DB::beginTransaction();
$count = 0;
try {
foreach($punchTotal AS $isoNumber => $subData) {
foreach($subData AS $testPackage => $data) {
TestPackBaseStatus::where([
"test_package_no" => $testPackage,
"drawing_no" => $isoNumber,
])->update([
'punch_a_quantity' => @$data['A'],
'punch_b_quantity' => @$data['B'],
'punch_c_quantity' => @$data['C'],
]);
$count++;
}
}
DB::commit();
} catch (\Throwable $th) {
db($th->getMessage());
DB::rollback();
}
//dump("$count Calculated Punch List ==> Test Pack Base Status");
Log::debug("$cachePrefix end");
?>