From a9803f927fa76fa3d2aa123a665a8ff0361a7753 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Mon, 29 Sep 2025 16:35:55 +0530 Subject: [PATCH] Refactor plant selection options across multiple resources to display plants based on the authenticated user's plant ID, ensuring users only see relevant options. --- .../Resources/AlertMailRuleResource.php | 9 +++-- app/Filament/Resources/BlockResource.php | 5 +++ .../Resources/CheckPointNameResource.php | 5 +++ .../Resources/CheckPointTimeResource.php | 5 +++ .../Resources/ConfigurationResource.php | 5 +++ .../Resources/DeviceMasterResource.php | 5 +++ app/Filament/Resources/EbReadingResource.php | 4 +++ .../Resources/EquipmentMasterResource.php | 5 +++ app/Filament/Resources/GrMasterResource.php | 4 +++ app/Filament/Resources/GuardNameResource.php | 5 +++ .../Resources/GuardPatrolEntryResource.php | 4 +++ .../Resources/InvoiceValidationResource.php | 4 +++ app/Filament/Resources/ItemResource.php | 6 +++- app/Filament/Resources/LineResource.php | 5 +++ .../LocatorInvoiceValidationResource.php | 4 +++ app/Filament/Resources/LocatorResource.php | 4 +++ app/Filament/Resources/MachineResource.php | 5 +++ app/Filament/Resources/MfmMeterResource.php | 7 +++- .../Resources/MfmParameterResource.php | 5 +++ app/Filament/Resources/MfmReadingResource.php | 6 ++++ .../Resources/MotorTestingMasterResource.php | 4 +++ .../Resources/PalletValidationResource.php | 14 +++++--- .../Resources/ProcessOrderResource.php | 5 +++ .../Resources/ProductionLineStopResource.php | 4 +++ .../Resources/ProductionPlanResource.php | 4 +++ .../Resources/ProductionQuantityResource.php | 13 +++---- .../Resources/QualityValidationResource.php | 4 +++ ...ReworkLocatorInvoiceValidationResource.php | 4 +++ app/Filament/Resources/ShiftResource.php | 4 +++ .../Resources/StickerMasterResource.php | 5 +++ .../Resources/TempLiveReadingResource.php | 9 +++-- .../Resources/TestingPanelReadingResource.php | 35 ++++++++++++++++++- .../Resources/WeightValidationResource.php | 4 +++ .../Resources/WorkGroupMasterResource.php | 29 ++++++++------- 34 files changed, 208 insertions(+), 32 deletions(-) diff --git a/app/Filament/Resources/AlertMailRuleResource.php b/app/Filament/Resources/AlertMailRuleResource.php index dbd2e98..36d5c7c 100644 --- a/app/Filament/Resources/AlertMailRuleResource.php +++ b/app/Filament/Resources/AlertMailRuleResource.php @@ -36,7 +36,10 @@ class AlertMailRuleResource extends Resource Forms\Components\Select::make('plant') ->label('Plant') ->reactive() - ->options(fn () => Plant::pluck('name', 'id')->toArray()) + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->required(fn ($get) => ! $get('is_active')) ->afterStateUpdated(fn ($state, callable $set) => $state ? $set('is_active', false) : null), // ->options(fn () => Plant::pluck('id', 'name')->toArray()), @@ -46,14 +49,16 @@ class AlertMailRuleResource extends Resource ->options([ 'InvoiceValidation' => 'InvoiceValidation', 'ProductionQuantities' => 'ProductionQuantities', + //'Calibration' => 'Calibration', ]), Forms\Components\Select::make('rule_name') ->label('Rule Name') - ->options([ + ->options([ 'InvoiceMail' => 'Invoice Mail', 'SerialInvoiceMail' => 'Serial Invoice Mail', 'MaterialInvoiceMail' => 'Material Invoice Mail', 'ProductionMail' => 'Production Mail', + //'CalibrationMail' => 'Calibration Mail', ]) ->required(), Forms\Components\TextInput::make('email') diff --git a/app/Filament/Resources/BlockResource.php b/app/Filament/Resources/BlockResource.php index 665e88b..c6260c1 100644 --- a/app/Filament/Resources/BlockResource.php +++ b/app/Filament/Resources/BlockResource.php @@ -6,6 +6,7 @@ use App\Filament\Exports\BlockExporter; use App\Filament\Imports\BlockImporter; use App\Filament\Resources\BlockResource\Pages; use App\Models\Block; +use App\Models\Plant; use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Form; @@ -69,6 +70,10 @@ class BlockResource extends Resource // ->unique(ignoreRecord: true) ->required() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(Block::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/CheckPointNameResource.php b/app/Filament/Resources/CheckPointNameResource.php index 1237011..7c80f21 100644 --- a/app/Filament/Resources/CheckPointNameResource.php +++ b/app/Filament/Resources/CheckPointNameResource.php @@ -7,6 +7,7 @@ use App\Filament\Imports\CheckPointNameImporter; use App\Filament\Resources\CheckPointNameResource\Pages; use App\Filament\Resources\CheckPointNameResource\RelationManagers; use App\Models\CheckPointName; +use App\Models\Plant; use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Form; @@ -39,6 +40,10 @@ class CheckPointNameResource extends Resource ->relationship('plant', 'name') ->required() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(CheckPointName::where('created_by', Filament::auth()->user()?->name)->latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/CheckPointTimeResource.php b/app/Filament/Resources/CheckPointTimeResource.php index 8caefba..2afee60 100644 --- a/app/Filament/Resources/CheckPointTimeResource.php +++ b/app/Filament/Resources/CheckPointTimeResource.php @@ -8,6 +8,7 @@ use App\Filament\Resources\CheckPointTimeResource\Pages; use App\Filament\Resources\CheckPointTimeResource\RelationManagers; use App\Models\CheckPointName; use App\Models\CheckPointTime; +use App\Models\Plant; use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Form; @@ -40,6 +41,10 @@ class CheckPointTimeResource extends Resource ->relationship('plant', 'name') ->required() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(CheckPointTime::where('created_by', Filament::auth()->user()?->name)->latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/ConfigurationResource.php b/app/Filament/Resources/ConfigurationResource.php index d82c3b6..f1178c1 100644 --- a/app/Filament/Resources/ConfigurationResource.php +++ b/app/Filament/Resources/ConfigurationResource.php @@ -8,6 +8,7 @@ use App\Filament\Resources\ConfigurationResource\Pages; use App\Filament\Resources\ConfigurationResource\RelationManagers; use App\Models\Configuration; use App\Models\Line; +use App\Models\Plant; use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Form; @@ -37,6 +38,10 @@ class ConfigurationResource extends Resource ->relationship('plant', 'name') ->required() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(Configuration::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/DeviceMasterResource.php b/app/Filament/Resources/DeviceMasterResource.php index 53e70d0..589c850 100644 --- a/app/Filament/Resources/DeviceMasterResource.php +++ b/app/Filament/Resources/DeviceMasterResource.php @@ -7,6 +7,7 @@ use App\Filament\Imports\DeviceMasterImporter; use App\Filament\Resources\DeviceMasterResource\Pages; use App\Filament\Resources\DeviceMasterResource\RelationManagers; use App\Models\DeviceMaster; +use App\Models\Plant; use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Form; @@ -35,6 +36,10 @@ class DeviceMasterResource extends Resource Forms\Components\Select::make('plant_id') ->label('Plant') ->relationship('plant', 'name') + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->required(), Forms\Components\TextInput::make('name') ->label('Device Name') diff --git a/app/Filament/Resources/EbReadingResource.php b/app/Filament/Resources/EbReadingResource.php index 2abd526..69d9508 100644 --- a/app/Filament/Resources/EbReadingResource.php +++ b/app/Filament/Resources/EbReadingResource.php @@ -37,6 +37,10 @@ class EbReadingResource extends Resource ->schema([ Forms\Components\Select::make('plant_id') ->relationship('plant', 'name') + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->required(), Forms\Components\TextInput::make('lcd_segment_check') ->label('LCD Segment Check'), diff --git a/app/Filament/Resources/EquipmentMasterResource.php b/app/Filament/Resources/EquipmentMasterResource.php index d73c284..b0011ed 100644 --- a/app/Filament/Resources/EquipmentMasterResource.php +++ b/app/Filament/Resources/EquipmentMasterResource.php @@ -7,6 +7,7 @@ use App\Filament\Imports\EquipmentMasterImporter; use App\Filament\Resources\EquipmentMasterResource\Pages; use App\Filament\Resources\EquipmentMasterResource\RelationManagers; use App\Models\EquipmentMaster; +use App\Models\Plant; use Carbon\Carbon; use Filament\Forms\Components\Actions\Action; use Filament\Forms; @@ -42,6 +43,10 @@ class EquipmentMasterResource extends Resource ->label('Plant') ->reactive() ->relationship('plant', 'name') + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->required(), Forms\Components\Select::make('machine_id') //->relationship('machine', 'name') diff --git a/app/Filament/Resources/GrMasterResource.php b/app/Filament/Resources/GrMasterResource.php index 8dcb485..9e94dbb 100644 --- a/app/Filament/Resources/GrMasterResource.php +++ b/app/Filament/Resources/GrMasterResource.php @@ -40,6 +40,10 @@ class GrMasterResource extends Resource ->label('Plant') ->reactive() ->relationship('plant', 'name') + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->required(), Forms\Components\Select::make('item_id') ->label('Item Code') diff --git a/app/Filament/Resources/GuardNameResource.php b/app/Filament/Resources/GuardNameResource.php index 620fd1e..6b9c8b2 100644 --- a/app/Filament/Resources/GuardNameResource.php +++ b/app/Filament/Resources/GuardNameResource.php @@ -7,6 +7,7 @@ use App\Filament\Imports\GuardNameImporter; use App\Filament\Resources\GuardNameResource\Pages; use App\Filament\Resources\GuardNameResource\RelationManagers; use App\Models\GuardName; +use App\Models\Plant; use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Form; @@ -39,6 +40,10 @@ class GuardNameResource extends Resource ->relationship('plant', 'name') ->required() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(GuardName::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/GuardPatrolEntryResource.php b/app/Filament/Resources/GuardPatrolEntryResource.php index 0b56f41..1f609f5 100644 --- a/app/Filament/Resources/GuardPatrolEntryResource.php +++ b/app/Filament/Resources/GuardPatrolEntryResource.php @@ -52,6 +52,10 @@ class GuardPatrolEntryResource extends Resource ->relationship('plant', 'name') ->required() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(GuardPatrolEntry::where('created_by', Filament::auth()->user()?->name)->latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/InvoiceValidationResource.php b/app/Filament/Resources/InvoiceValidationResource.php index 2c823c6..bff15ef 100644 --- a/app/Filament/Resources/InvoiceValidationResource.php +++ b/app/Filament/Resources/InvoiceValidationResource.php @@ -66,6 +66,10 @@ class InvoiceValidationResource extends Resource // ->nullable(), ->reactive() ->columnSpan(1) + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(InvoiceValidation::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/ItemResource.php b/app/Filament/Resources/ItemResource.php index 456a67f..5e2269a 100644 --- a/app/Filament/Resources/ItemResource.php +++ b/app/Filament/Resources/ItemResource.php @@ -6,6 +6,7 @@ use App\Filament\Exports\ItemExporter; use App\Filament\Imports\ItemImporter; use App\Filament\Resources\ItemResource\Pages; use App\Models\Item; +use App\Models\Plant; use Filament\Actions\Exports\Enums\ExportFormat; use Filament\Facades\Filament; use Filament\Forms; @@ -44,6 +45,10 @@ class ItemResource extends Resource // ->preload() // ->nullable(), ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(Item::latest()->first())->plant_id; }) @@ -69,7 +74,6 @@ class ItemResource extends Resource Forms\Components\TextInput::make('category') ->label('Category') ->placeholder('Scan the Category'), - Forms\Components\TextInput::make('code') ->required() ->placeholder('Scan the valid code') diff --git a/app/Filament/Resources/LineResource.php b/app/Filament/Resources/LineResource.php index dadc460..740c470 100644 --- a/app/Filament/Resources/LineResource.php +++ b/app/Filament/Resources/LineResource.php @@ -7,6 +7,7 @@ use App\Filament\Imports\LineImporter; use App\Filament\Resources\LineResource\Pages; use App\Filament\Resources\LineResource\RelationManagers; use App\Models\Line; +use App\Models\Plant; use App\Models\WorkGroupMaster; use Filament\Facades\Filament; use Filament\Forms; @@ -44,6 +45,10 @@ class LineResource extends Resource ->required() // ->nullable(), ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(Line::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/LocatorInvoiceValidationResource.php b/app/Filament/Resources/LocatorInvoiceValidationResource.php index 97f57a1..8e9ddb1 100644 --- a/app/Filament/Resources/LocatorInvoiceValidationResource.php +++ b/app/Filament/Resources/LocatorInvoiceValidationResource.php @@ -55,6 +55,10 @@ class LocatorInvoiceValidationResource extends Resource ->label('Plant') ->reactive() ->relationship('plant', 'name') + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->disabled(fn (Get $get) => $get('invoice_number')) ->required() ->afterStateUpdated(function ($state, callable $set, callable $get) { diff --git a/app/Filament/Resources/LocatorResource.php b/app/Filament/Resources/LocatorResource.php index 920b540..a5673e8 100644 --- a/app/Filament/Resources/LocatorResource.php +++ b/app/Filament/Resources/LocatorResource.php @@ -46,6 +46,10 @@ class LocatorResource extends Resource ->required() // ->nullable(), ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(Locator::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/MachineResource.php b/app/Filament/Resources/MachineResource.php index c3e8ba6..e0c4655 100644 --- a/app/Filament/Resources/MachineResource.php +++ b/app/Filament/Resources/MachineResource.php @@ -8,6 +8,7 @@ use App\Filament\Resources\MachineResource\Pages; use App\Filament\Resources\MachineResource\RelationManagers; use App\Models\Line; use App\Models\Machine; +use App\Models\Plant; use App\Models\WorkGroupMaster; use Filament\Facades\Filament; use Filament\Forms; @@ -42,6 +43,10 @@ class MachineResource extends Resource ->relationship('plant', 'name') ->required() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(Machine::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/MfmMeterResource.php b/app/Filament/Resources/MfmMeterResource.php index 00898d8..e9a4258 100644 --- a/app/Filament/Resources/MfmMeterResource.php +++ b/app/Filament/Resources/MfmMeterResource.php @@ -8,6 +8,7 @@ use App\Filament\Resources\MfmMeterResource\Pages; use App\Filament\Resources\MfmMeterResource\RelationManagers; use App\Models\DeviceMaster; use App\Models\MfmMeter; +use App\Models\Plant; use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Form; @@ -38,7 +39,11 @@ class MfmMeterResource extends Resource ->relationship('plant', 'name') ->label('Plant') ->reactive() - ->required(), + ->required() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }), Forms\Components\Select::make('device_master_id') //->relationship('device', 'name') ->options(function ($get) { diff --git a/app/Filament/Resources/MfmParameterResource.php b/app/Filament/Resources/MfmParameterResource.php index 9c28caf..3027582 100644 --- a/app/Filament/Resources/MfmParameterResource.php +++ b/app/Filament/Resources/MfmParameterResource.php @@ -7,6 +7,7 @@ use App\Filament\Imports\MfmParameterImporter; use App\Filament\Resources\MfmParameterResource\Pages; use App\Filament\Resources\MfmParameterResource\RelationManagers; use App\Models\MfmParameter; +use App\Models\Plant; use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Form; @@ -35,6 +36,10 @@ class MfmParameterResource extends Resource Forms\Components\Select::make('plant_id') ->label('Plant') ->relationship('plant', 'name') + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->required(), Forms\Components\Select::make('device_master_id') ->label('Device Master') diff --git a/app/Filament/Resources/MfmReadingResource.php b/app/Filament/Resources/MfmReadingResource.php index 4beb7a3..d8f1e0b 100644 --- a/app/Filament/Resources/MfmReadingResource.php +++ b/app/Filament/Resources/MfmReadingResource.php @@ -5,6 +5,8 @@ namespace App\Filament\Resources; use App\Filament\Resources\MfmReadingResource\Pages; use App\Filament\Resources\MfmReadingResource\RelationManagers; use App\Models\MfmReading; +use App\Models\Plant; +use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Form; use Filament\Resources\Resource; @@ -27,6 +29,10 @@ class MfmReadingResource extends Resource ->schema([ Forms\Components\Select::make('plant_id') ->relationship('plant', 'name') + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->required(), Forms\Components\Select::make('mfm_meter_id') ->relationship('mfmMeter', 'name') diff --git a/app/Filament/Resources/MotorTestingMasterResource.php b/app/Filament/Resources/MotorTestingMasterResource.php index be8190b..e061247 100644 --- a/app/Filament/Resources/MotorTestingMasterResource.php +++ b/app/Filament/Resources/MotorTestingMasterResource.php @@ -47,6 +47,10 @@ class MotorTestingMasterResource extends Resource ->relationship('plant', 'name') ->required() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(MotorTestingMaster::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/PalletValidationResource.php b/app/Filament/Resources/PalletValidationResource.php index bb532e5..3ffcd08 100644 --- a/app/Filament/Resources/PalletValidationResource.php +++ b/app/Filament/Resources/PalletValidationResource.php @@ -53,12 +53,16 @@ class PalletValidationResource extends Resource ->relationship('plant', 'name') ->required() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->afterStateUpdated(function ($state, callable $set) { - $set('pallet_number', null); - $set('serial_number', null); - $set('removeSno_number', null); - $set('Sno_quantity', 0); - $set('pending_pallet_list', null); + $set('pallet_number', null); + $set('serial_number', null); + $set('removeSno_number', null); + $set('Sno_quantity', 0); + $set('pending_pallet_list', null); }), Forms\Components\TextInput::make('pallet_number') ->label('Scan Pallet No') diff --git a/app/Filament/Resources/ProcessOrderResource.php b/app/Filament/Resources/ProcessOrderResource.php index ebcd46b..8185a9f 100644 --- a/app/Filament/Resources/ProcessOrderResource.php +++ b/app/Filament/Resources/ProcessOrderResource.php @@ -4,6 +4,7 @@ namespace App\Filament\Resources; use App\Filament\Resources\ProcessOrderResource\Pages; use App\Filament\Resources\ProcessOrderResource\RelationManagers; +use App\Models\Plant; use App\Models\ProcessOrder; use Filament\Forms; use Filament\Forms\Form; @@ -35,6 +36,10 @@ class ProcessOrderResource extends Resource ->label('Plant') ->reactive() ->relationship('plant', 'name') + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->required(), Forms\Components\Select::make('item_id') ->label('Item Code') diff --git a/app/Filament/Resources/ProductionLineStopResource.php b/app/Filament/Resources/ProductionLineStopResource.php index 4ea055d..55d26a2 100644 --- a/app/Filament/Resources/ProductionLineStopResource.php +++ b/app/Filament/Resources/ProductionLineStopResource.php @@ -54,6 +54,10 @@ class ProductionLineStopResource extends Resource ->required() // ->nullable() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(ProductionLineStop::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/ProductionPlanResource.php b/app/Filament/Resources/ProductionPlanResource.php index 0afbe92..0597ac4 100644 --- a/app/Filament/Resources/ProductionPlanResource.php +++ b/app/Filament/Resources/ProductionPlanResource.php @@ -53,6 +53,10 @@ class ProductionPlanResource extends Resource ->required() // ->nullable() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(ProductionPlan::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/ProductionQuantityResource.php b/app/Filament/Resources/ProductionQuantityResource.php index 791b10d..336a829 100644 --- a/app/Filament/Resources/ProductionQuantityResource.php +++ b/app/Filament/Resources/ProductionQuantityResource.php @@ -65,8 +65,12 @@ class ProductionQuantityResource extends Resource ->required() // ->nullable() ->reactive() - // ->statePath('filters') + // ->statePath('filters') ->columnSpan(2) //1 + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) // ->default(fn () => optional(ProductionQuantity::latest()->first())->plant_id) ->default(function () { return optional(ProductionQuantity::latest()->first())->plant_id; @@ -96,8 +100,6 @@ class ProductionQuantityResource extends Resource // } // ", // ]) - - // ->extraAttributes([ // 'x-on:change' => "\$wire.dispatch('filtersUpdated', { plantId: \$event.target.value })" // ]) @@ -112,10 +114,6 @@ class ProductionQuantityResource extends Resource // ->extraAttributes([ // 'x-on:change' => '$dispatch("plant-updated", { plantId: $event.target.value }); console.log("Plant updated:", $event.target.value);', // ]) - - - - // ->extraAttributes([ // 'x-data' => '{ value: "" }', // 'x-model' => 'value', @@ -123,7 +121,6 @@ class ProductionQuantityResource extends Resource // ]) ->hint(fn ($get) => $get('pqPlantError') ? $get('pqPlantError') : null) ->hintColor('danger'), - Forms\Components\Select::make('block_name') ->label('Block') ->required() diff --git a/app/Filament/Resources/QualityValidationResource.php b/app/Filament/Resources/QualityValidationResource.php index c55710e..220f8b9 100644 --- a/app/Filament/Resources/QualityValidationResource.php +++ b/app/Filament/Resources/QualityValidationResource.php @@ -50,6 +50,10 @@ class QualityValidationResource extends Resource Forms\Components\Select::make('plant_id') ->relationship('plant', 'name') ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->afterStateUpdated(function (callable $set, callable $get, $state) { $set('item_id', null); $set('line_id', null); diff --git a/app/Filament/Resources/ReworkLocatorInvoiceValidationResource.php b/app/Filament/Resources/ReworkLocatorInvoiceValidationResource.php index f54c963..18203d4 100644 --- a/app/Filament/Resources/ReworkLocatorInvoiceValidationResource.php +++ b/app/Filament/Resources/ReworkLocatorInvoiceValidationResource.php @@ -52,6 +52,10 @@ class ReworkLocatorInvoiceValidationResource extends Resource ->relationship('plant', 'name') ->disabled(fn (Get $get) => $get('rework_type')) ->required() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->afterStateUpdated(function ($state, callable $set, callable $get) { $plantId = $get('plant_id'); if ($plantId) diff --git a/app/Filament/Resources/ShiftResource.php b/app/Filament/Resources/ShiftResource.php index 2d47fa7..d0f6ca2 100644 --- a/app/Filament/Resources/ShiftResource.php +++ b/app/Filament/Resources/ShiftResource.php @@ -43,6 +43,10 @@ class ShiftResource extends Resource ->required() // ->nullable() ->reactive() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(Shift::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/StickerMasterResource.php b/app/Filament/Resources/StickerMasterResource.php index 8da8e08..0596fd6 100644 --- a/app/Filament/Resources/StickerMasterResource.php +++ b/app/Filament/Resources/StickerMasterResource.php @@ -6,6 +6,7 @@ use App\Filament\Exports\StickerMasterExporter; //use App\Filament\Imports\ShiftImporter; use App\Filament\Imports\StickerMasterImporter; use App\Filament\Resources\StickerMasterResource\Pages; +use App\Models\Plant; //use App\Filament\Resources\StickerMasterResource\RelationManagers; use App\Models\StickerMaster; //use Closure; @@ -41,6 +42,10 @@ class StickerMasterResource extends Resource ->relationship('plant', 'name') ->reactive() ->nullable() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(StickerMaster::latest()->first())->plant_id; }) diff --git a/app/Filament/Resources/TempLiveReadingResource.php b/app/Filament/Resources/TempLiveReadingResource.php index 82f8a48..3ed4aed 100644 --- a/app/Filament/Resources/TempLiveReadingResource.php +++ b/app/Filament/Resources/TempLiveReadingResource.php @@ -7,6 +7,7 @@ use App\Filament\Imports\TempLiveReadingImporter; use App\Filament\Resources\TempLiveReadingResource\Pages; use App\Filament\Resources\TempLiveReadingResource\RelationManagers; use App\Models\MfmMeter; +use App\Models\Plant; use App\Models\TempLiveReading; use Filament\Facades\Filament; use Filament\Forms; @@ -38,7 +39,11 @@ class TempLiveReadingResource extends Resource ->label('Plant') ->relationship('plant', 'name') ->reactive() - ->required(), + ->required() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }), Forms\Components\Select::make('mfm_meter_id') ->label('MFM Meter ID') ->required() @@ -52,7 +57,7 @@ class TempLiveReadingResource extends Resource return MfmMeter::where('plant_id', $plantId) ->pluck('sequence', 'id') ->toArray(); - }), + }), Forms\Components\TextInput::make('register_data') ->label('Register Data') ->required(), diff --git a/app/Filament/Resources/TestingPanelReadingResource.php b/app/Filament/Resources/TestingPanelReadingResource.php index d84296d..b502039 100644 --- a/app/Filament/Resources/TestingPanelReadingResource.php +++ b/app/Filament/Resources/TestingPanelReadingResource.php @@ -3,6 +3,7 @@ namespace App\Filament\Resources; use AlperenErsoy\FilamentExport\Actions\FilamentExportBulkAction; +use App\Exports\TestingPanelReadingExport; use App\Filament\Exports\TestingPanelReadingExporter; use App\Filament\Imports\TestingPanelReadingImporter; use App\Filament\Resources\TestingPanelReadingResource\Pages; @@ -14,6 +15,7 @@ use App\Models\MotorTestingMaster; use App\Models\Plant; use App\Models\TestingPanelReading; use Barryvdh\DomPDF\Facade\Pdf; +// use Barryvdh\Reflection\DocBlock\Type\Collection; use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Components\DateTimePicker; @@ -21,6 +23,7 @@ use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Forms\Get; +use Filament\Notifications\Collection as NotificationsCollection; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Actions\BulkAction; @@ -30,6 +33,9 @@ use Illuminate\Database\Eloquent\SoftDeletingScope; use Filament\Tables\Actions\ImportAction; use Filament\Tables\Actions\ExportAction; use Filament\Tables\Filters\Filter; +use Maatwebsite\Excel\Facades\Excel; +use Filament\Tables\Actions\Action; +use Illuminate\Support\Collection; class TestingPanelReadingResource extends Resource { @@ -50,7 +56,10 @@ class TestingPanelReadingResource extends Resource ->relationship('plant', 'name') ->required() ->reactive() - // When plant changes, reset the dependent fields + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->default(function () { return optional(TestingPanelReading::latest()->first())->plant_id; }) @@ -1084,6 +1093,25 @@ class TestingPanelReadingResource extends Resource }) ->icon('heroicon-o-document-arrow-down'), ]), + BulkAction::make('export') + ->label('Export Selected') + ->action(function (Collection $records) { + // $records contains only selected rows + $ids = $records->pluck('No.')->toArray(); + + return Excel::download( + new TestingPanelReadingExport($ids), + 'selected_testing_panel_readings.csv' + ); + }), + // ExportAction::make() + // ->label('Export Readings') + // ->queued() // ✅ runs in queue + // ->exports([ + // TestingPanelReadingExport::class, + // ]) + // ->fileName('testing_panel_readings.csv') + // ->format(Excel::CSV), // ✅ faster than Excel for 45k+ rows ]) ->headerActions([ @@ -1097,6 +1125,11 @@ class TestingPanelReadingResource extends Resource ->visible(function() { return Filament::auth()->user()->can('view export testing panel reading'); }), + // Action::make('export') + // ->label('Export Readings') + // ->action(function () { + // return Excel::download(new TestingPanelReadingExport, 'testing_panel_readings.csv'); + // }), ]); } diff --git a/app/Filament/Resources/WeightValidationResource.php b/app/Filament/Resources/WeightValidationResource.php index 92b43a3..ca03e60 100644 --- a/app/Filament/Resources/WeightValidationResource.php +++ b/app/Filament/Resources/WeightValidationResource.php @@ -49,6 +49,10 @@ class WeightValidationResource extends Resource ->schema([ Forms\Components\Select::make('plant_id') ->relationship('plant', 'name') + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->required(), Forms\Components\Select::make('item_id') ->relationship('item', 'code') diff --git a/app/Filament/Resources/WorkGroupMasterResource.php b/app/Filament/Resources/WorkGroupMasterResource.php index acad0d5..14dde77 100644 --- a/app/Filament/Resources/WorkGroupMasterResource.php +++ b/app/Filament/Resources/WorkGroupMasterResource.php @@ -7,6 +7,7 @@ use App\Filament\Imports\WorkGroupMasterImporter; use App\Filament\Resources\WorkGroupMasterResource\Pages; use App\Filament\Resources\WorkGroupMasterResource\RelationManagers; use App\Models\Line; +use App\Models\Plant; use App\Models\WorkGroupMaster; use Filament\Forms; use Filament\Forms\Form; @@ -43,23 +44,27 @@ class WorkGroupMasterResource extends Resource ->reactive() ->columnSpan(1) ->required() + ->options(function (callable $get) { + $userHas = Filament::auth()->user()->plant_id; + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + }) ->afterStateUpdated(function ($state, $set, callable $get) { - $plantId = $get('plant_id'); + $plantId = $get('plant_id'); - if (!$plantId) { - $set('pqPlantError', 'Please select a plant first.'); - $set('name', null); - $set('description', null); - $set('operation_number', null); - return; - } - - $set('validationError', null); - $set('pqPlantError', null); + if (!$plantId) { + $set('pqPlantError', 'Please select a plant first.'); $set('name', null); $set('description', null); $set('operation_number', null); - }) + return; + } + + $set('validationError', null); + $set('pqPlantError', null); + $set('name', null); + $set('description', null); + $set('operation_number', null); + }) ->hint(fn ($get) => $get('pqPlantError') ? $get('pqPlantError') : null) ->hintColor('danger'), Forms\Components\TextInput::make('name')