Added verify button in ocr
This commit is contained in:
@@ -56,7 +56,7 @@ class OcrValidationResource extends Resource
|
|||||||
return Item::where('plant_id', $plantId)->pluck('code', 'id');
|
return Item::where('plant_id', $plantId)->pluck('code', 'id');
|
||||||
})
|
})
|
||||||
->required(),
|
->required(),
|
||||||
Forms\Components\Textarea::make('gr_number')
|
Forms\Components\TextInput::make('gr_number')
|
||||||
->label('GR Number')
|
->label('GR Number')
|
||||||
->minLength(7)
|
->minLength(7)
|
||||||
->required(),
|
->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')
|
Action::make('downloadAttachment')
|
||||||
->label('Download PDF')
|
->label('Download PDF')
|
||||||
->action(function ($get) {
|
->action(function ($get) {
|
||||||
|
|||||||
Reference in New Issue
Block a user