enhance outstanding expense card

This commit is contained in:
Fiqh Pratama
2025-10-13 00:14:28 +07:00
parent 9375d2b45c
commit 2e3126ea29
11 changed files with 443 additions and 87 deletions
@@ -26,6 +26,7 @@ use App\Models\Admin;
use App\Rules\FileType;
use App\Helpers\BudgetHelper;
use App\Helpers\NotificationHelper;
use App\Helpers\OutstandingHelper;
use Illuminate\Support\Facades\Log;
use App\Services\BrevoService;
use Carbon\Carbon;
@@ -39,6 +40,9 @@ class FormEntertainmentPresentationController extends Controller
$role = auth()->user()->getRoleNames()[0];
$startDay = (int) env('STARTING_DATE', 11);
$closingDay = (int) env('CLOSING_DATE', 10);
$userRegionData = auth()->user()->getMyCabangAndRegionId();
$regionContextId = $userRegionData['region'] !== '-' ? $userRegionData['region'] : null;
$cabangContextId = $userRegionData['cabang'] !== '-' ? $userRegionData['cabang'] : null;
$now = Carbon::now();
@@ -64,25 +68,21 @@ class FormEntertainmentPresentationController extends Controller
$periodeYear = (int) $currentPeriodStartDate->format('Y');
if ($role == 'Admin Region' || $role == 'Marketing Operational Manager Region') {
$region_id = auth()->user()->getMyCabangAndRegionId()['region'];
if ($region_id) {
$users = UserHasCabang::whereHas('cabang', function ($query) use ($region_id) {
$query->where('region_id', $region_id);
if ($regionContextId) {
$users = UserHasCabang::whereHas('cabang', function ($query) use ($regionContextId) {
$query->where('region_id', $regionContextId);
})->get();
$userIds = $users->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
}
} elseif ($role == 'Area Manager Cabang') {
$cabang_id = auth()->user()->getMyCabangAndRegionId()['cabang'];
if ($cabang_id) {
$users = UserHasCabang::where('cabang_id', $cabang_id)->get();
if ($cabangContextId) {
$users = UserHasCabang::where('cabang_id', $cabangContextId)->get();
$userIds = $users->pluck('user_id')->toArray();
$forms = $forms->whereIn('user_id', $userIds);
$availableBudget = BudgetHelper::getAvailableBudget($cabang_id, $periodeMonth, $periodeYear);
$availableBudget = BudgetHelper::getAvailableBudget($cabangContextId, $periodeMonth, $periodeYear);
}
} elseif ($role == 'Medical Representatif') {
$forms = $forms->where('user_id', auth()->user()->id);
@@ -93,9 +93,16 @@ class FormEntertainmentPresentationController extends Controller
}
}
$outstandingForms = $forms->filter(function ($form) {
return is_null($form->final_approved_at) || is_null($form->final_approved_by);
});
$outstandingForms = OutstandingHelper::filterForms(
$forms,
$role,
$currentPeriodStartDate,
$currentPeriodClosingDate,
[
'region_id' => $regionContextId,
'cabang_id' => $cabangContextId,
]
);
session()->put('redirect_url', route('forms.entertainment'));
return view('backend.pages.forms.entertainment.index', [
@@ -103,6 +110,7 @@ class FormEntertainmentPresentationController extends Controller
'availableBudget' => $availableBudget,
'outstandingCount' => $outstandingForms->count(),
'outstandingTotal' => $outstandingForms->sum('total'),
'outstandingIds' => $outstandingForms->pluck('id')->toArray(),
]);
}