1
0
forked from poc/pds

Merge pull request 'Refactor characteristic approval routes and enhance session handling' (#239) from ranjith-dev into master

Reviewed-on: poc/pds#239
This commit is contained in:
2026-01-23 11:23:59 +00:00

View File

@@ -1,65 +1,105 @@
<?php <?php
use App\Mail\test; use App\Http\Controllers\CharacteristicApprovalController;
use App\Http\Controllers\FileUploadController;
use App\Models\EquipmentMaster; use App\Models\EquipmentMaster;
use App\Models\InvoiceValidation;
use App\Models\Plant;
use App\Models\User; use App\Models\User;
use Filament\Facades\Filament; use Filament\Facades\Filament;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use thiagoalessio\TesseractOCR\TesseractOCR; use thiagoalessio\TesseractOCR\TesseractOCR;
Route::get('/', function () {
Route::get('/', function () {
return redirect('/admin'); return redirect('/admin');
}); });
// routes/web.php Route::get('/admin', function () {
Route::post('/save-serials-to-session', function (Request $request) { return redirect('/admin/welcome');
});
// ..Characteristic Approval Routes..//
Route::get('/characteristic/hold', [CharacteristicApprovalController::class, 'holdForm'])
->name('characteristic.hold')
->middleware('signed');
Route::post('/characteristic/hold-save', [CharacteristicApprovalController::class, 'holdSave'])
->name('characteristic.hold.save');
Route::get('/approval/hold-success', function () {
return view('approval.hold-success');
})->name('approval.hold.success');
Route::get('/characteristic/reject', [CharacteristicApprovalController::class, 'rejectForm'])
->name('characteristic.reject')
->middleware('signed');
Route::post('/characteristic/reject-save', [CharacteristicApprovalController::class, 'rejectSave'])
->name('characteristic.reject.save');
Route::get('/approval/reject-success', function () {
return view('approval.reject-success');
})->name('approval.reject.success');
Route::get('/characteristic/approve', [CharacteristicApprovalController::class, 'approve'])
->name('characteristic.approve')
->middleware('signed');
Route::post('/file-upload', [FileUploadController::class, 'upload'])->name('file.upload');
// Route::get('/characteristic/hold', [CharacteristicApprovalController::class, 'hold'])
// ->name('characteristic.hold')
// ->middleware('signed');
// Route::get('/characteristic/reject', [CharacteristicApprovalController::class, 'reject'])
// ->name('characteristic.reject')
// ->middleware('signed');
// routes/web.php
Route::post('/save-serials-to-session', function (Request $request) {
session(['serial_numbers' => $request->serial_numbers]); session(['serial_numbers' => $request->serial_numbers]);
return response()->json([ return response()->json([
'status' => 'success', 'status' => 'success',
'serial_numbers' => session('serial_numbers'), 'serial_numbers' => session('serial_numbers'),
]); ]);
}); });
Route::get('/part-validation-image/{filename}', function ($filename) { Route::get('/part-validation-image/{filename}', function ($filename) {
$path = storage_path("app/private/uploads/PartValidation/{$filename}"); $path = storage_path("app/private/uploads/PartValidation/{$filename}");
if (!file_exists($path)) { if (! file_exists($path)) {
abort(404, 'Image not found'); abort(404, 'Image not found');
} }
return response()->file($path); return response()->file($path);
})->name('part.validation.image'); })->name('part.validation.image');
// web.php // web.php
Route::post('/temp-upload', function (Request $request) { Route::post('/temp-upload', function (Request $request) {
if (!$request->hasFile('photo')) { if (! $request->hasFile('photo')) {
return response()->json(['success' => false], 400); return response()->json(['success' => false], 400);
} }
$file = $request->file('photo'); $file = $request->file('photo');
$filename = 'capture_' . time() . '.jpeg'; $filename = 'capture_'.time().'.jpeg';
$path = $file->storeAs('temp', $filename, 'local'); // storage/app/temp $path = $file->storeAs('temp', $filename, 'local'); // storage/app/temp
return response()->json([ return response()->json([
'success' => true, 'success' => true,
'path' => $path, 'path' => $path,
]); ]);
}); });
Route::post('/verify-ocr', function (Request $request) { Route::post('/verify-ocr', function (Request $request) {
if (!$request->has('path')) { if (! $request->has('path')) {
return response()->json(['success' => false, 'error' => 'No file path provided']); return response()->json(['success' => false, 'error' => 'No file path provided']);
} }
$filePath = storage_path('app/private/temp/' . basename($request->path)); $filePath = storage_path('app/private/temp/'.basename($request->path));
if (!file_exists($filePath)) { if (! file_exists($filePath)) {
return response()->json(['success' => false, 'error' => 'File not found']); return response()->json(['success' => false, 'error' => 'File not found']);
} }
@@ -79,16 +119,16 @@ use thiagoalessio\TesseractOCR\TesseractOCR;
return response()->json(['success' => true, 'text' => 'Text not found']); return response()->json(['success' => true, 'text' => 'Text not found']);
} }
//return response()->json(['success' => true, 'text' => $text]); // return response()->json(['success' => true, 'text' => $text]);
$lines = preg_split('/\r\n|\r|\n/', $text); $lines = preg_split('/\r\n|\r|\n/', $text);
$serials = array_filter(array_map('trim', $lines), fn($line) => preg_match('/^[A-Za-z0-9]+$/', $line)); $serials = array_filter(array_map('trim', $lines), fn ($line) => preg_match('/^[A-Za-z0-9]+$/', $line));
return response()->json([ return response()->json([
'success' => true, 'success' => true,
'text' => array_values($serials) // reindex array 'text' => array_values($serials), // reindex array
]); ]);
} }
//catch (\Exception $e) { // catch (\Exception $e) {
// return response()->json(['success' => false, 'error' => $e->getMessage()]); // return response()->json(['success' => false, 'error' => $e->getMessage()]);
// } // }
catch (\Exception $e) { catch (\Exception $e) {
@@ -111,62 +151,61 @@ use thiagoalessio\TesseractOCR\TesseractOCR;
'trace' => $e->getTraceAsString(), 'trace' => $e->getTraceAsString(),
]); ]);
} }
}); });
Route::get('/download/{equipmentNumber}', function ($equipmentNumber) { Route::get('/download/{equipmentNumber}', function ($equipmentNumber) {
$model = EquipmentMaster::where('equipment_number', $equipmentNumber)->firstOrFail(); $model = EquipmentMaster::where('equipment_number', $equipmentNumber)->firstOrFail();
if (! $model->attachment || ! Storage::disk('local')->exists($model->attachment)) { if (! $model->attachment || ! Storage::disk('local')->exists($model->attachment)) {
abort(404, 'File not found.'); abort(404, 'File not found.');
} }
return Storage::disk('local')->download($model->attachment); return Storage::disk('local')->download($model->attachment);
})->name('download.attachment'); })->name('download.attachment');
// Route::get('/admin/forgot-password', function () { // Route::get('/admin/forgot-password', function () {
// return view('auth.forgot-password'); // return view('auth.forgot-password');
// })->name('filament.admin.forgot-password'); // })->name('filament.admin.forgot-password');
// Route::post('/admin/forgot-password', function(Request $request){
// Route::post('/admin/forgot-password', function(Request $request){ // $validator = Validator::make($request->all(), [
// 'email'=>'required|email',
// 'old_password'=>'required',
// 'password'=>'required',
// 'password_confirmation'=>'required'
// ]);
// $validator = Validator::make($request->all(), [ // if($validator->fails()){
// 'email'=>'required|email', // return response()->json([
// 'old_password'=>'required', // 'emailError' => $validator->errors()->first('email'),
// 'password'=>'required', // 'oldPasswordError' => $validator->errors()->first('old_password'),
// 'password_confirmation'=>'required' // 'newPasswordError' => $validator->errors()->first('password'),
// ]); // 'confirmPasswordError' => $validator->errors()->first('password_confirmation')
// ]);
// }
// if($validator->fails()){ // $user = User::where('email',$request->email)->first();
// return response()->json([ // if(!$user){
// 'emailError' => $validator->errors()->first('email'), // return response()->json(['passwordError'=>'No user found with this email.']);
// 'oldPasswordError' => $validator->errors()->first('old_password'), // }
// 'newPasswordError' => $validator->errors()->first('password'),
// 'confirmPasswordError' => $validator->errors()->first('password_confirmation')
// ]);
// }
// $user = User::where('email',$request->email)->first(); // if(!Hash::check($request->old_password, $user->password)){
// if(!$user){ // return response()->json(['oldPasswordError'=>'Old password does not match']);
// return response()->json(['passwordError'=>'No user found with this email.']); // }
// }
// if(!Hash::check($request->old_password, $user->password)){ // if($request->password != $request->password_confirmation){
// return response()->json(['oldPasswordError'=>'Old password does not match']); // return response()->json(['newPasswordError'=>'New password and confirm password do not match']);
// } // }
// if($request->password != $request->password_confirmation){ // $user->password = Hash::make($request->password);
// return response()->json(['newPasswordError'=>'New password and confirm password do not match']); // $user->save();
// }
// $user->password = Hash::make($request->password); // return response()->json(['success'=>'Password changed successfully!']);
// $user->save(); // })->name('filament.admin.forgot-password.otp');
// return response()->json(['success'=>'Password changed successfully!']); // Route::post('/admin/check-email', function(Request $request){
// })->name('filament.admin.forgot-password.otp'); // $request->validate(['email' => 'required|email']);
// $exists = User::where('email', $request->email)->first();
// return response()->json(['exists' => $exists]);
// Route::post('/admin/check-email', function(Request $request){ // })->name('admin.check-email');
// $request->validate(['email' => 'required|email']);
// $exists = User::where('email', $request->email)->first();
// return response()->json(['exists' => $exists]);
// })->name('admin.check-email');