From cefebd9f86417b40948c0d619f9654838ee1a55b Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Sat, 5 Jul 2025 21:15:50 +0530 Subject: [PATCH] Updated get latest update_count in post method functionality --- .../Controllers/TestingPanelController.php | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/TestingPanelController.php b/app/Http/Controllers/TestingPanelController.php index 236514165..bb454a2d6 100644 --- a/app/Http/Controllers/TestingPanelController.php +++ b/app/Http/Controllers/TestingPanelController.php @@ -236,7 +236,6 @@ class TestingPanelController extends Controller { foreach ($item['serial_numbers'] as $serial) { - //For update_count calculation $updateCount = [ 'plant_id' => $plantId, @@ -247,16 +246,21 @@ class TestingPanelController extends Controller 'rework_count' => $serial['rework_count'] ?? 0, ]; - // Find the current max update_count for this composite key - // $maxUpdateCount = \App\Models\TestingPanelReading::where($updateCount)->max('update_count'); - $maxUpdateCount = TestingPanelReading::where($updateCount) - ->select(TestingPanelReading::raw('MAX(CAST(update_count AS INTEGER)) AS max_update_count')) - ->value('max_update_count'); + // // Find the current max update_count for this composite key //updated_at + // // $maxUpdateCount = \App\Models\TestingPanelReading::where($updateCount)->max('update_count'); + // $maxUpdateCount = TestingPanelReading::where($updateCount)->orderByDesc('update_count')->select('update_count')->first(); + // // ->select(TestingPanelReading::raw('MAX(CAST(update_count AS INTEGER)) AS max_update_count'))->value('max_update_count'); + // // ->value('update_count') - $newUpdateCount = ($maxUpdateCount == null || $maxUpdateCount == '') ? 0 : $maxUpdateCount + 1; + // First, get the maximum length + $maxLength = TestingPanelReading::where($updateCount)->selectRaw('MAX(LENGTH(update_count)) as max_length')->value('max_length'); - $updateCountString = (string) $newUpdateCount; + // Then, get all records with that length + $lastUpdateCount = TestingPanelReading::where($updateCount)->whereRaw('LENGTH(update_count) = ?', [$maxLength])->orderByDesc('update_count')->select('update_count')->first();//->get(); + $newUpdateCount = ($lastUpdateCount == null || $lastUpdateCount == '') ? 0 : (int)$lastUpdateCount?->update_count + 1;//$maxUpdateCount?->update_count + + $updateCountString = (string)$newUpdateCount; $row = [