Initial commit

This commit is contained in:
Kwesi Banson Jnr
2026-08-04 14:50:01 +00:00
commit 2cfcfade4e
1605 changed files with 499334 additions and 0 deletions

View File

@@ -0,0 +1,123 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\ActivityLog;
use App\Models\Topup;
use IlluminateAgnostic\Arr\Support\Carbon;
use App\Models;
use DB;
class DashboardController extends Controller
{
//
public function index(){
## DB Tables
/*
- merchant_top_ups - from dealers to merchants
- organisation_top_us - from Admin to dealers
- transactions - from merchants to end users
*/
$merchant = Models\Merchant::all()->count();
$dealers = Models\OrgUser::all()->count();
$activities = ActivityLog::with('admin')->orderBy('created_at', 'desc')->get()->take(10);
$dealer_topups = Models\OrganisationTopUp::with('orgInfo','userInfo')->orderBy('created_at','desc')->get();
$merchant_topups = Models\MerchantTopUp::with('merchantInfo','orgUserInfo')->orderBy('created_at','desc')->get();
// dd($merchant_topups);
$current_year_transactions = Models\Transaction::whereYear('created_at', date('Y'))->get();
$current_weeek_transactions = Models\Transaction::whereBetween('created_at', [now()->startOfWeek(), now()->endOfWeek()])->get();
$last_weeek_transactions = Models\Transaction::whereBetween('created_at', [now()->subWeek()->startOfWeek(), now()->subWeek()->endOfWeek()])->get();
$current_month_transactions = Models\Transaction::whereMonth('created_at', date('m'))->get();
$current_day_transactions = Models\Transaction::whereDate('created_at', date('Y-m-d'))->get();
#$top_merchants = Models\Transaction::select('merchant_id', 'amount')->with('merchant')->groupBy('amount', 'merchant_id')->orderByRaw('SUM(amount) DESC')->limit(4)->get();
$top_merchants = DB::table('transactions')
->select('transactions.merchant_id', 'merchants.fullname', DB::raw('SUM(amount) as total_amount'))
->join('merchants', 'transactions.merchant_id', '=', 'merchants.id')
->groupBy('fullname', 'merchant_id', 'amount')
->orderByRaw('SUM(amount) DESC')
->limit(4)
->get();
// dd($top_merchants);
// $top_merchants_by_sales = Models\Merchant::with('transactions')->orderBy('transactions', 'desc')->get();
// $top_dealers = Models\Organisation::with('transactions')->orderBy('transactions', 'desc')->get();
$data = [
'merchant_count' => $merchant,
'dealer_count' => $dealers,
'activities' => $activities,
'dealer_topup_count' =>$dealer_topups->count(),
'dealer_topup_sum' =>$dealer_topups->sum('amount'),
'dealer_topups' => $dealer_topups->take(5),
'merchant_topups' => $merchant_topups->take(10),
'merchant_topup_count' => $merchant_topups->count(),
'merchant_topup_sum' => $merchant_topups->sum('amount'),
'current_weeek_transactions' => $current_weeek_transactions->sum('amount'),
'current_month_transactions' => $current_month_transactions->sum('amount'),
'last_weeek_transactions' => $last_weeek_transactions->sum('amount'),
'current_day_transactions' => $current_day_transactions->sum('amount'),
'top_merchants' => $top_merchants->take(5),
// 'top_dealers' => $top_dealers->take(5),
'transactions' => $this->transactions(),
'current_year_transactions_sum' => $current_year_transactions->sum('amount'),
'page_title' => 'Dashboard'
];
// dd($data['top_merchants']);
return view('dashboard.index', $data);
}
public function transactions(){
$transactions = \DB::table('transactions')
->select(\DB::raw('SUM(amount) as total_sales, MONTH(created_at) as theMonth'))
->groupByRaw('month(created_at)')
->get();
/*
$transactions = Transaction::select('id', 'created_at')->get()
->groupBy(function($date) {
//return Carbon::parse($date->created_at)->format('Y'); // grouping by years
return Carbon::parse($date->created_at)->format('m'); // grouping by months
});
dd($transactions);
$transactionmcount = [];
$transactionArr = [];
foreach ($transactions as $key => $value) {
$transactionmcount[(int)$key] = count($value);
}
for($i = 1; $i <= 12; $i++){
if(!empty($transactionmcount[$i])){
$transactionArr[$i] = $transactionmcount[$i];
}else{
$transactionArr[$i] = 0;
}
}
$transactions = '';
foreach ($transactionArr as $tran) {
$transactions = $transactions.','.$tran;
}
*/
return $transactions; //response()->json($transactions);
}
public function merchant(){
$merchant_session = session('merchant');
$merchant = Models\Merchant::find($merchant_session->id);
$merchant_trans = Models\Transaction::where('merchant_id',$merchant->id)->orderBy('id', 'DESC')->get();
$data = [
'transaction_count' => $merchant_trans->count(),
'transactions' => $merchant_trans->take(5),
'current_balance' => $merchant['balance'],
'transactions_graph' => $this->merchant_transactions($merchant),
];
// dd($data);
return view('dashboard.merchant',$data);
}
}