From 2e1f04086b45194df4cf0091198e2e72ef7a39ba Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Sun, 23 Aug 2026 19:11:56 +0530 Subject: [PATCH] Added laser winded serial validation error post api function with validations and Added laser stopped post api function with validations --- .../Controllers/CharacteristicsController.php | 1337 +++++++++++++---- 1 file changed, 1052 insertions(+), 285 deletions(-) diff --git a/app/Http/Controllers/CharacteristicsController.php b/app/Http/Controllers/CharacteristicsController.php index b4db7f7..e1f76d0 100644 --- a/app/Http/Controllers/CharacteristicsController.php +++ b/app/Http/Controllers/CharacteristicsController.php @@ -14,6 +14,7 @@ use App\Models\RequestCharacteristic; use App\Models\StickerMaster; use App\Models\TempClassCharacteristic; use App\Models\User; +use App\Models\WindedSerialValidationError; use App\Models\WorkGroupMaster; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; @@ -275,6 +276,7 @@ class CharacteristicsController extends Controller $itemCode = $data['item_code'] ?? ''; $modelType = $data['model_type'] ?? ''; $expectedTime = $data['expected_time'] ?? 0; + $markedStatus = (Str::contains($data['marked_status'], 'marked', ignoreCase: true)) ? 'Marked' : 'Stopped'; $characteristics = $data['characteristics']; if ($plantCode == null || $plantCode == '' || ! $plantCode) { @@ -737,6 +739,8 @@ class CharacteristicsController extends Controller } $updatedRows = 0; + $statusTyp = strtolower($markedStatus); // ($markedStatus == 'Stopped') ? 'stopped' : 'marked'; + $modelTyp = strtolower($modelType); $isAuto = false; foreach ($data['characteristics'] as $char) { @@ -750,6 +754,7 @@ class CharacteristicsController extends Controller $curNamePlateMarkBy = $curStat->name_plate_marked_by ?? null; $curManualMarkBy = $curStat->man_marked_by ?? null; $curWindNo = $curStat->winded_serial_number ?? null; + $curRewWind = ($curStat->winded_rework_status == '1') ? '1' : '0'; $curMMach = $curStat->motor_machine_name ?? null; $curPMach = $curStat->pump_machine_name ?? null; $curNpMach = $curStat->name_plate_machine_name ?? null; @@ -757,6 +762,11 @@ class CharacteristicsController extends Controller $curPart2 = $curStat->part_validation_2 ?? null; $slUser = $curStat->samlight_logged_name ?? null; $curWorkFlow = $curStat->has_work_flow_id ?? '0'; + + $curMotMarkTim = empty($curStat->motor_marked_datetime) ? null : $curStat->motor_marked_datetime; + $curPumMarkTim = empty($curStat->pump_marked_datetime) ? null : $curStat->pump_marked_datetime; + $curNapMarkTim = empty($curStat->name_plate_marked_datetime) ? null : $curStat->name_plate_marked_datetime; + if ($jobNo != null && $jobNo != '' && $jobNo) { // $curStat = ClassCharacteristic::where('plant_id', $plantId)->where('machine_id', $machineId)->where('aufnr', $jobNo)->where('gernr', $serialNumber)->where('item_id', $itemId)->first(); if ($modelType == 'MOTOR' && ($curMarkStat == 'Marked' || $curMotorMarkStat == 'Marked')) { @@ -793,301 +803,519 @@ class CharacteristicsController extends Controller $napExpecTim = floatval($curStat->name_plate_expected_time ?? 0.0) ?: 0.0; if ($char['motor_pump_pumpset_status'] == '3') { - if ($modelType == 'MOTOR') { - $curMMach = $char['motor_machine_name'] ?? $curMMach; - $motPhysiCnt = $motPhysiCnt + 1; - $motExpecTim = $motExpecTim + $expectedTime; - if ($motPhysiCnt >= $mvhsCnt) { - $curMotorMarkStat = 'Marked'; + if ($markedStatus == 'Stopped') { + if ($modelType == 'MOTOR') { + $curMotMarkTim = empty($char['motor_marked_datetime']) ? now() : $char['motor_marked_datetime']; + $curMMach = empty($char['motor_machine_name']) ? $curMMach : $char['motor_machine_name']; + $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; + } elseif ($modelType == 'PUMP') { + $curPumMarkTim = empty($char['pump_marked_datetime']) ? now() : $char['pump_marked_datetime']; + $curPMach = empty($char['pump_machine_name']) ? $curPMach : $char['pump_machine_name']; + $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; + } elseif ($modelType == 'NAME_PLATE') { + $curNapMarkTim = empty($char['name_plate_marked_datetime']) ? now() : $char['name_plate_marked_datetime']; + $curNpMach = empty($char['name_plate_machine_name']) ? $curNpMach : $char['name_plate_machine_name']; + $curNamePlateMarkBy = ($char['name_plate_marked_by'] == 'jothi') ? 'Admin' : $char['name_plate_marked_by'] ?? $curNamePlateMarkBy; } - $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; - } elseif ($modelType == 'PUMP') { - $curPMach = $char['pump_machine_name'] ?? $curPMach; - $pumPhysiCnt = $pumPhysiCnt + 1; - $pumExpecTim = $pumExpecTim + $expectedTime; - if ($pumPhysiCnt >= $mvhsCnt) { - $curPumpMarkStat = 'Marked'; + + $values = [ + 'mark_status' => $markedStatus, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'motor_marked_datetime' => $curMotMarkTim, + 'motor_marked_by' => $curMotorMarkBy, + 'pump_marked_datetime' => $curPumMarkTim, + 'pump_marked_by' => $curPumpMarkBy, + 'name_plate_marked_datetime' => $curNapMarkTim, + 'name_plate_marked_by' => $curNamePlateMarkBy, + 'motor_pump_pumpset_status' => '3', + 'motor_machine_name' => $curMMach, + 'pump_machine_name' => $curPMach, + 'name_plate_machine_name' => $curNpMach, + 'stopped_datetime' => now(), + 'is_stopped' => '2', + 'stopped_by' => $userName ?? null, + 'updated_by' => $userName ?? null, + ]; + } else { + if ($modelType == 'MOTOR') { + $curMotMarkTim = empty($char['motor_marked_datetime']) ? now() : $char['motor_marked_datetime']; + $curMMach = empty($char['motor_machine_name']) ? $curMMach : $char['motor_machine_name']; + $motPhysiCnt = $motPhysiCnt + 1; + $motExpecTim = $motExpecTim + $expectedTime; + if ($motPhysiCnt >= $mvhsCnt) { + $curMotorMarkStat = 'Marked'; + } + $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; + } elseif ($modelType == 'PUMP') { + $curPumMarkTim = empty($char['pump_marked_datetime']) ? now() : $char['pump_marked_datetime']; + $curPMach = empty($char['pump_machine_name']) ? $curPMach : $char['pump_machine_name']; + $pumPhysiCnt = $pumPhysiCnt + 1; + $pumExpecTim = $pumExpecTim + $expectedTime; + if ($pumPhysiCnt >= $mvhsCnt) { + $curPumpMarkStat = 'Marked'; + } + $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; + } elseif ($modelType == 'NAME_PLATE') { + $curNapMarkTim = empty($char['name_plate_marked_datetime']) ? now() : $char['name_plate_marked_datetime']; + $curNpMach = empty($char['name_plate_machine_name']) ? $curNpMach : $char['name_plate_machine_name']; + $napExpecTim = $napExpecTim + $expectedTime; + $curNamePlateMarkStat = 'Marked'; + $curNamePlateMarkBy = ($char['name_plate_marked_by'] == 'jothi') ? 'Admin' : $char['name_plate_marked_by'] ?? $curNamePlateMarkBy; + // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { + // $curMarkStat = 'Marked'; } - $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; - } elseif ($modelType == 'NAME_PLATE') { - $curNpMach = $char['name_plate_machine_name'] ?? $curNpMach; - $napExpecTim = $napExpecTim + $expectedTime; - $curNamePlateMarkStat = 'Marked'; - $curNamePlateMarkBy = ($char['name_plate_marked_by'] == 'jothi') ? 'Admin' : $char['name_plate_marked_by'] ?? $curNamePlateMarkBy; - // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { - // $curMarkStat = 'Marked'; - } - if ($hasMvhs == true && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked' && $curNamePlateMarkStat == 'Marked') { - $curMarkStat = 'Marked'; - } elseif ($hasMvhs == false && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked') { - $curMarkStat = 'Marked'; - } + $curRewWind = ($char['winded_rework_status'] == '1') ? '1' : $curRewWind; - $values = [ - 'mark_status' => $curMarkStat, - 'marked_datetime' => $char['marked_datetime'] ?? now(), - 'marked_physical_count' => (string) $physiCnt, - 'marked_expected_time' => (string) $expecTim, - 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, - 'motor_marked_status' => $curMotorMarkStat, - 'motor_marked_physical_count' => (string) $motPhysiCnt, - 'motor_expected_time' => (string) $motExpecTim, - 'motor_marked_by' => $curMotorMarkBy, - 'pump_marked_status' => $curPumpMarkStat, - 'pump_marked_physical_count' => (string) $pumPhysiCnt, - 'pump_expected_time' => (string) $pumExpecTim, - 'pump_marked_by' => $curPumpMarkBy, - 'name_plate_marked_status' => $curNamePlateMarkStat, - 'name_plate_expected_time' => (string) $napExpecTim, - 'name_plate_marked_by' => $curNamePlateMarkBy, - 'motor_pump_pumpset_status' => '3', - 'winded_serial_number' => $char['winded_serial_number'] ?? $curWindNo, - 'motor_machine_name' => $curMMach, - 'pump_machine_name' => $curPMach, - 'name_plate_machine_name' => $curNpMach, - 'part_validation_1' => $char['part_validation_1'] ?? $curPart1, - 'part_validation_2' => $char['part_validation_2'] ?? $curPart2, - 'samlight_logged_name' => $char['samlight_logged_name'] ?? $slUser, - 'pending_released_status' => $char['pending_released_status'] ?? 0, - 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, - 'updated_by' => $userName ?? null, - ]; - // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + if ($hasMvhs == true && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked' && $curNamePlateMarkStat == 'Marked') { + $curMarkStat = 'Marked'; + } elseif ($hasMvhs == false && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked') { + $curMarkStat = 'Marked'; + } + + $values = [ + 'mark_status' => $curMarkStat, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_physical_count' => (string) $physiCnt, + 'marked_expected_time' => (string) $expecTim, + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'motor_marked_status' => $curMotorMarkStat, + 'motor_marked_physical_count' => (string) $motPhysiCnt, + 'motor_expected_time' => (string) $motExpecTim, + 'motor_marked_datetime' => $curMotMarkTim, + 'motor_marked_by' => $curMotorMarkBy, + 'pump_marked_status' => $curPumpMarkStat, + 'pump_marked_physical_count' => (string) $pumPhysiCnt, + 'pump_expected_time' => (string) $pumExpecTim, + 'pump_marked_datetime' => $curPumMarkTim, + 'pump_marked_by' => $curPumpMarkBy, + 'name_plate_marked_status' => $curNamePlateMarkStat, + 'name_plate_expected_time' => (string) $napExpecTim, + 'name_plate_marked_datetime' => $curNapMarkTim, + 'name_plate_marked_by' => $curNamePlateMarkBy, + 'motor_pump_pumpset_status' => '3', + 'winded_serial_number' => empty($char['winded_serial_number']) ? $curWindNo : $char['winded_serial_number'], + 'winded_rework_status' => (string) $curRewWind, + 'motor_machine_name' => $curMMach, + 'pump_machine_name' => $curPMach, + 'name_plate_machine_name' => $curNpMach, + 'part_validation_1' => empty($char['part_validation_1']) ? $curPart1 : $char['part_validation_1'], + 'part_validation_2' => empty($char['part_validation_2']) ? $curPart2 : $char['part_validation_2'], + 'samlight_logged_name' => empty($char['samlight_logged_name']) ? $slUser : $char['samlight_logged_name'], + 'pending_released_status' => $char['pending_released_status'] ?? 0, + 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, + 'updated_by' => $userName ?? null, + ]; + // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + } } elseif ($hasMvhs == true && $char['motor_pump_pumpset_status'] == '4') { - if ($modelType == 'NAME_PLATE') { - $napExpecTim = $napExpecTim + $expectedTime; - $curNamePlateMarkStat = 'Marked'; - $curNamePlateMarkBy = ($char['name_plate_marked_by'] == 'jothi') ? 'Admin' : $char['name_plate_marked_by'] ?? $curNamePlateMarkBy; - // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { - // $curMarkStat = 'Marked'; - } + if ($markedStatus == 'Stopped') { + if ($modelType == 'NAME_PLATE') { + $curNapMarkTim = empty($char['name_plate_marked_datetime']) ? now() : $char['name_plate_marked_datetime']; + $curNpMach = empty($char['name_plate_machine_name']) ? $curNpMach : $char['name_plate_machine_name']; + $curNamePlateMarkBy = ($char['name_plate_marked_by'] == 'jothi') ? 'Admin' : $char['name_plate_marked_by'] ?? $curNamePlateMarkBy; + } - if ($curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked' && $curNamePlateMarkStat == 'Marked') { - $curMarkStat = 'Marked'; - } + $values = [ + 'mark_status' => $markedStatus, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'name_plate_marked_datetime' => $curNapMarkTim, + 'name_plate_marked_by' => $curNamePlateMarkBy, + 'motor_pump_pumpset_status' => '3', + 'name_plate_machine_name' => $curNpMach, + 'stopped_datetime' => now(), + 'is_stopped' => '2', + 'stopped_by' => $userName ?? null, + 'updated_by' => $userName ?? null, + ]; + } else { + if ($modelType == 'NAME_PLATE') { + $curNapMarkTim = empty($char['name_plate_marked_datetime']) ? now() : $char['name_plate_marked_datetime']; + $curNpMach = empty($char['name_plate_machine_name']) ? $curNpMach : $char['name_plate_machine_name']; + $napExpecTim = $napExpecTim + $expectedTime; + $curNamePlateMarkStat = 'Marked'; + $curNamePlateMarkBy = ($char['name_plate_marked_by'] == 'jothi') ? 'Admin' : $char['name_plate_marked_by'] ?? $curNamePlateMarkBy; + // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { + // $curMarkStat = 'Marked'; + } - $values = [ - 'mark_status' => $curMarkStat, - 'marked_datetime' => $char['marked_datetime'] ?? now(), - 'marked_physical_count' => (string) $physiCnt, - 'marked_expected_time' => (string) $expecTim, - 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, - 'name_plate_marked_status' => $curNamePlateMarkStat, - 'name_plate_expected_time' => (string) $napExpecTim, - 'name_plate_marked_by' => $curNamePlateMarkBy, - 'motor_pump_pumpset_status' => '3', - 'winded_serial_number' => $char['winded_serial_number'] ?? $curWindNo, - 'name_plate_machine_name' => $char['name_plate_machine_name'] ?? $curNpMach, - 'part_validation_1' => $char['part_validation_1'] ?? $curPart1, - 'part_validation_2' => $char['part_validation_2'] ?? $curPart2, - 'samlight_logged_name' => $char['samlight_logged_name'] ?? $slUser, - 'pending_released_status' => $char['pending_released_status'] ?? 0, - 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, - 'updated_by' => $userName ?? null, - ]; - // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + $curRewWind = ($char['winded_rework_status'] == '1') ? '1' : $curRewWind; + + if ($curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked' && $curNamePlateMarkStat == 'Marked') { + $curMarkStat = 'Marked'; + } + + $values = [ + 'mark_status' => $curMarkStat, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_physical_count' => (string) $physiCnt, + 'marked_expected_time' => (string) $expecTim, + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'name_plate_marked_status' => $curNamePlateMarkStat, + 'name_plate_expected_time' => (string) $napExpecTim, + 'name_plate_marked_datetime' => $curNapMarkTim, + 'name_plate_marked_by' => $curNamePlateMarkBy, + 'motor_pump_pumpset_status' => '3', + 'winded_serial_number' => empty($char['winded_serial_number']) ? $curWindNo : $char['winded_serial_number'], + 'winded_rework_status' => (string) $curRewWind, + 'name_plate_machine_name' => $curNpMach, + 'part_validation_1' => empty($char['part_validation_1']) ? $curPart1 : $char['part_validation_1'], + 'part_validation_2' => empty($char['part_validation_2']) ? $curPart2 : $char['part_validation_2'], + 'samlight_logged_name' => empty($char['samlight_logged_name']) ? $slUser : $char['samlight_logged_name'], + 'pending_released_status' => $char['pending_released_status'] ?? 0, + 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, + 'updated_by' => $userName ?? null, + ]; + // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + } } elseif ($char['motor_pump_pumpset_status'] == '2') { - if ($modelType == 'PUMP') { - $pumPhysiCnt = $pumPhysiCnt + 1; - $pumExpecTim = $pumExpecTim + $expectedTime; - if ($pumPhysiCnt >= $mvhsCnt) { - $curPumpMarkStat = 'Marked'; + if ($markedStatus == 'Stopped') { + if ($modelType == 'PUMP') { + $curPumMarkTim = empty($char['pump_marked_datetime']) ? now() : $char['pump_marked_datetime']; + $curPMach = empty($char['pump_machine_name']) ? $curPMach : $char['pump_machine_name']; + $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; } - $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; - // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { - // $curMarkStat = 'Marked'; - } - if ($hasMvhs == true && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked' && $curNamePlateMarkStat == 'Marked') { - $curMarkStat = 'Marked'; - } elseif ($hasMvhs == false && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked') { - $curMarkStat = 'Marked'; - } + $values = [ + 'mark_status' => $markedStatus, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'pump_marked_datetime' => $curPumMarkTim, + 'pump_marked_by' => $curPumpMarkBy, + 'motor_pump_pumpset_status' => '3', + 'pump_machine_name' => $curPMach, + 'stopped_datetime' => now(), + 'is_stopped' => '2', + 'stopped_by' => $userName ?? null, + 'updated_by' => $userName ?? null, + ]; + } else { + if ($modelType == 'PUMP') { + $curPumMarkTim = empty($char['pump_marked_datetime']) ? now() : $char['pump_marked_datetime']; + $curPMach = empty($char['pump_machine_name']) ? $curPMach : $char['pump_machine_name']; + $pumPhysiCnt = $pumPhysiCnt + 1; + $pumExpecTim = $pumExpecTim + $expectedTime; + if ($pumPhysiCnt >= $mvhsCnt) { + $curPumpMarkStat = 'Marked'; + } + $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; + // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { + // $curMarkStat = 'Marked'; + } - $values = [ - 'mark_status' => $curMarkStat, - 'marked_datetime' => $char['marked_datetime'] ?? now(), - 'marked_physical_count' => (string) $physiCnt, - 'marked_expected_time' => (string) $expecTim, - 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, - 'pump_marked_status' => $curPumpMarkStat, - 'pump_marked_physical_count' => (string) $pumPhysiCnt, - 'pump_expected_time' => (string) $pumExpecTim, - 'pump_marked_by' => $curPumpMarkBy, - 'motor_pump_pumpset_status' => '3', - 'winded_serial_number' => $char['winded_serial_number'] ?? $curWindNo, - 'pump_machine_name' => $char['pump_machine_name'] ?? $curPMach, - 'part_validation_1' => $char['part_validation_1'] ?? $curPart1, - 'part_validation_2' => $char['part_validation_2'] ?? $curPart2, - 'samlight_logged_name' => $char['samlight_logged_name'] ?? $slUser, - 'pending_released_status' => $char['pending_released_status'] ?? 0, - 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, - 'updated_by' => $userName ?? null, - ]; - // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + $curRewWind = ($char['winded_rework_status'] == '1') ? '1' : $curRewWind; + + if ($hasMvhs == true && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked' && $curNamePlateMarkStat == 'Marked') { + $curMarkStat = 'Marked'; + } elseif ($hasMvhs == false && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked') { + $curMarkStat = 'Marked'; + } + + $values = [ + 'mark_status' => $curMarkStat, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_physical_count' => (string) $physiCnt, + 'marked_expected_time' => (string) $expecTim, + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'pump_marked_status' => $curPumpMarkStat, + 'pump_marked_physical_count' => (string) $pumPhysiCnt, + 'pump_expected_time' => (string) $pumExpecTim, + 'pump_marked_datetime' => $curPumMarkTim, + 'pump_marked_by' => $curPumpMarkBy, + 'motor_pump_pumpset_status' => '3', + 'winded_serial_number' => empty($char['winded_serial_number']) ? $curWindNo : $char['winded_serial_number'], + 'winded_rework_status' => (string) $curRewWind, + 'pump_machine_name' => $curPMach, + 'part_validation_1' => empty($char['part_validation_1']) ? $curPart1 : $char['part_validation_1'], + 'part_validation_2' => empty($char['part_validation_2']) ? $curPart2 : $char['part_validation_2'], + 'samlight_logged_name' => empty($char['samlight_logged_name']) ? $slUser : $char['samlight_logged_name'], + 'pending_released_status' => $char['pending_released_status'] ?? 0, + 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, + 'updated_by' => $userName ?? null, + ]; + // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + } } elseif ($char['motor_pump_pumpset_status'] == '1') { - if ($modelType == 'MOTOR') { - $motPhysiCnt = $motPhysiCnt + 1; - $motExpecTim = $motExpecTim + $expectedTime; - if ($motPhysiCnt >= $mvhsCnt) { - $curMotorMarkStat = 'Marked'; + if ($markedStatus == 'Stopped') { + if ($modelType == 'MOTOR') { + $curMotMarkTim = empty($char['motor_marked_datetime']) ? now() : $char['motor_marked_datetime']; + $curMMach = empty($char['motor_machine_name']) ? $curMMach : $char['motor_machine_name']; + $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; } - $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; - // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { - // $curMarkStat = 'Marked'; - } - if ($hasMvhs == true && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked' && $curNamePlateMarkStat == 'Marked') { - $curMarkStat = 'Marked'; - } elseif ($hasMvhs == false && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked') { - $curMarkStat = 'Marked'; - } + $values = [ + 'mark_status' => $markedStatus, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'motor_marked_datetime' => $curMotMarkTim, + 'motor_marked_by' => $curMotorMarkBy, + 'motor_pump_pumpset_status' => '3', + 'motor_machine_name' => $curMMach, + 'stopped_datetime' => now(), + 'is_stopped' => '2', + 'stopped_by' => $userName ?? null, + 'updated_by' => $userName ?? null, + ]; + } else { + if ($modelType == 'MOTOR') { + $curMotMarkTim = empty($char['motor_marked_datetime']) ? now() : $char['motor_marked_datetime']; + $curMMach = empty($char['motor_machine_name']) ? $curMMach : $char['motor_machine_name']; + $motPhysiCnt = $motPhysiCnt + 1; + $motExpecTim = $motExpecTim + $expectedTime; + if ($motPhysiCnt >= $mvhsCnt) { + $curMotorMarkStat = 'Marked'; + } + $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; + // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { + // $curMarkStat = 'Marked'; + } - $values = [ - 'mark_status' => $curMarkStat, - 'marked_datetime' => $char['marked_datetime'] ?? now(), - 'marked_physical_count' => (string) $physiCnt, - 'marked_expected_time' => (string) $expecTim, - 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, - 'motor_marked_status' => $curMotorMarkStat, - 'motor_marked_physical_count' => (string) $motPhysiCnt, - 'motor_expected_time' => (string) $motExpecTim, - 'motor_marked_by' => $curMotorMarkBy, - 'motor_pump_pumpset_status' => '3', - 'winded_serial_number' => $char['winded_serial_number'] ?? $curWindNo, - 'motor_machine_name' => $char['motor_machine_name'] ?? $curMMach, - 'part_validation_1' => $char['part_validation_1'] ?? $curPart1, - 'part_validation_2' => $char['part_validation_2'] ?? $curPart2, - 'samlight_logged_name' => $char['samlight_logged_name'] ?? $slUser, - 'pending_released_status' => $char['pending_released_status'] ?? 0, - 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, - 'updated_by' => $userName ?? null, - ]; - // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + $curRewWind = ($char['winded_rework_status'] == '1') ? '1' : $curRewWind; + + if ($hasMvhs == true && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked' && $curNamePlateMarkStat == 'Marked') { + $curMarkStat = 'Marked'; + } elseif ($hasMvhs == false && $curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked') { + $curMarkStat = 'Marked'; + } + + $values = [ + 'mark_status' => $curMarkStat, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_physical_count' => (string) $physiCnt, + 'marked_expected_time' => (string) $expecTim, + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'motor_marked_status' => $curMotorMarkStat, + 'motor_marked_physical_count' => (string) $motPhysiCnt, + 'motor_expected_time' => (string) $motExpecTim, + 'motor_marked_datetime' => $curMotMarkTim, + 'motor_marked_by' => $curMotorMarkBy, + 'motor_pump_pumpset_status' => '3', + 'winded_serial_number' => empty($char['winded_serial_number']) ? $curWindNo : $char['winded_serial_number'], + 'winded_rework_status' => (string) $curRewWind, + 'motor_machine_name' => $curMMach, + 'part_validation_1' => empty($char['part_validation_1']) ? $curPart1 : $char['part_validation_1'], + 'part_validation_2' => empty($char['part_validation_2']) ? $curPart2 : $char['part_validation_2'], + 'samlight_logged_name' => empty($char['samlight_logged_name']) ? $slUser : $char['samlight_logged_name'], + 'pending_released_status' => $char['pending_released_status'] ?? 0, + 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, + 'updated_by' => $userName ?? null, + ]; + // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + } } elseif ($hasMvhs == true) { - if ($modelType == 'MOTOR') { - $curMMach = $char['motor_machine_name'] ?? $curMMach; - $motPhysiCnt = $motPhysiCnt + 1; - $motExpecTim = $motExpecTim + $expectedTime; - if ($motPhysiCnt >= $mvhsCnt) { - $curMotorMarkStat = 'Marked'; + if ($markedStatus == 'Stopped') { + if ($modelType == 'MOTOR') { + $curMotMarkTim = empty($char['motor_marked_datetime']) ? now() : $char['motor_marked_datetime']; + $curMMach = empty($char['motor_machine_name']) ? $curMMach : $char['motor_machine_name']; + $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; + } elseif ($modelType == 'PUMP') { + $curPumMarkTim = empty($char['pump_marked_datetime']) ? now() : $char['pump_marked_datetime']; + $curPMach = empty($char['pump_machine_name']) ? $curPMach : $char['pump_machine_name']; + $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; + } elseif ($modelType == 'NAME_PLATE') { + $curNapMarkTim = empty($char['name_plate_marked_datetime']) ? now() : $char['name_plate_marked_datetime']; + $curNpMach = empty($char['name_plate_machine_name']) ? $curNpMach : $char['name_plate_machine_name']; + $curNamePlateMarkBy = ($char['name_plate_marked_by'] == 'jothi') ? 'Admin' : $char['name_plate_marked_by'] ?? $curNamePlateMarkBy; } - $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; - } elseif ($modelType == 'PUMP') { - $curPMach = $char['pump_machine_name'] ?? $curPMach; - $pumPhysiCnt = $pumPhysiCnt + 1; - $pumExpecTim = $pumExpecTim + $expectedTime; - if ($pumPhysiCnt >= $mvhsCnt) { - $curPumpMarkStat = 'Marked'; + + $values = [ + 'mark_status' => $markedStatus, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'motor_marked_datetime' => $curMotMarkTim, + 'motor_marked_by' => $curMotorMarkBy, + 'pump_marked_datetime' => $curPumMarkTim, + 'pump_marked_by' => $curPumpMarkBy, + 'name_plate_marked_datetime' => $curNapMarkTim, + 'name_plate_marked_by' => $curNamePlateMarkBy, + 'motor_pump_pumpset_status' => null, + 'motor_machine_name' => $curMMach, + 'pump_machine_name' => $curPMach, + 'name_plate_machine_name' => $curNpMach, + 'stopped_datetime' => now(), + 'is_stopped' => '2', + 'stopped_by' => $userName ?? null, + 'updated_by' => $userName ?? null, + ]; + } else { + if ($modelType == 'MOTOR') { + $curMotMarkTim = empty($char['motor_marked_datetime']) ? now() : $char['motor_marked_datetime']; + $curMMach = empty($char['motor_machine_name']) ? $curMMach : $char['motor_machine_name']; + $motPhysiCnt = $motPhysiCnt + 1; + $motExpecTim = $motExpecTim + $expectedTime; + if ($motPhysiCnt >= $mvhsCnt) { + $curMotorMarkStat = 'Marked'; + } + $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; + } elseif ($modelType == 'PUMP') { + $curPumMarkTim = empty($char['pump_marked_datetime']) ? now() : $char['pump_marked_datetime']; + $curPMach = empty($char['pump_machine_name']) ? $curPMach : $char['pump_machine_name']; + $pumPhysiCnt = $pumPhysiCnt + 1; + $pumExpecTim = $pumExpecTim + $expectedTime; + if ($pumPhysiCnt >= $mvhsCnt) { + $curPumpMarkStat = 'Marked'; + } + $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; + } elseif ($modelType == 'NAME_PLATE') { + $curNapMarkTim = empty($char['name_plate_marked_datetime']) ? now() : $char['name_plate_marked_datetime']; + $curNpMach = empty($char['name_plate_machine_name']) ? $curNpMach : $char['name_plate_machine_name']; + $napExpecTim = $napExpecTim + $expectedTime; + $curNamePlateMarkStat = 'Marked'; + $curNamePlateMarkBy = ($char['name_plate_marked_by'] == 'jothi') ? 'Admin' : $char['name_plate_marked_by'] ?? $curNamePlateMarkBy; + // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { + // $curMarkStat = 'Marked'; } - $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; - } elseif ($modelType == 'NAME_PLATE') { - $curNpMach = $char['name_plate_machine_name'] ?? $curNpMach; - $napExpecTim = $napExpecTim + $expectedTime; - $curNamePlateMarkStat = 'Marked'; - $curNamePlateMarkBy = ($char['name_plate_marked_by'] == 'jothi') ? 'Admin' : $char['name_plate_marked_by'] ?? $curNamePlateMarkBy; - // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { - // $curMarkStat = 'Marked'; - } - if ($curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked' && $curNamePlateMarkStat == 'Marked') { - $curMarkStat = 'Marked'; - } + $curRewWind = ($char['winded_rework_status'] == '1') ? '1' : $curRewWind; - $values = [ - 'mark_status' => $curMarkStat, - 'marked_datetime' => $char['marked_datetime'] ?? now(), - 'marked_physical_count' => (string) $physiCnt, - 'marked_expected_time' => (string) $expecTim, - 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, - 'motor_marked_status' => $curMotorMarkStat, - 'motor_marked_physical_count' => (string) $motPhysiCnt, - 'motor_expected_time' => (string) $motExpecTim, - 'motor_marked_by' => $curMotorMarkBy, - 'pump_marked_status' => $curPumpMarkStat, - 'pump_marked_physical_count' => (string) $pumPhysiCnt, - 'pump_expected_time' => (string) $pumExpecTim, - 'pump_marked_by' => $curPumpMarkBy, - 'name_plate_marked_status' => $curNamePlateMarkStat, - 'name_plate_expected_time' => (string) $napExpecTim, - 'name_plate_marked_by' => $curNamePlateMarkBy, - 'motor_pump_pumpset_status' => null, - 'winded_serial_number' => $char['winded_serial_number'] ?? $curWindNo, - 'motor_machine_name' => $curMMach, - 'pump_machine_name' => $curPMach, - 'name_plate_machine_name' => $curNpMach, - 'part_validation_1' => $char['part_validation_1'] ?? $curPart1, - 'part_validation_2' => $char['part_validation_2'] ?? $curPart2, - 'samlight_logged_name' => $char['samlight_logged_name'] ?? $slUser, - 'pending_released_status' => $char['pending_released_status'] ?? 0, - 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, - 'updated_by' => $userName ?? null, - ]; - // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + if ($curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked' && $curNamePlateMarkStat == 'Marked') { + $curMarkStat = 'Marked'; + } + + $values = [ + 'mark_status' => $curMarkStat, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_physical_count' => (string) $physiCnt, + 'marked_expected_time' => (string) $expecTim, + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'motor_marked_status' => $curMotorMarkStat, + 'motor_marked_physical_count' => (string) $motPhysiCnt, + 'motor_expected_time' => (string) $motExpecTim, + 'motor_marked_datetime' => $curMotMarkTim, + 'motor_marked_by' => $curMotorMarkBy, + 'pump_marked_status' => $curPumpMarkStat, + 'pump_marked_physical_count' => (string) $pumPhysiCnt, + 'pump_expected_time' => (string) $pumExpecTim, + 'pump_marked_datetime' => $curPumMarkTim, + 'pump_marked_by' => $curPumpMarkBy, + 'name_plate_marked_status' => $curNamePlateMarkStat, + 'name_plate_expected_time' => (string) $napExpecTim, + 'name_plate_marked_datetime' => $curNapMarkTim, + 'name_plate_marked_by' => $curNamePlateMarkBy, + 'motor_pump_pumpset_status' => null, + 'winded_serial_number' => empty($char['winded_serial_number']) ? $curWindNo : $char['winded_serial_number'], + 'winded_rework_status' => (string) $curRewWind, + 'motor_machine_name' => $curMMach, + 'pump_machine_name' => $curPMach, + 'name_plate_machine_name' => $curNpMach, + 'part_validation_1' => empty($char['part_validation_1']) ? $curPart1 : $char['part_validation_1'], + 'part_validation_2' => empty($char['part_validation_2']) ? $curPart2 : $char['part_validation_2'], + 'samlight_logged_name' => empty($char['samlight_logged_name']) ? $slUser : $char['samlight_logged_name'], + 'pending_released_status' => $char['pending_released_status'] ?? 0, + 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, + 'updated_by' => $userName ?? null, + ]; + // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + } } else { - if ($modelType == 'MOTOR') { - $curMMach = $char['motor_machine_name'] ?? $curMMach; - $motPhysiCnt = $motPhysiCnt + 1; - $motExpecTim = $motExpecTim + $expectedTime; - if ($motPhysiCnt >= $mvhsCnt) { - $curMotorMarkStat = 'Marked'; + if ($markedStatus == 'Stopped') { + if ($modelType == 'MOTOR') { + $curMotMarkTim = empty($char['motor_marked_datetime']) ? now() : $char['motor_marked_datetime']; + $curMMach = empty($char['motor_machine_name']) ? $curMMach : $char['motor_machine_name']; + $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; + } elseif ($modelType == 'PUMP') { + $curPumMarkTim = empty($char['pump_marked_datetime']) ? now() : $char['pump_marked_datetime']; + $curPMach = empty($char['pump_machine_name']) ? $curPMach : $char['pump_machine_name']; + $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; } - $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; - } elseif ($modelType == 'PUMP') { - $curPMach = $char['pump_machine_name'] ?? $curPMach; - $pumPhysiCnt = $pumPhysiCnt + 1; - $pumExpecTim = $pumExpecTim + $expectedTime; - if ($pumPhysiCnt >= $mvhsCnt) { - $curPumpMarkStat = 'Marked'; - } - $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; - // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { - // $curMarkStat = 'Marked'; - } - if ($curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked') { - $curMarkStat = 'Marked'; - } elseif (Str::contains($curHead, 'PUMP', ignoreCase: true) && ! Str::contains($curHead, 'PUMP SET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPSET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPS', ignoreCase: true)) { - if ($modelType == 'PUMP' && $pumPhysiCnt >= $mvhsCnt) { - $curMarkStat = 'Marked'; - } - } elseif (Str::contains($curHead, 'MOTOR', ignoreCase: true)) { - if ($modelType == 'MOTOR' && $motPhysiCnt >= $mvhsCnt) { - $curMarkStat = 'Marked'; - } - } + // $curNapMarkTim = empty($char['name_plate_marked_datetime']) ? $curNapMarkTim : $char['name_plate_marked_datetime']; - $values = [ - 'mark_status' => $curMarkStat, - 'marked_datetime' => $char['marked_datetime'] ?? now(), - 'marked_physical_count' => (string) $physiCnt, - 'marked_expected_time' => (string) $expecTim, - 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, - 'motor_marked_status' => $curMotorMarkStat, - 'motor_marked_physical_count' => (string) $motPhysiCnt, - 'motor_expected_time' => (string) $motExpecTim, - 'motor_marked_by' => $curMotorMarkBy, - 'pump_marked_status' => $curPumpMarkStat, - 'pump_marked_physical_count' => (string) $pumPhysiCnt, - 'pump_expected_time' => (string) $pumExpecTim, - 'pump_marked_by' => $curPumpMarkBy, - 'name_plate_marked_status' => $curNamePlateMarkStat, - 'name_plate_expected_time' => (string) $napExpecTim, - 'name_plate_marked_by' => $curNamePlateMarkBy, - 'motor_pump_pumpset_status' => null, - 'winded_serial_number' => $char['winded_serial_number'] ?? $curWindNo, - 'motor_machine_name' => $curMMach, - 'pump_machine_name' => $curPMach, - 'name_plate_machine_name' => $char['name_plate_machine_name'] ?? $curNpMach, - 'part_validation_1' => $char['part_validation_1'] ?? $curPart1, - 'part_validation_2' => $char['part_validation_2'] ?? $curPart2, - 'samlight_logged_name' => $char['samlight_logged_name'] ?? $slUser, - 'pending_released_status' => $char['pending_released_status'] ?? 0, - 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, - 'updated_by' => $userName ?? null, - ]; - // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + $values = [ + 'mark_status' => $markedStatus, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'motor_marked_datetime' => $curMotMarkTim, + 'motor_marked_by' => $curMotorMarkBy, + 'pump_marked_datetime' => $curPumMarkTim, + 'pump_marked_by' => $curPumpMarkBy, + 'name_plate_marked_datetime' => $curNapMarkTim, + 'name_plate_marked_by' => $curNamePlateMarkBy, + 'motor_pump_pumpset_status' => null, + 'motor_machine_name' => $curMMach, + 'pump_machine_name' => $curPMach, + 'name_plate_machine_name' => $curNpMach, + 'stopped_datetime' => now(), + 'is_stopped' => '2', + 'stopped_by' => $userName ?? null, + 'updated_by' => $userName ?? null, + ]; + } else { + if ($modelType == 'MOTOR') { + $curMotMarkTim = empty($char['motor_marked_datetime']) ? now() : $char['motor_marked_datetime']; + $curMMach = empty($char['motor_machine_name']) ? $curMMach : $char['motor_machine_name']; + $motPhysiCnt = $motPhysiCnt + 1; + $motExpecTim = $motExpecTim + $expectedTime; + if ($motPhysiCnt >= $mvhsCnt) { + $curMotorMarkStat = 'Marked'; + } + $curMotorMarkBy = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? $curMotorMarkBy; + } elseif ($modelType == 'PUMP') { + $curPumMarkTim = empty($char['pump_marked_datetime']) ? now() : $char['pump_marked_datetime']; + $curPMach = empty($char['pump_machine_name']) ? $curPMach : $char['pump_machine_name']; + $pumPhysiCnt = $pumPhysiCnt + 1; + $pumExpecTim = $pumExpecTim + $expectedTime; + if ($pumPhysiCnt >= $mvhsCnt) { + $curPumpMarkStat = 'Marked'; + } + $curPumpMarkBy = ($char['pump_marked_by'] == 'jothi') ? 'Admin' : $char['pump_marked_by'] ?? $curPumpMarkBy; + // } elseif ($modelType == 'PUMPSET' && $physiCnt >= $mvhsCnt) { + // $curMarkStat = 'Marked'; + } + + // $curNapMarkTim = empty($char['name_plate_marked_datetime']) ? $curNapMarkTim : $char['name_plate_marked_datetime']; + + $curRewWind = ($char['winded_rework_status'] == '1') ? '1' : $curRewWind; + + if ($curMotorMarkStat == 'Marked' && $curPumpMarkStat == 'Marked') { + $curMarkStat = 'Marked'; + } elseif (Str::contains($curHead, 'PUMP', ignoreCase: true) && ! Str::contains($curHead, 'PUMP SET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPSET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPS', ignoreCase: true)) { + if ($modelType == 'PUMP' && $pumPhysiCnt >= $mvhsCnt) { + $curMarkStat = 'Marked'; + } + } elseif (Str::contains($curHead, 'MOTOR', ignoreCase: true)) { + if ($modelType == 'MOTOR' && $motPhysiCnt >= $mvhsCnt) { + $curMarkStat = 'Marked'; + } + } + + $values = [ + 'mark_status' => $curMarkStat, + 'marked_datetime' => empty($char['marked_datetime']) ? now() : $char['marked_datetime'], + 'marked_physical_count' => (string) $physiCnt, + 'marked_expected_time' => (string) $expecTim, + 'marked_by' => ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? $curMarkBy, + 'motor_marked_status' => $curMotorMarkStat, + 'motor_marked_physical_count' => (string) $motPhysiCnt, + 'motor_expected_time' => (string) $motExpecTim, + 'motor_marked_datetime' => $curMotMarkTim, + 'motor_marked_by' => $curMotorMarkBy, + 'pump_marked_status' => $curPumpMarkStat, + 'pump_marked_physical_count' => (string) $pumPhysiCnt, + 'pump_expected_time' => (string) $pumExpecTim, + 'pump_marked_datetime' => $curPumMarkTim, + 'pump_marked_by' => $curPumpMarkBy, + 'name_plate_marked_status' => $curNamePlateMarkStat, + 'name_plate_expected_time' => (string) $napExpecTim, + 'name_plate_marked_datetime' => $curNapMarkTim, + 'name_plate_marked_by' => $curNamePlateMarkBy, + 'motor_pump_pumpset_status' => null, + 'winded_serial_number' => empty($char['winded_serial_number']) ? $curWindNo : $char['winded_serial_number'], + 'winded_rework_status' => (string) $curRewWind, + 'motor_machine_name' => $curMMach, + 'pump_machine_name' => $curPMach, + 'name_plate_machine_name' => $curNpMach, // empty($char['name_plate_machine_name']) ? $curNpMach : $char['name_plate_machine_name'], + 'part_validation_1' => empty($char['part_validation_1']) ? $curPart1 : $char['part_validation_1'], + 'part_validation_2' => empty($char['part_validation_2']) ? $curPart2 : $char['part_validation_2'], + 'samlight_logged_name' => empty($char['samlight_logged_name']) ? $slUser : $char['samlight_logged_name'], + 'pending_released_status' => $char['pending_released_status'] ?? 0, + 'has_work_flow_id' => $char['has_work_flow_id'] ?? $curWorkFlow, + 'updated_by' => $userName ?? null, + ]; + // $values = array_merge($values1 ?? [], $values2 ?? [], $values3 ?? [], $values4 ?? [], $values5 ?? []); + } } $isAuto = true; @@ -1119,26 +1347,29 @@ class CharacteristicsController extends Controller } if ($modelType == 'MOTOR') { - $curMMach = $char['motor_machine_name'] ?? $curMMach; + $curMMach = empty($char['motor_machine_name']) ? $curMMach : $char['motor_machine_name']; } elseif ($modelType == 'PUMP') { - $curPMach = $char['pump_machine_name'] ?? $curPMach; + $curPMach = empty($char['pump_machine_name']) ? $curPMach : $char['pump_machine_name']; } elseif ($modelType == 'NAME_PLATE') { - $curNpMach = $char['name_plate_machine_name'] ?? $curNpMach; + $curNpMach = empty($char['name_plate_machine_name']) ? $curNpMach : $char['name_plate_machine_name']; } + $curRewWind = ($char['winded_rework_status'] == '1') ? '1' : $curRewWind; + $manStat = (intval($curStat->man_marked_status ?? 0) ?: 0) + 1; // $manStat = ($curStat->man_marked_status == null || $curStat->man_marked_status == '' || $curStat->man_marked_status == '0') ? 0 : (int) $curStat->man_marked_status; $values = [ 'man_marked_status' => (string) $manStat, - 'man_marked_datetime' => $char['man_marked_datetime'] ?? now(), - 'man_marked_by' => ($char['man_marked_by'] == 'jothi') ? 'Admin' : $char['man_marked_by'] ?? $curManualMarkBy, - 'winded_serial_number' => $char['winded_serial_number'] ?? $curWindNo, + 'man_marked_datetime' => empty($char['man_marked_datetime']) ? now() : $char['man_marked_datetime'], + 'man_marked_by' => (($char['man_marked_by'] == 'jothi') ? 'Admin' : $char['man_marked_by']) ?? $curManualMarkBy, + 'winded_serial_number' => empty($char['winded_serial_number']) ? $curWindNo : $char['winded_serial_number'], + 'winded_rework_status' => (string) $curRewWind, 'motor_machine_name' => $curMMach, 'pump_machine_name' => $curPMach, 'name_plate_machine_name' => $curNpMach, - 'part_validation_1' => $char['part_validation_1'] ?? $curPart1, - 'part_validation_2' => $char['part_validation_2'] ?? $curPart2, - 'samlight_logged_name' => $char['samlight_logged_name'] ?? $slUser, + 'part_validation_1' => empty($char['part_validation_1']) ? $curPart1 : $char['part_validation_1'], + 'part_validation_2' => empty($char['part_validation_2']) ? $curPart2 : $char['part_validation_2'], + 'samlight_logged_name' => empty($char['samlight_logged_name']) ? $slUser : $char['samlight_logged_name'], 'updated_by' => $userName ?? null, ]; @@ -1152,12 +1383,540 @@ class CharacteristicsController extends Controller if ($updatedRows == 0) { return response()->json([ 'status_code' => 'ERROR', - 'status_description' => $isAuto ? 'Failed to update auto marked status for the '.strtolower($modelType)." serial number '{$serialNumber}'." : 'Failed to update manual marked status for the '.strtolower($modelType)." serial number '{$serialNumber}'.", + 'status_description' => $isAuto ? "Failed to update auto {$statusTyp} status for the {$modelTyp} serial number '{$serialNumber}'." : "Failed to update manual {$statusTyp} status for the {$modelTyp} serial number '{$serialNumber}'.", ], 404); } else { return response()->json([ 'status_code' => 'SUCCESS', - 'status_description' => $isAuto ? 'Successfully auto marked status updated for the '.strtolower($modelType)." serial number '{$serialNumber}'." : 'Successfully manual marked status updated for the '.strtolower($modelType)." serial number '{$serialNumber}'.", + 'status_description' => $isAuto ? "Successfully auto {$statusTyp} status updated for the {$modelTyp} serial number '{$serialNumber}'." : "Successfully manual {$statusTyp} status updated for the {$modelTyp} serial number '{$serialNumber}'.", + ], 200); + } + } + + public function storeLaserWindStatus(Request $request) + { + $expectedUser = env('API_AUTH_USER'); + $expectedPw = env('API_AUTH_PW'); + + $header_auth = $request->header('Authorization'); + $expectedToken = $expectedUser.':'.$expectedPw; + + if ('Bearer '.$expectedToken != $header_auth) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => 'Invalid authorization token!', + ], 401); + } + + $userName = $request->header('user-name'); + + if (! $userName || $userName == null || $userName == '') { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "User name can't be empty!", + ], 404); + } elseif ($userName == 'jothi') { + $userName = 'Admin'; + } + + $data = $request->all(); + + $plantCode = $data['plant_code'] ?? ''; + $workCenter = $data['work_center'] ?? ''; + $machineName = $data['machine_name'] ?? ''; + $jobNo = $data['aufnr'] ?? ''; + $serialNumber = $data['gernr'] ?? ''; + $itemCode = $data['item_code'] ?? ''; + $modelType = $data['model_type'] ?? ''; + $windedStatus = $data['winded_status'] ?? ''; + $windedQr = $data['winded_qr'] ?? ''; + $windedCode = $data['winded_code'] ?? ''; + $windedSerialNumber = $data['winded_serial_number'] ?? ''; + + if ($plantCode == null || $plantCode == '' || ! $plantCode) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Plant code can't be empty!", + ], 400); + } elseif (! is_numeric($plantCode)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Plant code '{$plantCode}' should contain only numeric values!", + ], 400); + } elseif (Str::length($plantCode) < 4 || Str::length($plantCode) > 7) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Plant code '{$plantCode}' must be between 4 and 7 digits only!", + ], 400); + } elseif (! preg_match('/^[1-9]\d{3,6}$/', $plantCode)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Invalid plant code '{$plantCode}' found!", + ], 400); + } + + if ($workCenter == null || $workCenter == '' || ! $workCenter) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Work center can't be empty!", + ], 404); + } elseif (Str::length($workCenter) < 6) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Work center '{$workCenter}' should contain minimum 6 characters!", + ], 404); + } elseif (! ctype_alnum($workCenter)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Work center '{$workCenter}' should contain only alpha-numeric values!", + ], 404); + } + + if ($modelType == null || $modelType == '' || ! $modelType) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Marked model type can't be empty!", + ], 404); + } elseif ($modelType != 'MOTOR' && $modelType != 'PUMP' && $modelType != 'NAME_PLATE') { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' doesn't have valid model type to proceed!", + ], 404); + } + + if ($jobNo != null && $jobNo != '' && $jobNo) { + if (Str::length($jobNo) < 7) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Job number '{$jobNo}' should contain minimum 7 digits!", + ], 404); + } elseif (! is_numeric($jobNo)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Job number '{$jobNo}' should contain only numeric values!", + ], 404); + } elseif (! preg_match('/^[1-9]\d{6,}$/', $jobNo)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Job number '{$jobNo}' should not begin with '0'!", + ], 404); + } + } + + if ($serialNumber == null || $serialNumber == '' || ! $serialNumber) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number can't be empty!", + ], 404); + } elseif (Str::length($serialNumber) < 9) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' should contain minimum 9 digits!", + ], 404); + } elseif (! ctype_alnum($serialNumber)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' should contain only alpha-numeric values!", + ], 404); + } elseif (! preg_match('/^[1-9][a-zA-Z0-9]{8,}$/', $serialNumber)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' should not begin with '0' or letter!", + ], 404); + } + + if ($itemCode == null || $itemCode == '' || ! $itemCode) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Item code can't be empty!", + ], 404); + } elseif (Str::length($itemCode) < 6) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Item code '{$itemCode}' should contain minimum 6 digits!", + ], 404); + } elseif (! ctype_alnum($itemCode)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Item code '{$itemCode}' should contain only alpha-numeric values!", + ], 404); + } elseif (! preg_match('/^[a-zA-Z1-9][a-zA-Z0-9]{5,}$/', $itemCode)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Item code '{$itemCode}' should not begin with '0'!", + ], 404); + } + + $plant = Plant::where('code', $plantCode)->first(); + + if (! $plant) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Plant code '{$plantCode}' not found in plant table!", + ], 404); + } + + $plantId = $plant->id; + + $user = User::where('name', $userName)->first(); + + $userPlant = User::where('name', $userName)->where('plant_id', $plantId)->first(); + + if (! $user) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "User name '{$userName}' not found in users table!", + ], 403); + } elseif (! $userPlant && ! $user->hasRole('Super Admin')) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "User name '{$userName}' not found for the plant code '{$plantCode}' in users table!", + ], 403); + } elseif (! $user->hasRole(['Super Admin', 'Laser Manager', 'Laser Supervisor', 'Laser Employee'])) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "User '{$userName}' does not have rights!", + ], 403); + } + + $work = Machine::where('work_center', $workCenter)->first(); + + if (! $work) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Work center '{$workCenter}' not found in machines table!", + ], 404); + } + + $machine = Machine::where('work_center', $workCenter)->where('plant_id', $plantId)->first(); + + if (! $machine) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Work center '{$workCenter}' not found for the plant code '{$plantCode}' in machines table!", + ], 404); + } + + $machineId = $machine->id; + + if ($jobNo != null && $jobNo != '' && $jobNo) { + $job = ClassCharacteristic::where('aufnr', $jobNo)->first(); + + if (! $job) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Job number '{$jobNo}' not found!", + ], 404); + } + + $jobPlant = ClassCharacteristic::where('aufnr', $jobNo)->where('plant_id', $plantId)->first(); + + if (! $jobPlant) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Job number '{$jobNo}' not found for the plant code '{$plantCode}'!", + ], 404); + } + + $jobWorkCenter = ClassCharacteristic::where('aufnr', $jobNo)->where('machine_id', $machineId)->where('plant_id', $plantId)->latest()->first(); + + if (! $jobWorkCenter) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Job number '{$jobNo}' not found for the work center '{$workCenter}'!", + ], 404); + } + } + + $item = Item::where('code', $itemCode)->first(); + + if (! $item) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Item code '{$itemCode}' not found in items table!", + ], 404); + } + + $itemPlant = Item::where('code', $itemCode)->where('plant_id', $plantId)->first(); + + if (! $itemPlant) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Item code '{$itemCode}' not found for the plant code '{$plantCode}' in items table!", + ], 404); + } + + $itemId = $itemPlant->id; + + $sNo = ClassCharacteristic::where('gernr', $serialNumber)->first(); + + $typesToCreate = []; + + if (! $sNo) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' not found!", + ], 404); + } else { + $modelHeading = $sNo->zmm_heading ?? ''; + + if (Str::contains($modelHeading, 'PRESSURE BOOSTER SYSTEM', ignoreCase: true)) { + $typesToCreate = ['MOTOR', 'PUMP', 'NAME_PLATE']; + } elseif (Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) || Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) { + $typesToCreate = ['MOTOR', 'PUMP']; + } elseif (Str::contains($modelHeading, 'PUMP', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMP SET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPSET', ignoreCase: true) && ! Str::contains($modelHeading, 'PUMPS', ignoreCase: true)) { + $typesToCreate = ['PUMP']; + } elseif (Str::contains($modelHeading, 'MOTOR', ignoreCase: true)) { + $typesToCreate = ['MOTOR']; + } else { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Unknown ZMM_HEADING : '{$modelHeading}' found!", + ], 404); + } + + if (! in_array($modelType, $typesToCreate, true)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Model type '{$modelType}' does not match with the model heading '{$modelHeading}'!", + ], 404); + } + } + + $sNoPlant = ClassCharacteristic::where('gernr', $serialNumber)->where('plant_id', $plantId)->first(); + + if (! $sNoPlant) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' not found for the plant code '{$plantCode}'!", + ], 404); + } + + $sNoItem = ClassCharacteristic::where('gernr', $serialNumber)->where('item_id', $itemId)->where('plant_id', $plantId)->first(); + + if (! $sNoItem) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' not found with the item code '{$itemCode}'!", + ], 404); + } + + $curStat = ClassCharacteristic::where('gernr', $serialNumber)->where('item_id', $itemId)->where('machine_id', $machineId)->where('plant_id', $plantId)->first(); + + if (! $curStat) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' not found for the work center '{$workCenter}'!", + ], 404); + } + + $curHead = null; + $hasMvhs = false; + if ($jobNo != null && $jobNo != '' && $jobNo) { + $jobItemCode = ClassCharacteristic::where('aufnr', $jobNo)->where('item_id', $itemId)->where('machine_id', $machineId)->where('plant_id', $plantId)->first(); + + if (! $jobItemCode) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Job number '{$jobNo}' not found with the item code '{$itemCode}'!", + ], 404); + } + + $curStat = ClassCharacteristic::where('gernr', $serialNumber)->where('item_id', $itemId)->where('aufnr', $jobNo)->where('machine_id', $machineId)->where('plant_id', $plantId)->first(); + + if (! $curStat) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' not found for the job number '$jobNo'!", + ], 404); + } else { + $curHead = $curStat?->zmm_heading; + if (Str::contains($curHead, 'PRESSURE BOOSTER SYSTEM', ignoreCase: true)) { + $hasMvhs = true; + } + } + } else { + $curHead = $curStat?->zmm_heading; + if (Str::contains($curHead, 'PRESSURE BOOSTER SYSTEM', ignoreCase: true)) { + $hasMvhs = true; + } + } + + if ($hasMvhs == true) { + $stick = StickerMaster::where('item_id', $itemId)->first(); + + if (! $stick) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Item code '{$itemCode}' not found in sticker masters table!", + ], 404); + } + + $stickPlant = StickerMaster::where('item_id', $itemId)->where('plant_id', $plantId)->first(); + + if (! $stickPlant) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Item code '{$itemCode}' not found for the plant code '{$plantCode}' in sticker masters table!", + ], 404); + } else { + $curMvhs = trim($stickPlant?->laser_part_validation2); + if ($curMvhs == null || $curMvhs == '' || ! is_numeric($curMvhs) || Str::length($curMvhs) <= 0) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => 'Invalid MVHS master count found in sticker masters table!', + ], 404); + } elseif (! preg_match('/^[1-9]$/', $curMvhs)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => 'The MVHS master count should be between 1 to 9!', // "MVHS master count '{$curMvhs}' should contain only numeric values between 1 to 9!" + ], 404); + // } elseif ($modelType == 'PUMPSET') { + // $mvhsCnt = 1; + } + } + } else { + if ($modelType == 'NAME_PLATE') { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' doesn't have name plate model to proceed!", + ], 404); + } elseif (Str::contains($curHead, 'PUMP', ignoreCase: true) && ! Str::contains($curHead, 'PUMP SET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPSET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPS', ignoreCase: true)) { + if ($modelType == 'MOTOR') { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' doesn't have motor model to proceed!", + ], 404); + // } elseif ($modelType == 'PUMPSET') { + // return response()->json([ + // 'status_code' => 'ERROR', + // 'status_description' => "Serial number '{$serialNumber}' doesn't have pumpset model to proceed!", + // ], 404); + } + } elseif (Str::contains($curHead, 'MOTOR', ignoreCase: true)) { + if ($modelType == 'PUMP') { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' doesn't have pump model to proceed!", + ], 404); + // } elseif ($modelType == 'PUMPSET') { + // return response()->json([ + // 'status_code' => 'ERROR', + // 'status_description' => "Serial number '{$serialNumber}' doesn't have pumpset model to proceed!", + // ], 404); + } + } elseif (! Str::contains($curHead, 'PUMP SET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPSET', ignoreCase: true) && ! Str::contains($curHead, 'PUMPS', ignoreCase: true)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Serial number '{$serialNumber}' doesn't have valid model type to proceed!", + ], 404); + } + } + + $updatedRows = 0; + $modelTyp = strtolower($modelType ? $modelType.' ' : ''); + $isAuto = false; + + $curMarkStat = $curStat->mark_status ?? null; + $curMotorMarkStat = $curStat->motor_marked_status ?? null; + $curPumpMarkStat = $curStat->pump_marked_status ?? null; + $curNamePlateMarkStat = $curStat->name_plate_marked_status ?? null; + + if ($jobNo != null && $jobNo != '' && $jobNo) { + if ($modelType == 'MOTOR' && ($curMarkStat == 'Marked' || $curMotorMarkStat == 'Marked')) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Motor serial number '{$serialNumber}' already marked in auto mode!", + ], 404); + } elseif ($modelType == 'PUMP' && ($curMarkStat == 'Marked' || $curPumpMarkStat == 'Marked')) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Pump serial number '{$serialNumber}' already marked in auto mode!", + ], 404); + } elseif ($modelType == 'NAME_PLATE' && ($curMarkStat == 'Marked' || $curNamePlateMarkStat == 'Marked')) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Name plate serial number '{$serialNumber}' already marked in auto mode!", + ], 404); + // } elseif ($modelType == 'PUMPSET' && $curMarkStat == 'Marked') { + // return response()->json([ + // 'status_code' => 'ERROR', + // 'status_description' => "Pumpset serial number '{$serialNumber}' already marked in auto mode!", + // ], 404); + } + + $values = [ + 'plant_id' => $plantId, + 'item_id' => $itemId, + 'machine_id' => $machineId, + 'machine_name' => $machineName, + 'aufnr' => $jobNo, + 'gernr' => $serialNumber, + 'model_type' => $modelType, + 'winded_status' => $windedStatus, + 'winded_qr' => $windedQr, + 'winded_code' => $windedCode, + 'winded_serial_number' => $windedSerialNumber, + 'created_by' => $userName ?? null, + 'updated_by' => $userName ?? null, + ]; + + $isAuto = true; + WindedSerialValidationError::create($values); + $updatedRows = 1; + } else { + if ($modelType == 'MOTOR' && $curMarkStat != 'Marked' && $curMotorMarkStat != 'Marked') { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Motor serial number '{$serialNumber}' doesn't marked in auto mode!", + ], 404); + } elseif ($modelType == 'PUMP' && $curMarkStat != 'Marked' && $curPumpMarkStat != 'Marked') { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Pump serial number '{$serialNumber}' doesn't marked in auto mode!", + ], 404); + } elseif ($modelType == 'NAME_PLATE' && $curMarkStat != 'Marked' && $curNamePlateMarkStat != 'Marked') { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Name plate serial number '{$serialNumber}' doesn't marked in auto mode!", + ], 404); + // } elseif ($modelType == 'PUMPSET' && $curMarkStat != 'Marked') { + // return response()->json([ + // 'status_code' => 'ERROR', + // 'status_description' => "Pumpset serial number '{$serialNumber}' doesn't marked in auto mode!", + // ], 404); + } + + $values = [ + 'plant_id' => $plantId, + 'item_id' => $itemId, + 'machine_id' => $machineId, + 'machine_name' => $machineName, + 'aufnr' => $curStat?->aufnr, + 'gernr' => $serialNumber, + 'model_type' => $modelType, + 'winded_status' => $windedStatus, + 'winded_qr' => $windedQr, + 'winded_code' => $windedCode, + 'winded_serial_number' => $windedSerialNumber, + 'created_by' => $userName ?? null, + 'updated_by' => $userName ?? null, + ]; + + $isAuto = false; + WindedSerialValidationError::create($values); + $updatedRows = 1; + } + + if ($updatedRows == 0) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => $isAuto ? "Failed to update auto mode winding status for the {$modelTyp}serial number '{$serialNumber}'!" : "Failed to update manual mode winding status for the {$modelTyp}serial number '{$serialNumber}'!", + ], 404); + } else { + return response()->json([ + 'status_code' => 'SUCCESS', + 'status_description' => $isAuto ? "Successfully auto mode winding status updated for the {$modelTyp}serial number '{$serialNumber}'." : "Successfully manual mode winding status updated for the {$modelTyp}serial number '{$serialNumber}'.", ], 200); } } @@ -1288,7 +2047,7 @@ class CharacteristicsController extends Controller $machineId = $machine->id; // - $availFields = ['class', 'arbid', 'gamng', 'lmnga', 'zz1_cn_bill_ord', 'zmm_amps', 'zmm_brand', 'zmm_degreeofprotection', 'zmm_delivery', 'zmm_dir_rot', 'zmm_discharge', 'zmm_discharge_max', 'zmm_discharge_min', 'zmm_duty', 'zmm_eff_motor', 'zmm_eff_pump', 'zmm_frequency', 'zmm_head', 'zmm_heading', 'zmm_head_max', 'zmm_head_minimum', 'zmm_idx_eff_mtr', 'zmm_idx_eff_pump', 'zmm_kvacode', 'zmm_maxambtemp', 'zmm_mincoolingflow', 'zmm_motorseries', 'zmm_motor_model', 'zmm_outlet', 'zmm_phase', 'zmm_pressure', 'zmm_pumpflowtype', 'zmm_pumpseries', 'zmm_pump_model', 'zmm_ratedpower', 'zmm_region', 'zmm_servicefactor', 'zmm_servicefactormaximumamps', 'zmm_speed', 'zmm_suction', 'zmm_suctionxdelivery', 'zmm_supplysource', 'zmm_temperature', 'zmm_thrustload', 'zmm_volts', 'zmm_wire', 'zmm_package', 'zmm_pvarrayrating', 'zmm_isi', 'zmm_isimotor', 'zmm_isipump', 'zmm_isipumpset', 'zmm_pumpset_model', 'zmm_stages', 'zmm_headrange', 'zmm_overall_efficiency', 'zmm_connection', 'zmm_min_bore_size', 'zmm_isireference', 'zmm_category', 'zmm_submergence', 'zmm_capacitorstart', 'zmm_capacitorrun', 'zmm_inch', 'zmm_motor_type', 'zmm_dismantle_direction', 'zmm_eff_ovrall', 'zmm_bodymoc', 'zmm_rotormoc', 'zmm_dlwl', 'zmm_inputpower', 'zmm_imp_od', 'zmm_ambtemp', 'zmm_de', 'zmm_dischargerange', 'zmm_efficiency_class', 'zmm_framesize', 'zmm_impellerdiameter', 'zmm_insulationclass', 'zmm_maxflow', 'zmm_minhead', 'zmm_mtrlofconst', 'zmm_nde', 'zmm_powerfactor', 'zmm_tagno', 'zmm_year', 'zmm_laser_name', 'zmm_logo_cp', 'zmm_logo_ce', 'zmm_logo_nsf', 'zmm_logo_eac', 'zmm_grwt_motor', 'zmm_grwt_pump', 'zmm_grwt_pset', 'zmm_grwt_cable', 'zmm_grwt_pf', 'zmm_newt_motor', 'zmm_newt_pump', 'zmm_newt_pset', 'zmm_newt_cable', 'zmm_newt_pf', 'zmm_operating_range', 'zmm_intake_air', 'zmm_oxygen_transfer_rate', 'zmm_air_inlet_pipesize', 'zmm_sump_depth', 'zmm_poles', 'zmm_motor_heading', 'zmm_motor_speed', 'zmm_beenote', 'zmm_beenumber', 'zmm_beestar', 'zmm_eff_ttl', 'zmm_labelperiod', 'zmm_modelyear', 'zmm_performance_factor', 'zqmm_qty', 'zmm_operating_temperature', 'zmm_axial_force', 'zmm_codeclass', 'zmm_colour', 'zmm_grade', 'zmm_isivalve', 'zmm_isi_wc', 'zmm_length', 'zmm_license_cml_no', 'zmm_mfgmonyr', 'zmm_motoridentification', 'zmm_packtype', 'zmm_panel', 'zmm_pumpidentification', 'zmm_psettype', 'zmm_size', 'zmm_type', 'zmm_usp', 'marked_datetime', 'marked_by', 'motor_pump_pumpset_status', 'motor_machine_name', 'pump_machine_name', 'name_plate_machine_name', 'pending_released_status', 'has_work_flow_id']; // 'mark_status','marked_physical_count', 'marked_expected_time', 'man_marked_status', 'man_marked_datetime', 'man_marked_by', 'motor_marked_status', 'motor_marked_physical_count', 'motor_expected_time', 'motor_marked_by', 'pump_marked_status', 'pump_marked_physical_count', 'pump_expected_time', 'pump_marked_by', 'name_plate_marked_status', 'name_plate_expected_time', 'name_plate_marked_by', 'winded_serial_number', 'part_validation_1', 'part_validation_2', 'samlight_logged_name' + $availFields = ['class', 'arbid', 'gamng', 'lmnga', 'zz1_cn_bill_ord', 'zmm_amps', 'zmm_brand', 'zmm_degreeofprotection', 'zmm_delivery', 'zmm_dir_rot', 'zmm_discharge', 'zmm_discharge_max', 'zmm_discharge_min', 'zmm_duty', 'zmm_eff_motor', 'zmm_eff_pump', 'zmm_frequency', 'zmm_head', 'zmm_heading', 'zmm_head_max', 'zmm_head_minimum', 'zmm_idx_eff_mtr', 'zmm_idx_eff_pump', 'zmm_kvacode', 'zmm_maxambtemp', 'zmm_mincoolingflow', 'zmm_motorseries', 'zmm_motor_model', 'zmm_outlet', 'zmm_phase', 'zmm_pressure', 'zmm_pumpflowtype', 'zmm_pumpseries', 'zmm_pump_model', 'zmm_ratedpower', 'zmm_region', 'zmm_servicefactor', 'zmm_servicefactormaximumamps', 'zmm_speed', 'zmm_suction', 'zmm_suctionxdelivery', 'zmm_supplysource', 'zmm_temperature', 'zmm_thrustload', 'zmm_volts', 'zmm_wire', 'zmm_package', 'zmm_pvarrayrating', 'zmm_isi', 'zmm_isimotor', 'zmm_isipump', 'zmm_isipumpset', 'zmm_pumpset_model', 'zmm_stages', 'zmm_headrange', 'zmm_overall_efficiency', 'zmm_connection', 'zmm_min_bore_size', 'zmm_isireference', 'zmm_category', 'zmm_submergence', 'zmm_capacitorstart', 'zmm_capacitorrun', 'zmm_inch', 'zmm_motor_type', 'zmm_dismantle_direction', 'zmm_eff_ovrall', 'zmm_bodymoc', 'zmm_rotormoc', 'zmm_dlwl', 'zmm_inputpower', 'zmm_imp_od', 'zmm_ambtemp', 'zmm_de', 'zmm_dischargerange', 'zmm_efficiency_class', 'zmm_framesize', 'zmm_impellerdiameter', 'zmm_insulationclass', 'zmm_maxflow', 'zmm_minhead', 'zmm_mtrlofconst', 'zmm_nde', 'zmm_powerfactor', 'zmm_tagno', 'zmm_year', 'zmm_laser_name', 'zmm_logo_cp', 'zmm_logo_ce', 'zmm_logo_nsf', 'zmm_logo_eac', 'zmm_grwt_motor', 'zmm_grwt_pump', 'zmm_grwt_pset', 'zmm_grwt_cable', 'zmm_grwt_pf', 'zmm_newt_motor', 'zmm_newt_pump', 'zmm_newt_pset', 'zmm_newt_cable', 'zmm_newt_pf', 'zmm_operating_range', 'zmm_intake_air', 'zmm_oxygen_transfer_rate', 'zmm_air_inlet_pipesize', 'zmm_sump_depth', 'zmm_poles', 'zmm_motor_heading', 'zmm_motor_speed', 'zmm_beenote', 'zmm_beenumber', 'zmm_beestar', 'zmm_eff_ttl', 'zmm_labelperiod', 'zmm_modelyear', 'zmm_performance_factor', 'zqmm_qty', 'zmm_operating_temperature', 'zmm_axial_force', 'zmm_codeclass', 'zmm_colour', 'zmm_grade', 'zmm_isivalve', 'zmm_isi_wc', 'zmm_length', 'zmm_license_cml_no', 'zmm_mfgmonyr', 'zmm_motoridentification', 'zmm_packtype', 'zmm_panel', 'zmm_pumpidentification', 'zmm_psettype', 'zmm_size', 'zmm_type', 'zmm_usp', 'marked_datetime', 'marked_by', 'motor_pump_pumpset_status', 'motor_machine_name', 'pump_machine_name', 'name_plate_machine_name', 'pending_released_status', 'has_work_flow_id']; // 'mark_status','marked_physical_count', 'marked_expected_time', 'man_marked_status', 'man_marked_datetime', 'man_marked_by', 'motor_marked_status', 'motor_marked_physical_count', 'motor_expected_time', 'motor_marked_datetime', 'motor_marked_by', 'pump_marked_status', 'pump_marked_physical_count', 'pump_expected_time', 'pump_marked_datetime', 'pump_marked_by', 'name_plate_marked_status', 'name_plate_expected_time', 'name_plate_marked_datetime', 'name_plate_marked_by', 'winded_serial_number', 'winded_rework_status', 'part_validation_1', 'part_validation_2', 'samlight_logged_name' if ($itemCode != '' && $itemCode != null && $itemCode && Str::length($itemCode) > 0) { $existingJobNo = ClassCharacteristic::where('aufnr', $jobNo)->first(); // ->where('machine_id', $machineId)->where('plant_id', $plantId) @@ -1525,6 +2284,8 @@ class CharacteristicsController extends Controller } } + $insertData['marked_datetime'] = empty($char['marked_datetime']) ? now() : $char['marked_datetime']; + $insertData['marked_by'] = ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? null; // $insertData['man_marked_by'] = ($char['man_marked_by'] == 'jothi') ? 'Admin' : $char['man_marked_by'] ?? null; // $insertData['motor_marked_by'] = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? null; @@ -1903,6 +2664,8 @@ class CharacteristicsController extends Controller } } + $insertData['marked_datetime'] = empty($char['marked_datetime']) ? now() : $char['marked_datetime']; + $insertData['marked_by'] = ($char['marked_by'] == 'jothi') ? 'Admin' : $char['marked_by'] ?? null; // $insertData['man_marked_by'] = ($char['man_marked_by'] == 'jothi') ? 'Admin' : $char['man_marked_by'] ?? null; // $insertData['motor_marked_by'] = ($char['motor_marked_by'] == 'jothi') ? 'Admin' : $char['motor_marked_by'] ?? null; @@ -2173,7 +2936,7 @@ class CharacteristicsController extends Controller ], 404); } - $columnsToShow = ['mark_status', 'marked_datetime', 'marked_physical_count', 'marked_expected_time', 'marked_by', 'man_marked_status', 'man_marked_datetime', 'man_marked_by', 'motor_marked_status', 'motor_marked_physical_count', 'motor_expected_time', 'motor_marked_by', 'pump_marked_status', 'pump_marked_physical_count', 'pump_expected_time', 'pump_marked_by', 'name_plate_marked_status', 'name_plate_expected_time', 'name_plate_marked_by', 'motor_pump_pumpset_status', 'winded_serial_number', 'motor_machine_name', 'pump_machine_name', 'name_plate_machine_name', 'part_validation_1', 'part_validation_2', 'samlight_logged_name', 'pending_released_status', 'has_work_flow_id']; + $columnsToShow = ['mark_status', 'marked_datetime', 'marked_physical_count', 'marked_expected_time', 'marked_by', 'man_marked_status', 'man_marked_datetime', 'man_marked_by', 'motor_marked_status', 'motor_marked_physical_count', 'motor_expected_time', 'motor_marked_datetime', 'motor_marked_by', 'pump_marked_status', 'pump_marked_physical_count', 'pump_expected_time', 'pump_marked_datetime', 'pump_marked_by', 'name_plate_marked_status', 'name_plate_expected_time', 'name_plate_marked_datetime', 'name_plate_marked_by', 'motor_pump_pumpset_status', 'winded_serial_number', 'winded_rework_status', 'motor_machine_name', 'pump_machine_name', 'name_plate_machine_name', 'part_validation_1', 'part_validation_2', 'samlight_logged_name', 'pending_released_status', 'has_work_flow_id']; $characteristicsColumns = ['class', 'arbid', 'gamng', 'lmnga', 'zz1_cn_bill_ord', 'zmm_amps', 'zmm_brand', 'zmm_degreeofprotection', 'zmm_delivery', 'zmm_dir_rot', 'zmm_discharge', 'zmm_discharge_max', 'zmm_discharge_min', 'zmm_duty', 'zmm_eff_motor', 'zmm_eff_pump', 'zmm_frequency', 'zmm_head', 'zmm_heading', 'zmm_head_max', 'zmm_head_minimum', 'zmm_idx_eff_mtr', 'zmm_idx_eff_pump', 'zmm_kvacode', 'zmm_maxambtemp', 'zmm_mincoolingflow', 'zmm_motorseries', 'zmm_motor_model', 'zmm_outlet', 'zmm_phase', 'zmm_pressure', 'zmm_pumpflowtype', 'zmm_pumpseries', 'zmm_pump_model', 'zmm_ratedpower', 'zmm_region', 'zmm_servicefactor', 'zmm_servicefactormaximumamps', 'zmm_speed', 'zmm_suction', 'zmm_suctionxdelivery', 'zmm_supplysource', 'zmm_temperature', 'zmm_thrustload', 'zmm_volts', 'zmm_wire', 'zmm_package', 'zmm_pvarrayrating', 'zmm_isi', 'zmm_isimotor', 'zmm_isipump', 'zmm_isipumpset', 'zmm_pumpset_model', 'zmm_stages', 'zmm_headrange', 'zmm_overall_efficiency', 'zmm_connection', 'zmm_min_bore_size', 'zmm_isireference', 'zmm_category', 'zmm_submergence', 'zmm_capacitorstart', 'zmm_capacitorrun', 'zmm_inch', 'zmm_motor_type', 'zmm_dismantle_direction', 'zmm_eff_ovrall', 'zmm_bodymoc', 'zmm_rotormoc', 'zmm_dlwl', 'zmm_inputpower', 'zmm_imp_od', 'zmm_ambtemp', 'zmm_de', 'zmm_dischargerange', 'zmm_efficiency_class', 'zmm_framesize', 'zmm_impellerdiameter', 'zmm_insulationclass', 'zmm_maxflow', 'zmm_minhead', 'zmm_mtrlofconst', 'zmm_nde', 'zmm_powerfactor', 'zmm_tagno', 'zmm_year', 'zmm_laser_name', 'zmm_logo_cp', 'zmm_logo_ce', 'zmm_logo_nsf', 'zmm_logo_eac', 'zmm_grwt_motor', 'zmm_grwt_pump', 'zmm_grwt_pset', 'zmm_newt_motor', 'zmm_newt_pump', 'zmm_newt_pset', 'zmm_operating_range', 'zmm_intake_air', 'zmm_oxygen_transfer_rate', 'zmm_air_inlet_pipesize', 'zmm_sump_depth', 'zmm_poles', 'zmm_motor_heading', 'zmm_motor_speed', 'zmm_beenote', 'zmm_beenumber', 'zmm_beestar', 'zmm_eff_ttl', 'zmm_labelperiod', 'zmm_modelyear', 'zmm_performance_factor', 'zqmm_qty', 'zmm_operating_temperature', 'zmm_axial_force']; @@ -2965,7 +3728,7 @@ class CharacteristicsController extends Controller return response()->json([ 'ZMM_HEADING' => $serialExists->zmm_heading ?? '', 'MARK_STATUS' => $serialExists->mark_status ?? '', - 'MARKED_DATETIME' => $serialExists->marked_datetime, + 'MARKED_DATETIME' => $serialExists->marked_datetime ?? '', 'MARKED_PHYSICAL_COUNT' => $serialExists->marked_physical_count ?? '0', 'MARKED_EXPECTED_TIME' => $serialExists->marked_expected_time ?? '0', 'MARKED_BY' => ($serialExists->marked_by == 'Admin') ? 'jothi' : $serialExists->marked_by ?? '', @@ -2975,16 +3738,20 @@ class CharacteristicsController extends Controller 'MOTOR_MARKED_STATUS' => $serialExists->motor_marked_status ?? '', 'MOTOR_MARKED_PHYSICAL_COUNT' => $serialExists->motor_marked_physical_count ?? '0', 'MOTOR_EXPECTED_TIME' => $serialExists->motor_expected_time ?? '0', + 'MOTOR_MARKED_DATETIME' => $serialExists->motor_marked_datetime ?? '', 'MOTOR_MARKED_BY' => ($serialExists->motor_marked_by == 'Admin') ? 'jothi' : $serialExists->motor_marked_by ?? '', 'PUMP_MARKED_STATUS' => $serialExists->pump_marked_status ?? '', 'PUMP_MARKED_PHYSICAL_COUNT' => $serialExists->pump_marked_physical_count ?? '0', 'PUMP_EXPECTED_TIME' => $serialExists->pump_expected_time ?? '0', + 'PUMP_MARKED_DATETIME' => $serialExists->pump_marked_datetime ?? '', 'PUMP_MARKED_BY' => ($serialExists->pump_marked_by == 'Admin') ? 'jothi' : $serialExists->pump_marked_by ?? '', 'NAME_PLATE_MARKED_STATUS' => $serialExists->name_plate_marked_status ?? '', 'NAME_PLATE_EXPECTED_TIME' => $serialExists->name_plate_expected_time ?? '0', + 'NAME_PLATE_MARKED_DATETIME' => $serialExists->name_plate_marked_datetime ?? '', 'NAME_PLATE_MARKED_BY' => ($serialExists->name_plate_marked_by == 'Admin') ? 'jothi' : $serialExists->name_plate_marked_by ?? '', 'MOTOR_PUMP_PUMPSET_STATUS' => $serialExists->motor_pump_pumpset_status ?? '', 'WINDED_SERIAL_NUMBER' => $serialExists->winded_serial_number ?? '', + 'WINDED_REWORK_STATUS' => $serialExists->winded_rework_status ?? '0', 'MOTOR_MACHINE_NAME' => $serialExists->motor_machine_name ?? '', 'PUMP_MACHINE_NAME' => $serialExists->pump_machine_name ?? '', 'NAME_PLATE_MACHINE_NAME' => $serialExists->name_plate_machine_name ?? '',