Viewing file: ReportController.php (7.01 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Customer;
use App\Http\Controllers\Controller; use Carbon\Carbon; use Illuminate\Http\Request; use App\Models\Order; use App\Models\Transaction;
class ReportController extends Controller { public function order_list(){ return view('customer.report.order'); }
public function transaction_list(){
return view('customer.report.transaction'); } public function getAllOrder(Request $request){ $user = auth('customer')->user();
$orders = $user->orders()->with(['customer','service'])->orderBy('created_at', 'DESC')->select('id','customer_id','status','created_at');
if ($request->date){ $startAndEndDate = explode(' - ', $request->date); $start_date = isset($startAndEndDate[0]) ? $startAndEndDate[0] : Carbon::now(); $end_date = isset($startAndEndDate[1]) ? $startAndEndDate[1] : Carbon::now(); $newStartDay = new \DateTime($start_date); $newEndDay = new \DateTime($end_date); $orders->whereBetween('created_at',[$newStartDay,$newEndDay]); }
if ($request->status ){ $orders->where('status', $request->status);
}
return datatables()->of($orders) ->addColumn('service', function ($q) { $service = ''; if (isset($q->orderdetails) && $q->orderdetails){ foreach ($q->orderdetails as $detail){ if (isset($detail->service) && $detail->service){ $remains = $detail->order_quantity - $detail->counter; $service .= '<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> <li>Remains: '.$remains.'</li> </ul> </div> </div> </div> </div>'; } } } return $service; }) ->addColumn('order_quantity', function ($q) { $order_quantity=''; foreach ($q->orderdetails as $detail){
$order_quantity .= '<span>'.$detail->order_quantity.'</span>  '; } return $order_quantity; }) ->addColumn('charges', function ($q) { $charges = ''; foreach ($q->orderdetails as $detail){ $charges .= '<span>'.formatNumberWithCurrSymbol($detail->charges).'</span>, '; } return $charges; })
->addColumn('status', function ($q) { if($q->status=='pending'){ $status='<span class="badge bg-green">'.ucfirst($q->status).'</span>'; }elseif ($q->status=='processing' || $q->status == 'inProgress' || $q->status == 'partial'){ $status='<span class="badge bg-primary">'.ucfirst($q->status).'</span>'; }elseif ($q->status=='rejected' || $q->status=='cancelled' || $q->status=='refund'){ $status='<span class="badge bg-danger">'.ucfirst($q->status).'</span>'; }else{ $status='<span class="badge bg-green">'.ucfirst($q->status).'</span>'; } return $status; })
->addColumn('created_at', function ($q) {
return $q->created_at; }) ->rawColumns(['status','service','order_quantity','charges']) ->toJson(); } public function getAllTransaction(Request $request){
$user = auth('customer')->user(); $transaction = $user->transactions()->orderBy('created_at', 'DESC')->select('payment_type','type','amount','status','created_at');
if ($request->date){ $startAndEndDate = explode(' - ', $request->date); $start_date = isset($startAndEndDate[0]) ? $startAndEndDate[0] : Carbon::now(); $end_date = isset($startAndEndDate[1]) ? $startAndEndDate[1] : Carbon::now(); $newStartDay = new \DateTime($start_date); $newEndDay = new \DateTime($end_date); $transaction->whereBetween('created_at',[$newStartDay,$newEndDay]); } if ($request->type){ $transaction->where('type',$request->type); }
return datatables()->of($transaction) ->addColumn('payment_type', function ($q){ return ucfirst($q->payment_type); }) ->addColumn('type', function ($q) { if($q->type == 'add' || $q->type == 'deposit'){
$type = '<strong class="badge bg-primary">'.ucfirst($q->type).'</strong>'; }else{ $type = '<strong class="badge bg-danger">'.ucfirst($q->type).'</strong>'; } return ucfirst($type); }) ->addColumn('amount', function ($q){ return formatNumberWithCurrSymbol($q->amount); }) ->addColumn('status', function ($q){ if($q->status=='pending'){ $q->status = '<strong class="badge bg-primary">'.ucfirst($q->status).'</strong>'; }elseif ($q->status=='approved'){ $q->status = '<strong class="badge bg-success">'.ucfirst($q->status).'</strong>'; } else{ $q->status = '<strong class="badge bg-danger">'.ucfirst($q->status).'</strong>'; } return $q->status; }) ->addColumn('created_at', function ($q){ return formatDate($q->created_at) ; }) ->rawColumns(['status','type']) ->toJson(); }
}
|