Added verify button in ocr

This commit is contained in:
dhanabalan
2025-10-17 09:41:21 +05:30
parent d7b70f47ed
commit 5237808e8c

View File

@@ -56,7 +56,7 @@ class OcrValidationResource extends Resource
return Item::where('plant_id', $plantId)->pluck('code', 'id');
})
->required(),
Forms\Components\Textarea::make('gr_number')
Forms\Components\TextInput::make('gr_number')
->label('GR Number')
->minLength(7)
->required(),
@@ -198,6 +198,57 @@ class OcrValidationResource extends Resource
}
}),
Action::make('verifyOcr')
->label('Verify OCR')
->action(function ($get) {
$base64Image = $get('photo_data');
if (!$base64Image) {
Notification::make()
->title('No captured image found')
->warning()
->send();
return;
}
// Decode and store the base64 image
$image = str_replace('data:image/jpeg;base64,', '', $base64Image);
$image = str_replace(' ', '+', $image);
$grNumber = $get('gr_number') ?: 'Unknown';
$safeName = preg_replace('/[^A-Za-z0-9_\-]/', '_', $grNumber);
$fileName = $safeName . '.jpg';
$filePath = storage_path("app/private/uploads/OCR/{$fileName}");
if (!file_exists(dirname($filePath))) {
mkdir(dirname($filePath), 0777, true);
}
file_put_contents($filePath, base64_decode($image));
// 🧠 Run OCR
$text = (new TesseractOCR($filePath))
->lang('eng')
->run();
preg_match_all('/\d+/', $text, $matches);
$serialNumbers = array_slice($matches[0], 0, 4);
if (empty($serialNumbers)) {
Notification::make()
->title('No numbers found in image')
->danger()
->send();
return;
}
Notification::make()
->title('OCR Read Successfully')
->body('Serial Numbers: ' . implode(', ', $serialNumbers))
->success()
->send();
}),
Action::make('downloadAttachment')
->label('Download PDF')
->action(function ($get) {