diff --git a/app/Filament/Resources/RequestCharacteristicResource.php b/app/Filament/Resources/RequestCharacteristicResource.php index 631e03e..b411bdc 100644 --- a/app/Filament/Resources/RequestCharacteristicResource.php +++ b/app/Filament/Resources/RequestCharacteristicResource.php @@ -2,6 +2,7 @@ namespace App\Filament\Resources; +use App\Filament\Exports\RequestCharacteristicExporter; use App\Filament\Resources\RequestCharacteristicResource\Pages; use App\Models\CharacteristicApproverMaster; use App\Models\Item; @@ -15,6 +16,8 @@ use Filament\Forms\Get; use Filament\Forms\Set; use Filament\Resources\Resource; use Filament\Tables; +use Filament\Tables\Actions\ExportAction; +use Filament\Tables\Actions\ImportAction; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; @@ -140,6 +143,9 @@ class RequestCharacteristicResource extends Resource $set('aufnr', null); $set('updated_by', Filament::auth()->user()?->name); }) + ->default(function () { + return optional(RequestCharacteristic::latest()->first())->item_id ?? []; + }) ->disabled(fn ($get) => self::isFieldDisabled($get)), Forms\Components\TextInput::make('aufnr') ->label('Aufnr') @@ -148,6 +154,9 @@ class RequestCharacteristicResource extends Resource ->afterStateUpdated(function ($state, callable $set, callable $get) { $set('updated_by', Filament::auth()->user()?->name); }) + ->default(function () { + return optional(RequestCharacteristic::latest()->first())->aufnr ?? ''; + }) ->disabled(fn ($get) => self::isFieldDisabled($get)), Forms\Components\Select::make('machine_name') ->label('Machines') @@ -162,14 +171,29 @@ class RequestCharacteristicResource extends Resource return []; } - return CharacteristicApproverMaster::where('plant_id', $plantId)->where('machine_id', $machineId)->pluck('machine_name', 'id')->unique(); + return CharacteristicApproverMaster::where('plant_id', $plantId)->where('machine_id', $machineId)->pluck('machine_name', 'machine_name')->unique(); }) ->afterStateUpdated(function ($state, callable $set, callable $get) { $set('characteristic_approver_master_id', null); + // dd($get('characteristic_approver_master_id')); $set('updated_by', Filament::auth()->user()?->name); }) ->default(function () { - return optional(RequestCharacteristic::latest()->first())->characteristic_approver_master_id ?? []; + $machineName = ''; + $reqId = RequestCharacteristic::latest()->first()?->characteristic_approver_master_id; + if ($reqId) { + $reqMac = CharacteristicApproverMaster::where('id', $reqId)->first()?->machine_name; + if ($reqMac) { + $machineName = $reqMac; + } else { + $machineName = null; + } + } else { + $machineName = null; + } + + // return optional(RequestCharacteristic::latest()->first())->characteristic_approver_master_id ?? []; + return $machineName ?? []; }) ->afterStateHydrated(function ($component, $state, Get $get, Set $set) { if ($get('id')) { @@ -188,8 +212,8 @@ class RequestCharacteristicResource extends Resource }) ->required(), Forms\Components\Select::make('characteristic_approver_master_id') - ->label('Master Characteristic') - ->relationship('characteristicApproverMaster', 'characteristic_field') + ->label('Master Characteristic Field') + // ->relationship('characteristicApproverMaster', 'characteristic_field') ->reactive() ->nullable() ->searchable() @@ -204,6 +228,9 @@ class RequestCharacteristicResource extends Resource return CharacteristicApproverMaster::where('plant_id', $plantId)->where('machine_id', $machineId)->where('machine_name', $machineName)->pluck('characteristic_field', 'id'); }) + ->default(function () { + return optional(RequestCharacteristic::latest()->first())->characteristic_approver_master_id ?? []; + }) ->afterStateUpdated(function ($state, callable $set, callable $get) { $set('updated_by', Filament::auth()->user()?->name); }) @@ -219,6 +246,7 @@ class RequestCharacteristicResource extends Resource ->afterStateUpdated(function ($state, callable $set, callable $get) { $set('updated_by', Filament::auth()->user()?->name); }) + ->required() ->disabled(fn ($get) => self::isFieldDisabled($get)), Forms\Components\TextInput::make('current_value') ->label('Current Value') @@ -250,6 +278,7 @@ class RequestCharacteristicResource extends Resource Forms\Components\Select::make('approver_status1') ->label('Approver Status') ->reactive() + ->live() ->options([ 'Approved' => 'Approved', 'Hold' => 'Hold', @@ -313,6 +342,7 @@ class RequestCharacteristicResource extends Resource default => 'Updated At', }) ->reactive() + ->live() ->afterStateUpdated(function ($state, callable $set, callable $get) { $set('updated_by', Filament::auth()->user()?->name); }) @@ -814,6 +844,22 @@ class RequestCharacteristicResource extends Resource Tables\Actions\ForceDeleteBulkAction::make(), Tables\Actions\RestoreBulkAction::make(), ]), + ]) + ->headerActions([ + // ImportAction::make() + // ->label('Import Request Characteristics') + // ->color('warning') + // ->importer(RequestCharacteristicImporter::class) + // ->visible(function () { + // return Filament::auth()->user()->can('view import request characteristic'); + // }), + ExportAction::make() + ->label('Export Request Characteristics') + ->color('warning') + ->exporter(RequestCharacteristicExporter::class) + ->visible(function () { + return Filament::auth()->user()->can('view export request characteristic'); + }), ]); }