Merge branch 'branch-jagad' into 'main'
Branch jagad See merge request fiqhpratama1/xpendify!20
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -58,7 +58,7 @@ class LoginController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Default redirection if no condition matches
|
// Default redirection if no condition matches
|
||||||
return '/login';
|
return '/admin/login';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user