Add validation for existing GR numbers and check for missing serials in updateGR method
This commit is contained in:
@@ -71,6 +71,17 @@ class PdfController extends Controller
|
|||||||
], 400);
|
], 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$grExists = GRMaster::where('plant_id', $plantId)
|
||||||
|
->where('gr_number', $data['gr_number'])
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if (!$grExists) {
|
||||||
|
return response()->json([
|
||||||
|
'status_code' => 'ERROR',
|
||||||
|
'status_description' => "GR Number {$data['gr_number']} not found for plant {$data['plant_code']}!"
|
||||||
|
], 404);
|
||||||
|
}
|
||||||
|
|
||||||
$scannedBy = $data['scanned_by'] ?? null;
|
$scannedBy = $data['scanned_by'] ?? null;
|
||||||
|
|
||||||
if ($scannedBy == '' || $scannedBy == null) {
|
if ($scannedBy == '' || $scannedBy == null) {
|
||||||
@@ -146,6 +157,45 @@ class PdfController extends Controller
|
|||||||
], 400);
|
], 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$missingSerialsByItem = [];
|
||||||
|
|
||||||
|
foreach ($data['item_codes'] as $item) {
|
||||||
|
$itemCode = $item['item_code'];
|
||||||
|
$serialNumbers = $item['serial_numbers'];
|
||||||
|
|
||||||
|
// Get the item id
|
||||||
|
$itemObj = Item::where('plant_id', $plantId)
|
||||||
|
->where('code', $itemCode)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if (!$itemObj) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$itemId = $itemObj->id;
|
||||||
|
|
||||||
|
$foundSerials = GRMaster::where('plant_id', $plantId)
|
||||||
|
->where('gr_number', $data['gr_number'])
|
||||||
|
->where('item_id', $itemId)
|
||||||
|
->whereIn('serial_number', $serialNumbers)
|
||||||
|
->pluck('serial_number')
|
||||||
|
->toArray();
|
||||||
|
|
||||||
|
$missingSerials = array_diff($serialNumbers, $foundSerials);
|
||||||
|
|
||||||
|
if (count($missingSerials) > 0) {
|
||||||
|
$missingSerialsByItem[$itemCode] = array_values($missingSerials);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($missingSerialsByItem) > 0) {
|
||||||
|
return response()->json([
|
||||||
|
'status_code' => 'ERROR',
|
||||||
|
'status_description' => 'Some serial numbers not found in DB for given plant, GR number, and item!',
|
||||||
|
'missing_serials' => $missingSerialsByItem
|
||||||
|
], 400);
|
||||||
|
}
|
||||||
|
|
||||||
// foreach ($data['item_codes'] as $item)
|
// foreach ($data['item_codes'] as $item)
|
||||||
// {
|
// {
|
||||||
// $itemCode = $item['item_code'];
|
// $itemCode = $item['item_code'];
|
||||||
|
|||||||
Reference in New Issue
Block a user