Последняя версия с сервера прошлого разработчика

This commit is contained in:
2025-07-10 04:35:51 +00:00
commit c731570032
1174 changed files with 134314 additions and 0 deletions

View 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',
];
}
}

View 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',
];
}
}