diff --git a/app/Filament/Resources/InvoiceValidationResource.php b/app/Filament/Resources/InvoiceValidationResource.php index 589a9fe..fb02a38 100644 --- a/app/Filament/Resources/InvoiceValidationResource.php +++ b/app/Filament/Resources/InvoiceValidationResource.php @@ -385,6 +385,11 @@ class InvoiceValidationResource extends Resource ->afterStateUpdated(function ($state, callable $set, callable $get) { $set('invoice_serial_number', null); $plantId = $get('plant_id'); + if (! $plantId) { + $set('invoice_serial_number', null); + + return; + } $plantCode = Plant::find($plantId)?->code ?? null; $directory = "uploads/temp/{$plantCode}"; @@ -399,7 +404,7 @@ class InvoiceValidationResource extends Resource ->required() ->acceptedFileTypes([ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'application/vnd.ms-excel', // Legacy .xls fallback if needed + // 'application/vnd.ms-excel', // Legacy .xls fallback if needed ]) ->rules(['mimes:xlsx']) // Laravel validation: extension check ->preserveFilenames() // <- this keeps the original filename @@ -729,6 +734,11 @@ class InvoiceValidationResource extends Resource ->afterStateUpdated(function ($state, callable $set, callable $get) { $set('invoice_material', null); $plantId = $get('plant_id'); + if (! $plantId) { + $set('invoice_material', null); + + return; + } $plantCode = Plant::find($plantId)?->code ?? null; $directory = "uploads/temp/{$plantCode}"; @@ -741,10 +751,15 @@ class InvoiceValidationResource extends Resource FileUpload::make('invoice_material') ->label('Invoice Material') ->required() + ->acceptedFileTypes([ + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + // 'application/vnd.ms-excel', // Legacy .xls fallback if needed + ]) + ->rules(['mimes:xlsx']) // Laravel validation: extension check ->preserveFilenames() // <- this keeps the original filename ->reactive() - ->storeFiles(false) // prevent auto-storing - ->disk('local') + ->storeFiles(false) // prevent auto-storing, we will store manually + ->disk('local') // 'local' refers to the local storage disk defined in config/filesystems.php, typically pointing to storage/app. ->visible(fn (Get $get) => ! empty($get('plant_id'))) ->directory(function (callable $get) { $plant = Plant::find($get('plant_id')); @@ -752,6 +767,7 @@ class InvoiceValidationResource extends Resource return "uploads/temp/{$plantCode}"; }) + ->uploadingMessage('Uploading...') ->helperText('Only .xlsx files are allowed (Excel files).'), ]) ->action(function (array $data) {