ranjith-dev #193

Merged
jothi merged 2 commits from ranjith-dev into master 2026-01-19 10:03:28 +00:00
2 changed files with 43 additions and 19 deletions

View File

@@ -197,6 +197,7 @@ class ItemResource extends Resource
->searchable(),
Tables\Columns\TextColumn::make('category')
->label('Category')
->default('-')
->alignCenter()
->sortable()
->searchable(),
@@ -217,6 +218,7 @@ class ItemResource extends Resource
->sortable(),
Tables\Columns\TextColumn::make('uom')
->label('Unit of Measure')
->default('-')
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('created_at')
@@ -237,6 +239,7 @@ class ItemResource extends Resource
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
->searchPlaceholder('Search Item Code')
->filters([
Tables\Filters\TrashedFilter::make(),
Filter::make('advanced_filters')
@@ -256,7 +259,7 @@ class ItemResource extends Resource
$set('operator_id', null);
}),
Select::make('code')
->label('Search by Item Code')
->label('Search by Code')
->nullable()
// ->options(function (callable $get) {
// $plantId = $get('Plant');

View File

@@ -30,6 +30,7 @@ use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Illuminate\Support\Facades\Storage;
use Illuminate\Validation\Rule;
// use Illuminate\Validation\Rule;
@@ -93,21 +94,33 @@ class StickerMasterResource extends Resource
Forms\Components\Select::make('item_id')
->label('Item Code')
->options(function (callable $get) {
$plantId = $get('plant_id');
if (! $get('plant_id')) {
return [];
}
return \App\Models\Item::where('plant_id', $get('plant_id'))
->pluck('code', 'id')
->toArray();
if (! $get('id')) {
// whereHas
return Item::where('plant_id', $plantId)->whereDoesntHave('stickerMasters')->pluck('code', 'id');
} else {
$itemId = StickerMaster::where('id', $get('id'))->first()?->item_id;
return Item::where('plant_id', $plantId)
->where(function ($query) use ($itemId) {
$query->whereDoesntHave('stickerMasters')
->orWhere('id', $itemId);
})
->pluck('code', 'id');
}
// return Item::where('plant_id', $plantId)->pluck('code', 'id')->toArray();
})
->rule(function (callable $get) {
return Rule::unique('sticker_masters', 'item_id')
->where('plant_id', $get('plant_id'))
->ignore($get('id')); // Ignore current record during updates
})
// ->rule(function (callable $get) {
// return Rule::unique('items', 'code')
// ->where('plant_id', $get('plant_id'))
// ->ignore($get('id')); // Ignore current record during updates
// })
->required()
->nullable()
// ->nullable()
->searchable()
->reactive()
// ->disabled(fn (Get $get) => !empty($get('id')))
@@ -132,7 +145,7 @@ class StickerMasterResource extends Resource
return;
}
$availableItems = \App\Models\Item::where('plant_id', $plantId)->exists();
$availableItems = Item::where('plant_id', $plantId)->exists();
if (! $availableItems) {
$set('item_error', null);
@@ -147,7 +160,7 @@ class StickerMasterResource extends Resource
}
// Check if item exists for the selected plant
$item = \App\Models\Item::where('plant_id', $plantId)
$item = Item::where('plant_id', $plantId)
->where('id', $itemId)
->first();
@@ -161,7 +174,8 @@ class StickerMasterResource extends Resource
->where('item_id', $itemId)
->exists();
if (! $get('id')) {
$set('item_error', $duplicateSticker ? 'Item Code already exists for the selected plant.' : null);
// $set('item_error', $duplicateSticker ? 'Item Code already exists for the selected plant.' : null);
$set('item_error', null);
}
})
->extraAttributes(fn ($get) => [
@@ -177,7 +191,7 @@ class StickerMasterResource extends Resource
if ($get('id')) {
$itemId = StickerMaster::where('id', $get('id'))->first()?->item_id;
if ($itemId) {
$item = \App\Models\Item::where('id', $itemId)->first()?->description;
$item = Item::where('id', $itemId)->first()?->description;
if ($item) {
$set('item_description', $item);
} else {
@@ -525,27 +539,35 @@ class StickerMasterResource extends Resource
->sortable(),
Tables\Columns\TextColumn::make('part_validation1')
->label('Part Validation 1')
->default('-')
->alignCenter(),
Tables\Columns\TextColumn::make('part_validation2')
->label('Part Validation 2')
->default('-')
->alignCenter(),
Tables\Columns\TextColumn::make('part_validation3')
->label('Part Validation 3')
->default('-')
->alignCenter(),
Tables\Columns\TextColumn::make('part_validation4')
->label('Part Validation 4')
->default('-')
->alignCenter(),
Tables\Columns\TextColumn::make('part_validation5')
->label('Part Validation 5')
->default('-')
->alignCenter(),
Tables\Columns\TextColumn::make('laser_part_validation1')
->label('Laser Part Validation 1')
->default('-')
->alignCenter(),
Tables\Columns\TextColumn::make('laser_part_validation2')
->label('Laser Part Validation 2')
->default('-')
->alignCenter(),
Tables\Columns\TextColumn::make('panel_box_code')
->label('Panel Box Code')
->default('-')
->alignCenter(),
Tables\Columns\TextColumn::make('load_rate')
->label('Load Rate')
@@ -553,6 +575,7 @@ class StickerMasterResource extends Resource
->sortable(),
Tables\Columns\TextColumn::make('bundle_quantity')
->label('Bundle Quantity')
->default('-')
->alignCenter(),
Tables\Columns\TextColumn::make('material_type')
->label('Material Type')
@@ -587,9 +610,7 @@ class StickerMasterResource extends Resource
->sortable()
->toggleable(isToggledHiddenByDefault: true),
])
// ->filters([
// Tables\Filters\TrashedFilter::make(),
// ])
->searchPlaceholder('Search Item Code')
->filters([
Tables\Filters\TrashedFilter::make(),
Filter::make('advanced_filters')
@@ -635,7 +656,7 @@ class StickerMasterResource extends Resource
->searchable()
->reactive(),
Select::make('material_type')
->label('Material Type')
->label('Select Material Type')
->options([
1 => 'Individual',
2 => 'Bundle',
@@ -644,7 +665,7 @@ class StickerMasterResource extends Resource
->reactive(),
TextInput::make('panel_box_code')
->label('Panel Box Code')
->label('Search by Panel Box Code')
->placeholder(placeholder: 'Enter Panel Box Code'),
DateTimePicker::make(name: 'created_from')
->label('Created From')