Added serial qr code validation in create page of sticker printing
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 11s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Gemini PR Review / review (pull_request) Failing after 22s
Laravel Larastan / larastan (pull_request) Failing after 2m15s
Laravel Pint / pint (pull_request) Failing after 2m13s
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 11s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 10s
Gemini PR Review / review (pull_request) Failing after 22s
Laravel Larastan / larastan (pull_request) Failing after 2m15s
Laravel Pint / pint (pull_request) Failing after 2m13s
This commit is contained in:
@@ -77,6 +77,54 @@ class CreateStickerPrinting extends CreateRecord
|
|||||||
|
|
||||||
$sNumber = $this->form->getState()['serial_number'] ?? null;
|
$sNumber = $this->form->getState()['serial_number'] ?? null;
|
||||||
|
|
||||||
|
$pattern1 = '/^(?<item_code>[^|]+)\|(?<serial_number>[^|]+)\|?$/i';
|
||||||
|
|
||||||
|
$pattern2 = '/^(?<item_code>[^|]+)\|(?<serial_number>[^|]+)\|(?<batch_number>.+)$/i';
|
||||||
|
|
||||||
|
$pattern3 = '/^(?<serial_number>[^|]+)$/i';
|
||||||
|
|
||||||
|
|
||||||
|
if (preg_match($pattern1, $sNumber, $matches) || preg_match($pattern2, $sNumber, $matches) || preg_match($pattern3, $sNumber, $matches)) {
|
||||||
|
|
||||||
|
$serial = $matches['serial_number'];
|
||||||
|
|
||||||
|
if (Str::length($serial) < 9) {
|
||||||
|
Notification::make()
|
||||||
|
->title('Invalid Serial Number')
|
||||||
|
->body("Serial number should conatin minimum 9 digits '$serial'.")
|
||||||
|
->warning()
|
||||||
|
->send();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if(!ctype_alnum($serial)) {
|
||||||
|
Notification::make()
|
||||||
|
->title('Invalid Serial Number')
|
||||||
|
->body("Serial number should be alphanumeric '$serial'.")
|
||||||
|
->warning()
|
||||||
|
->send();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$extractedSerialNumber = $matches['serial_number'];
|
||||||
|
$sNumber = $extractedSerialNumber;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Notification::make()
|
||||||
|
->title('Invalid Format')
|
||||||
|
->body("Serial number must be in the format 'itemcode|serialnumber' or 'itemcode|serialnumber|batchnumber'. or just 'serialnumber'.")
|
||||||
|
->warning()
|
||||||
|
->send();
|
||||||
|
|
||||||
|
// Reset only serial number field
|
||||||
|
$this->form->fill([
|
||||||
|
'plant_id' => $plant,
|
||||||
|
'reference_number' => $ref,
|
||||||
|
'serial_number' => '',
|
||||||
|
]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(empty($this->plantId) || empty($ref) || empty($this->serial_number)) {
|
if(empty($this->plantId) || empty($ref) || empty($this->serial_number)) {
|
||||||
Notification::make()
|
Notification::make()
|
||||||
->title('Unknown: Incomplete Data!')
|
->title('Unknown: Incomplete Data!')
|
||||||
|
|||||||
Reference in New Issue
Block a user