Refactored alignments and updated type from SFG to NON-FG on resource / importer / exporter pages
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
Gemini PR Review / Gemini PR Review (pull_request) Has been cancelled
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Has been cancelled
Laravel Larastan / larastan (pull_request) Has been cancelled
Laravel Pint / pint (pull_request) Has been cancelled

This commit is contained in:
dhanabalan
2026-03-11 19:29:31 +05:30
parent ec8bfc8296
commit 658db00ac8
5 changed files with 84 additions and 97 deletions

View File

@@ -5,28 +5,26 @@ namespace App\Filament\Resources;
use App\Filament\Exports\StockDataMasterExporter;
use App\Filament\Imports\StockDataMasterImporter;
use App\Filament\Resources\StockDataMasterResource\Pages;
use App\Filament\Resources\StockDataMasterResource\RelationManagers;
use App\Models\Item;
use App\Models\Plant;
use App\Models\SerialValidation;
use App\Models\StickerMaster;
use App\Models\StockDataMaster;
use Filament\Facades\Filament;
use Filament\Forms;
use Filament\Forms\Components\DateTimePicker;
use Filament\Forms\Components\Radio;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
use Filament\Notifications\Notification;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Tables\Actions\ExportAction;
use Filament\Tables\Actions\ImportAction;
use Filament\Tables\Filters\Filter;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\DateTimePicker;
use Filament\Forms\Components\Radio;
use Filament\Notifications\Notification;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class StockDataMasterResource extends Resource
{
@@ -51,15 +49,15 @@ class StockDataMasterResource extends Resource
->required()
->searchable()
->options(function ($get) {
if (!$get('plant_id')) {
if (! $get('plant_id')) {
return [];
}
return StickerMaster::with('item')
->where('plant_id', $get('plant_id'))
->get()
->pluck('item.code', 'id')
->toArray();
return StickerMaster::with('item')
->where('plant_id', $get('plant_id'))
->get()
->pluck('item.code', 'id')
->toArray();
}),
Forms\Components\TextInput::make('location')
->label('Location'),
@@ -77,7 +75,7 @@ class StockDataMasterResource extends Resource
->label('Type')
->options([
'0' => 'FG',
'1' => 'SFG',
'1' => 'NON-FG',
]),
Forms\Components\TextInput::make('motor_scanned_status')
->label('Motor Scanned Status'),
@@ -135,7 +133,7 @@ class StockDataMasterResource extends Resource
->searchable()
->formatStateUsing(fn ($state) => match ($state) {
'0' => 'FG',
'1' => 'SFG',
'1' => 'NON-FG',
default => '-',
})
->sortable(),
@@ -258,27 +256,27 @@ class StockDataMasterResource extends Resource
return $scanned + $duplicate + $notInStock;
}),
Tables\Columns\TextColumn::make('stock_difference')
->label('Stock Difference Count')
->alignCenter()
->getStateUsing(function ($record) {
Tables\Columns\TextColumn::make('stock_difference')
->label('Stock Difference Count')
->alignCenter()
->getStateUsing(function ($record) {
$duplicate = \App\Models\DuplicateStock::where('stock_data_master_id', $record->id)->count();
$duplicate = \App\Models\DuplicateStock::where('stock_data_master_id', $record->id)->count();
$notInStock = \App\Models\NotInStock::where('serial_number', $record->serial_number)
->where('plant_id', $record->plant_id)
->count();
$notInStock = \App\Models\NotInStock::where('serial_number', $record->serial_number)
->where('plant_id', $record->plant_id)
->count();
$scanned = (int) $record->scanned_quantity;
$scanned = (int) $record->scanned_quantity;
$physicalStock = $scanned + $duplicate + $notInStock;
$physicalStock = $scanned + $duplicate + $notInStock;
$systemStock = (int) $record->quantity;
$systemStock = (int) $record->quantity;
$difference = $physicalStock - $systemStock;
$difference = $physicalStock - $systemStock;
return max($difference, 0); // prevents negative values
}),
return max($difference, 0); // prevents negative values
}),
Tables\Columns\TextColumn::make('created_at')
->label('Created At')
->alignCenter()
@@ -307,7 +305,7 @@ class StockDataMasterResource extends Resource
->label('Stock Type')
->options([
'0' => 'FG',
'1' => 'SFG',
'1' => 'NON-FG',
])
->inline()
->default('0')
@@ -346,6 +344,7 @@ class StockDataMasterResource extends Resource
if (empty($pId)) {
return [];
}
return Item::whereHas('stickerMasters', function ($query) use ($pId) {
if ($pId) {
$query->where('plant_id', $pId);
@@ -389,7 +388,7 @@ class StockDataMasterResource extends Resource
->native(false),
])
->query(function ($query, array $data) {
if (!isset($data['type']) && (empty($data['Plant']) && empty($data['location']) && empty($data['serial_number']) && empty($data['created_from']) && empty($data['created_to']) && empty($data['updated_by']) && empty($data['scanned_status']) && empty($data['sticker_master_id']))) {
if (! isset($data['type']) && (empty($data['Plant']) && empty($data['location']) && empty($data['serial_number']) && empty($data['created_from']) && empty($data['created_to']) && empty($data['updated_by']) && empty($data['scanned_status']) && empty($data['sticker_master_id']))) {
if (empty($data['type'])) {
Notification::make()
@@ -397,16 +396,17 @@ class StockDataMasterResource extends Resource
->danger()
->send();
}
return $query->whereRaw('1 = 0');
}
if($data['type'] != ''){
if ($data['type'] != '') {
if ($data['type'] == '0') {
$query->where('type', '0');
if (!empty($data['scanned_status'])) {
if (! empty($data['scanned_status'])) {
if ($data['scanned_status'] == 'Scanned') {
$query->whereNotNull('scanned_status')
@@ -428,32 +428,31 @@ class StockDataMasterResource extends Resource
if ($data['scanned_status'] == 'Scanned') {
$query->whereNotNull('scanned_status')
$query->whereNotNull('scanned_status')
->where('scanned_status', '!=', '');
} elseif ($data['scanned_status'] == 'Pending') {
$query->where(function ($q) {
$q->whereNull('scanned_status')
->orWhere('scanned_status', '!=', 'Scanned');
->orWhere('scanned_status', '!=', 'Scanned');
});
}
}
}
}
else{
} else {
if ($data['scanned_status']) {
if ($data['scanned_status'] == 'Scanned') {
$query->whereNotNull('scanned_status')
$query->whereNotNull('scanned_status')
->where('scanned_status', '!=', '');
} elseif ($data['scanned_status'] == 'Pending') {
$query->where(function ($q) {
$q->whereNull('scanned_status')
->orWhere('scanned_status', '!=', 'Scanned');
->orWhere('scanned_status', '!=', 'Scanned');
});
}
}