ranjith-dev #1405

Merged
jothi merged 2 commits from ranjith-dev into master 2026-11-10 08:46:24 +00:00

View File

@@ -826,6 +826,49 @@ class ProductionPlanResource extends Resource
->label('Import Production Plans')
->color('warning')
->importer(ProductionPlanImporter::class)
->fileRules([
fn (): \Closure => function ($attribute, $value, $fail) {
$csv = \League\Csv\Reader::createFromPath(
$value->getRealPath(),
'r'
);
$csv->setHeaderOffset(0);
$itemCodes = [];
foreach ($csv->getRecords() as $record) {
$values = array_values($record);
$plantCode = trim((string) ($values[0] ?? ''));
$itemCode = trim((string) ($values[1] ?? ''));
if ($plantCode === '' || $itemCode === '') {
continue;
}
$key = $plantCode . '|' . $itemCode;
$itemCodes[] = $key;
}
$duplicates = collect($itemCodes)
->duplicates()
->unique()
->values()
->map(fn ($duplicate) => explode('|', $duplicate)[1])
->unique()
->values();
if ($duplicates->isNotEmpty()) {
$fail(
'Duplicate Item Codes found: ' . $duplicates->implode(', ')
);
}
},
])
->visible(function () {
return Filament::auth()->user()->can('view import production plan');
}),