Merged in feature/saringan-gadaian (pull request #138)

Add laporan gadai, tgb lelong, tgb biasa
This commit is contained in:
nur amirah zulkipli
2025-12-14 09:06:10 +00:00
4 changed files with 276 additions and 66 deletions
+52 -31
View File
@@ -19,42 +19,63 @@ class GadaianDetailExport implements FromView
$this->endDate = $endDate;
}
public function view(): View
{
$hostname = config('api.url');
$gadaian = Http::get($hostname . '/api/reports/saringan/gadaian', [
'startDate' => $this->startDate,
'endDate' => $this->endDate,
])->json();
public function view(): View
{
$generatedAt = now()->format('d-m-Y');
$branch = collect($gadaian)->firstWhere('kodcaw', $this->kodcaw);
$data = Http::get(config('api.url') . '/api/reports/saringan/gadaian', [
'startDate' => $this->startDate,
'endDate' => $this->endDate,
])->json();
$details = collect($branch['details'] ?? [])
->sort(function ($a, $b) {
$aTag = isset($a['taglel_lama']) && $a['taglel_lama'] == 1 ? 0 : 1;
$bTag = isset($b['taglel_lama']) && $b['taglel_lama'] == 1 ? 0 : 1;
$branch = collect($data)->firstWhere('kodcaw', $this->kodcaw);
$details = collect($branch['details'] ?? []);
if ($aTag !== $bTag) {
return $aTag <=> $bTag;
}
$tgb_lelong = $details->where('jenis', 'TGB_LELONG')->values();
$tgb_biasa = $details->where('jenis', 'TGB_BIASA')->values();
$gadai_biasa = $details->where('jenis', 'GADAI_BIASA')->values();
return ($a['t_gadai'] ?? '') <=> ($b['t_gadai'] ?? '');
})
->values()
->all();
$subtotal = [
'tgb_lelong' => [
'berat' => $tgb_lelong->sum('berat'),
'nilai' => $tgb_lelong->sum('nilaimarhun'),
'pinjaman' => $tgb_lelong->sum('pinjaman'),
],
'tgb_biasa' => [
'berat' => $tgb_biasa->sum('berat'),
'nilai' => $tgb_biasa->sum('nilaimarhun'),
'pinjaman' => $tgb_biasa->sum('pinjaman'),
],
'gadai_biasa' => [
'berat' => $gadai_biasa->sum('berat'),
'nilai' => $gadai_biasa->sum('nilaimarhun'),
'pinjaman' => $gadai_biasa->sum('pinjaman'),
],
];
$grandTotal = [
'berat' => $subtotal['tgb_lelong']['berat']
+ $subtotal['tgb_biasa']['berat']
+ $subtotal['gadai_biasa']['berat'],
$total_berat = collect($details)->sum('berat');
$total_nm = collect($details)->sum('nilaimarhun');
$total_pinjam = collect($details)->sum('pinjaman');
'nilai' => $subtotal['tgb_lelong']['nilai']
+ $subtotal['tgb_biasa']['nilai']
+ $subtotal['gadai_biasa']['nilai'],
'pinjaman' => $subtotal['tgb_lelong']['pinjaman']
+ $subtotal['tgb_biasa']['pinjaman']
+ $subtotal['gadai_biasa']['pinjaman'],
];
return view('reports.saringan-gadaian.excel', compact(
'branch',
'generatedAt',
'tgb_lelong',
'tgb_biasa',
'gadai_biasa',
'subtotal',
'grandTotal'
));
}
return view('reports.saringan-gadaian.excel', compact(
'details',
'total_berat',
'total_nm',
'total_pinjam',
'branch'
));
}
}
@@ -35,15 +35,18 @@ class SaringanGadaianController extends Controller
public function exportExcel(Request $request, $kodcaw)
{
$startDate = $request->startDate ?? now()->startOfMonth()->toDateString();
$endDate = $request->endDate ?? now()->endOfMonth()->toDateString();
$fileName = "Saringan_Gadaian_{$kodcaw}_{$startDate}_to_{$endDate}.xlsx";
return Excel::download(new GadaianDetailExport($kodcaw, $startDate, $endDate), $fileName);
return Excel::download(
new GadaianDetailExport(
$kodcaw,
$request->startDate,
$request->endDate
),
"Saringan_Gadaian_{$kodcaw}.xlsx"
);
}
/**
* Show the form for creating a new resource.
*
@@ -1,6 +1,32 @@
<table>
<tr>
<td colspan="9" style="font-weight:bold; font-size:16px; text-align:center;">
LAPORAN SARINGAN PEMBIAYAAN
</td>
</tr>
<tr>
<td colspan="9" style="text-align:center;">
Cawangan : {{ $branch['details_caw'] ?? '-' }} ({{ $branch['kodcaw'] ?? '-' }})
</td>
</tr>
<tr>
<td colspan="9" style="text-align:center;">
Tempoh : {{ request()->startDate }} hingga {{ request()->endDate }}
</td>
</tr>
<tr>
<td colspan="9" style="text-align:center;">
Tarikh Dijana : {{ $generatedAt }}
</td>
</tr>
</table>
<br>
<table border="1">
<thead>
<tr>
<tr style="font-weight:bold; background:#f3f3f3;">
<th>Bil</th>
<th>No Rujukan Tebus</th>
<th>No Rujukan Gadai Balik</th>
@@ -12,28 +38,139 @@
<th>Tarikh Gadai</th>
</tr>
</thead>
<tbody>
@foreach ($details as $i => $item)
{{-- ================= TGB LELONG ================= --}}
<tr>
<td colspan="9" style="font-weight:bold;">TGB LELONG</td>
</tr>
@php
$bil = 1;
$subBerat = $subNM = $subPinjam = 0;
@endphp
@foreach ($tgb_lelong as $item)
<tr>
<td>{{ $i + 1 }}</td>
<td>{{ $item['norujukan_tebus'] }}</td>
<td>{{ $item['norujukan_gadai_balik'] }}</td>
<td>{{ $item['nokp'] }}</td>
<td>{{ number_format($item['berat'], 2) }}</td>
<td>{{ number_format($item['nilaimarhun'], 2) }}</td>
<td>{{ number_format($item['pinjaman'], 2) }}</td>
<td>{{ isset($item['taglel_lama']) && $item['taglel_lama'] == 1 ? 'Ya' : 'Tidak' }}</td>
<td>{{ $item['t_gadai'] }}</td>
<td>{{ $bil++ }}</td>
<td>{{ $item['norujukan_tebus'] ?? null }}</td>
<td>{{ $item['norujukan_gadai_balik'] ?? null }}</td>
<td>{{ $item['nokp'] ?? null }}</td>
<td>{{ $item['berat'] ?? 0 }}</td>
<td>{{ $item['nilaimarhun'] ?? 0 }}</td>
<td>{{ $item['pinjaman'] ?? 0 }}</td>
<td>Ya</td>
<td>{{ $item['t_gadai'] ?? null }}</td>
</tr>
@php
$subBerat += $item['berat'] ?? 0;
$subNM += $item['nilaimarhun'] ?? 0;
$subPinjam += $item['pinjaman'] ?? 0;
@endphp
@endforeach
<!-- Total Row -->
<tr>
<td colspan="4" style="font-weight:bold;">Jumlah Keseluruhan</td>
<td>{{ number_format($total_berat, 2) }}</td>
<td>{{ number_format($total_nm, 2) }}</td>
<td>{{ number_format($total_pinjam, 2) }}</td>
<td></td>
<tr style="font-weight:bold;">
<td colspan="4">Subtotal</td>
<td>{{ number_format($subBerat, 2) }}</td>
<td>{{ number_format($subNM, 2) }}</td>
<td>{{ number_format($subPinjam, 2) }}</td>
<td colspan="2"></td>
</tr>
{{-- ================= TGB BIASA ================= --}}
<tr>
<td colspan="9" style="font-weight:bold;">TGB BIASA</td>
</tr>
@php
$bil = 1;
$subBerat = $subNM = $subPinjam = 0;
@endphp
@foreach ($tgb_biasa as $item)
<tr>
<td>{{ $bil++ }}</td>
<td>{{ $item['norujukan_tebus'] ?? null }}</td>
<td>{{ $item['norujukan_gadai_balik'] ?? null }}</td>
<td>{{ $item['nokp'] ?? null }}</td>
<td>{{ $item['berat'] ?? 0 }}</td>
<td>{{ $item['nilaimarhun'] ?? 0 }}</td>
<td>{{ $item['pinjaman'] ?? 0 }}</td>
<td>Tidak</td>
<td>{{ $item['t_gadai'] ?? null }}</td>
</tr>
@php
$subBerat += $item['berat'] ?? 0;
$subNM += $item['nilaimarhun'] ?? 0;
$subPinjam += $item['pinjaman'] ?? 0;
@endphp
@endforeach
<tr style="font-weight:bold;">
<td colspan="4">Subtotal</td>
<td>{{ number_format($subBerat, 2) }}</td>
<td>{{ number_format($subNM, 2) }}</td>
<td>{{ number_format($subPinjam, 2) }}</td>
<td colspan="2"></td>
</tr>
{{-- ================= GADAI BIASA ================= --}}
<tr>
<td colspan="9" style="font-weight:bold;">GADAI BIASA</td>
</tr>
@php
$bil = 1;
$subBerat = $subNM = $subPinjam = 0;
@endphp
@foreach ($gadai_biasa as $item)
<tr>
<td>{{ $bil++ }}</td>
<td></td>
<td>{{ $item['norujukan_gadai_balik'] ?? null }}</td>
<td>{{ $item['nokp'] ?? null }}</td>
<td>{{ $item['berat'] ?? 0 }}</td>
<td>{{ $item['nilaimarhun'] ?? 0 }}</td>
<td>{{ $item['pinjaman'] ?? 0 }}</td>
<td></td>
<td>{{ $item['t_gadai'] ?? null }}</td>
</tr>
@php
$subBerat += $item['berat'] ?? 0;
$subNM += $item['nilaimarhun'] ?? 0;
$subPinjam += $item['pinjaman'] ?? 0;
@endphp
@endforeach
<tr style="font-weight:bold;">
<td colspan="4">Subtotal</td>
<td>{{ number_format($subBerat, 2) }}</td>
<td>{{ number_format($subNM, 2) }}</td>
<td>{{ number_format($subPinjam, 2) }}</td>
<td colspan="2"></td>
</tr>
</tbody>
</table>
<tr>
<td colspan="4" style="font-weight:bold; background:#eee;">
JUMLAH KESELURUHAN
</td>
<td style="font-weight:bold;">
{{ number_format($grandTotal['berat'], 2) }}
</td>
<td style="font-weight:bold;">
{{ number_format($grandTotal['nilai'], 2) }}
</td>
<td style="font-weight:bold;">
{{ number_format($grandTotal['pinjaman'], 2) }}
</td>
<td colspan="2"></td>
</tr>
@@ -9,7 +9,8 @@
<breadcrumb
:items="[{ 'title': 'Laporan Keseluruhan', 'icon': 'fas fa-users', 'url': '{{ route('reports') }}' },
{ 'title': 'Gadaian', 'icon': 'fas fa-users' }]">
{ 'title': 'Gadaian', 'icon': 'fas fa-users' }
]">
</breadcrumb>
<div class="container">
@@ -17,7 +18,8 @@
<div class="xl:w-2/3 2xl:w-1/2 p-8 mx-auto">
<div class="bg-yellow-600 text-gray-200 text-lg px-6 py-4 rounded-t-lg"><a href="/reports"
class="router-link-active"><i class="fas fa-backspace text-white"></i></a> <span
class="text-center mx-auto text-white font-bold">Laporan Saringan Pembiayaan</span></div>
class="text-center mx-auto text-white font-bold">Laporan Saringan Pembiayaan</span>
</div>
<form method="get" id="formgadaian" action="{{ route('reports.saringan-gadaian.index') }}">
<div class="rounded bg-white shadow p-6">
<div class="pb-6"><label for="username"
@@ -78,8 +80,25 @@
</th>
<th
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
Bil Pembiayaan
Jumlah Surat
</th>
<th
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
TGB Lelong
</th>
<th
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
TGB Biasa
</th>
<th
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
Gadai Biasa
</th>
<th
class="px-5 py-3 border-b-2 border-gray-200 bg-gray-100 text-left text-xs font-semibold text-gray-600 uppercase tracking-wider">
Berat (g)
@@ -100,7 +119,10 @@
</thead>
@php
$totalbilgadai = 0;
$totalbilgadai = 0; // jumlah semua surat
$total_tgb_lelong = 0;
$total_tgb_biasa = 0;
$total_gadai_biasa = 0;
$totalberat = 0;
$totalnm = 0;
$totalpinjaman = 0;
@@ -109,10 +131,18 @@
<tbody>
@forelse ($gadaian as $gadai)
@php
$totalbilgadai += $gadai['total_gadai_balik'];
$totalberat += $gadai['sum_berat'];
$totalnm += $gadai['sum_nilai_marhun'];
$totalpinjaman += $gadai['sum_pinjaman'];
// Jumlah semua surat
$totalbilgadai += $gadai['jumlah_surat'] ?? 0;
// Jumlah per kategori
$total_tgb_lelong += $gadai['total_tgb_lelong'] ?? 0;
$total_tgb_biasa += $gadai['total_tgb_biasa'] ?? 0;
$total_gadai_biasa += $gadai['total_gadai_biasa'] ?? 0;
// Jumlah nilai
$totalberat += $gadai['sum_berat'] ?? 0;
$totalnm += $gadai['sum_nilai_marhun'] ?? 0;
$totalpinjaman += $gadai['sum_pinjaman'] ?? 0;
@endphp
<tr>
@@ -126,7 +156,16 @@
<div class="ml-3">{{ $gadai['details_caw'] }}</div>
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
<div class="ml-3">{{ $gadai['total_gadai_balik'] }}</div>
<div class="ml-3">{{ $gadai['jumlah_surat'] }}</div>
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
<div class="ml-3">{{ $gadai['total_tgb_lelong'] }}</div>
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
<div class="ml-3">{{ $gadai['total_tgb_biasa'] }}</div>
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
<div class="ml-3">{{ $gadai['total_gadai_biasa'] }}</div>
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
<div class="ml-3">{{ number_format($gadai['sum_berat'], 2) }}</div>
@@ -149,7 +188,7 @@
</tr>
@empty
<tr>
<td colspan="8"
<td colspan="11"
class="px-5 py-5 border-b border-gray-200 bg-white text-sm text-center">
Data not available
</td>
@@ -163,6 +202,15 @@
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
{{ $totalbilgadai }}
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
{{ $total_tgb_lelong }}
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
{{ $total_tgb_biasa }}
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
{{ $total_gadai_biasa }}
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
{{ number_format($totalberat, 2) }}
</td>
@@ -172,9 +220,10 @@
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm">
{{ number_format($totalpinjaman, 2) }}
</td>
<td class="px-5 py-5 border-b border-gray-200 bg-white text-sm"></td>
<td></td>
</tr>
</tbody>
</table>
</div>