feat: edit routes
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
@extends('admin.layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="main-content app-content">
|
||||
<div class="container-fluid pt-4">
|
||||
|
||||
<div class="card custom-card">
|
||||
<div class="card-body">
|
||||
|
||||
@error('status')
|
||||
<span class="warning">{{ $message }}</span>
|
||||
@enderror
|
||||
|
||||
<form action="{{ route('admin.orders.update', $order->id) }}" method="POST">
|
||||
@csrf
|
||||
@method('PATCH')
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="status" class="form-label fw-semibold">
|
||||
وضعیت سفارش
|
||||
</label>
|
||||
|
||||
<select name="status" id="status" class="form-select">
|
||||
|
||||
<option value="0"
|
||||
@selected(\App\Enums\OrderStatus::PENDING)>
|
||||
در انتظار ثبت
|
||||
</option>
|
||||
|
||||
<option value="1"
|
||||
@selected(\App\Enums\OrderStatus::PROCESSING)>
|
||||
در حال پردازش
|
||||
</option>
|
||||
|
||||
<option value="2"
|
||||
@selected(\App\Enums\OrderStatus::SENT)>
|
||||
ارسال شده
|
||||
</option>
|
||||
|
||||
<option value="4"
|
||||
@selected(\App\Enums\OrderStatus::DELIVERED)>
|
||||
تحویل داده
|
||||
</option>
|
||||
|
||||
<option value="5"
|
||||
@selected(\App\Enums\OrderStatus::CANCELLED)>
|
||||
لغو شده
|
||||
</option>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary btn-wave">
|
||||
ذخیره تغییرات
|
||||
</button>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,170 @@
|
||||
@extends('admin.layouts.app')
|
||||
|
||||
@section('breadcrumb')
|
||||
<div>
|
||||
<h1 class="page-title fw-medium fs-18 mb-2">لیست سفارشات</h1>
|
||||
<div>
|
||||
<nav>
|
||||
<ol class="breadcrumb mb-0">
|
||||
<li class="breadcrumb-item"><a href="javascript:void(0)">مدیریت سفارشات</a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page">لیست سفارشات</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="main-content app-content">
|
||||
<div class="container-fluid pt-4">
|
||||
|
||||
<!-- Filters -->
|
||||
<div class="row">
|
||||
<div class="col-xl-12">
|
||||
<div class="card custom-card">
|
||||
<div class="card-body p-3">
|
||||
<form method="GET" >
|
||||
<div class="d-flex align-items-center justify-content-between flex-wrap gap-3">
|
||||
|
||||
<!-- Sort Dropdown -->
|
||||
<div class="d-flex flex-wrap gap-1 align-items-center">
|
||||
<select id="choices-single-default" class="form-control" name="sort">
|
||||
<option value="">مرتبسازی بر اساس</option>
|
||||
<option
|
||||
value="created_at_desc" @selected(request()->missing('sort') || request()->input('sort') == 'created_at_desc')>
|
||||
جدیدترین
|
||||
</option>
|
||||
<option
|
||||
value="created_at_asc" @selected(request()->input('sort') == 'created_at_asc')>
|
||||
قدیمیترین
|
||||
</option>
|
||||
<option
|
||||
value="price_high" @selected(request()->input('sort') == 'price_high')>
|
||||
مبلغ (زیاد به کم)
|
||||
</option>
|
||||
<option
|
||||
value="price_low" @selected(request()->input('sort') == 'price_low')>
|
||||
مبلغ (کم به زیاد)
|
||||
</option>
|
||||
<option value="status" @selected(request()->input('sort') == 'status')>
|
||||
وضعیت
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Search -->
|
||||
<div class="d-flex" role="search">
|
||||
<input class="form-control me-2" type="search" name="search"
|
||||
placeholder="جستجو سفارش"
|
||||
value="{{ request()->input('search') }}"
|
||||
>
|
||||
<button class="btn btn-light" type="submit">جستجو</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Order Table -->
|
||||
<div class="row">
|
||||
<div class="col-xl-12">
|
||||
<div class="card custom-card">
|
||||
<div class="table-responsive">
|
||||
<table class="table text-nowrap table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>شناسه</th>
|
||||
<th>مشتری</th>
|
||||
<th>مبلغ</th>
|
||||
<th>وضعیت</th>
|
||||
<th>تاریخ ثبت</th>
|
||||
<th>عملیات</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@foreach($orders as $order)
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<div>
|
||||
<span class="fw-semibold d-block">#{{ $order->id }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
{{ getUserFullName($order->user) }}
|
||||
</td>
|
||||
<td>
|
||||
{{ number_format($order->total_price )}}
|
||||
تومان
|
||||
</td>
|
||||
<td>
|
||||
<span class="text-info">
|
||||
@switch($order->status)
|
||||
@case(\App\Enums\OrderStatus::PENDING)
|
||||
<span>در انتظار پرداخت</span>
|
||||
@break
|
||||
@case(\App\Enums\OrderStatus::PROCESSING)
|
||||
<span>در حال پردازش</span>
|
||||
@break
|
||||
@case(\App\Enums\OrderStatus::SENT)
|
||||
<span>ارسال شده</span>
|
||||
@break
|
||||
@case(\App\Enums\OrderStatus::DELIVERED)
|
||||
<span>تحویل شده</span>
|
||||
@break
|
||||
@case(\App\Enums\OrderStatus::CANCELLED)
|
||||
<span>لغو شده</span>
|
||||
@break
|
||||
@endswitch
|
||||
</span>
|
||||
</td>
|
||||
<td>{{$order->created_at->toJalali()->format('Y/m/d H:i')}}</td>
|
||||
<td>
|
||||
<div class="btn-list">
|
||||
<a href="{{ route('admin.orders.show' , $order->id) }}"
|
||||
class="btn btn-primary-light btn-icon btn-sm"
|
||||
data-bs-toggle="tooltip" data-bs-placement="top" title="مشاهده">
|
||||
<i class="ri-eye-line"></i>
|
||||
</a>
|
||||
<a href="{{route('admin.orders.edit', $order->id)}}"
|
||||
class="btn btn-secondary-light btn-icon btn-sm"
|
||||
data-bs-toggle="tooltip" data-bs-placement="top" title="ویرایش">
|
||||
<i class="ti ti-pencil"></i>
|
||||
</a>
|
||||
<a href="javascript:void(0);"
|
||||
onclick="if(confirm('آیا از حذف این سفارش مطمئن هستید؟')) { document.getElementById('delete-form-2').submit(); }"
|
||||
class="btn btn-pink-light btn-icon btn-sm"
|
||||
data-bs-toggle="tooltip" data-bs-placement="top" title="حذف">
|
||||
<i class="ri-delete-bin-line"></i>
|
||||
</a>
|
||||
<form id="delete-form-2"
|
||||
action="{{ route('admin.orders.destroy', $order->id) }}"
|
||||
method="POST"
|
||||
style="display:none;"
|
||||
>
|
||||
@csrf
|
||||
@method('delete')
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{$orders->links()}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,184 @@
|
||||
@extends('admin.layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="main-content app-content">
|
||||
<div class="container-fluid pt-4">
|
||||
|
||||
<!-- Main Row -->
|
||||
<div class="row">
|
||||
<div class="col-xl-8">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<!-- Summary -->
|
||||
<div class="card custom-card overflow-hidden" style="padding-bottom: 6px !important;">
|
||||
<div class="card-header justify-content-between">
|
||||
<div class="card-title">خلاصه سفارش</div>
|
||||
<div>شناسه: <span class="text-primary fw-semibold">{{ $order->id }}</span></div>
|
||||
</div>
|
||||
<div class="card-body p-0 table-responsive">
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="fw-semibold">تعداد کالا:</div>
|
||||
</td>
|
||||
<td>{{ $order->total_products }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="fw-semibold">وضعیت سفارش:</div>
|
||||
</td>
|
||||
<td>
|
||||
<span class="text-info">
|
||||
@switch($order->status)
|
||||
@case(\App\Enums\OrderStatus::PENDING)
|
||||
<span>در انتظار پرداخت</span>
|
||||
@break
|
||||
@case(\App\Enums\OrderStatus::PROCESSING)
|
||||
<span>در حال پردازش</span>
|
||||
@break
|
||||
@case(\App\Enums\OrderStatus::SENT)
|
||||
<span>ارسال شده</span>
|
||||
@break
|
||||
@case(\App\Enums\OrderStatus::DELIVERED)
|
||||
<span>تحویل شده</span>
|
||||
@break
|
||||
@endswitch
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="fw-semibold">مبلغ کل:</div>
|
||||
</td>
|
||||
<td>
|
||||
<span class="fw-medium">
|
||||
{{number_format($order->total_price) }}
|
||||
تومان
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border-bottom: 0;">
|
||||
<div class="fw-semibold">توضیحات:</div>
|
||||
</td>
|
||||
<td style="border-bottom: 0;">{{ $order->description }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Address Info -->
|
||||
<div class="col-md-6">
|
||||
<div class="card custom-card">
|
||||
<div class="card-header">
|
||||
<div class="card-title">آدرس تحویل</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>
|
||||
<strong>آدرس:</strong>
|
||||
{{ $order->user_address }}
|
||||
</p>
|
||||
<p>
|
||||
<strong>شماره تماس:</strong>
|
||||
{{ $order->user_mobile }}
|
||||
</p>
|
||||
<p>
|
||||
<strong>کد پستی:</strong>
|
||||
{{ $order->user_postal_code }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="col-xl-4">
|
||||
|
||||
<!-- User Info -->
|
||||
<div class="card custom-card">
|
||||
<div class="card-header">
|
||||
<div class="card-title">مشخصات کاربر</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p><strong>نام:</strong>{{ getUserFullName($order->user) }}</p>
|
||||
<p><strong>ایمیل:</strong> {{$order->user->email}}</p>
|
||||
<p><strong>موبایل:</strong> {{ $order->user_mobile }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<div>
|
||||
<!-- Order Card -->
|
||||
<div class="card custom-card">
|
||||
<div class="card-header d-flex justify-content-between">
|
||||
<div class="card-title">
|
||||
محصولات سفارش
|
||||
</div>
|
||||
<div>
|
||||
<span class="badge bg-primary-transparent">
|
||||
تاریخ سفارش:
|
||||
{{$order->created_at->toJalali()->format('H:i Y/m/d')}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body p-0">
|
||||
<div class="table-responsive">
|
||||
<table class="table text-nowrap">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">محصول</th>
|
||||
<th scope="col">قیمت</th>
|
||||
<th scope="col">تعداد</th>
|
||||
<th scope="col">مبلغ نهایی</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($order->orderItems as $orderItem)
|
||||
<tr>
|
||||
<td>
|
||||
<div class="d-flex align-items-center">
|
||||
<div>
|
||||
<div class="mb-1 fs-14 fw-medium">
|
||||
<span>
|
||||
|
||||
|
||||
{{$orderItem->product->name}}
|
||||
|
|
||||
{{$orderItem->product->en_name}}
|
||||
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
{{ $orderItem->product->price }}
|
||||
تومان
|
||||
</td>
|
||||
<td>{{ $orderItem->qty }}</td>
|
||||
<td>
|
||||
{{ number_format(discountPrice($orderItem->unit_price, $orderItem->unit_discount) * $orderItem->qty) }}
|
||||
تومان
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user