diff --git a/app/Filament/Resources/PanelBoxValidationResource.php b/app/Filament/Resources/PanelBoxValidationResource.php index f3a41e88..73f37edb 100644 --- a/app/Filament/Resources/PanelBoxValidationResource.php +++ b/app/Filament/Resources/PanelBoxValidationResource.php @@ -20,6 +20,7 @@ use App\Models\Line; use App\Models\Plant; use App\Models\StickerMaster; use App\Models\InvoiceValidation; +use App\Models\ProductionOrder; use App\Models\PanelGrMaster; use Filament\Notifications\Notification; use Filament\Forms\Components\DateTimePicker; @@ -288,277 +289,277 @@ class PanelBoxValidationResource extends Resource // Check if QR format contains '|' - if ($state && str_contains($state, '|')) - { - if (strpos($state, '|') == false) { - $set('validationError', 'Scan valid QR code. (Ex: Item_Code|Serial_Number)'); - $set('part_validation_type', null); - $set('show_validation_image', false); - $set('part_validation_type_options', []); - $set('validation1_image_url', null); + // if ($state && str_contains($state, '|')) + // { + // if (strpos($state, '|') == false) { + // $set('validationError', 'Scan valid QR code. (Ex: Item_Code|Serial_Number)'); + // $set('part_validation_type', null); + // $set('show_validation_image', false); + // $set('part_validation_type_options', []); + // $set('validation1_image_url', null); - return; - } + // return; + // } - if (! preg_match('/^[a-zA-Z0-9]{6,}+\|[1-9][a-zA-Z0-9]{8,}+(\|)?$/', $state)) { - $splits = explode('|', $state); - $iCode = trim($splits[0]); - $sNumber = isset($splits[1]) ? trim($splits[1]) : null; + // if (! preg_match('/^[a-zA-Z0-9]{6,}+\|[1-9][a-zA-Z0-9]{8,}+(\|)?$/', $state)) { + // $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('part_validation_type', null); - $set('show_validation_image', false); - $set('part_validation_type_options', []); - $set('validation1_image_url', null); + // if (! ctype_alnum($iCode)) { + // $set('validationError', 'Item code must contain alpha-numeric values.'); + // $set('part_validation_type', null); + // $set('show_validation_image', false); + // $set('part_validation_type_options', []); + // $set('validation1_image_url', null); - return; - } elseif (strlen($iCode) < 6) { - $set('validationError', 'Item code must be at least 6 digits.'); - $set('part_validation_type', null); - $set('show_validation_image', false); - $set('part_validation_type_options', []); - $set('validation1_image_url', null); + // return; + // } elseif (strlen($iCode) < 6) { + // $set('validationError', 'Item code must be at least 6 digits.'); + // $set('part_validation_type', null); + // $set('show_validation_image', false); + // $set('part_validation_type_options', []); + // $set('validation1_image_url', null); - return; - } elseif (! ctype_alnum($sNumber)) { - $set('validationError', 'Serial Number must contain alpha-numeric values.'); - $set('part_validation_type', null); - $set('show_validation_image', false); - $set('part_validation_type_options', []); - $set('validation1_image_url', null); + // return; + // } elseif (! ctype_alnum($sNumber)) { + // $set('validationError', 'Serial Number must contain alpha-numeric values.'); + // $set('part_validation_type', null); + // $set('show_validation_image', false); + // $set('part_validation_type_options', []); + // $set('validation1_image_url', null); - return; - } + // return; + // } - $existInMasterPo = PanelGrMaster::where('document_number', $pOrder)->where('plant_id', $plantId)->first(); + // $existInMasterPo = PanelGrMaster::where('document_number', $pOrder)->where('plant_id', $plantId)->first(); - if(!$existInMasterPo){ - Notification::make() - ->title('Panel GR Record') - ->body("Production Order (Or) Doc No'{$pOrder}' not found against plant code '{$plaCode}' in Panel Gr master.") - ->danger() - ->send(); - $set('item_id', null); - return; - } + // if(!$existInMasterPo){ + // Notification::make() + // ->title('Panel GR Record') + // ->body("Production Order (Or) Doc No'{$pOrder}' not found against plant code '{$plaCode}' in Panel Gr master.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } - $iId = Item::where('code', $iCode)->where('plant_id', $plantId)->first(); + // $iId = Item::where('code', $iCode)->where('plant_id', $plantId)->first(); - if(!$iId){ - Notification::make() - ->title('Item not found') - ->body("Item code'{$iCode}' not found against plant code '{$plaCode}' in item master.") - ->danger() - ->send(); - $set('item_id', null); - return; - } + // if(!$iId){ + // Notification::make() + // ->title('Item not found') + // ->body("Item code'{$iCode}' not found against plant code '{$plaCode}' in item master.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } - $existInMaster = PanelGrMaster::where('document_number', $pOrder)->where('item_id', $iId->id)->where('plant_id', $plantId)->first(); + // $existInMaster = PanelGrMaster::where('document_number', $pOrder)->where('item_id', $iId->id)->where('plant_id', $plantId)->first(); - if(!$existInMaster){ - Notification::make() - ->title('Panel GR Record Not Found') - ->body("No Panel GR record found for Production Order (Or) Doc No'{$pOrder}' and for Item '{$iCode}'.") - ->danger() - ->send(); - $set('item_id', null); - return; - } - else if($existInMaster->supplier_number == '' || $existInMaster->supplier_number == null){ - Notification::make() - ->title('Panel GR Found') - ->body("Supplier Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$iCode}'.") - ->danger() - ->send(); - $set('item_id', null); - return; - } - // else if($existInMaster->supplier_number != $supplier){ - // Notification::make() - // ->title('Panel GR Found') - // ->body("Supplier code not match for Production Order (Or) Doc No'{$pOrder}' and Item '{$iCode}'.") - // ->danger() - // ->send(); - // $set('item_id', null); - // return; - // } - else if($existInMaster->quantity == '' || $existInMaster->quantity == null){ - Notification::make() - ->title('Panel GR Found') - ->body("Quantity cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$iCode}'.") - ->danger() - ->send(); - $set('item_id', null); - return; - } - else if($existInMaster->invoice_number == '' || $existInMaster->invoice_number == null){ - Notification::make() - ->title('Panel GR Found') - ->body("Invoice Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$iCode}'.") - ->danger() - ->send(); - $set('item_id', null); - return; - } + // if(!$existInMaster){ + // Notification::make() + // ->title('Panel GR Record Not Found') + // ->body("No Panel GR record found for Production Order (Or) Doc No'{$pOrder}' and for Item '{$iCode}'.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } + // else if($existInMaster->supplier_number == '' || $existInMaster->supplier_number == null){ + // Notification::make() + // ->title('Panel GR Found') + // ->body("Supplier Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$iCode}'.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } + // // else if($existInMaster->supplier_number != $supplier){ + // // Notification::make() + // // ->title('Panel GR Found') + // // ->body("Supplier code not match for Production Order (Or) Doc No'{$pOrder}' and Item '{$iCode}'.") + // // ->danger() + // // ->send(); + // // $set('item_id', null); + // // return; + // // } + // else if($existInMaster->quantity == '' || $existInMaster->quantity == null){ + // Notification::make() + // ->title('Panel GR Found') + // ->body("Quantity cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$iCode}'.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } + // else if($existInMaster->invoice_number == '' || $existInMaster->invoice_number == null){ + // Notification::make() + // ->title('Panel GR Found') + // ->body("Invoice Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$iCode}'.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } - $sticker = StickerMaster::where('plant_id', $plantId)->where('item_id', $iId->id)->first(); + // $sticker = StickerMaster::where('plant_id', $plantId)->where('item_id', $iId->id)->first(); - if(!$sticker){ - Notification::make() - ->title('Unknown Item Code') - ->body("Item code not found '{$iId->code}' in sticker master.") - ->danger() - ->send(); - $set('item_id', null); - } + // if(!$sticker){ + // Notification::make() + // ->title('Unknown Item Code') + // ->body("Item code not found '{$iId->code}' in sticker master.") + // ->danger() + // ->send(); + // $set('item_id', null); + // } - $existQuanInPanel = PanelBoxValidation::where('plant_id', $plantId)->where('production_order', $pOrder)->where('sticker_master_id', $sticker->id)->count(); + // $existQuanInPanel = PanelBoxValidation::where('plant_id', $plantId)->where('production_order', $pOrder)->where('sticker_master_id', $sticker->id)->count(); - if ($existQuanInPanel >= (int) $existInMaster->quantity) { - Notification::make() - ->title('Quantity Completed') - ->body("Panel box quantity '{$existQuanInPanel}' exceeds the available quantity '{$existInMaster->quantity}' in Panel GR Master for Production Order '{$pOrder}' and Item '{$iCode}'.") - ->danger() - ->send(); - $set('item_id', null); - return; - } - } else { - $set('validationError', null); - } - } - if (str_contains($state, '|')) { + // if ($existQuanInPanel >= (int) $existInMaster->quantity) { + // Notification::make() + // ->title('Quantity Completed') + // ->body("Panel box quantity '{$existQuanInPanel}' exceeds the available quantity '{$existInMaster->quantity}' in Panel GR Master for Production Order '{$pOrder}' and Item '{$iCode}'.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } + // } else { + // $set('validationError', null); + // } + // } + // if (str_contains($state, '|')) { - $parts = array_map('trim', explode('|', $state)); + // $parts = array_map('trim', explode('|', $state)); - if (count($parts) != 2) { - Notification::make() - ->title('Invalid QR Format') - ->body('Expected format: ItemCode|SerialNumber') - ->danger() - ->send(); + // if (count($parts) != 2) { + // Notification::make() + // ->title('Invalid QR Format') + // ->body('Expected format: ItemCode|SerialNumber') + // ->danger() + // ->send(); - return; - } + // return; + // } - $itemCode = $parts[0]; - $serialNumber = $parts[1]; + // $itemCode = $parts[0]; + // $serialNumber = $parts[1]; - if($serialNumber == '' || $serialNumber == null){ - Notification::make() - ->title('Unknown Serial number') - ->body("Serial number can't be empty!") - ->danger() - ->send(); + // if($serialNumber == '' || $serialNumber == null){ + // Notification::make() + // ->title('Unknown Serial number') + // ->body("Serial number can't be empty!") + // ->danger() + // ->send(); - $set('item_id', null); - return; - } - elseif (! ctype_alnum($serialNumber)) { - $set('validationError', 'Serial Number should contain alpha-numeric values.'); - $set('item_id', null); - return; - } + // $set('item_id', null); + // return; + // } + // elseif (! ctype_alnum($serialNumber)) { + // $set('validationError', 'Serial Number should contain alpha-numeric values.'); + // $set('item_id', null); + // return; + // } - $existInMasterPo = PanelGrMaster::where('document_number', $pOrder)->where('plant_id', $plantId)->first(); + // $existInMasterPo = PanelGrMaster::where('document_number', $pOrder)->where('plant_id', $plantId)->first(); - if(!$existInMasterPo){ - Notification::make() - ->title('Panel GR Record') - ->body("Production Order (Or) Doc No'{$pOrder}' not found against plant code '{$plaCode}' in Panel Gr master.") - ->danger() - ->send(); - $set('item_id', null); - return; - } + // if(!$existInMasterPo){ + // Notification::make() + // ->title('Panel GR Record') + // ->body("Production Order (Or) Doc No'{$pOrder}' not found against plant code '{$plaCode}' in Panel Gr master.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } - $iId = Item::where('code', $itemCode)->where('plant_id', $plantId)->first(); + // $iId = Item::where('code', $itemCode)->where('plant_id', $plantId)->first(); - if(!$iId){ - Notification::make() - ->title('Item not found') - ->body("Item code'{$itemCode}' not found against plant code '{$plaCode}' in item master.") - ->danger() - ->send(); - $set('item_id', null); - return; - } + // if(!$iId){ + // Notification::make() + // ->title('Item not found') + // ->body("Item code'{$itemCode}' not found against plant code '{$plaCode}' in item master.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } - $existInMaster = PanelGrMaster::where('document_number', $pOrder)->where('item_id', $iId->id)->where('plant_id', $plantId)->first(); + // $existInMaster = PanelGrMaster::where('document_number', $pOrder)->where('item_id', $iId->id)->where('plant_id', $plantId)->first(); - if(!$existInMaster){ - Notification::make() - ->title('Panel GR Record Not Found') - ->body("No Panel GR record found for Production Order (Or) Doc No'{$pOrder}' and for Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - return; - } - else if($existInMaster->supplier_number == '' || $existInMaster->supplier_number == null){ - Notification::make() - ->title('Panel GR Found') - ->body("Supplier Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - return; - } - // else if($existInMaster->supplier_number != $supplier){ - // Notification::make() - // ->title('Panel GR Found') - // ->body("Supplier code not match for Production Order (Or) Doc No'{$pOrder}' and Item '{$iCode}'.") - // ->danger() - // ->send(); - // $set('item_id', null); - // return; - // } - else if($existInMaster->quantity == '' || $existInMaster->quantity == null){ - Notification::make() - ->title('Panel GR Found') - ->body("Quantity cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - return; - } - else if($existInMaster->invoice_number == '' || $existInMaster->invoice_number == null){ - Notification::make() - ->title('Panel GR Found') - ->body("Invoice Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - return; - } + // if(!$existInMaster){ + // Notification::make() + // ->title('Panel GR Record Not Found') + // ->body("No Panel GR record found for Production Order (Or) Doc No'{$pOrder}' and for Item '{$itemCode}'.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } + // else if($existInMaster->supplier_number == '' || $existInMaster->supplier_number == null){ + // Notification::make() + // ->title('Panel GR Found') + // ->body("Supplier Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } + // // else if($existInMaster->supplier_number != $supplier){ + // // Notification::make() + // // ->title('Panel GR Found') + // // ->body("Supplier code not match for Production Order (Or) Doc No'{$pOrder}' and Item '{$iCode}'.") + // // ->danger() + // // ->send(); + // // $set('item_id', null); + // // return; + // // } + // else if($existInMaster->quantity == '' || $existInMaster->quantity == null){ + // Notification::make() + // ->title('Panel GR Found') + // ->body("Quantity cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } + // else if($existInMaster->invoice_number == '' || $existInMaster->invoice_number == null){ + // Notification::make() + // ->title('Panel GR Found') + // ->body("Invoice Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } - $sticker = StickerMaster::where('plant_id', $plantId)->where('item_id', $iId->id)->first(); + // $sticker = StickerMaster::where('plant_id', $plantId)->where('item_id', $iId->id)->first(); - if(!$sticker){ - Notification::make() - ->title('Unknown Item Code') - ->body("Item code not found '{$iId->code}' in sticker master.") - ->danger() - ->send(); - $set('item_id', null); - } + // if(!$sticker){ + // Notification::make() + // ->title('Unknown Item Code') + // ->body("Item code not found '{$iId->code}' in sticker master.") + // ->danger() + // ->send(); + // $set('item_id', null); + // } - $existQuanInPanel = PanelBoxValidation::where('plant_id', $plantId)->where('production_order', $pOrder)->where('sticker_master_id', $sticker->id)->count(); + // $existQuanInPanel = PanelBoxValidation::where('plant_id', $plantId)->where('production_order', $pOrder)->where('sticker_master_id', $sticker->id)->count(); - if ($existQuanInPanel >= (int) $existInMaster->quantity) { - Notification::make() - ->title('Quantity Completed') - ->body("Panel box quantity '{$existQuanInPanel}' exceeds the available quantity '{$existInMaster->quantity}' in Panel GR Master for Production Order '{$pOrder}' and Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - return; - } + // if ($existQuanInPanel >= (int) $existInMaster->quantity) { + // Notification::make() + // ->title('Quantity Completed') + // ->body("Panel box quantity '{$existQuanInPanel}' exceeds the available quantity '{$existInMaster->quantity}' in Panel GR Master for Production Order '{$pOrder}' and Item '{$itemCode}'.") + // ->danger() + // ->send(); + // $set('item_id', null); + // return; + // } - } - elseif (str_contains($state, '/')) + // } + if (str_contains($state, '/')) { $parts = explode('/', $state); @@ -596,141 +597,232 @@ class PanelBoxValidationResource extends Resource $existInMasterPo = PanelGrMaster::where('document_number', $pOrder)->where('plant_id', $plantId)->first(); - if(!$existInMasterPo){ - Notification::make() - ->title('Panel GR Record') - ->body("Production Order (Or) Doc No'{$pOrder}' not found against plant code '{$plaCode}' in Panel Gr master.") - ->danger() - ->send(); - $set('item_id', null); - $set('serial_exists', false); - return; + // if(!$existInMasterPo){ + // Notification::make() + // ->title('Panel GR Record') + // ->body("Production Order (Or) Doc No'{$pOrder}' not found against plant code '{$plaCode}' in Panel Gr master.") + // ->danger() + // ->send(); + // $set('item_id', null); + // $set('serial_exists', false); + // return; + // } + + if($existInMasterPo){ + + $iId = Item::where('code', $itemCode)->where('plant_id', $plantId)->first(); + + if(!$iId){ + Notification::make() + ->title('Item not found') + ->body("Item code'{$itemCode}' not found against plant code '{$plaCode}' in item master.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + + $sticker = StickerMaster::where('plant_id', $plantId)->where('item_id', $iId->id)->first(); + + if(!$sticker){ + Notification::make() + ->title('Unknown Item Code') + ->body("Item code not found '{$iId->code}' in sticker master.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + + $panelExistsInvoice = InvoiceValidation::where('plant_id', $plantId) + ->where('panel_box_serial_number', $serialNumber) + ->where('panel_box_supplier', $supplier) + ->first(); + + if ($panelExistsInvoice) { + Notification::make() + ->title('Duplicate Panel Box Serial Number') + ->body("Duplicate panel already exists.
Panel Box Code: $itemCode, Serial Number: $serialNumber, Supplier Number: $supplier against invoice Number: $panelExistsInvoice->invoice_number") + ->danger() + ->seconds(4) + ->send(); + + $set('item_id', null); + $set('serial_exists', false); + + return; + } + + $existInMaster = PanelGrMaster::where('document_number', $pOrder)->where('inspection_lot_number', $inspecLotNo)->where('item_id', $iId->id)->where('plant_id', $plantId)->first(); + + if(!$existInMaster){ + Notification::make() + ->title('Panel GR Record Not Found') + ->body("No Panel GR record found for Production Order (Or) Doc No'{$pOrder}' , inspection lot number '{$inspecLotNo}' and for Item '{$itemCode}'.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + else if($existInMaster->supplier_number == '' || $existInMaster->supplier_number == null){ + Notification::make() + ->title('Panel GR Found') + ->body("Supplier Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + else if($existInMaster->supplier_number != $supplier){ + Notification::make() + ->title('Panel GR Found') + ->body("Supplier code not match for Production Order (Or) Doc No'{$pOrder}' and Item '{$itemCode}'.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + else if($existInMaster->inspection_lot_number != $inspecLotNo){ + Notification::make() + ->title('Panel GR Found') + ->body("Inspection Lot Number code not match for Production Order (Or) Doc No'{$pOrder}' and Item '{$itemCode}'.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + else if($existInMaster->quantity == '' || $existInMaster->quantity == null){ + Notification::make() + ->title('Panel GR Found') + ->body("Quantity cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + else if($existInMaster->invoice_number == '' || $existInMaster->invoice_number == null){ + Notification::make() + ->title('Panel GR Found') + ->body("Invoice Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + + $existQuanInPanel = PanelBoxValidation::where('plant_id', $plantId)->where('production_order', $pOrder)->where('inspection_lot_number', $inspecLotNo)->where('sticker_master_id', $sticker->id)->count(); + + if ($existQuanInPanel >= (int) $existInMaster->quantity) { + Notification::make() + ->title('Quantity Completed') + ->body("Panel box quantity '{$existQuanInPanel}' exceeds the available quantity '{$existInMaster->quantity}' in Panel GR Master for Production Order '{$pOrder}' and Item '{$itemCode}'.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + + $set('panel_box_supplier', $supplier); + $set('panel_box_serial_number', $panelBoxSerialNo); + $set('panel_box_code', $panelBoxCode); } + else{ + $existInMasterProdOrder = ProductionOrder::where('production_order', $pOrder)->where('plant_id', $plantId)->first(); - $iId = Item::where('code', $itemCode)->where('plant_id', $plantId)->first(); + if(!$existInMasterProdOrder && !$existInMasterPo){ + Notification::make() + ->title('Production Order Not Found') + ->body("Production Order (Or) Doc No'{$pOrder}' not found against plant code '{$plaCode}' in both production order and Panel Gr master.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + + $iId = Item::where('code', $itemCode)->where('plant_id', $plantId)->first(); + + if(!$iId){ + Notification::make() + ->title('Item not found') + ->body("Item code'{$itemCode}' not found against plant code '{$plaCode}' in item master.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + + $sticker = StickerMaster::where('plant_id', $plantId)->where('item_id', $iId->id)->first(); + + if(!$sticker){ + Notification::make() + ->title('Unknown Item Code') + ->body("Item code not found '{$iId->code}' in sticker master.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + + $panelExistsInvoice = InvoiceValidation::where('plant_id', $plantId) + ->where('panel_box_serial_number', $serialNumber) + ->where('panel_box_supplier', $supplier) + ->first(); + + if ($panelExistsInvoice) { + Notification::make() + ->title('Duplicate Panel Box Serial Number') + ->body("Duplicate panel already exists.
Panel Box Code: $itemCode, Serial Number: $serialNumber, Supplier Number: $supplier against invoice Number: $panelExistsInvoice->invoice_number") + ->danger() + ->seconds(4) + ->send(); + + $set('item_id', null); + $set('serial_exists', false); + + return; + } + + if($existInMasterProdOrder->quantity == '' || $existInMasterProdOrder->quantity == null){ + Notification::make() + ->title('Production Order Found') + ->body("Quantity cannot be empty in production order '{$pOrder}' and Item '{$itemCode}'.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + + $existQuanInPanel = PanelBoxValidation::where('plant_id', $plantId)->where('production_order', $pOrder)->where('sticker_master_id', $sticker->id)->count(); + + if ($existQuanInPanel >= (int) $existInMasterProdOrder->quantity) { + Notification::make() + ->title('Quantity Completed') + ->body("Panel box quantity '{$existQuanInPanel}' exceeds the available quantity '{$existInMasterProdOrder->quantity}' for Production Order '{$pOrder}' and Item '{$itemCode}' in production order table.") + ->danger() + ->send(); + $set('item_id', null); + $set('serial_exists', false); + return; + } + + $set('panel_box_supplier', $supplier); + $set('panel_box_serial_number', $panelBoxSerialNo); + $set('panel_box_code', $panelBoxCode); - if(!$iId){ - Notification::make() - ->title('Item not found') - ->body("Item code'{$itemCode}' not found against plant code '{$plaCode}' in item master.") - ->danger() - ->send(); - $set('item_id', null); - $set('serial_exists', false); - return; } - - $sticker = StickerMaster::where('plant_id', $plantId)->where('item_id', $iId->id)->first(); - - if(!$sticker){ - Notification::make() - ->title('Unknown Item Code') - ->body("Item code not found '{$iId->code}' in sticker master.") - ->danger() - ->send(); - $set('item_id', null); - $set('serial_exists', false); - return; - } - - $panelExistsInvoice = InvoiceValidation::where('plant_id', $plantId) - ->where('panel_box_serial_number', $serialNumber) - ->where('panel_box_supplier', $supplier) - ->first(); - - if ($panelExistsInvoice) { - Notification::make() - ->title('Duplicate Panel Box Serial Number') - ->body("Duplicate panel already exists.
Panel Box Code: $itemCode, Serial Number: $serialNumber, Supplier Number: $supplier against invoice Number: $panelExistsInvoice->invoice_number") - ->danger() - ->seconds(4) - ->send(); - - $set('item_id', null); - $set('serial_exists', false); - - return; - } - - $existInMaster = PanelGrMaster::where('document_number', $pOrder)->where('inspection_lot_number', $inspecLotNo)->where('item_id', $iId->id)->where('plant_id', $plantId)->first(); - - if(!$existInMaster){ - Notification::make() - ->title('Panel GR Record Not Found') - ->body("No Panel GR record found for Production Order (Or) Doc No'{$pOrder}' , inspection lot number '{$inspecLotNo}' and for Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - $set('serial_exists', false); - return; - } - else if($existInMaster->supplier_number == '' || $existInMaster->supplier_number == null){ - Notification::make() - ->title('Panel GR Found') - ->body("Supplier Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - $set('serial_exists', false); - return; - } - else if($existInMaster->supplier_number != $supplier){ - Notification::make() - ->title('Panel GR Found') - ->body("Supplier code not match for Production Order (Or) Doc No'{$pOrder}' and Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - $set('serial_exists', false); - return; - } - else if($existInMaster->inspection_lot_number != $inspecLotNo){ - Notification::make() - ->title('Panel GR Found') - ->body("Inspection Lot Number code not match for Production Order (Or) Doc No'{$pOrder}' and Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - $set('serial_exists', false); - return; - } - else if($existInMaster->quantity == '' || $existInMaster->quantity == null){ - Notification::make() - ->title('Panel GR Found') - ->body("Quantity cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - $set('serial_exists', false); - return; - } - else if($existInMaster->invoice_number == '' || $existInMaster->invoice_number == null){ - Notification::make() - ->title('Panel GR Found') - ->body("Invoice Number cannot be empty Panel GR record found for Production Order '{$pOrder}' and Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - $set('serial_exists', false); - return; - } - - $existQuanInPanel = PanelBoxValidation::where('plant_id', $plantId)->where('production_order', $pOrder)->where('inspection_lot_number', $inspecLotNo)->where('sticker_master_id', $sticker->id)->count(); - - if ($existQuanInPanel >= (int) $existInMaster->quantity) { - Notification::make() - ->title('Quantity Completed') - ->body("Panel box quantity '{$existQuanInPanel}' exceeds the available quantity '{$existInMaster->quantity}' in Panel GR Master for Production Order '{$pOrder}' and Item '{$itemCode}'.") - ->danger() - ->send(); - $set('item_id', null); - $set('serial_exists', false); - return; - } - - $set('panel_box_supplier', $supplier); - $set('panel_box_serial_number', $panelBoxSerialNo); - $set('panel_box_code', $panelBoxCode); } else {