diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 6e1e603..5879273 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -8,6 +8,7 @@ use App\Models\Area; use App\Models\Part; use App\Models\Menu; use App\Models\Product; +use App\Models\Rate; use Illuminate\Support\Facades\Route; use GuzzleHttp\Client; @@ -1366,3 +1367,30 @@ function buildTOC($items) { $html .= ''; return $html; } + + +/** + * detect last rate of customer + * @param $type + * @param $id + * @param $evaluation + * @return int|mixed + */ +function detectRateCustomer($type,$id,$evaluation) +{ + if (!auth('customer')->check()){ + return 0; + } + $rate = Rate::where('rater_id',auth('customer')->id()) + ->where('rater_type', \App\Models\Customer::class) + ->where('rateable_type',$type) + ->where('rateable_id',$id) + ->where('evaluation_id',$evaluation); + + if ($rate->count() == 0){ + return 0; + }else{ + return $rate->first()->rate; + } + +} diff --git a/app/Http/Controllers/Admin/RateController.php b/app/Http/Controllers/Admin/RateController.php new file mode 100644 index 0000000..ecff98e --- /dev/null +++ b/app/Http/Controllers/Admin/RateController.php @@ -0,0 +1,108 @@ + +// ['title' => "Edit", 'class' => 'btn-outline-primary', 'icon' => 'ri-edit-2-line'], +// 'show' => +// ['title' => "Detail", 'class' => 'btn-outline-light', 'icon' => 'ri-eye-line'], +// 'destroy' => +// ['title' => "Remove", 'class' => 'btn-outline-danger delete-confirm', 'icon' => 'ri-close-line'], + ]; + + + public function __construct() + { + parent::__construct(Rate::class, RateSaveRequest::class); + } + + /** + * @param $rate Rate + * @param $request RateSaveRequest + * @return Rate + */ + public function save($rate, $request) + { + + $rate->save(); + return $rate; + + } + + + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + return view($this->formView); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(Rate $item) + { + // + return view($this->formView, compact('item')); + } + + public function bulk(Request $request) + { + +// dd($request->all()); + $data = explode('.', $request->input('action')); + $action = $data[0]; + $ids = $request->input('id'); + switch ($action) { + case 'delete': + $msg = __(':COUNT items deleted successfully', ['COUNT' => count($ids)]); + $this->_MODEL_::destroy($ids); + break; + + default: + $msg = __('Unknown bulk action : :ACTION', ["ACTION" => $action]); + } + + return $this->do_bulk($msg, $action, $ids); + } + + public function destroy(Rate $item) + { + return parent::delete($item); + } + + + public function update(Request $request, Rate $item) + { + return $this->bringUp($request, $item); + } + + +} diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index 6e5b6be..3c4183f 100644 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -705,7 +705,7 @@ class ClientController extends Controller } else { $rate = new Rate(); } - if ($rt != 0) { + if ($rt > 0 && $rt < 5) { $rate->rater_type = Customer::class; $rate->rater_id = auth('customer')->id(); $rate->rateable_type = $request->rateable_type; diff --git a/app/Http/Requests/RateSaveRequest.php b/app/Http/Requests/RateSaveRequest.php new file mode 100644 index 0000000..2c49bd2 --- /dev/null +++ b/app/Http/Requests/RateSaveRequest.php @@ -0,0 +1,28 @@ +|string> + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Models/Rate.php b/app/Models/Rate.php index 1051339..e6de9c4 100644 --- a/app/Models/Rate.php +++ b/app/Models/Rate.php @@ -8,4 +8,8 @@ use Illuminate\Database\Eloquent\Model; class Rate extends Model { use HasFactory; + + public function evaluation(){ + return $this->belongsTo(Evaluation::class); + } } diff --git a/resources/lang/fa.json b/resources/lang/fa.json index d80d863..1815b32 100644 --- a/resources/lang/fa.json +++ b/resources/lang/fa.json @@ -356,6 +356,7 @@ "Questions": "سوالات", "Questions list": "فهرست سوالات", "RTL": "راست به چپ", + "Rate": "امتیاز", "Read more": "اطلاعات بیشتر", "Recent posts": "واپسین نوشته‌ها", "Recommends": "توصیه‌ها", @@ -514,6 +515,8 @@ "Your message for this order...": "پیام شما ویژه این سفارش ...", "Your message has been successfully sent.": "پیام شما با موفقیت ارسال شد", "Your message...": "پیام شما...", + "Your rate registered": "امتیاز شما ثبت شد", + "Your rate updated": "امتیاز شما به‌روز شد", "a minute ago": "یک دقیقه پیش", "action": "فعالیت", "address updated": "نشانی به روز شد", diff --git a/resources/views/admin/evaluations/evaluation-form.blade.php b/resources/views/admin/evaluations/evaluation-form.blade.php index 0fb87f5..52aafd6 100644 --- a/resources/views/admin/evaluations/evaluation-form.blade.php +++ b/resources/views/admin/evaluations/evaluation-form.blade.php @@ -70,7 +70,7 @@ - diff --git a/resources/views/admin/rates/rate-form.blade.php b/resources/views/admin/rates/rate-form.blade.php new file mode 100644 index 0000000..aa56bf3 --- /dev/null +++ b/resources/views/admin/rates/rate-form.blade.php @@ -0,0 +1,42 @@ +@extends('admin.templates.panel-form-template') +@section('title') + @if(isset($item)) + {{__("Edit rate")}} [{{$item->id}}] + @else + {{__("Add new rate")}} + @endif - +@endsection +@section('form') + +
+
+ + @include('components.err') +
+

