Viewing file: RefundController.php (5.37 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Customer;
use App\Http\Controllers\Controller; use App\Models\Order; use App\Models\Refund; use App\Models\RefundDetails; use Illuminate\Http\Request;
class RefundController extends Controller { public function details(Request $request){
$data['order'] = Order::where('id',$request->id)->firstOrFail(); $refund = Refund::where('order_id',$request->id)->first(); if ($refund){ foreach ($refund->details as $detail){ if ($detail->sent_status == 'admin'){ $detail->sent_type = 'read'; $detail->save(); cache()->forget('refund_unread_count'); } } $data['messages'] = $refund->details; } return view('customer.refund.details',$data); } public function store(Request $request){ $request->validate([ 'order_id' => 'required|numeric', 'message' => 'required', ]); $user = auth('customer')->user(); $refundrRequest = Refund::where('order_id',$request->order_id)->first(); if (!$refundrRequest){ $refund = new Refund(); $refund->admin_id = $user->admin_id; $refund->order_id = $request->order_id; $refund->status = 'pending'; $refund->customer_id = $user->id; $refund->save(); cache()->forget('pending_refund_request'); }else{ $refund = $refundrRequest; } $refundDetails = new RefundDetails(); $refundDetails->refund_id = $refund->id; $refundDetails->message = $request->message; $refundDetails->sender = $user->id; $refundDetails->receiver = $user->admin_id; $refundDetails->sent_status = 'customer'; $refundDetails->save(); cache()->forget('refund_unread_count'); return redirect()->back()->with('success', trans('customer.messages.refund_request_submitted')); } public function index() { return view('customer.refund.index'); }
public function getAll() { $refund = auth('customer')->user()->refunds()->with(['customer','orders'])->orderBy('created_at', 'DESC')->select(['id', 'order_id','customer_id','status','created_at']); return datatables()->of($refund) ->addColumn('order_details', function ($q) { $orderDetails = ''; if (isset($q->orders) && isset($q->orders->orderdetails)){ foreach ($q->orders->orderdetails as $detail){ if (isset($detail->service) && $detail->service){ $orderDetails .= '<div id="accordion"> <div class="card"> <div class="card-header" id="headingOne"> <h5 class="mb-0"> <button class="btn btn-link" data-toggle="collapse" data-target="#collapse'.$detail->id.'" aria-expanded="true" aria-controls="collapse'.$detail->id.'"> '.$detail->service->name.' <i class="fas fa-angle-down ml-3"></i> </button> </h5> </div> <div id="collapse'.$detail->id.'" class="collapse" aria-labelledby="headingOne" data-parent="#accordion"> <div class="card-body"> <ul> <li>Link: '.$detail->link.'</li> <li>Quantity: '.$detail->order_quantity.'</li> <li>Charges: '.formatNumberWithCurrSymbol($detail->charges).'</li> <li>Start Counter: '.$detail->counter.'</li> </ul> </div> </div> </div> </div>'; } } }
return $orderDetails; }) ->addColumn('created_at', function ($q) { return formatDate($q->created_at); }) ->addColumn('status', function ($q) { if($q->status=='pending'){ $status='<span class="badge bg-primary">Pending</span>'; }elseif ($q->status=='approved'){ $status='<span class="badge bg-green">Approved</span>'; } else{ $status='<span class="badge bg-danger">Rejected</span>'; } return $status; }) ->addColumn('action',function($q){ if($q->status=='pending') { return '<a class="btn btn-sm btn-outline-info" href="' . route('customer.refund.request.details', ['id' => $q->order_id]) . '">Reply <span class="bg-danger text-white rounded p-1">'.refundUnreadCount().'</a>'; } else{ return '<span class="badge bg-indigo">Chat Close</span>'; }
}) ->rawColumns(['action','status','order_details','name']) ->toJson(); } }
|