From 034db8f87949486b198b0e13e7a29ba976a5138a Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Sat, 27 Sep 2025 15:04:01 +0530 Subject: [PATCH] Add getGRSerial method to PdfController for retrieving serial numbers by GR number and plant code with authorization --- app/Http/Controllers/PdfController.php | 89 ++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/app/Http/Controllers/PdfController.php b/app/Http/Controllers/PdfController.php index 768c640a3..3efbc9778 100644 --- a/app/Http/Controllers/PdfController.php +++ b/app/Http/Controllers/PdfController.php @@ -2,9 +2,12 @@ namespace App\Http\Controllers; +use App\Models\GrMaster; +use App\Models\Plant; use Illuminate\Http\Request; use Illuminate\Support\Facades\Response; use Illuminate\Support\Facades\Storage; +use Str; class PdfController extends Controller { @@ -117,6 +120,92 @@ class PdfController extends Controller } + public function getGRSerial(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!' + ], 403); + } + + $plantCode = $request->header('plant-code'); + + $grNumber = $request->header('gr-number'); + + + if (!$plantCode) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Plant Code value can't be empty" + ], 404); + } + else if (!$grNumber) + { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => 'GR Number is cannot be empty!' + ], 403); + } + + $plant = Plant::where('code', $plantCode)->first(); + $plantId = $plant->id; + + if (!$plant) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => "Plant Code '{$plantCode}' not found!" + ], 404); + } + + $grExist = GRMaster::where('gr_number', $grNumber)->first(); + + if (!$grExist) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => 'GR Number not found' + ], 404); + } + + $grExists = GRMaster::where('plant_id', $plantId) + ->where('gr_number', $grNumber) + ->first(); + + if (!$grExists) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => 'GR Number not found for this plant!' + ], 404); + } + + + $serialNumbers = GrMaster::where('plant_id', $plantId) + ->where('gr_number', $grNumber) + ->pluck('serial_number') + ->toArray(); + + if (empty($serialNumbers)) { + return response()->json([ + 'status_code' => 'ERROR', + 'status_description' => 'No serial numbers found for the given GR number!' + ], 404); + } + + return response()->json([ + 'status_code' => 'SUCCESS', + 'serial_numbers' => $serialNumbers + ], 200); + + + } + + /** * Display the specified resource. */