enhanced by codex

This commit is contained in:
Fiqh Pratama
2025-10-12 20:47:43 +07:00
parent 6b2e658070
commit 9375d2b45c
19 changed files with 556 additions and 187 deletions
@@ -432,13 +432,11 @@
</button>
</form>
<form action="{{ route('forms.entertainment.reject', $form->id) }}" method="POST" class="d-inline"onsubmit="return confirm('Are you sure you want to reject this form?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger btn-sm">
<button type="button"
class="btn btn-danger btn-sm open-reject-modal"
data-action="{{ route('forms.entertainment.reject', $form->id) }}">
Reject
</button>
</form>
@else
@if ($form->approved_at)
{{ \Carbon\Carbon::parse($form->approved_at)->locale('id')->isoFormat('D MMMM Y') }}
@@ -591,13 +589,11 @@
</button>
</form>
<form action="{{ route('forms.meeting.reject', $form->id) }}" method="POST" class="d-inline"onsubmit="return confirm('Are you sure you want to reject this form?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger btn-sm">
<button type="button"
class="btn btn-danger btn-sm open-reject-modal"
data-action="{{ route('forms.meeting.reject', $form->id) }}">
Reject
</button>
</form>
@else
@if ($form->approved_at)
{{ \Carbon\Carbon::parse($form->approved_at)->locale('id')->isoFormat('D MMMM Y') }}
@@ -748,13 +744,11 @@
</button>
</form>
<form action="{{ route('forms.other.reject', $form->id) }}" method="POST" class="d-inline"onsubmit="return confirm('Are you sure you want to reject this form?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger btn-sm">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger btn-sm open-reject-modal"
data-action="{{ route('forms.other.reject', $form->id) }}">
Reject
</button>
@else
@if ($form->approved_at)
{{ \Carbon\Carbon::parse($form->approved_at)->locale('id')->isoFormat('D MMMM Y') }}
@@ -22,10 +22,10 @@
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="row row-cols-1 row-cols-md-2 row-cols-xl-5 g-3">
<!-- Total Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-info">
<div class="col d-flex">
<div class="small-box bg-info flex-fill">
<div class="inner">
<h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3>
<p>Total Expense</p>
@@ -36,8 +36,8 @@
</div>
</div>
<!-- Approved Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-success">
<div class="col d-flex">
<div class="small-box bg-success flex-fill">
<div class="inner">
<h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3>
<p>Approved Expenses</p>
@@ -48,8 +48,8 @@
</div>
</div>
<!-- Pending Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-warning">
<div class="col d-flex">
<div class="small-box bg-warning flex-fill">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3>
<p class="text-white">Pending Expenses</p>
@@ -59,9 +59,22 @@
</div>
</div>
</div>
<!-- Outstanding Expense -->
<div class="col d-flex">
<div class="small-box bg-danger flex-fill">
<div class="inner">
<h3>{{ $outstandingCount }}</h3>
<p>Outstanding Expenses</p>
<p class="mb-0"><small>Total Rp {{ number_format($outstandingTotal, 0, ',', '.') }}</small></p>
</div>
<div class="icon">
<i class="fas fa-exclamation-triangle"></i>
</div>
</div>
</div>
@if($availableBudget > 0)
<div class="col-lg-3 col-6">
<div class="small-box bg-purple">
<div class="col d-flex">
<div class="small-box bg-purple flex-fill">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($availableBudget, 0, ',', '.') }}</h3>
<p class="text-white">Available Budget</p>
@@ -170,13 +183,11 @@
</button>
</form>
<form action="{{ route('forms.entertainment.reject', $item->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to reject this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger btn-sm">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger btn-sm open-reject-modal"
data-action="{{ route('forms.entertainment.reject', $item->id) }}">
Reject
</button>
@endif
@endif
@if ($item->approved_at)
@@ -197,13 +208,11 @@
</button>
</form>
<form action="{{ route('forms.entertainment.reject', $item->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to reject this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger btn-sm">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger btn-sm open-reject-modal"
data-action="{{ route('forms.entertainment.reject', $item->id) }}">
Reject
</button>
@endif
@endif
@if ($item->approved2_at)
@@ -411,6 +420,35 @@
</div>
</div>
</section>
<section>
<div class="modal fade" id="rejectModal" tabindex="-1" role="dialog" aria-labelledby="rejectModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form id="rejectForm" method="POST" action="">
@csrf
@method('PUT')
<div class="modal-header">
<h5 class="modal-title" id="rejectModalLabel">Reject Expense</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="rejectRemarks">Remarks <span class="text-danger">*</span></label>
<textarea class="form-control" name="remarks" id="rejectRemarks" rows="3" required></textarea>
</div>
<p class="mb-0 text-muted small">Pengajuan akan ditolak setelah Anda mengirimkan catatan ini.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-danger">Reject</button>
</div>
</form>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
@@ -451,6 +489,23 @@
});
}
// Handle Reject Button Click
$(document).on('click', '.open-reject-modal', function () {
const rejectUrl = $(this).data('action');
$('#rejectForm').attr('action', rejectUrl);
$('#rejectRemarks').val('');
$('#rejectModal').modal('show');
});
$('#rejectModal').on('shown.bs.modal', function () {
$('#rejectRemarks').trigger('focus');
});
$('#rejectModal').on('hidden.bs.modal', function () {
$('#rejectForm').attr('action', '');
$('#rejectRemarks').val('');
});
// Handle Approve Button Click
$(document).on('click', '.open-approve-modal', function() {
const approveUrl = $(this).data('id');
@@ -88,23 +88,19 @@
@if (auth()->user()->can('approval.approve') && $form->status == 'On Progress')
<button type="button" class="btn btn-success final-approve-modal" data-id="{{ route('forms.entertainment.approve', $form->id) }}">Approve 1</button>
<form action="{{ route('forms.entertainment.reject', $form->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to approve this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger open-reject-modal"
data-action="{{ route('forms.entertainment.reject', $form->id) }}">
Reject
</button>
@elseif(auth()->user()->can('approval2.approve') && $form->status == 'Approved 1')
<button type="button" class="btn btn-success open-approve-modal" data-id="{{ route('forms.entertainment.approve2', $form->id) }}">Approve 2</button>
<form action="{{ route('forms.entertainment.reject', $form->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to approve this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger open-reject-modal"
data-action="{{ route('forms.entertainment.reject', $form->id) }}">
Reject
</button>
@elseif(auth()->user()->can('final_approval.approve') && $form->status == 'Approved 2')
<button type="button" class="btn btn-primary open-approve-modal" data-id="{{ route('forms.entertainment.final-approve', $form->id) }}">Final Approve</button>
@endif
@@ -253,6 +249,35 @@
</div>
</div>
</section>
<section>
<div class="modal fade" id="rejectModal" tabindex="-1" role="dialog" aria-labelledby="rejectModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form id="rejectForm" method="POST" action="">
@csrf
@method('PUT')
<div class="modal-header">
<h5 class="modal-title" id="rejectModalLabel">Reject Expense</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="rejectRemarks">Remarks <span class="text-danger">*</span></label>
<textarea class="form-control" name="remarks" id="rejectRemarks" rows="3" required></textarea>
</div>
<p class="mb-0 text-muted small">Pengajuan akan ditolak setelah Anda mengirimkan catatan ini.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-danger">Reject</button>
</div>
</form>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
@@ -267,7 +292,23 @@
</script>
<script>
$(document).on('click', '.open-approve-modal', function() {
$(document).on('click', '.open-reject-modal', function () {
const rejectUrl = $(this).data('action');
$('#rejectForm').attr('action', rejectUrl);
$('#rejectRemarks').val('');
$('#rejectModal').modal('show');
});
$('#rejectModal').on('shown.bs.modal', function () {
$('#rejectRemarks').trigger('focus');
});
$('#rejectModal').on('hidden.bs.modal', function () {
$('#rejectForm').attr('action', '');
$('#rejectRemarks').val('');
});
$(document).on('click', '.open-approve-modal', function() {
const approveUrl = $(this).data('id');
// Show spinner and hide content initially
@@ -22,10 +22,10 @@
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="row row-cols-1 row-cols-md-2 row-cols-xl-5 g-3">
<!-- Total Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-info">
<div class="col d-flex">
<div class="small-box bg-info flex-fill">
<div class="inner">
<h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3>
<p>Total Expense</p>
@@ -36,8 +36,8 @@
</div>
</div>
<!-- Approved Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-success">
<div class="col d-flex">
<div class="small-box bg-success flex-fill">
<div class="inner">
<h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3>
<p>Approved Expenses</p>
@@ -48,8 +48,8 @@
</div>
</div>
<!-- Pending Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-warning">
<div class="col d-flex">
<div class="small-box bg-warning flex-fill">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3>
<p class="text-white">Pending Expenses</p>
@@ -59,9 +59,22 @@
</div>
</div>
</div>
<!-- Outstanding Expense -->
<div class="col d-flex">
<div class="small-box bg-danger flex-fill">
<div class="inner">
<h3>{{ $outstandingCount }}</h3>
<p>Outstanding Expenses</p>
<p class="mb-0"><small>Total Rp {{ number_format($outstandingTotal, 0, ',', '.') }}</small></p>
</div>
<div class="icon">
<i class="fas fa-exclamation-triangle"></i>
</div>
</div>
</div>
@if($availableBudget > 0)
<div class="col-lg-3 col-6">
<div class="small-box bg-purple">
<div class="col d-flex">
<div class="small-box bg-purple flex-fill">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($availableBudget, 0, ',', '.') }}</h3>
<p class="text-white">Available Budget</p>
@@ -160,13 +173,11 @@
</button>
</form>
<form action="{{ route('forms.meeting.reject', $item->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to reject this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger btn-sm">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger btn-sm open-reject-modal"
data-action="{{ route('forms.meeting.reject', $item->id) }}">
Reject
</button>
@endif
@endif
@if ($item->approved_at)
@@ -187,13 +198,11 @@
</button>
</form>
<form action="{{ route('forms.meeting.reject', $item->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to reject this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger btn-sm">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger btn-sm open-reject-modal"
data-action="{{ route('forms.meeting.reject', $item->id) }}">
Reject
</button>
@endif
@endif
@if ($item->approved2_at)
@@ -423,6 +432,35 @@
</div>
</div>
</section>
<section>
<div class="modal fade" id="rejectModal" tabindex="-1" role="dialog" aria-labelledby="rejectModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form id="rejectForm" method="POST" action="">
@csrf
@method('PUT')
<div class="modal-header">
<h5 class="modal-title" id="rejectModalLabel">Reject Expense</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="rejectRemarks">Remarks <span class="text-danger">*</span></label>
<textarea class="form-control" name="remarks" id="rejectRemarks" rows="3" required></textarea>
</div>
<p class="mb-0 text-muted small">Pengajuan akan ditolak setelah Anda mengirimkan catatan ini.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-danger">Reject</button>
</div>
</form>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
@@ -463,6 +501,23 @@
});
}
// Handle Reject Button Click
$(document).on('click', '.open-reject-modal', function () {
const rejectUrl = $(this).data('action');
$('#rejectForm').attr('action', rejectUrl);
$('#rejectRemarks').val('');
$('#rejectModal').modal('show');
});
$('#rejectModal').on('shown.bs.modal', function () {
$('#rejectRemarks').trigger('focus');
});
$('#rejectModal').on('hidden.bs.modal', function () {
$('#rejectForm').attr('action', '');
$('#rejectRemarks').val('');
});
// Handle Approve Button Click
$(document).on('click', '.open-approve-modal', function() {
const approveUrl = $(this).data('id');
@@ -84,23 +84,19 @@
@if (auth()->user()->can('approval.approve') && $form->status == 'On Progress')
<button type="button" class="btn btn-success final-approve-modal" data-id="{{ route('forms.meeting.approve', $form->id) }}">Approve 1</button>
<form action="{{ route('forms.meeting.reject', $form->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to approve this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger open-reject-modal"
data-action="{{ route('forms.meeting.reject', $form->id) }}">
Reject
</button>
@elseif(auth()->user()->can('approval2.approve') && $form->status == 'Approved 1')
<button type="button" class="btn btn-success open-approve-modal" data-id="{{ route('forms.meeting.approve2', $form->id) }}">Approve 2</button>
<form action="{{ route('forms.meeting.reject', $form->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to approve this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger open-reject-modal"
data-action="{{ route('forms.meeting.reject', $form->id) }}">
Reject
</button>
@elseif(auth()->user()->can('final_approval.approve') && $form->status == 'Approved 2')
<button type="button" class="btn btn-primary open-approve-modal" data-id="{{ route('forms.meeting.final-approve', $form->id) }}">Final Approve</button>
@endif
@@ -271,6 +267,35 @@
</div>
</div>
</section>
<section>
<div class="modal fade" id="rejectModal" tabindex="-1" role="dialog" aria-labelledby="rejectModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form id="rejectForm" method="POST" action="">
@csrf
@method('PUT')
<div class="modal-header">
<h5 class="modal-title" id="rejectModalLabel">Reject Expense</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="rejectRemarks">Remarks <span class="text-danger">*</span></label>
<textarea class="form-control" name="remarks" id="rejectRemarks" rows="3" required></textarea>
</div>
<p class="mb-0 text-muted small">Pengajuan akan ditolak setelah Anda mengirimkan catatan ini.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-danger">Reject</button>
</div>
</form>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
@@ -309,6 +334,22 @@
</script>
<script>
$(document).on('click', '.open-reject-modal', function () {
const rejectUrl = $(this).data('action');
$('#rejectForm').attr('action', rejectUrl);
$('#rejectRemarks').val('');
$('#rejectModal').modal('show');
});
$('#rejectModal').on('shown.bs.modal', function () {
$('#rejectRemarks').trigger('focus');
});
$('#rejectModal').on('hidden.bs.modal', function () {
$('#rejectForm').attr('action', '');
$('#rejectRemarks').val('');
});
// Handle Approve Button Click
$(document).on('click', '.open-approve-modal', function() {
const approveUrl = $(this).data('id');
@@ -22,10 +22,10 @@
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="row row-cols-1 row-cols-md-2 row-cols-xl-5 g-3">
<!-- Total Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-info">
<div class="col d-flex">
<div class="small-box bg-info flex-fill">
<div class="inner">
<h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3>
<p>Total Expense</p>
@@ -36,8 +36,8 @@
</div>
</div>
<!-- Approved Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-success">
<div class="col d-flex">
<div class="small-box bg-success flex-fill">
<div class="inner">
<h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3>
<p>Approved Expenses</p>
@@ -48,8 +48,8 @@
</div>
</div>
<!-- Pending Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-warning">
<div class="col d-flex">
<div class="small-box bg-warning flex-fill">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3>
<p class="text-white">Pending Expenses</p>
@@ -59,9 +59,22 @@
</div>
</div>
</div>
<!-- Outstanding Expense -->
<div class="col d-flex">
<div class="small-box bg-danger flex-fill">
<div class="inner">
<h3>{{ $outstandingCount }}</h3>
<p>Outstanding Expenses</p>
<p class="mb-0"><small>Total Rp {{ number_format($outstandingTotal, 0, ',', '.') }}</small></p>
</div>
<div class="icon">
<i class="fas fa-exclamation-triangle"></i>
</div>
</div>
</div>
@if($availableBudget > 0)
<div class="col-lg-3 col-6">
<div class="small-box bg-purple">
<div class="col d-flex">
<div class="small-box bg-purple flex-fill">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($availableBudget, 0, ',', '.') }}</h3>
<p class="text-white">Available Budget</p>
@@ -168,13 +181,11 @@
</button>
</form>
<form action="{{ route('forms.other.reject', $item->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to reject this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger btn-sm">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger btn-sm open-reject-modal"
data-action="{{ route('forms.other.reject', $item->id) }}">
Reject
</button>
@endif
@endif
@if ($item->approved_at)
@@ -195,13 +206,11 @@
</button>
</form>
<form action="{{ route('forms.other.reject', $item->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to reject this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger btn-sm">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger btn-sm open-reject-modal"
data-action="{{ route('forms.other.reject', $item->id) }}">
Reject
</button>
@endif
@endif
@if ($item->approved2_at)
@@ -397,6 +406,35 @@
</div>
</div>
</section>
<section>
<div class="modal fade" id="rejectModal" tabindex="-1" role="dialog" aria-labelledby="rejectModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form id="rejectForm" method="POST" action="">
@csrf
@method('PUT')
<div class="modal-header">
<h5 class="modal-title" id="rejectModalLabel">Reject Expense</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="rejectRemarks">Remarks <span class="text-danger">*</span></label>
<textarea class="form-control" name="remarks" id="rejectRemarks" rows="3" required></textarea>
</div>
<p class="mb-0 text-muted small">Pengajuan akan ditolak setelah Anda mengirimkan catatan ini.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-danger">Reject</button>
</div>
</form>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
@@ -437,6 +475,23 @@
});
}
// Handle Reject Button Click
$(document).on('click', '.open-reject-modal', function () {
const rejectUrl = $(this).data('action');
$('#rejectForm').attr('action', rejectUrl);
$('#rejectRemarks').val('');
$('#rejectModal').modal('show');
});
$('#rejectModal').on('shown.bs.modal', function () {
$('#rejectRemarks').trigger('focus');
});
$('#rejectModal').on('hidden.bs.modal', function () {
$('#rejectForm').attr('action', '');
$('#rejectRemarks').val('');
});
// Handle Approve Button Click
$(document).on('click', '.open-approve-modal', function() {
const approveUrl = $(this).data('id');
@@ -559,4 +614,4 @@
});
});
</script>
@endsection
@endsection
@@ -78,23 +78,19 @@
@if (auth()->user()->can('approval.approve') && $form->status == 'On Progress')
<button type="button" class="btn btn-success final-approve-modal" data-id="{{ route('forms.other.approve', $form->id) }}">Approve 1</button>
<form action="{{ route('forms.other.reject', $form->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to approve this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger open-reject-modal"
data-action="{{ route('forms.other.reject', $form->id) }}">
Reject
</button>
@elseif(auth()->user()->can('approval2.approve') && $form->status == 'Approved 1')
<button type="button" class="btn btn-success open-approve-modal" data-id="{{ route('forms.other.approve2', $form->id) }}">Approve 2</button>
<form action="{{ route('forms.other.reject', $form->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Are you sure you want to approve this item?');">
@csrf
@method('PUT')
<button type="submit" class="btn btn-danger">
Reject
</button>
</form>
<button type="button"
class="btn btn-danger open-reject-modal"
data-action="{{ route('forms.other.reject', $form->id) }}">
Reject
</button>
@elseif(auth()->user()->can('final_approval.approve') && $form->status == 'Approved 2')
<button type="button" class="btn btn-primary open-approve-modal" data-id="{{ route('forms.other.final-approve', $form->id) }}">Final Approve</button>
@endif
@@ -231,6 +227,35 @@
</div>
</div>
</section>
<section>
<div class="modal fade" id="rejectModal" tabindex="-1" role="dialog" aria-labelledby="rejectModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form id="rejectForm" method="POST" action="">
@csrf
@method('PUT')
<div class="modal-header">
<h5 class="modal-title" id="rejectModalLabel">Reject Expense</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="rejectRemarks">Remarks <span class="text-danger">*</span></label>
<textarea class="form-control" name="remarks" id="rejectRemarks" rows="3" required></textarea>
</div>
<p class="mb-0 text-muted small">Pengajuan akan ditolak setelah Anda mengirimkan catatan ini.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-danger">Reject</button>
</div>
</form>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
@@ -245,6 +270,22 @@
</script>
<script>
$(document).on('click', '.open-reject-modal', function () {
const rejectUrl = $(this).data('action');
$('#rejectForm').attr('action', rejectUrl);
$('#rejectRemarks').val('');
$('#rejectModal').modal('show');
});
$('#rejectModal').on('shown.bs.modal', function () {
$('#rejectRemarks').trigger('focus');
});
$('#rejectModal').on('hidden.bs.modal', function () {
$('#rejectForm').attr('action', '');
$('#rejectRemarks').val('');
});
// Handle Approve Button Click
$(document).on('click', '.open-approve-modal', function() {
const approveUrl = $(this).data('id');
@@ -22,10 +22,10 @@
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="row row-cols-1 row-cols-md-2 row-cols-xl-5 g-3">
<!-- Total Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-info">
<div class="col d-flex">
<div class="small-box bg-info flex-fill">
<div class="inner">
<h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3>
<p>Total Expense</p>
@@ -36,8 +36,8 @@
</div>
</div>
<!-- Approved Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-success">
<div class="col d-flex">
<div class="small-box bg-success flex-fill">
<div class="inner">
<h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3>
<p>Approved Expenses</p>
@@ -48,8 +48,8 @@
</div>
</div>
<!-- Pending Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-warning">
<div class="col d-flex">
<div class="small-box bg-warning flex-fill">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3>
<p class="text-white">Pending Expenses</p>
@@ -59,18 +59,31 @@
</div>
</div>
</div>
@if($availableBudget > 0)
<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>
<!-- Outstanding Expense -->
<div class="col d-flex">
<div class="small-box bg-danger flex-fill">
<div class="inner">
<h3>{{ $outstandingCount }}</h3>
<p>Outstanding Expenses</p>
<p class="mb-0"><small>Total Rp {{ number_format($outstandingTotal, 0, ',', '.') }}</small></p>
</div>
<div class="icon">
<i class="fas fa-exclamation-triangle"></i>
</div>
</div>
</div>
@if($availableBudget > 0)
<div class="col d-flex">
<div class="small-box bg-purple flex-fill">
<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>
@endif
</div>
</div>
@@ -22,10 +22,10 @@
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="row row-cols-1 row-cols-md-2 row-cols-xl-5 g-3">
<!-- Total Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-info">
<div class="col d-flex">
<div class="small-box bg-info flex-fill">
<div class="inner">
<h3>Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}</h3>
<p>Total Expense</p>
@@ -36,8 +36,8 @@
</div>
</div>
<!-- Approved Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-success">
<div class="col d-flex">
<div class="small-box bg-success flex-fill">
<div class="inner">
<h3>Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}</h3>
<p>Approved Expenses</p>
@@ -48,8 +48,8 @@
</div>
</div>
<!-- Pending Expense -->
<div class="col-6 {{ $availableBudget > 0 ? 'col-lg-3' : 'col-lg-4' }}">
<div class="small-box bg-warning">
<div class="col d-flex">
<div class="small-box bg-warning flex-fill">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}</h3>
<p class="text-white">Pending Expenses</p>
@@ -59,9 +59,22 @@
</div>
</div>
</div>
<!-- Outstanding Expense -->
<div class="col d-flex">
<div class="small-box bg-danger flex-fill">
<div class="inner">
<h3>{{ $outstandingCount }}</h3>
<p>Outstanding Expenses</p>
<p class="mb-0"><small>Total Rp {{ number_format($outstandingTotal, 0, ',', '.') }}</small></p>
</div>
<div class="icon">
<i class="fas fa-exclamation-triangle"></i>
</div>
</div>
</div>
@if($availableBudget > 0)
<div class="col-lg-3 col-6">
<div class="small-box bg-purple">
<div class="col d-flex">
<div class="small-box bg-purple flex-fill">
<div class="inner">
<h3 class="text-white">Rp {{ number_format($availableBudget, 0, ',', '.') }}</h3>
<p class="text-white">Available Budget</p>
@@ -84,40 +84,48 @@
@endforeach
<!-- cash in advance -->
<!-- Cash in Bank BCA -->
@php
$cashInBankValue = $pettyCashAmount - $totalKategori;
$rowIndex = $kategori->count() + 1;
@endphp
<tr>
<td>{{ $kategori->count() + 1 }}</td>
<td>Cash in Balance</td>
<td>170 600 00</td>
<td>@php
$crValue = $budget && $budget->amount != 0 ? $budget->amount : 0;
$crValue -= $totalDr ;
echo $crValue == 0 ? '' : number_format($crValue, 0, ',', ',');
@endphp</td>
<td>
</td>
<td>{{ $rowIndex }}</td>
<td>Cash in Bank BCA</td>
<td>{{ $kategori_bca->account_number }}</td>
@if ($cashInBankValue >= 0)
@php
$totalDr += $cashInBankValue;
@endphp
<td>{{ $cashInBankValue == 0 ? '' : number_format($cashInBankValue, 0, ',', ',') }}</td>
<td></td>
@else
@php
$totalCr += abs($cashInBankValue);
@endphp
<td></td>
<td>{{ number_format(abs($cashInBankValue), 0, ',', ',') }}</td>
@endif
</tr>
<!-- petty cash -->
<tr>
<td>{{ $kategori->count() + 1 }}</td>
<td>{{ $rowIndex + 1 }}</td>
<td>Petty Cash</td>
<td></td>
<td></td>
<td>
@php
$crValue = $budget && $budget->amount != 0 ? $budget->amount : 0;
$totalCr += $crValue;
echo $crValue == 0 ? '' : number_format($crValue, 0, ',', ',');
$totalCr += $pettyCashAmount;
echo $pettyCashAmount == 0 ? '' : number_format($pettyCashAmount, 0, ',', ',');
@endphp
</td>
</tr>
{{-- Static Rows --}}
<tr>
<td>{{ $kategori->count() + 2 }}</td>
<td>{{ $rowIndex + 2 }}</td>
<td>Cash Advance (Opening Balance)</td>
<td>{{ $kategori_bca->account_number }}</td>
<td></td>
@@ -130,7 +138,7 @@
</tr>
<tr>
<td>{{ $kategori->count() + 3 }}</td>
<td>{{ $rowIndex + 3 }}</td>
<td>Cash Advance (Ending Balance)</td>
<td>{{ $kategori_bca->account_number }}</td>
<td>