diff --git a/app/Http/Controllers/ObdController.php b/app/Http/Controllers/ObdController.php index 998329a75..48419a184 100644 --- a/app/Http/Controllers/ObdController.php +++ b/app/Http/Controllers/ObdController.php @@ -22,152 +22,6 @@ class ObdController extends Controller * Store a newly created resource in storage. */ - // public function store(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("ERROR: Unauthorized", 403) - // ->header('Content-Type', 'text/plain'); - // } - - // try - // { - // $data = $request->all(); - // // Validate required fields - // $missing = []; - // if (empty($data['plant_name'])) $missing[] = 'plant_name'; - // if (empty($data['obd_number'])) $missing[] = 'obd_number'; - // if (empty($data['line_numbers'])) $missing[] = 'line_numbers'; - - // if (!empty($missing)) - // { - // $message = "ERROR: Missing required field(s): " . implode(', ', $missing); - // return response($message, 400)->header('Content-Type', 'text/plain'); - // } - - // // OBD Number validation - // $obdNumber = $data['obd_number']; - // if (Str::length($obdNumber) < 8 || !ctype_alnum($obdNumber)) - // { - // return response("ERROR: OBD Number should contain minimum 8 digits", 400) - // ->header('Content-Type', 'text/plain'); - // } - - // // Lookup plant_id by plant_name - // $plantId = Plant::where('name', $data['plant_name'])->value('id'); - // if (!$plantId) { - // return response("ERROR: Plant '" . $data['plant_name'] . "' not found", 404) - // ->header('Content-Type', 'text/plain'); - // } - - // $missingLines = []; - // $updated = 0; - - // foreach ($data['line_numbers'] as $line) - // { - // if ($line['line_number'] == '' || $line['line_number'] == null) { - // return response("ERROR: Line Number can't be empty", 400) - // ->header('Content-Type', 'text/plain'); - // } - - // $exists = WeightValidation::where('plant_id', $plantId) - // ->where('obd_number', $data['obd_number']) - // ->where('line_number', $line['line_number']) - // ->exists(); - - // if (!$exists) - // { - // $missingLines[] = $line['line_number']; - // continue; - // } - - // $record = WeightValidation::where('plant_id', $plantId) - // ->where('obd_number', $data['obd_number']) - // ->where('line_number', $line['line_number']) - // ->first(); - - // if (!$record) - // { - // $missingLines[] = $line['line_number']; - // continue; - // } - - // $mandatoryFields = ['vehicle_number', 'bundle_number', 'picked_weight', 'scanned_by']; - // $missingFields = []; - - // foreach ($mandatoryFields as $field) { - // if ($line[$field] == '' || $line[$field] == null) { - // // Convert field name to a more readable format, e.g. vehicle_number -> Vehicle Number - // $missingFields[] = ucwords(str_replace('_', ' ', $field)); - // } - // } - - // if (!empty($missingFields)) { - // if (count($missingFields) == 1) - // { - // $fieldsString = $missingFields[0]; - // } - // else - // { - // $lastField = array_pop($missingFields); - // $fieldsString = implode(', ', $missingFields) . ' and ' . $lastField; - // } - - // $message = "ERROR: " . $fieldsString . " can't be empty for line_number " . $line['line_number']; - // return response($message, 400)->header('Content-Type', 'text/plain'); - // } - // // Compare incoming data with existing record - // $isSame = - // ($record->vehicle_number == $line['vehicle_number']) && - // ($record->bundle_number == $line['bundle_number']) && - // ($record->picked_weight == $line['picked_weight']) && - // ($record->scanned_by == $line['scanned_by']); - - // if ($isSame) { - // return response( - // "ERROR: Already line number " . $line['line_number'] . " is updated", - // 400 - // )->header('Content-Type', 'text/plain'); - // } - - - // $count = WeightValidation::where([ - // 'plant_id' => $plantId, - // 'obd_number' => $data['obd_number'], - // 'line_number'=> $line['line_number'], - // ]) - // ->update([ - // 'vehicle_number' => $line['vehicle_number'] ?? null, - // 'bundle_number' => $line['bundle_number'] ?? null, - // 'picked_weight' => $line['picked_weight'] ?? null, - // 'scanned_by' => $line['scanned_by'] ?? null, - // 'updated_at' => now(), - // ]); - - // $updated += $count; - // } - - // if (!empty($missingLines)) { - // $message = "ERROR: Line(s) " . implode(', ', $missingLines) . " not found for Plant ID '" . $plantId . "' and OBD Number: '" . $data['obd_number'] . "'"; - // return response($message, 404)->header('Content-Type', 'text/plain'); - // } else { - // $message = "SUCCESS: OBD Number '" . $data['obd_number'] . "' updated successfully"; - // return response($message, 200)->header('Content-Type', 'text/plain'); - // } - // } - // catch (\Exception $e) - // { - // return response("ERROR: Server error", 500)->header('Content-Type', 'text/plain'); - // } - // } - public function store(Request $request) { $expectedUser = env('API_AUTH_USER'); @@ -214,15 +68,12 @@ class ObdController extends Controller //Check if OBD number exists for that plant $obdRecords = WeightValidation::where('plant_id', $plantId) - ->where('obd_number', $obdNumber) - ->select('id', 'line_number') // Only fetch required columns - ->get(); + ->where('obd_number', $obdNumber) + ->exists(); - if ($obdRecords->isEmpty()) { - return response( - "ERROR: OBD Number '$obdNumber' not found for plant '{$data['plant_name']}'", - 404 - )->header('Content-Type', 'text/plain'); + if (!$obdRecords) + { + return response( "ERROR: OBD Number '$obdNumber' not found for plant '{$data['plant_name']}'",404)->header('Content-Type', 'text/plain'); } @@ -305,12 +156,9 @@ class ObdController extends Controller } } - // Only after checking all lines, return if any already updated - if (!empty($alreadyUpdatedLines)) { - return response( - "Already line number(s) updated for obd number '{$data['obd_number']}' is :" . implode(', ', $alreadyUpdatedLines), - 400 - )->header('Content-Type', 'text/plain'); + if (!empty($alreadyUpdatedLines)) + { + return response( "Already line number(s): " . implode(', ', $alreadyUpdatedLines) . " is updated for obd_number '" . $data['obd_number'] . "'", 400)->header('Content-Type', 'text/plain'); } } @@ -320,8 +168,8 @@ class ObdController extends Controller return response($message, 404)->header('Content-Type', 'text/plain'); } - // If we reach here, all lines are valid and need updating $updated = 0; + $updatedLines = []; foreach ($data['line_numbers'] as $line) { $count = WeightValidation::where([ @@ -337,11 +185,18 @@ class ObdController extends Controller 'updated_at' => now(), ]); - $updated += $count; + //$updated += $count; + if ($count > 0) { + $updated += $count; + $updatedLines[] = $line['line_number']; + } } - $message = "SUCCESS: OBD Number '" . $data['obd_number'] . "' updated successfully"; + $message = "SUCCESS: OBD Number '" . $data['obd_number'] . "' updated successfully and line number(s): " . implode(', ', $updatedLines); return response($message, 200)->header('Content-Type', 'text/plain'); + + // $message = "SUCCESS: OBD Number '" . $data['obd_number'] . "' updated successfully"; + // return response($message, 200)->header('Content-Type', 'text/plain'); } catch (\Exception $e) { @@ -368,7 +223,7 @@ class ObdController extends Controller try { - return response("Unable to Received", 400)->header('Content-Type', 'text/plain'); + return response("Successfully Received", 200)->header('Content-Type', 'text/plain'); // $data = $request->all(); // // Validate required fields // $missing = [];