add pengecekan jika melebihi budget

This commit is contained in:
Jagad R R
2025-01-09 14:17:28 +07:00
parent 154b3a274b
commit 210203f964
11 changed files with 203 additions and 30 deletions
+67
View File
@@ -0,0 +1,67 @@
<?php
namespace App\Helpers;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
use Illuminate\Support\Str;
use App\Models\BudgetControl;
use App\Models\FormUpCountry;
use App\Models\FormMeetingSeminar;
use App\Models\FormOthers;
use App\Models\FormEntertaimentPresentation;
use App\Models\FormVehicleRunningCost;
class BudgetHelper
{
public static function getAvailableBudget()
{
// Get the budget control data
$budget = BudgetControl::orderBy('created_at', 'desc')->with(['user', 'cabang'])->get();
// Initialize an empty array to hold the used budget sums
$usedBudget = [];
foreach ($budget as $b) {
// Get the month and year from the budget
$month = $b->periode_month;
$year = $b->periode_year;
// Add the used budget per model for the specified month and year to the usedBudget array
$usedBudget[] = [
'FormUpCountry' => FormUpCountry::whereIn('status', ['Approved', 'Closed'])
->whereMonth('tanggal', '=', date('m', strtotime($month)))
->whereYear('tanggal', '=', $year)
->sum('approved_total'),
'FormMeetingSeminar' => FormMeetingSeminar::whereIn('status', ['Approved', 'Closed'])
->whereMonth('created_at', '=', date('m', strtotime($month)))
->whereYear('created_at', '=', $year)
->sum('approved_total'),
'FormOthers' => FormOthers::whereIn('status', ['Approved', 'Closed'])
->whereMonth('tanggal', '=', date('m', strtotime($month)))
->whereYear('tanggal', '=', $year)
->sum('approved_total'),
'FormEntertaimentPresentation' => FormEntertaimentPresentation::whereIn('status', ['Approved', 'Closed'])
->whereMonth('tanggal', '=', date('m', strtotime($month)))
->whereYear('tanggal', '=', $year)
->sum('approved_total'),
'FormVehicleRunningCost' => FormVehicleRunningCost::whereIn('status', ['Approved', 'Closed'])
->whereMonth('tanggal', '=', date('m', strtotime($month)))
->whereYear('tanggal', '=', $year)
->sum('approved_total')
];
}
$usedBudget = array_sum(array_map(function ($b) {
return array_sum($b);
}, $usedBudget));
$availableBudget = $budget->sum('amount') - $usedBudget;
return $availableBudget;
}
}
@@ -23,6 +23,7 @@ use App\Helpers\WhatsappHelper;
use App\Helpers\AuditTrailHelper; use App\Helpers\AuditTrailHelper;
use App\Models\Admin; use App\Models\Admin;
use App\Rules\FileType; use App\Rules\FileType;
use App\Helpers\BudgetHelper;
class FormEntertainmentPresentationController extends Controller class FormEntertainmentPresentationController extends Controller
{ {
@@ -63,7 +64,8 @@ class FormEntertainmentPresentationController extends Controller
session()->put('redirect_url', route('forms.entertainment')); session()->put('redirect_url', route('forms.entertainment'));
return view('backend.pages.forms.entertainment.index', [ return view('backend.pages.forms.entertainment.index', [
'forms' => $forms 'forms' => $forms,
'availableBudget' => BudgetHelper::getAvailableBudget(),
]); ]);
} }
@@ -104,7 +106,7 @@ class FormEntertainmentPresentationController extends Controller
'tanggal' => 'required', 'tanggal' => 'required',
'jenis' => 'required|in:entertainment,presentation,sponsorship', 'jenis' => 'required|in:entertainment,presentation,sponsorship',
'keterangan' => 'required', 'keterangan' => 'required',
'total' => 'required', 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(),
'name' => 'required', 'name' => 'required',
'alamat' => 'required', 'alamat' => 'required',
'nik_or_npwp' => 'required', 'nik_or_npwp' => 'required',
@@ -216,7 +218,7 @@ class FormEntertainmentPresentationController extends Controller
'tanggal' => 'required', 'tanggal' => 'required',
'jenis' => 'required|in:entertainment,presentation,sponsorship', 'jenis' => 'required|in:entertainment,presentation,sponsorship',
'keterangan' => 'required', 'keterangan' => 'required',
'total' => 'required', 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(),
'name' => 'required', 'name' => 'required',
'alamat' => 'required', 'alamat' => 'required',
'nik_or_npwp' => 'required', 'nik_or_npwp' => 'required',
@@ -271,7 +273,7 @@ class FormEntertainmentPresentationController extends Controller
{ {
$this->checkAuthorization(auth()->user(), ['approval.approve']); $this->checkAuthorization(auth()->user(), ['approval.approve']);
$request->validate([ $request->validate([
'total' => 'required', 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(),
]); ]);
$form = FormEntertaimentPresentation::findOrfail($id); $form = FormEntertaimentPresentation::findOrfail($id);
@@ -23,6 +23,7 @@ use App\Helpers\WhatsappHelper;
use App\Helpers\AuditTrailHelper; use App\Helpers\AuditTrailHelper;
use App\Rules\FileType; use App\Rules\FileType;
use App\Models\Admin; use App\Models\Admin;
use App\Helpers\BudgetHelper;
class FormMeetingSeminarController extends Controller class FormMeetingSeminarController extends Controller
{ {
@@ -63,7 +64,8 @@ class FormMeetingSeminarController extends Controller
session()->put('redirect_url', route('forms.meeting')); session()->put('redirect_url', route('forms.meeting'));
return view('backend.pages.forms.meeting.index', [ return view('backend.pages.forms.meeting.index', [
'forms' => $forms 'forms' => $forms,
'availableBudget' => BudgetHelper::getAvailableBudget(),
]); ]);
} }
@@ -169,6 +171,12 @@ class FormMeetingSeminarController extends Controller
'hotel' => $request->hotel ?? 0, 'hotel' => $request->hotel ?? 0,
]; ];
// Check if the total nominal exceeds the available budget
if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget()) {
session()->flash('error', 'The total nominal exceeds the available budget.');
return redirect()->back();
}
// Save the form data // Save the form data
$form = FormMeetingSeminar::create([ $form = FormMeetingSeminar::create([
'expense_number' => $expense_number, 'expense_number' => $expense_number,
@@ -310,6 +318,12 @@ class FormMeetingSeminarController extends Controller
'hotel' => $request->hotel ?? 0, 'hotel' => $request->hotel ?? 0,
]; ];
// Check if the total nominal exceeds the available budget
if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget()) {
session()->flash('error', 'The total nominal exceeds the available budget.');
return redirect()->back();
}
// Save the form data // Save the form data
$form->update([ $form->update([
'allowance' => $data_nominal['allowance'], 'allowance' => $data_nominal['allowance'],
@@ -338,6 +352,12 @@ class FormMeetingSeminarController extends Controller
'hotel' => $request->hotel ? $form->hotel : 0, 'hotel' => $request->hotel ? $form->hotel : 0,
]; ];
// Check if the total nominal exceeds the available budget
if(array_sum($approved_data) > BudgetHelper::getAvailableBudget()) {
session()->flash('error', 'The total nominal exceeds the available budget.');
return redirect()->back();
}
$form->update([ $form->update([
'approved_at' => now(), 'approved_at' => now(),
'approved_by' => auth()->user()->id, 'approved_by' => auth()->user()->id,
@@ -23,6 +23,7 @@ use App\Helpers\WhatsappHelper;
use App\Helpers\AuditTrailHelper; use App\Helpers\AuditTrailHelper;
use App\Rules\FileType; use App\Rules\FileType;
use App\Models\Admin; use App\Models\Admin;
use App\Helpers\BudgetHelper;
class FormOtherController extends Controller class FormOtherController extends Controller
{ {
@@ -63,7 +64,8 @@ class FormOtherController extends Controller
session()->put('redirect_url', route('forms.other')); session()->put('redirect_url', route('forms.other'));
return view('backend.pages.forms.other.index', [ return view('backend.pages.forms.other.index', [
'forms' => $forms 'forms' => $forms,
'availableBudget' => BudgetHelper::getAvailableBudget(),
]); ]);
} }
@@ -107,7 +109,7 @@ class FormOtherController extends Controller
'kategori_id' => 'required', 'kategori_id' => 'required',
'tanggal' => 'required|date', 'tanggal' => 'required|date',
'keterangan' => 'required', 'keterangan' => 'required',
'total' => 'required', 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(),
'bukti_total' => ['nullable', 'file', 'max:51200', new FileType(['php', 'exe', 'js', 'sh', 'bat', 'exe', 'sh', 'php', 'vbs'])], 'bukti_total' => ['nullable', 'file', 'max:51200', new FileType(['php', 'exe', 'js', 'sh', 'bat', 'exe', 'sh', 'php', 'vbs'])],
]); ]);
@@ -214,7 +216,7 @@ class FormOtherController extends Controller
'kategori_id' => 'required', 'kategori_id' => 'required',
'tanggal' => 'required|date', 'tanggal' => 'required|date',
'keterangan' => 'required', 'keterangan' => 'required',
'total' => 'required', 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(),
'bukti_total' => ['nullable', 'file', 'max:51200', new FileType(['php', 'exe', 'js', 'sh', 'bat', 'exe', 'sh', 'php', 'vbs'])], 'bukti_total' => ['nullable', 'file', 'max:51200', new FileType(['php', 'exe', 'js', 'sh', 'bat', 'exe', 'sh', 'php', 'vbs'])],
]); ]);
@@ -264,7 +266,7 @@ class FormOtherController extends Controller
$this->checkAuthorization(auth()->user(), ['approval.approve']); $this->checkAuthorization(auth()->user(), ['approval.approve']);
$request->validate([ $request->validate([
'total' => 'required', 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(),
]); ]);
$form = FormOthers::findOrfail($id); $form = FormOthers::findOrfail($id);
@@ -23,6 +23,7 @@ use App\Helpers\AuditTrailHelper;
use App\Helpers\NextCloudHelper; use App\Helpers\NextCloudHelper;
use App\Rules\FileType; use App\Rules\FileType;
use App\Models\Admin; use App\Models\Admin;
use App\Helpers\BudgetHelper;
class FormUpCountryController extends Controller class FormUpCountryController extends Controller
{ {
@@ -63,7 +64,8 @@ class FormUpCountryController extends Controller
session()->put('redirect_url', route('forms.up-country')); session()->put('redirect_url', route('forms.up-country'));
return view('backend.pages.forms.upcountry.index', [ return view('backend.pages.forms.upcountry.index', [
'forms' => $forms 'forms' => $forms,
'availableBudget' => BudgetHelper::getAvailableBudget()
]); ]);
} }
@@ -92,7 +94,7 @@ class FormUpCountryController extends Controller
return view('backend.pages.forms.upcountry.view', [ return view('backend.pages.forms.upcountry.view', [
'form' => $form, 'form' => $form,
'rayons' => Rayon::all() 'rayons' => Rayon::all(),
]); ]);
} }
@@ -193,6 +195,12 @@ class FormUpCountryController extends Controller
'hotel' => $request->hotel ?? 0, 'hotel' => $request->hotel ?? 0,
]; ];
// Check if the total nominal exceeds the available budget
if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget()) {
session()->flash('error', 'The total nominal exceeds the available budget.');
return redirect()->back();
}
// Save the form data // Save the form data
$form = FormUpCountry::create([ $form = FormUpCountry::create([
'expense_number' => $expense_number, 'expense_number' => $expense_number,
@@ -360,6 +368,12 @@ class FormUpCountryController extends Controller
'hotel' => $request->hotel ?? 0, 'hotel' => $request->hotel ?? 0,
]; ];
// Check if the total nominal exceeds the available budget
if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget()) {
session()->flash('error', 'The total nominal exceeds the available budget.');
return redirect()->back();
}
// Save the form data // Save the form data
$form->update([ $form->update([
'rayon_id' => $request->rayon_id, 'rayon_id' => $request->rayon_id,
@@ -395,6 +409,12 @@ class FormUpCountryController extends Controller
'hotel' => $request->hotel ? $form->hotel : 0, 'hotel' => $request->hotel ? $form->hotel : 0,
]; ];
// Check if the total nominal exceeds the available budget
if(array_sum($approved_data) > BudgetHelper::getAvailableBudget()) {
session()->flash('error', 'The total nominal exceeds the available budget.');
return redirect()->back();
}
$form->update([ $form->update([
'approved_at' => now(), 'approved_at' => now(),
'approved_by' => auth()->user()->id, 'approved_by' => auth()->user()->id,
@@ -23,6 +23,7 @@ use App\Helpers\WhatsappHelper;
use App\Helpers\AuditTrailHelper; use App\Helpers\AuditTrailHelper;
use App\Rules\FileType; use App\Rules\FileType;
use App\Models\Admin; use App\Models\Admin;
use App\Helpers\BudgetHelper;
class FormVehicleController extends Controller class FormVehicleController extends Controller
{ {
@@ -63,7 +64,8 @@ class FormVehicleController extends Controller
session()->put('redirect_url', route('forms.vehicle')); session()->put('redirect_url', route('forms.vehicle'));
return view('backend.pages.forms.vehicle.index', [ return view('backend.pages.forms.vehicle.index', [
'forms' => $forms 'forms' => $forms,
'availableBudget' => BudgetHelper::getAvailableBudget(),
]); ]);
} }
@@ -103,7 +105,7 @@ class FormVehicleController extends Controller
$request->validate([ $request->validate([
'tanggal' => 'required', 'tanggal' => 'required',
'liter' => 'required', 'liter' => 'required',
'total' => 'required', 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(),
'jarak' => 'required', 'jarak' => 'required',
'tipe_bensin' => 'required|in:pertalite,pertamax', 'tipe_bensin' => 'required|in:pertalite,pertamax',
'nopol' => 'required', 'nopol' => 'required',
@@ -216,7 +218,7 @@ class FormVehicleController extends Controller
$request->validate([ $request->validate([
'tanggal' => 'required', 'tanggal' => 'required',
'liter' => 'required', 'liter' => 'required',
'total' => 'required', 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(),
'jarak' => 'required', 'jarak' => 'required',
'tipe_bensin' => 'required|in:pertalite,pertamax', 'tipe_bensin' => 'required|in:pertalite,pertamax',
'nopol' => 'required', 'nopol' => 'required',
@@ -273,7 +275,7 @@ class FormVehicleController extends Controller
{ {
$this->checkAuthorization(auth()->user(), ['approval.approve']); $this->checkAuthorization(auth()->user(), ['approval.approve']);
$request->validate([ $request->validate([
'total' => 'required', 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(),
]); ]);
$form = FormVehicleRunningCost::findOrfail($id); $form = FormVehicleRunningCost::findOrfail($id);
@@ -24,7 +24,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<!-- Total Expense --> <!-- Total Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-info"> <div class="small-box bg-info">
<div class="inner"> <div class="inner">
<h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3> <h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3>
@@ -36,7 +36,7 @@
</div> </div>
</div> </div>
<!-- Approved Expense --> <!-- Approved Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-success"> <div class="small-box bg-success">
<div class="inner"> <div class="inner">
<h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3> <h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3>
@@ -48,7 +48,7 @@
</div> </div>
</div> </div>
<!-- Pending Expense --> <!-- Pending Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-warning"> <div class="small-box bg-warning">
<div class="inner"> <div class="inner">
<h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3> <h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3>
@@ -59,6 +59,18 @@
</div> </div>
</div> </div>
</div> </div>
<!-- Budget Available -->
<div class="col-lg-3 col-6">
<div class="small-box bg-purple">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($availableBudget, 0, ',', '.') }}</h3>
<p class="text-white">Available Budget</p>
</div>
<div class="icon">
<i class="fas fa-money-bill"></i>
</div>
</div>
</div>
</div> </div>
</div> </div>
</section> </section>
@@ -24,7 +24,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<!-- Total Expense --> <!-- Total Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-info"> <div class="small-box bg-info">
<div class="inner"> <div class="inner">
<h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3> <h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3>
@@ -36,7 +36,7 @@
</div> </div>
</div> </div>
<!-- Approved Expense --> <!-- Approved Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-success"> <div class="small-box bg-success">
<div class="inner"> <div class="inner">
<h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3> <h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3>
@@ -48,7 +48,7 @@
</div> </div>
</div> </div>
<!-- Pending Expense --> <!-- Pending Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-warning"> <div class="small-box bg-warning">
<div class="inner"> <div class="inner">
<h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3> <h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3>
@@ -59,6 +59,18 @@
</div> </div>
</div> </div>
</div> </div>
<!-- Budget Available -->
<div class="col-lg-3 col-6">
<div class="small-box bg-purple">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($availableBudget, 0, ',', '.') }}</h3>
<p class="text-white">Available Budget</p>
</div>
<div class="icon">
<i class="fas fa-money-bill"></i>
</div>
</div>
</div>
</div> </div>
</div> </div>
</section> </section>
@@ -24,7 +24,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<!-- Total Expense --> <!-- Total Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-info"> <div class="small-box bg-info">
<div class="inner"> <div class="inner">
<h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3> <h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3>
@@ -36,7 +36,7 @@
</div> </div>
</div> </div>
<!-- Approved Expense --> <!-- Approved Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-success"> <div class="small-box bg-success">
<div class="inner"> <div class="inner">
<h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('total'), 0, ',', '.') }}</h3> <h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('total'), 0, ',', '.') }}</h3>
@@ -48,7 +48,7 @@
</div> </div>
</div> </div>
<!-- Pending Expense --> <!-- Pending Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-warning"> <div class="small-box bg-warning">
<div class="inner"> <div class="inner">
<h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3> <h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3>
@@ -59,6 +59,18 @@
</div> </div>
</div> </div>
</div> </div>
<!-- Budget Available -->
<div class="col-lg-3 col-6">
<div class="small-box bg-purple">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($availableBudget, 0, ',', '.') }}</h3>
<p class="text-white">Available Budget</p>
</div>
<div class="icon">
<i class="fas fa-money-bill"></i>
</div>
</div>
</div>
</div> </div>
</div> </div>
</section> </section>
@@ -24,7 +24,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<!-- Total Expense --> <!-- Total Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-info"> <div class="small-box bg-info">
<div class="inner"> <div class="inner">
<h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3> <h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3>
@@ -36,7 +36,7 @@
</div> </div>
</div> </div>
<!-- Approved Expense --> <!-- Approved Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-success"> <div class="small-box bg-success">
<div class="inner"> <div class="inner">
<h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3> <h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3>
@@ -48,7 +48,7 @@
</div> </div>
</div> </div>
<!-- Pending Expense --> <!-- Pending Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-warning"> <div class="small-box bg-warning">
<div class="inner"> <div class="inner">
<h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3> <h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3>
@@ -59,6 +59,18 @@
</div> </div>
</div> </div>
</div> </div>
<!-- Budget Available -->
<div class="col-lg-3 col-6">
<div class="small-box bg-purple">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($availableBudget, 0, ',', '.') }}</h3>
<p class="text-white">Available Budget</p>
</div>
<div class="icon">
<i class="fas fa-money-bill"></i>
</div>
</div>
</div>
</div> </div>
</div> </div>
</section> </section>
@@ -24,7 +24,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<!-- Total Expense --> <!-- Total Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-info"> <div class="small-box bg-info">
<div class="inner"> <div class="inner">
<h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3> <h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3>
@@ -36,7 +36,7 @@
</div> </div>
</div> </div>
<!-- Approved Expense --> <!-- Approved Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-success"> <div class="small-box bg-success">
<div class="inner"> <div class="inner">
<h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3> <h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3>
@@ -48,7 +48,7 @@
</div> </div>
</div> </div>
<!-- Pending Expense --> <!-- Pending Expense -->
<div class="col-lg-4 col-6"> <div class="col-lg-3 col-6">
<div class="small-box bg-warning"> <div class="small-box bg-warning">
<div class="inner"> <div class="inner">
<h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3> <h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3>
@@ -59,6 +59,18 @@
</div> </div>
</div> </div>
</div> </div>
<!-- Budget Available -->
<div class="col-lg-3 col-6">
<div class="small-box bg-purple">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($availableBudget, 0, ',', '.') }}</h3>
<p class="text-white">Available Budget</p>
</div>
<div class="icon">
<i class="fas fa-money-bill"></i>
</div>
</div>
</div>
</div> </div>
</div> </div>
</section> </section>