+ + {{__("Tips")}} +

+
    +
  • + {{__("Recommends")}} +
  • +
+
+ +
+
+
+ +

+ @if(isset($item)) + {{__("Edit rate")}} [{{$item->id}}] + @else + {{__("Add new rate")}} + @endif +

+ +
+
+
+@endsection diff --git a/resources/views/admin/rates/rate-list.blade.php b/resources/views/admin/rates/rate-list.blade.php new file mode 100644 index 0000000..6fa4001 --- /dev/null +++ b/resources/views/admin/rates/rate-list.blade.php @@ -0,0 +1,15 @@ +@extends('admin.templates.panel-list-template') + +@section('list-title') + + {{__("Rates list")}} +@endsection +@section('title') + {{__("Rates list")}} - +@endsection +@section('filter') + {{-- Other filters --}} +@endsection +@section('bulk') + {{-- --}} +@endsection diff --git a/resources/views/admin/templates/panel-list-template.blade.php b/resources/views/admin/templates/panel-list-template.blade.php index 56ab444..2772efa 100644 --- a/resources/views/admin/templates/panel-list-template.blade.php +++ b/resources/views/admin/templates/panel-list-template.blade.php @@ -229,6 +229,15 @@ {{__("Removed")}} @endif @break + @case('evaluation_id') + @if($item->evaluation != null) + + {{ $item->evaluation?->title??'-' }} + + @else + {{__("Removed")}} + @endif + @break @case('expire') @case('created_at') @case('updated_at') @@ -244,6 +253,8 @@ @endif @elseif(gettype($item->$col) == 'integer') {{number_format($item->$col)}} + @elseif(strpos($col,'_type')) + {{str_replace('App\\Models\\', '' , $item->$col)}} @else {{$item->$col}} @endif diff --git a/resources/views/components/panel-side-navbar.blade.php b/resources/views/components/panel-side-navbar.blade.php index a04efa8..708b07d 100644 --- a/resources/views/components/panel-side-navbar.blade.php +++ b/resources/views/components/panel-side-navbar.blade.php @@ -6,7 +6,7 @@ - @if( auth()->user()->hasAnyAccesses(['customer','invoice','discount']) ) + @if( auth()->user()->hasAnyAccesses(['customer','invoice','discount','rate']) )
  • @@ -38,6 +38,14 @@
  • @endif + @if( auth()->user()->hasAnyAccess( 'rate' )) +
  • + + + {{__('Rate')}} + +
  • + @endif @endif diff --git a/resources/views/segments/product/ProductKaren/ProductKaren.blade.php b/resources/views/segments/product/ProductKaren/ProductKaren.blade.php index 04f984c..c0ead72 100644 --- a/resources/views/segments/product/ProductKaren/ProductKaren.blade.php +++ b/resources/views/segments/product/ProductKaren/ProductKaren.blade.php @@ -162,7 +162,7 @@ @foreach($product->evaluations() as $e) - +
    @endforeach