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'),