You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

40 lines
1.6 KiB

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\LoyaltyPointTransaction;
use Illuminate\Http\Request;
class LoyaltyPointController extends Controller
{
public function report(Request $request)
{
$data = LoyaltyPointTransaction::selectRaw('sum(credit) as total_credit, sum(debit) as total_debit')
->when(($request->from && $request->to),function($query)use($request){
$query->whereBetween('created_at', [$request->from.' 00:00:00', $request->to.' 23:59:59']);
})
->when($request->transaction_type, function($query)use($request){
$query->where('transaction_type',$request->transaction_type);
})
->when($request->customer_id, function($query)use($request){
$query->where('user_id',$request->customer_id);
})
->get();
$transactions = LoyaltyPointTransaction::
when(($request->from && $request->to),function($query)use($request){
$query->whereBetween('created_at', [$request->from.' 00:00:00', $request->to.' 23:59:59']);
})
->when($request->transaction_type, function($query)use($request){
$query->where('transaction_type',$request->transaction_type);
})
->when($request->customer_id, function($query)use($request){
$query->where('user_id',$request->customer_id);
})
->latest()
->paginate(config('default_pagination'));
return view('admin-views.customer.loyalty-point.report', compact('data','transactions'));
}
}