diff --git a/app/Http/Controllers/Admin/TourController.php b/app/Http/Controllers/Admin/TourController.php index ccb4d6f..f6cd011 100644 --- a/app/Http/Controllers/Admin/TourController.php +++ b/app/Http/Controllers/Admin/TourController.php @@ -122,7 +122,7 @@ class TourController extends Controller 'duration' => $request->input('duration'), - 'views' => 0, + 'departure_time' => $request->input('departure_time'), 'price' => $request->input('price'), @@ -206,6 +206,10 @@ class TourController extends Controller 'duration' => $request->input('duration'), + 'views' => 0, + + 'departure_time' => $request->input('departure_time'), + 'price' => $request->input('price'), 'status' => $request->input('status'), diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index 2c6aff9..4be916b 100644 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -13,6 +13,7 @@ class IndexController extends Controller public function index() { $flights = Flight::query() + ->where('status', \App\Enums\FlightStatus::ENABLE) ->with([ 'airport.city', 'airline', @@ -23,6 +24,7 @@ class IndexController extends Controller ->paginate(); $tours = Tour::query() + ->where('status', \App\Enums\TourStatus::ENABLE) ->orderByDesc('created_at') ->limit(10) ->paginate(); diff --git a/app/Http/Requests/Admin/Tours/tourStoreRequest.php b/app/Http/Requests/Admin/Tours/tourStoreRequest.php index c0b84bf..7faabd6 100644 --- a/app/Http/Requests/Admin/Tours/tourStoreRequest.php +++ b/app/Http/Requests/Admin/Tours/tourStoreRequest.php @@ -59,6 +59,11 @@ class tourStoreRequest extends FormRequest 'integer', 'min:1', ], + 'departure_time' => [ + 'required', + 'date', + 'after_or_equal:today', + ], 'price' => [ 'required', diff --git a/app/Http/Requests/Admin/Tours/tourUpdateRequest.php b/app/Http/Requests/Admin/Tours/tourUpdateRequest.php index 7458d61..a095bd1 100644 --- a/app/Http/Requests/Admin/Tours/tourUpdateRequest.php +++ b/app/Http/Requests/Admin/Tours/tourUpdateRequest.php @@ -12,7 +12,7 @@ class tourUpdateRequest extends FormRequest */ public function authorize(): bool { - return false; + return true; } /** @@ -59,6 +59,11 @@ class tourUpdateRequest extends FormRequest 'integer', 'min:1', ], + 'departure_time' => [ + 'required', + 'date', + 'after_or_equal:today', + ], 'price' => [ 'required', diff --git a/resources/views/admin/layouts/sidebar.blade.php b/resources/views/admin/layouts/sidebar.blade.php index 0d07bba..a2f4a04 100644 --- a/resources/views/admin/layouts/sidebar.blade.php +++ b/resources/views/admin/layouts/sidebar.blade.php @@ -70,19 +70,22 @@ -
  • - - - - - مدیریت سفارشات - -
  • + @if(auth('admin')->user()->permission?->admin_view) +
  • + + + + + مدیریت تورها + +
  • + @endif diff --git a/resources/views/admin/tours/create.blade.php b/resources/views/admin/tours/create.blade.php index c68541e..bd92580 100644 --- a/resources/views/admin/tours/create.blade.php +++ b/resources/views/admin/tours/create.blade.php @@ -1,17 +1,264 @@ @extends('admin.layouts.app') -@section('breadcrumb')

    درج تور

    فیلدهای مورد نیاز سفر
    @endsection -@section('content')
    @include('admin.partials.errors')
    @csrf @if(false) @method('PUT') @endif -
    اطلاعات تور
    -
    -
    -
    -
    -
    -
    -
    -
    -
    تصویر تور
    تصویر اختیاری است.
    -
    -@if(false)
    تاریخ‌های تور
    @csrf

    @forelse(($tour->tourDates ?? []) as $date)@empty@endforelse
    شروعپایانقیمتظرفیتوضعیت
    {{ $date->start_date->toJalali()->format('Y/m/d') }}{{ $date->end_date->toJalali()->format('Y/m/d') }}{{ number_format($date->price) }}{{ $date->capacity }}{{ $date->status ? 'فعال':'غیرفعال' }}
    @csrf @method('DELETE')
    تاریخی برای این تور ثبت نشده است.
    @endif -
    @endsection -@push('scripts')@endpush + +@section('content') +
    +
    + +
    +
    + +
    + + @csrf + + @error('general') + {{ $message }} + @enderror + +
    + +
    +
    + ایجاد تور +
    +
    + +
    + +
    + + +
    + + + + + @error('title') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('origin') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('destination') + {{ $message }} + @enderror +
    + + +
    + + + + + + + @error('departure_time') + {{ $message }} + @enderror +
    + + +
    + + + + + @error('duration') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('price') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('status') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('summary') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('description') + {{ $message }} + @enderror +
    + + + +
    + + + + + + @error('image') + {{ $message }} + @enderror + +
    + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + + + + +@endsection diff --git a/resources/views/admin/tours/edit.blade.php b/resources/views/admin/tours/edit.blade.php index 9d750e2..4a663ca 100644 --- a/resources/views/admin/tours/edit.blade.php +++ b/resources/views/admin/tours/edit.blade.php @@ -1,17 +1,275 @@ @extends('admin.layouts.app') -@section('breadcrumb')

    {{ isset($tour) ? 'ویرایش تور' : 'درج تور' }}

    فیلدهای مورد نیاز سفر
    @endsection -@section('content')
    @include('admin.partials.errors')
    @csrf @if(isset($tour)) @method('PUT') @endif -
    اطلاعات تور
    -
    -
    -
    -
    -
    -
    -
    -
    -
    تصویر تور
    تصویر اختیاری است.
    -
    -@if(isset($tour))
    تاریخ‌های تور
    @csrf

    @forelse(($tour->tourDates ?? []) as $date)@empty@endforelse
    شروعپایانقیمتظرفیتوضعیت
    {{ $date->start_date->toJalali()->format('Y/m/d') }}{{ $date->end_date->toJalali()->format('Y/m/d') }}{{ number_format($date->price) }}{{ $date->capacity }}{{ $date->status ? 'فعال':'غیرفعال' }}
    @csrf @method('DELETE')
    تاریخی برای این تور ثبت نشده است.
    @endif -
    @endsection -@push('scripts')@endpush + +@section('content') +
    +
    + +
    +
    + + @error('error') + {{ $message }} + @enderror + + +
    + @csrf + @method('put') + +
    + +
    +
    + ویرایش تور +
    +
    + +
    + +
    + + +
    + + + + + @error('title') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('origin') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('destination') + {{ $message }} + @enderror +
    + + +
    + + + + + + + @error('departure_time') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('duration') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('price') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('status') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('summary') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('description') + {{ $message }} + @enderror +
    + + + +
    + + + + + @error('image') + {{ $message }} + @enderror + + @if($tour->file) +
    + {{ $tour->title }} +
    + @endif + +
    + +
    + +
    + + + +
    + +
    + +
    +
    + +
    +
    + + + + + +@endsection diff --git a/resources/views/admin/tours/index.blade.php b/resources/views/admin/tours/index.blade.php index 25c9e53..2a127e3 100644 --- a/resources/views/admin/tours/index.blade.php +++ b/resources/views/admin/tours/index.blade.php @@ -1,3 +1,313 @@ @extends('admin.layouts.app') -@section('breadcrumb')

    مدیریت تورها

    درج، ویرایش، حذف و مدیریت تورهای داخلی و خارجی
    @endsection -@section('content')
    @include('admin.partials.errors')
    @forelse(($tours ?? []) as $tour)@empty@endforelse
    عنوان تورمسیرمدتقیمتبازدیدوضعیتعملیات
    {{ $tour->title }}
    #{{ $tour->id }}
    {{ $tour->origin }} ← {{ $tour->destination }}{{ $tour->duration }} روز{{ number_format($tour->price ?? 0) }} تومان{{ number_format($tour->views ?? 0) }}@if($tour->status)فعال@elseغیرفعال@endif
    @csrf @method('DELETE')
    توری ثبت نشده است.
    {{ ($tours ?? collect())->links() }}
    @endsection + +@section('breadcrumb') +
    +

    لیست تورها

    +
    + +
    +
    +@endsection + +@section('content') +
    +
    + + @error('success') + {{ $message }} + @enderror + + @error('errors') + {{ $message }} + @enderror + +
    +
    +
    + +
    + +
    + +
    + +
    + +
    + + + + + +
    + + + +
    + + + @if(auth('admin')->user()->permission?->tour_create) + + + + @endif + +
    + +
    + +
    + +
    +
    +
    + + + +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + @foreach($tours as $tour) + + + + {{-- Image --}} + + + + + + + + + + + + + + + + + + + + {{-- Actions --}} + + + + + @endforeach + + + +
    عکسعنوانمبدامقصدزمان حرکتمدت زمانقیمتوضعیتتاریخ ثبتتاریخ ویرایشعملیات
    + + + + @if($tour->file?->id) + + {{ $tour->title }} + + @else + + {{ $tour->title }} + + @endif + + + + + + + {{ $tour->title }} + + + + {{ $tour->origin }} + + {{ $tour->destination }} + + {{ $tour->departure_time->toJalali()->format('H:i Y-m-d') }} + + {{ $tour->duration }} روز + + + {{ number_format($tour->price) }} + تومان + + + + @if($tour->status == \App\Enums\TourStatus::ENABLE) + فعال + @elseif($tour->status == \App\Enums\TourStatus::DISABLE) + غیرفعال + @endif + + {{ $tour->created_at->toJalali()->format('H:i Y-m-d') }}{{ $tour->updated_at->toJalali()->format('H:i Y-m-d') }} + +
    + + @if(auth('admin')->user()->permission?->tour_edit) + + + + + + @endif + + + @if(auth('admin')->user()->permission?->tour_delete) + +
    + + @csrf + @method('DELETE') + + + +
    + + @endif + +
    + +
    + +
    + +
    + + {{ $tours->links() }} + +
    + +
    + +
    +
    +@endsection