Последняя версия с сервера прошлого разработчика
This commit is contained in:
54
app/Nova/Filters/StatusWithdrawalFilter.php
Executable file
54
app/Nova/Filters/StatusWithdrawalFilter.php
Executable file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Nova\Filters;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Laravel\Nova\Filters\Filter;
|
||||
|
||||
class StatusWithdrawalFilter extends Filter
|
||||
{
|
||||
/**
|
||||
* The filter's component.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $component = 'select-filter';
|
||||
|
||||
public function name()
|
||||
{
|
||||
return "Статус";
|
||||
}
|
||||
|
||||
public function authorize(Request $request)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply the filter to the given query.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Database\Eloquent\Builder $query
|
||||
* @param mixed $value
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public function apply(Request $request, $query, $value)
|
||||
{
|
||||
return $query->where('status', $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the filter's available options.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function options(Request $request)
|
||||
{
|
||||
return [
|
||||
'В ожидании на вывод' => 'pending',
|
||||
'Выполнен' => 'success',
|
||||
'Отменен' => 'cancel',
|
||||
];
|
||||
}
|
||||
}
|
||||
73
app/Nova/Filters/SubscriptionStatusFilter.php
Executable file
73
app/Nova/Filters/SubscriptionStatusFilter.php
Executable file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace App\Nova\Filters;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Laravel\Nova\Filters\Filter;
|
||||
|
||||
class SubscriptionStatusFilter extends Filter
|
||||
{
|
||||
/**
|
||||
* The filter's component.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $component = 'select-filter';
|
||||
|
||||
public function name()
|
||||
{
|
||||
return 'Подписка';
|
||||
}
|
||||
|
||||
public function authorize(Request $request)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply the filter to the given query.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Database\Eloquent\Builder $query
|
||||
* @param mixed $value
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public function apply(Request $request, $query, $value)
|
||||
{
|
||||
if ($value === 'active') {
|
||||
// Фильтруем записи, где у пользователя есть активная подписка
|
||||
$query->whereHas('user.subscription', function ($q) {
|
||||
$q->where('ends_at', '>', Carbon::now());
|
||||
});
|
||||
} elseif ($value === 'inactive') {
|
||||
// Фильтруем записи, где у пользователя нет активной подписки
|
||||
$query->where(function ($q) {
|
||||
$q->whereDoesntHave('user.subscription')
|
||||
->orWhere(function ($q) {
|
||||
$q->whereHas('user.subscription', function ($q) {
|
||||
$q->where('ends_at', '<=', Carbon::now());
|
||||
})->whereDoesntHave('user.subscription', function ($q) {
|
||||
$q->where('ends_at', '>', Carbon::now());
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the filter's available options.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function options(Request $request)
|
||||
{
|
||||
return [
|
||||
'Активна' => 'active',
|
||||
'Неактивна' => 'inactive',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user