diff --git a/app/Filament/Resources/ProductionQuantityResource.php b/app/Filament/Resources/ProductionQuantityResource.php
index caf4fad..4fecc1e 100644
--- a/app/Filament/Resources/ProductionQuantityResource.php
+++ b/app/Filament/Resources/ProductionQuantityResource.php
@@ -325,7 +325,8 @@ class ProductionQuantityResource extends Resource
->reactive()
->columnSpan(2)
->autofocus(true)
- ->debounce(1000)
+ // ->debounce(100)
+ // ->live()
// ->disabled(function ($get) {
// return !$get('production_order');
// })
@@ -334,534 +335,534 @@ class ProductionQuantityResource extends Resource
->afterStateUpdated(function ($state, callable $get, callable $set) {
$set('success_msg', null);
- if (empty($state)) {
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', null);
- return;
- }
- else
- {
- if (!$get('plant_id')) {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please select a plant first.');
- Notification::make()
- ->title('Choose Plant')
- ->body("Please select a plant first.")
- ->danger()
- ->send();
- return;
- }
- else if (!$get('block_name')) {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please select a block first.');
- Notification::make()
- ->title('Choose Block')
- ->body("Please select a block first.")
- ->danger()
- ->send();
- return;
- }
- else if (!$get('shift_id')) {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please select a shift first.');
- Notification::make()
- ->title('Choose Shift')
- ->body("Please select a shift first.")
- ->danger()
- ->send();
- return;
- }
- else if (!$get('line_id')) {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please select a line first.');
- Notification::make()
- ->title('Choose Line')
- ->body("Please select a line first.")
- ->danger()
- ->send();
- return;
- }
- else if (!$get('production_order')) {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please scan the production order first.');
- Notification::make()
- ->title('Scan the production order first.')
- ->danger()
- ->send();
- return;
- }
-
- if(!is_numeric($get('production_order')))
- {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please scan the valid production order.');
-
- Notification::make()
- ->title('Invalid Production Order')
- ->body("Must contain numeric values only.")
- ->danger()
- ->send();
- return;
- }
- else if (!preg_match('/^[1-9][0-9]{6,}$/', $get('production_order')))
- {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please scan the valid production order first.');
-
- Notification::make()
- ->title('Invalid Production Order')
- ->body("Must contain at least 7 digits.
Must start with a non-zero digit.")
- ->danger()
- ->send();
- 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())
- ->latest()
- ->exists();
-
- if ($exists)
- {
- $currentDate = date('Y-m-d');
-
- $shiftId = Shift::where('id', $get('shift_id'))
- ->first();
-
- [$hRs, $miNs] = explode('.', $shiftId->duration) + [0, 0];
- $hRs = (int) $hRs;
- //$miNs = (int) $miNs;-*/
-
- $totalMinutes = $hRs * 60 + $miNs;
-
- $from_dt = $currentDate . ' ' . $shiftId->start_time;
-
- $to_dt = date('Y-m-d H:i:s', strtotime($from_dt . " + $totalMinutes minutes"));
-
- $currentDateTime = date('Y-m-d H:i:s');
-
- // Check if current date time is within the range
- if (!($currentDateTime >= $from_dt && $currentDateTime < $to_dt)) {
- //echo "Choosed a valid shift...";
- // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
-
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please select a valid shift.');
- Notification::make()
- ->title('Invalid Shift')
- ->body("Please select a valid shift.")
- ->danger()
- ->send();
- //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
- return;
- }
- else
- {
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', null);
- }
- }
- else
- {
- $existShifts = \App\Models\ProductionPlan::where('plant_id', $get('plant_id'))
- ->where('shift_id', $get('shift_id'))
- ->where('line_id', $get('line_id'))
- ->whereDate('created_at', Carbon::yesterday())
- ->latest()
- ->exists();
-
- if ($existShifts) //if ($existShifts->count() > 0)
- { // record exist on yesterday
- //$currentDate = date('Y-m-d');
- $yesterday = date('Y-m-d', strtotime('-1 days'));
-
- $shiftId = Shift::where('id', $get('shift_id'))
- ->first();
-
- [$hRs, $miNs] = explode('.', $shiftId->duration) + [0, 0];
- $hRs = (int) $hRs;
- // $miNs = (int) $miNs;-*/
-
- $totalMinutes = $hRs * 60 + $miNs;
-
- $from_dt = $yesterday . ' ' . $shiftId->start_time;
-
- $to_dt = date('Y-m-d H:i:s', strtotime($from_dt . " + $totalMinutes minutes"));
-
- $currentDateTime = date('Y-m-d H:i:s');
-
- // Check if current date time is within the range
- if ($currentDateTime >= $from_dt && $currentDateTime < $to_dt) {
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', null);
- }
- else
- {
- $currentDate = date('Y-m-d');
-
- $shiftId = Shift::where('id', $get('shift_id'))
- ->first();
-
- [$hRs, $miNs] = explode('.', $shiftId->duration) + [0, 0];
- $hRs = (int) $hRs;
- // $miNs = (int) $miNs;-*/
-
- $totalMinutes = $hRs * 60 + $miNs;
-
- $from_dt = $currentDate . ' ' . $shiftId->start_time;
-
- $to_dt = date('Y-m-d H:i:s', strtotime($from_dt . " + $totalMinutes minutes"));
-
- $currentDateTime = date('Y-m-d H:i:s');
-
- // Check if current date time is within the range
- if ($currentDateTime >= $from_dt && $currentDateTime < $to_dt) {
- //echo "Choosed a valid shift...";
- // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
-
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please set production plan first.');
- Notification::make()
- ->title('Plan Not Found')
- ->body("Please set production plan first.")
- ->danger()
- ->send();
- //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
- return;
- }
- else
- {
- //echo "Choosed a valid shift...";
- // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
-
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please select a valid shift.');
- Notification::make()
- ->title('Invalid Shift')
- ->body("Please select a valid shift.")
- ->danger()
- ->send();
- //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
- return;
- }
- }
- }
- else
- { // record not exist on yesterday
-
- //$currentDate = date('Y-m-d');
- $yesterday = date('Y-m-d', strtotime('-1 days'));
-
- $shiftId = Shift::where('id', $get('shift_id'))
- ->first();
-
- [$hRs, $miNs] = explode('.', $shiftId->duration) + [0, 0];
- $hRs = (int) $hRs;
- // $miNs = (int) $miNs;-*/
-
- $totalMinutes = $hRs * 60 + $miNs;
-
- $from_dt = $yesterday . ' ' . $shiftId->start_time;
-
- $to_dt = date('Y-m-d H:i:s', strtotime($from_dt . " + $totalMinutes minutes"));
-
- $currentDateTime = date('Y-m-d H:i:s');
-
- // Check if current date time is within the range
- if ($currentDateTime >= $from_dt && $currentDateTime < $to_dt) {
- //echo "Choosed a valid shift...";
- // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
-
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please set production plan first.');
- Notification::make()
- ->title('Plan Not Found')
- ->body("Please set production plan first.")
- ->danger()
- ->send();
- //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
- return;
- }
- else
- {
- $currentDate = date('Y-m-d');
-
- $shiftId = Shift::where('id', $get('shift_id'))
- ->first();
-
- [$hRs, $miNs] = explode('.', $shiftId->duration) + [0, 0];
- $hRs = (int) $hRs;
- // $miNs = (int) $miNs;-*/
-
- $totalMinutes = $hRs * 60 + $miNs;
-
- $from_dt = $currentDate . ' ' . $shiftId->start_time;
-
- $to_dt = date('Y-m-d H:i:s', strtotime($from_dt . " + $totalMinutes minutes"));
-
- $currentDateTime = date('Y-m-d H:i:s');
-
- // Check if current date time is within the range
- if ($currentDateTime >= $from_dt && $currentDateTime < $to_dt) {
- //echo "Choosed a valid shift...";
- // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
-
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please set production plan first.');
- Notification::make()
- ->title('Plan Not Found')
- ->body("Please set production plan first.")
- ->danger()
- ->send();
- //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
- return;
- }
- else
- {
- //echo "Choosed a valid shift...";
- // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
-
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Please select a valid shift.');
- Notification::make()
- ->title('Invalid Shift')
- ->body("Please select a valid shift.")
- ->danger()
- ->send();
- //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
- return;
- }
- }
- }
- }
-
- // ********************************
-
- $set('item_id', null);
- $set('serial_number', null);
- $set('validationError', null);
- }
-
- if (!preg_match('/^[a-zA-Z0-9]{6,}+\|[1-9][a-zA-Z0-9]{8,}+(\|)?$/', $state)) {
- if (strpos($state, '|') === false) {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Scan valid QR code. (Ex: Item_Code|Serial_Number )');
-
- Notification::make()
- ->title('Invalid QR')
- ->body("Scan the valid QR code.
(Ex: Item_Code|Serial_Number )")
- ->danger()
- ->send();
- return;
- }
- else
- {
- $splits = explode('|', $state);
- $iCode = trim($splits[0]);
- $sNumber = isset($splits[1]) ? trim($splits[1]) : null;
-
- if (!ctype_alnum($iCode)) {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Item code must contain alpha-numeric values.');
-
- Notification::make()
- ->title('Invalid Item Code')
- ->body("Item code must contain alpha-numeric values only.")
- ->danger()
- ->send();
- return;
- }
- else if (strlen($iCode) < 6) {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Item code must be at least 6 digits.');
-
- Notification::make()
- ->title('Invalid Item Code')
- ->body("Item code must be at least 6 digits.")
- ->danger()
- ->send();
- return;
- }
- else if (!ctype_alnum($sNumber)) {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Serial Number must contain alpha-numeric values.');
-
- Notification::make()
- ->title('Invalid Serial Number')
- ->body("Serial Number must contain alpha-numeric values only.")
- ->danger()
- ->duration(800)
- ->send();
- return;
- }
- else if (strlen($sNumber) < 9) {
- // $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Serial Number must be at least 9 digits.');
-
- Notification::make()
- ->title('Invalid Serial Number')
- ->body("Serial Number must be at least 9 digits.")
- ->danger()
- ->duration(800)
- ->send();
- return;
- }
- }
-
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Scan valid QR code. (Ex: Item_Code|Serial_Number )');
-
- Notification::make()
- ->title('Invalid QR')
- ->body("Scan the valid QR code.
(Ex: Item_Code|Serial_Number )")
- ->danger()
- ->send();
- 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;
-
- // Fetch item using item code and plant_id
- $item = Item::where('code', $itemCode)
- ->where('plant_id', $get('plant_id'))
- ->first();
-
- if ($item)
- {
- $sNo = ProductionQuantity::where('serial_number', $serialNumber)
- // ->where('plant_id', $get('plant_id'))
- ->exists();
- if (!$sNo)
- {
- $set('success_msg', 'Y');
- // if (preg_match('/\n/', $state)) {
- // dd($state.': Enter key pressed');
-
- //$set('serial_number', $serialNumber);
- $set('item_id', $item->id);
- //$set('item_code', $itemCode);
- // }
- // if (str_ends_with($state, "\n")) {
- // // Enter key was pressed (newline character detected)
- // //$state = trim($state); // Remove the newline
-
- // dd($state.': Enter key pressed');
- // // Perform your custom logic here
- // // For example, you could trigger a form submission:
- // // $this->submit();
-
- // $set('serial_number', $serialNumber);
- // $set('item_id', $item->id);
- // $set('item_code', $itemCode);
- // // $set('item_description', $item->description);
- // }
- }
- else
- {
- $set('validationError', 'Serial number already exist in database.');
- ////$set('item_code', null); //246118|651616516155667
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- Notification::make()
- ->title('Duplicate Serial Number')
- ->body("Serial number already exist in database.")
- ->danger()
- ->send();
- return;
- }
- }
- else
- {
- $set('item_code', null);
- $set('item_id', null);
- // $set('item_description', null);
- $set('serial_number', null);
- $set('validationError', 'Item code does not exist in master data.');
-
- Notification::make()
- ->title('Unknown Item Code')
- ->body("Item code does not exist in master data.")
- ->danger()
- ->send();
- return;
- }
+ // if (empty($state)) {
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', null);
+ // return;
+ // }
+ // else
+ // {
+ // if (!$get('plant_id')) {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please select a plant first.');
+ // Notification::make()
+ // ->title('Choose Plant')
+ // ->body("Please select a plant first.")
+ // ->danger()
+ // ->send();
+ // return;
+ // }
+ // else if (!$get('block_name')) {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please select a block first.');
+ // Notification::make()
+ // ->title('Choose Block')
+ // ->body("Please select a block first.")
+ // ->danger()
+ // ->send();
+ // return;
+ // }
+ // else if (!$get('shift_id')) {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please select a shift first.');
+ // Notification::make()
+ // ->title('Choose Shift')
+ // ->body("Please select a shift first.")
+ // ->danger()
+ // ->send();
+ // return;
+ // }
+ // else if (!$get('line_id')) {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please select a line first.');
+ // Notification::make()
+ // ->title('Choose Line')
+ // ->body("Please select a line first.")
+ // ->danger()
+ // ->send();
+ // return;
+ // }
+ // else if (!$get('production_order')) {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please scan the production order first.');
+ // Notification::make()
+ // ->title('Scan the production order first.')
+ // ->danger()
+ // ->send();
+ // return;
+ // }
+
+ // if(!is_numeric($get('production_order')))
+ // {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please scan the valid production order.');
+
+ // Notification::make()
+ // ->title('Invalid Production Order')
+ // ->body("Must contain numeric values only.")
+ // ->danger()
+ // ->send();
+ // return;
+ // }
+ // else if (!preg_match('/^[1-9][0-9]{6,}$/', $get('production_order')))
+ // {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please scan the valid production order first.');
+
+ // Notification::make()
+ // ->title('Invalid Production Order')
+ // ->body("Must contain at least 7 digits.
Must start with a non-zero digit.")
+ // ->danger()
+ // ->send();
+ // 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())
+ // ->latest()
+ // ->exists();
+
+ // if ($exists)
+ // {
+ // $currentDate = date('Y-m-d');
+
+ // $shiftId = Shift::where('id', $get('shift_id'))
+ // ->first();
+
+ // [$hRs, $miNs] = explode('.', $shiftId->duration) + [0, 0];
+ // $hRs = (int) $hRs;
+ // //$miNs = (int) $miNs;-*/
+
+ // $totalMinutes = $hRs * 60 + $miNs;
+
+ // $from_dt = $currentDate . ' ' . $shiftId->start_time;
+
+ // $to_dt = date('Y-m-d H:i:s', strtotime($from_dt . " + $totalMinutes minutes"));
+
+ // $currentDateTime = date('Y-m-d H:i:s');
+
+ // // Check if current date time is within the range
+ // if (!($currentDateTime >= $from_dt && $currentDateTime < $to_dt)) {
+ // //echo "Choosed a valid shift...";
+ // // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
+
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please select a valid shift.');
+ // Notification::make()
+ // ->title('Invalid Shift')
+ // ->body("Please select a valid shift.")
+ // ->danger()
+ // ->send();
+ // //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
+ // return;
+ // }
+ // else
+ // {
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', null);
+ // }
+ // }
+ // else
+ // {
+ // $existShifts = \App\Models\ProductionPlan::where('plant_id', $get('plant_id'))
+ // ->where('shift_id', $get('shift_id'))
+ // ->where('line_id', $get('line_id'))
+ // ->whereDate('created_at', Carbon::yesterday())
+ // ->latest()
+ // ->exists();
+
+ // if ($existShifts) //if ($existShifts->count() > 0)
+ // { // record exist on yesterday
+ // //$currentDate = date('Y-m-d');
+ // $yesterday = date('Y-m-d', strtotime('-1 days'));
+
+ // $shiftId = Shift::where('id', $get('shift_id'))
+ // ->first();
+
+ // [$hRs, $miNs] = explode('.', $shiftId->duration) + [0, 0];
+ // $hRs = (int) $hRs;
+ // // $miNs = (int) $miNs;-*/
+
+ // $totalMinutes = $hRs * 60 + $miNs;
+
+ // $from_dt = $yesterday . ' ' . $shiftId->start_time;
+
+ // $to_dt = date('Y-m-d H:i:s', strtotime($from_dt . " + $totalMinutes minutes"));
+
+ // $currentDateTime = date('Y-m-d H:i:s');
+
+ // // Check if current date time is within the range
+ // if ($currentDateTime >= $from_dt && $currentDateTime < $to_dt) {
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', null);
+ // }
+ // else
+ // {
+ // $currentDate = date('Y-m-d');
+
+ // $shiftId = Shift::where('id', $get('shift_id'))
+ // ->first();
+
+ // [$hRs, $miNs] = explode('.', $shiftId->duration) + [0, 0];
+ // $hRs = (int) $hRs;
+ // // $miNs = (int) $miNs;-*/
+
+ // $totalMinutes = $hRs * 60 + $miNs;
+
+ // $from_dt = $currentDate . ' ' . $shiftId->start_time;
+
+ // $to_dt = date('Y-m-d H:i:s', strtotime($from_dt . " + $totalMinutes minutes"));
+
+ // $currentDateTime = date('Y-m-d H:i:s');
+
+ // // Check if current date time is within the range
+ // if ($currentDateTime >= $from_dt && $currentDateTime < $to_dt) {
+ // //echo "Choosed a valid shift...";
+ // // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
+
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please set production plan first.');
+ // Notification::make()
+ // ->title('Plan Not Found')
+ // ->body("Please set production plan first.")
+ // ->danger()
+ // ->send();
+ // //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
+ // return;
+ // }
+ // else
+ // {
+ // //echo "Choosed a valid shift...";
+ // // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
+
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please select a valid shift.');
+ // Notification::make()
+ // ->title('Invalid Shift')
+ // ->body("Please select a valid shift.")
+ // ->danger()
+ // ->send();
+ // //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
+ // return;
+ // }
+ // }
+ // }
+ // else
+ // { // record not exist on yesterday
+
+ // //$currentDate = date('Y-m-d');
+ // $yesterday = date('Y-m-d', strtotime('-1 days'));
+
+ // $shiftId = Shift::where('id', $get('shift_id'))
+ // ->first();
+
+ // [$hRs, $miNs] = explode('.', $shiftId->duration) + [0, 0];
+ // $hRs = (int) $hRs;
+ // // $miNs = (int) $miNs;-*/
+
+ // $totalMinutes = $hRs * 60 + $miNs;
+
+ // $from_dt = $yesterday . ' ' . $shiftId->start_time;
+
+ // $to_dt = date('Y-m-d H:i:s', strtotime($from_dt . " + $totalMinutes minutes"));
+
+ // $currentDateTime = date('Y-m-d H:i:s');
+
+ // // Check if current date time is within the range
+ // if ($currentDateTime >= $from_dt && $currentDateTime < $to_dt) {
+ // //echo "Choosed a valid shift...";
+ // // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
+
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please set production plan first.');
+ // Notification::make()
+ // ->title('Plan Not Found')
+ // ->body("Please set production plan first.")
+ // ->danger()
+ // ->send();
+ // //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
+ // return;
+ // }
+ // else
+ // {
+ // $currentDate = date('Y-m-d');
+
+ // $shiftId = Shift::where('id', $get('shift_id'))
+ // ->first();
+
+ // [$hRs, $miNs] = explode('.', $shiftId->duration) + [0, 0];
+ // $hRs = (int) $hRs;
+ // // $miNs = (int) $miNs;-*/
+
+ // $totalMinutes = $hRs * 60 + $miNs;
+
+ // $from_dt = $currentDate . ' ' . $shiftId->start_time;
+
+ // $to_dt = date('Y-m-d H:i:s', strtotime($from_dt . " + $totalMinutes minutes"));
+
+ // $currentDateTime = date('Y-m-d H:i:s');
+
+ // // Check if current date time is within the range
+ // if ($currentDateTime >= $from_dt && $currentDateTime < $to_dt) {
+ // //echo "Choosed a valid shift...";
+ // // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
+
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please set production plan first.');
+ // Notification::make()
+ // ->title('Plan Not Found')
+ // ->body("Please set production plan first.")
+ // ->danger()
+ // ->send();
+ // //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
+ // return;
+ // }
+ // else
+ // {
+ // //echo "Choosed a valid shift...";
+ // // $set('ppLineError', 'Valid (From: '.$from_dt.', To: '.$to_dt.')');
+
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Please select a valid shift.');
+ // Notification::make()
+ // ->title('Invalid Shift')
+ // ->body("Please select a valid shift.")
+ // ->danger()
+ // ->send();
+ // //$set('validationError', 'Curr.'.$currentDateTime.' (From: '.$from_dt.', To: '.$to_dt.')');
+ // return;
+ // }
+ // }
+ // }
+ // }
+
+ // // ********************************
+
+ // $set('item_id', null);
+ // $set('serial_number', null);
+ // $set('validationError', null);
+ // }
+
+ // if (!preg_match('/^[a-zA-Z0-9]{6,}+\|[1-9][a-zA-Z0-9]{8,}+(\|)?$/', $state)) {
+ // if (strpos($state, '|') === false) {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Scan valid QR code. (Ex: Item_Code|Serial_Number )');
+
+ // Notification::make()
+ // ->title('Invalid QR')
+ // ->body("Scan the valid QR code.
(Ex: Item_Code|Serial_Number )")
+ // ->danger()
+ // ->send();
+ // return;
+ // }
+ // else
+ // {
+ // $splits = explode('|', $state);
+ // $iCode = trim($splits[0]);
+ // $sNumber = isset($splits[1]) ? trim($splits[1]) : null;
+
+ // if (!ctype_alnum($iCode)) {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Item code must contain alpha-numeric values.');
+
+ // Notification::make()
+ // ->title('Invalid Item Code')
+ // ->body("Item code must contain alpha-numeric values only.")
+ // ->danger()
+ // ->send();
+ // return;
+ // }
+ // else if (strlen($iCode) < 6) {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Item code must be at least 6 digits.');
+
+ // Notification::make()
+ // ->title('Invalid Item Code')
+ // ->body("Item code must be at least 6 digits.")
+ // ->danger()
+ // ->send();
+ // return;
+ // }
+ // else if (!ctype_alnum($sNumber)) {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Serial Number must contain alpha-numeric values.');
+
+ // Notification::make()
+ // ->title('Invalid Serial Number')
+ // ->body("Serial Number must contain alpha-numeric values only.")
+ // ->danger()
+ // ->duration(800)
+ // ->send();
+ // return;
+ // }
+ // else if (strlen($sNumber) < 9) {
+ // // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Serial Number must be at least 9 digits.');
+
+ // Notification::make()
+ // ->title('Invalid Serial Number')
+ // ->body("Serial Number must be at least 9 digits.")
+ // ->danger()
+ // ->duration(800)
+ // ->send();
+ // return;
+ // }
+ // }
+
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Scan valid QR code. (Ex: Item_Code|Serial_Number )');
+
+ // Notification::make()
+ // ->title('Invalid QR')
+ // ->body("Scan the valid QR code.
(Ex: Item_Code|Serial_Number )")
+ // ->danger()
+ // ->send();
+ // 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;
+
+ // // Fetch item using item code and plant_id
+ // $item = Item::where('code', $itemCode)
+ // ->where('plant_id', $get('plant_id'))
+ // ->first();
+
+ // if ($item)
+ // {
+ // $sNo = ProductionQuantity::where('serial_number', $serialNumber)
+ // // ->where('plant_id', $get('plant_id'))
+ // ->exists();
+ // if (!$sNo)
+ // {
+ // $set('success_msg', 'Y');
+ // // if (preg_match('/\n/', $state)) {
+ // // dd($state.': Enter key pressed');
+
+ // //$set('serial_number', $serialNumber);
+ // $set('item_id', $item->id);
+ // //$set('item_code', $itemCode);
+ // // }
+ // // if (str_ends_with($state, "\n")) {
+ // // // Enter key was pressed (newline character detected)
+ // // //$state = trim($state); // Remove the newline
+
+ // // dd($state.': Enter key pressed');
+ // // // Perform your custom logic here
+ // // // For example, you could trigger a form submission:
+ // // // $this->submit();
+
+ // // $set('serial_number', $serialNumber);
+ // // $set('item_id', $item->id);
+ // // $set('item_code', $itemCode);
+ // // // $set('item_description', $item->description);
+ // // }
+ // }
+ // else
+ // {
+ // $set('validationError', 'Serial number already exist in database.');
+ // ////$set('item_code', null); //246118|651616516155667
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // Notification::make()
+ // ->title('Duplicate Serial Number')
+ // ->body("Serial number already exist in database.")
+ // ->danger()
+ // ->send();
+ // return;
+ // }
+ // }
+ // else
+ // {
+ // $set('item_code', null);
+ // $set('item_id', null);
+ // // $set('item_description', null);
+ // $set('serial_number', null);
+ // $set('validationError', 'Item code does not exist in master data.');
+
+ // Notification::make()
+ // ->title('Unknown Item Code')
+ // ->body("Item code does not exist in master data.")
+ // ->danger()
+ // ->send();
+ // return;
+ // }
})
->extraAttributes(fn ($get) => [
'class' => $get('validationError') ? 'border-red-500' : '',
@@ -869,22 +870,44 @@ class ProductionQuantityResource extends Resource
->hint(fn ($get) => $get('validationError') ? $get('validationError') : null)
->hintColor('danger')
->extraAttributes([
- 'x-data' => '{}',
+ 'x-data' => '{ value: "" }',
+ 'x-model' => 'value',
+ 'wire:keydown.enter.prevent' => 'processAllValues(value)',
// 'x-data' => '{ value: "" }',
// 'x-model' => 'value',
// 'x-on:keydown.enter.prevent' => '$wire.processQr(value)',
//'wire:keydown.enter.prevent' => 'processQr(value)',
- 'x-on:keydown.enter.prevent' => '
- const formData = new FormData($event.target.form);
- const data = Object.fromEntries(formData.entries());
- $wire.processAllValues(data)
- ',
+
+ //working fine on text enter
+ // 'x-data' => '{}',
+ // 'x-on:keydown.enter.prevent' => '
+ // const formData = new FormData($event.target.form);
+ // const data = Object.fromEntries(formData.entries());
+ // $wire.processAllValues(data)
+ // ',
+
+ // 'x-data' => '{}',
+ // 'x-on:change' => '
+ // const formData = new FormData($event.target.form);
+ // const data = Object.fromEntries(formData.entries());
+ // $wire.processAllValues(data)
+ // ',
+
+ // 'x-data' => '{}',
+ // 'x-on:keydown.enter.prevent' => '
+ // $event.target.blur(); // Ensures value is updated
+ // setTimeout(() => {
+ // const formData = new FormData($event.target.form);
+ // const data = Object.fromEntries(formData.entries());
+ // $wire.processAllValues(data)
+ // }, 10); // Small delay to allow value update
+ // ',
]),
- Forms\Components\Hidden::make('item_id')
+ Forms\Components\Hidden::make('serial_number')
->required(),
Forms\Components\Hidden::make('success_msg')
->required(),
- Forms\Components\Hidden::make('serial_number')
+ Forms\Components\Hidden::make('item_code')
->required(),
//->unique(ignoreRecord: true),
// ->autocapitalize('characters'),