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 {