Quality Validation - Dashboard - Production Quantity Validation and Plan Quantity Updation
This commit is contained in:
@@ -143,20 +143,24 @@ class ProductionQuantityResource extends Resource
|
||||
->reactive()
|
||||
->afterStateUpdated(function ($state, callable $set, callable $get) {
|
||||
$lineId = $get('line_id');
|
||||
$set('item_code', null);
|
||||
if (!$lineId) {
|
||||
$set('ppLineError', 'Please select a line first.');
|
||||
$set('pqLineError', 'Please select a line first.');
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$set('validationError', null);
|
||||
$set('ppLineError', null);
|
||||
$set('pqLineError', null);
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
}
|
||||
})
|
||||
->extraAttributes(fn ($get) => [
|
||||
'class' => $get('ppLineError') ? 'border-red-500' : '',
|
||||
'class' => $get('pqLineError') ? 'border-red-500' : '',
|
||||
])
|
||||
->hint(fn ($get) => $get('ppLineError') ? $get('ppLineError') : null)
|
||||
->hint(fn ($get) => $get('pqLineError') ? $get('pqLineError') : null)
|
||||
->hintColor('danger'),
|
||||
// Forms\Components\Select::make('item_id')
|
||||
// ->label('Item Code')
|
||||
@@ -214,62 +218,128 @@ class ProductionQuantityResource extends Resource
|
||||
$set('validationError', 'Please select a line first.');
|
||||
return;
|
||||
}
|
||||
|
||||
$exists = \App\Models\ProductionPlan::where('plant_id', $get('plant_id'))
|
||||
->where('shift_id', $get('shift_id'))
|
||||
->where('line_id', $get('line_id'))
|
||||
->whereDate('created_at', today())
|
||||
->exists();
|
||||
|
||||
if (!$exists)
|
||||
{
|
||||
$set('item_code', null);
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
$set('validationError', 'Please set production plan first.');
|
||||
return;
|
||||
}
|
||||
|
||||
$set('validationError', null);
|
||||
}
|
||||
|
||||
if (!preg_match('/^[a-zA-Z0-9]+\|[a-zA-Z0-9]+(\|)?$/', $state)) {
|
||||
if (!preg_match('/^[a-zA-Z0-9]{6,}+\|[1-9][a-zA-Z0-9]{8,}+(\|)?$/', $state)) {
|
||||
if (strpos($state, '|') === false) {
|
||||
$set('validationError', 'Scan valid QR code. (Ex: Item_Code|Serial_Number )');
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$splits = explode('|', $state);
|
||||
$iCode = trim($splits[0]);
|
||||
$sNumber = isset($splits[1]) ? trim($splits[1]) : null;
|
||||
|
||||
if (!ctype_alnum($iCode)) {
|
||||
$set('validationError', 'Item code must contain alpha-numeric values.');
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
return;
|
||||
}
|
||||
else if (strlen($iCode) < 6) {
|
||||
$set('validationError', 'Item code must be at least 6 digits.');
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
return;
|
||||
}
|
||||
else if (!ctype_alnum($sNumber)) {
|
||||
$set('validationError', 'Serial Number must contain alpha-numeric values.');
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
return;
|
||||
}
|
||||
else if (strlen($sNumber) < 9) {
|
||||
$set('validationError', 'Serial Number must be at least 9 digits.');
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$set('validationError', 'Scan valid QR code. (Ex: Item_Code|Serial_Number )');
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
return;
|
||||
}
|
||||
|
||||
// Only search when all parent IDs are selected
|
||||
$parts = explode('|', $state);
|
||||
|
||||
$itemCode = trim($parts[0]); // Extract item code // 123456|123456789
|
||||
|
||||
$serialNumber = isset($parts[1]) ? trim($parts[1]) : null;
|
||||
|
||||
if (strlen($itemCode) < 6) {
|
||||
$set('validationError', 'Item code must be at least 6 digits.');
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
return;
|
||||
}
|
||||
else if (!ctype_alnum($itemCode)) {
|
||||
$set('validationError', 'Item code should contain alpha-numeric values.');
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
return;
|
||||
}
|
||||
else if ($serialNumber === '') {
|
||||
$set('validationError', 'Waiting for full QR scan...');
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
return; // Do not clear item_id, just wait for full input
|
||||
}
|
||||
else if (strlen($serialNumber) < 9) {
|
||||
$set('validationError', 'Serial Number must be at least 9 digits.');
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
return;
|
||||
}
|
||||
else if (!ctype_alnum($serialNumber)) {
|
||||
$set('validationError', 'Serial Number should contain alpha-numeric values.');
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$set('validationError', null);
|
||||
$set('item_id', null);
|
||||
$set('item_description', null);
|
||||
$set('serial_number', null);
|
||||
}
|
||||
|
||||
// Only search when all parent IDs are selected
|
||||
$parts = explode('|', $state);
|
||||
$itemCode = trim($parts[0]);
|
||||
$serialNumber = isset($parts[1]) ? trim($parts[1]) : null;
|
||||
|
||||
// if (strlen($itemCode) < 6) {
|
||||
// $set('validationError', 'Item code must be at least 6 digits.');
|
||||
// $set('item_id', null);
|
||||
// $set('item_description', null);
|
||||
// $set('serial_number', null);
|
||||
// return;
|
||||
// }
|
||||
// else if (!ctype_alnum($itemCode)) {
|
||||
// $set('validationError', 'Item code must contain alpha-numeric values.');
|
||||
// $set('item_id', null);
|
||||
// $set('item_description', null);
|
||||
// $set('serial_number', null);
|
||||
// return;
|
||||
// }
|
||||
// else if ($serialNumber === '') {
|
||||
// $set('validationError', 'Waiting for full QR scan...');
|
||||
// $set('item_id', null);
|
||||
// $set('item_description', null);
|
||||
// $set('serial_number', null);
|
||||
// return; // Do not clear item_id, just wait for full input
|
||||
// }
|
||||
// else if (strlen($serialNumber) < 9) {
|
||||
// $set('validationError', 'Serial Number must be at least 9 digits.');
|
||||
// $set('item_description', null);
|
||||
// $set('serial_number', null);
|
||||
// return;
|
||||
// }
|
||||
// else if (!ctype_alnum($serialNumber)) {
|
||||
// $set('validationError', 'Serial Number must contain alpha-numeric values.');
|
||||
// $set('item_id', null);
|
||||
// $set('item_description', null);
|
||||
// $set('serial_number', null);
|
||||
// return;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// $set('validationError', null);
|
||||
// }
|
||||
|
||||
// Fetch item using item code and plant_id
|
||||
$item = \App\Models\Item::where('code', $itemCode)
|
||||
->where('plant_id', $get('plant_id'))
|
||||
@@ -284,7 +354,7 @@ class ProductionQuantityResource extends Resource
|
||||
{
|
||||
$set('serial_number', $serialNumber);
|
||||
$set('item_id', $item->id);
|
||||
$set('item_code', $itemCode); //$itemCode
|
||||
$set('item_code', $itemCode);
|
||||
$set('item_description', $item->description);
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user