Added logic checking document number in production order table #1384

Merged
jothi merged 1 commits from ranjith-dev into master 2026-11-06 09:45:52 +00:00

View File

@@ -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.<br>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.<br>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.<br>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 {