Added invoice_type radio filter and scanned_status select filter to Invoice Validation
This commit is contained in:
@@ -17,6 +17,7 @@ use Filament\Forms;
|
|||||||
use Filament\Forms\Components\Actions\Action as ActionsAction;
|
use Filament\Forms\Components\Actions\Action as ActionsAction;
|
||||||
use Filament\Forms\Components\DateTimePicker;
|
use Filament\Forms\Components\DateTimePicker;
|
||||||
use Filament\Forms\Components\FileUpload;
|
use Filament\Forms\Components\FileUpload;
|
||||||
|
use Filament\Forms\Components\Radio;
|
||||||
use Filament\Forms\Components\Section;
|
use Filament\Forms\Components\Section;
|
||||||
use Filament\Forms\Components\Select;
|
use Filament\Forms\Components\Select;
|
||||||
use Filament\Forms\Components\TextInput;
|
use Filament\Forms\Components\TextInput;
|
||||||
@@ -929,6 +930,16 @@ class InvoiceValidationResource extends Resource
|
|||||||
Filter::make('advanced_filters')
|
Filter::make('advanced_filters')
|
||||||
->label('Advanced Filters')
|
->label('Advanced Filters')
|
||||||
->form([
|
->form([
|
||||||
|
Radio::make('invoice_type')
|
||||||
|
->label('Type ?')
|
||||||
|
->boolean()
|
||||||
|
->options([
|
||||||
|
'Serial' => 'Serial',
|
||||||
|
'Material' => 'Material'
|
||||||
|
])
|
||||||
|
->default('Serial')
|
||||||
|
->inlineLabel(false)
|
||||||
|
->inline(),
|
||||||
Select::make('Plant')
|
Select::make('Plant')
|
||||||
->label('Select Plant')
|
->label('Select Plant')
|
||||||
->nullable()
|
->nullable()
|
||||||
@@ -963,6 +974,15 @@ class InvoiceValidationResource extends Resource
|
|||||||
})
|
})
|
||||||
->searchable()
|
->searchable()
|
||||||
->reactive(),
|
->reactive(),
|
||||||
|
Select::make('scanned_status')
|
||||||
|
->label('Scanned Status')
|
||||||
|
->nullable()
|
||||||
|
->options([
|
||||||
|
'Scanned' => 'Scanned',
|
||||||
|
'Pending' => 'Pending',
|
||||||
|
])
|
||||||
|
->searchable()
|
||||||
|
->reactive(),
|
||||||
Select::make('operator_id')
|
Select::make('operator_id')
|
||||||
->label('Created By')
|
->label('Created By')
|
||||||
->nullable()
|
->nullable()
|
||||||
@@ -979,15 +999,6 @@ class InvoiceValidationResource extends Resource
|
|||||||
})
|
})
|
||||||
->searchable()
|
->searchable()
|
||||||
->reactive(),
|
->reactive(),
|
||||||
Select::make('scanned_status')
|
|
||||||
->label('Scanned Status')
|
|
||||||
->nullable()
|
|
||||||
->options([
|
|
||||||
'Scanned' => 'Scanned',
|
|
||||||
'Pending' => 'Pending',
|
|
||||||
])
|
|
||||||
->searchable()
|
|
||||||
->reactive(),
|
|
||||||
DateTimePicker::make(name: 'created_from')
|
DateTimePicker::make(name: 'created_from')
|
||||||
->label('Created From')
|
->label('Created From')
|
||||||
->placeholder(placeholder: 'Select From DateTime')
|
->placeholder(placeholder: 'Select From DateTime')
|
||||||
@@ -1001,10 +1012,39 @@ class InvoiceValidationResource extends Resource
|
|||||||
])
|
])
|
||||||
->query(function ($query, array $data) {
|
->query(function ($query, array $data) {
|
||||||
// Hide all records initially if no filters are applied
|
// Hide all records initially if no filters are applied
|
||||||
if (empty($data['Plant']) && empty($data['invoice_number']) && empty($data['serial_number']) && empty($data['created_from']) && empty($data['created_to']) && empty($data['operator_id']) && empty($data['scanned_status']) && empty($data['sticker_master_id'])) {
|
if (empty($data['invoice_type']) || (empty($data['Plant']) && empty($data['invoice_number']) && empty($data['serial_number']) && empty($data['created_from']) && empty($data['created_to']) && empty($data['operator_id']) && empty($data['scanned_status']) && empty($data['sticker_master_id']))) {
|
||||||
return $query->whereRaw('1 = 0');
|
return $query->whereRaw('1 = 0');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($data['invoice_type'] == 'Serial') {
|
||||||
|
$query->whereNull('quantity');
|
||||||
|
|
||||||
|
if (!empty($data['scanned_status'])) {
|
||||||
|
if ($data['scanned_status'] == 'Scanned') {
|
||||||
|
$query->whereNotNull('scanned_status')->where('scanned_status', '!=', '');
|
||||||
|
} elseif ($data['scanned_status'] == 'Pending') {
|
||||||
|
//$query->whereNull('scanned_status')->orWhere('scanned_status', '');
|
||||||
|
$query->where(function ($query) use ($data) {
|
||||||
|
// if (empty($data['scanned_status']) || $data['scanned_status'] == 'Pending') {
|
||||||
|
$query->whereNull('scanned_status')->orWhere('scanned_status', '!=', 'Scanned');
|
||||||
|
// }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elseif ($data['invoice_type'] == 'Material') {
|
||||||
|
$query->whereNotNull('quantity');//->where('quantity', '>', 0)
|
||||||
|
|
||||||
|
if (!empty($data['scanned_status'])) {
|
||||||
|
if ($data['scanned_status'] == 'Scanned') {
|
||||||
|
$query->whereNotNull('serial_number')->where('serial_number', '!=', '');
|
||||||
|
} elseif ($data['scanned_status'] == 'Pending') {
|
||||||
|
$query->where(function ($query) use ($data) {
|
||||||
|
$query->whereNull('serial_number')->orWhere('serial_number', '=', '');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($data['Plant'])) { //$plant = $data['Plant'] ?? null
|
if (!empty($data['Plant'])) { //$plant = $data['Plant'] ?? null
|
||||||
$query->where('plant_id', $data['Plant']);
|
$query->where('plant_id', $data['Plant']);
|
||||||
}
|
}
|
||||||
@@ -1038,14 +1078,6 @@ class InvoiceValidationResource extends Resource
|
|||||||
$query->whereIn('sticker_master_id', $stickerMasterIds);
|
$query->whereIn('sticker_master_id', $stickerMasterIds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($data['scanned_status'])) {
|
|
||||||
if ($data['scanned_status'] == 'Scanned') {
|
|
||||||
$query->whereNotNull('scanned_status')->where('scanned_status', '!=', '');
|
|
||||||
} elseif ($data['scanned_status'] == 'Pending') {
|
|
||||||
$query->whereNull('scanned_status')->orWhere('scanned_status', '');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
->indicateUsing(function (array $data) {
|
->indicateUsing(function (array $data) {
|
||||||
$indicators = [];
|
$indicators = [];
|
||||||
|
|||||||
Reference in New Issue
Block a user