diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 6e1e603f..58792734 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -8,6 +8,7 @@ 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 00000000..ecff98e6 --- /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 6e5b6be2..3c4183f8 100644 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -705,7 +705,7 @@ public function rate(Request $request) } 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 00000000..2c49bd2e --- /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 10513391..e6de9c4c 100644 --- a/app/Models/Rate.php +++ b/app/Models/Rate.php @@ -8,4 +8,8 @@ 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 d80d8637..1815b32d 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 0fb87f55..52aafd62 100644 --- a/resources/views/admin/evaluations/evaluation-form.blade.php +++ b/resources/views/admin/evaluations/evaluation-form.blade.php @@ -70,7 +70,7 @@ class="form-control @error('title') is-invalid @enderror" - 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 00000000..aa56bf37 --- /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') + +