Viewing file: ReportController.php (2.95 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\Customer; use App\Models\Report; use Carbon\Carbon; use Illuminate\Http\Request;
class ReportController extends Controller { public function report(Request $request) { $overview=[];
$overview = auth('customer')->user()->messages()->select(['id', 'body', 'status', 'updated_at', 'from', 'to', 'type']);
if ($request->type) { $overview = $overview->where('type', $request->type); } if($request->status && $request->status=='queue'){ $overview = $overview->where('status', 'running')->where('schedule_completed', 'no')->whereNotNull('schedule_datetime')->whereNull('delivered_at'); }elseif ($request->status) { $overview = $overview->where('status', $request->status); }
if ($request->from_date && $request->to_date) { $overview=$overview->whereBetween('created_at', [$request->from_date, $request->to_date]); } $overview=$overview->get();
return view('customer.report.index', compact('overview')); }
public function getReports(Request $request) { $overview = auth('customer')->user()->messages()->select(['id', 'body', 'status', 'updated_at', 'from', 'to', 'type','delivered_at','failed_reason','schedule_datetime','schedule_completed']);
if ($request->type) { $overview = $overview->where('type', $request->type); } if ($request->status) { $overview = $overview->where('status', $request->status); }
if ($request->from_date && $request->to_date) { $overview=$overview->whereBetween('created_at', [$request->from_date, $request->to_date]); }
return datatables()->of($overview) ->addColumn('body', function ($q) { return "<div class='show-more' style='max-width: 500px;white-space: pre-wrap'>" . htmlentities($q->body).'</div>'; }) ->addColumn('status', function ($q) {
if ($q->status == 'succeed') { $status = 'Delivered At: ' . formatDate($q->delivered_at); } elseif ($q->status == 'failed') { if($q->failed_reason){ $status = "<div class='show-more' style='max-width: 500px;white-space: pre-wrap'>Failed Reason: " . $q->failed_reason.'</div>'; }else{ $status = 'Failed Reason: n/a'; } } elseif ($q->status == 'running' && $q->schedule_completed == 'no' && $q->schedule_datetime) { $status = 'Queued At: ' . formatDate($q->schedule_datetime); } else { $status = ucfirst($q->status); }
return $status; }) ->rawColumns(['status','body']) ->toJson();
} }
|