| Path : /var/www/html/usd_loan_system/app/Http/Controllers/ |
|
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
| Current File : /var/www/html/usd_loan_system/app/Http/Controllers/DashboardController.php |
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\CronController;
use App\Models\Loan;
class DashboardController extends Controller
{
public function index()
{
// $cron = new CronController();
// $cron->index();
$date = date("Y-m-d");
$monthly_actual_expected_data = [];
$monthly_disbursed_loans_data = [];
$loop_date = date_format(date_sub(date_create($date), date_interval_create_from_date_string('1 years')), 'Y-m-d');
for ($i = 1; $i < 14; $i++) {
$d = explode('-', $loop_date);
$actual = 0;
$expected = 0;
$principal = 0;
$actual = $actual + \App\Models\LoanTransaction::query()
->where('transaction_type',
'repayment')
->where('reversed', 0)
->where('year', $d[0])
->where('month', $d[1])
->where('branch_id', session('branch_id'))
->sum('credit');
$expected_loans = \App\Models\Loan::query()
->select("loan_schedules.principal", "loan_schedules.interest", "loan_schedules.penalty", "loan_schedules.fees")
->where('loans.branch_id', session('branch_id'))
->whereIn('loans.status', ['disbursed', 'closed', 'written_off'])
->join('loan_schedules', 'loans.id', '=', 'loan_schedules.loan_id')
->where('loan_schedules.deleted_at', NULL)
->where('loan_schedules.year', $d[0])
->where('loan_schedules.month', $d[1])
->get();
foreach ($expected_loans as $key) {
$expected = $expected + $key->interest + $key->penalty + $key->fees + $key->principal;
$principal = $principal + $key->principal;
}
$monthly_actual_expected_data[] = array(
'month' => date_format(date_create($loop_date),
'M' . ' ' . $d[0]),
'actual' => $actual,
'expected' => $expected
);
$monthly_disbursed_loans_data[] = array(
'month' => date_format(date_create($loop_date),
'M' . ' ' . $d[0]),
'value' => $principal,
);
//add 1 month to start date
$loop_date = date_format(date_add(date_create($loop_date),
date_interval_create_from_date_string('1 months')),
'Y-m-d');
}
$loan_status = get_loan_status_count();
//daily users
$loan_statuses = [
[
'label' => translate('pending'),
'value' => $loan_status->pending,
'color' => "#FF8A65",
'highlight' => "#FF8A65",
'link' => url('loan/data?status=pending'),
'class' => "warning-300",
],
[
'label' => translate('approved'),
'value' => $loan_status->approved,
'color' => "#64B5F6",
'highlight' => "#64B5F6",
'link' => url('loan/data?status=approved'),
'class' => "primary-300",
],
[
'label' => translate('disbursed'),
'value' => $loan_status->disbursed,
'color' => "#1565C0",
'highlight' => "#1565C0",
'link' => url('loan/data?status=disbursed'),
'class' => "primary-800",
],
[
'label' => translate('rescheduled'),
'value' => $loan_status->rescheduled,
'color' => "#00ACC1",
'highlight' => "#00ACC1",
'link' => url('loan/data?status=rescheduled'),
'class' => "info-600",
],
[
'label' => translate('written_off'),
'value' => $loan_status->written_off,
'color' => "#D32F2F",
'highlight' => "#D32F2F",
'link' => url('loan/data?status=written_off'),
'class' => "danger-700",
],
[
'label' => translate('declined'),
'value' => $loan_status->declined,
'color' => "#EF5350",
'highlight' => "#EF5350",
'link' => url('loan/data?status=declined'),
'class' => "danger-400",
],
[
'label' => translate('closed'),
'value' => $loan_status->closed,
'color' => "#66BB6A",
'highlight' => "#66BB6A",
'link' => url('loan/data?status=closed'),
'class' => "success-400",
]
];
$monthly_actual_expected_data = json_encode($monthly_actual_expected_data);
$monthly_disbursed_loans_data = json_encode($monthly_disbursed_loans_data);
$loan_statuses = json_encode($loan_statuses);
return view('dashboard', compact('monthly_actual_expected_data', 'monthly_disbursed_loans_data', 'loan_statuses'));
}
}