diff --git a/Http/Controllers/ReportController.php b/Http/Controllers/ReportController.php index 6599f2d..10049d7 100644 --- a/Http/Controllers/ReportController.php +++ b/Http/Controllers/ReportController.php @@ -9,9 +9,11 @@ use Illuminate\Support\Number; use Modules\Writeoff\Entities\Branch; use Modules\Writeoff\Entities\DetailSubrogasiJamkrindo; + use Modules\Writeoff\Entities\FacilityType; use Modules\Writeoff\Entities\GuaranteeType; use Modules\Writeoff\Entities\HapusBuku; use Modules\Writeoff\Entities\KlaimJamkrindo; + use Modules\Writeoff\Entities\LoanType; use Modules\Writeoff\Entities\SubrogasiJamkrindo; use Yajra\DataTables\Facades\DataTables; use Yajra\DataTables\Html\Builder; @@ -34,6 +36,15 @@ return view('writeoff::report.index'); } + public function debitur() + { + $branches = Branch::all(); + $loanTypes = LoanType::all(); + $facilityTypes = FacilityType::all(); + + return view('writeoff::report.debitur', compact('branches', 'loanTypes', 'facilityTypes')); + } + public function penagihan() { $branches = Branch::all(); @@ -46,7 +57,7 @@ return view('writeoff::report.subrogasi', compact('branches')); } - public function laporan_penagihan(Builder $builder, Request $request) + public function laporan_debitur(Builder $builder, Request $request) { if (request()->ajax()) { if (request()->get('kode_cabang') == 'all') { @@ -56,12 +67,10 @@ 'facility_type', 'loan_type', 'currency', - ])->select('hapus_buku.*','detail_pembayaran.tanggal_pembayaran','detail_pembayaran.nominal','detail_jaminan.guarantee_type_id','detail_jaminan.nomor_jaminan','detail_jaminan.nilai_jaminan','detail_penagihan.tanggal_penagihan','detail_penagihan.pic_penagihan','detail_penagihan.tindakan','detail_penagihan.informasi_lku','detail_penagihan.proses_hukum','detail_penagihan.komitmen_debitur') + ]) + ->select('hapus_buku.*', 'detail_pembayaran.tanggal_pembayaran', 'detail_pembayaran.nominal') ->leftJoin('detail_pembayaran', 'hapus_buku.nomor_pinjaman', '=', 'detail_pembayaran.nomor_pinjaman') - ->leftJoin('detail_penagihan', 'hapus_buku.nomor_pinjaman', '=', 'detail_penagihan.nomor_pinjaman') - ->leftJoin('detail_jaminan', 'hapus_buku.nomor_pinjaman', '=', 'detail_jaminan.nomor_pinjaman') - ->whereMonth('tanggal_hapus_buku','<=', request()->get('bulan')) - ->whereYear('tanggal_hapus_buku','<=', request()->get('tahun')) + ->where('tanggal_hapus_buku', '<=', request()->get('start_date')) ->whereRelation('debitur', 'name', 'like', '%' . request()->get('debitur') . '%') ->get(); } else { @@ -71,12 +80,10 @@ 'facility_type', 'loan_type', 'currency', - ])->select('hapus_buku.*','detail_pembayaran.tanggal_pembayaran','detail_pembayaran.nominal','detail_jaminan.guarantee_type_id','detail_jaminan.nomor_jaminan','detail_jaminan.nilai_jaminan','detail_penagihan.tanggal_penagihan','detail_penagihan.pic_penagihan','detail_penagihan.tindakan','detail_penagihan.informasi_lku','detail_penagihan.proses_hukum','detail_penagihan.komitmen_debitur') - ->leftJoin('detail_pembayaran', 'hapus_buku.nomor_pinjaman', '=', 'detail_pembayaran.nomor_pinjaman') - ->leftJoin('detail_penagihan', 'hapus_buku.nomor_pinjaman', '=', 'detail_penagihan.nomor_pinjaman') - ->leftJoin('detail_jaminan', 'hapus_buku.nomor_pinjaman', '=', 'detail_jaminan.nomor_pinjaman') - ->whereMonth('tanggal_hapus_buku','<=', request()->get('bulan')) - ->whereYear('tanggal_hapus_buku','<=', request()->get('tahun')) + ]) + ->select('hapus_buku.*', 'detail_pembayaran.tanggal_pembayaran', 'detail_pembayaran.nominal') + ->leftJoin('detail_pembayaran', 'hapus_buku.nomor_pinjaman', '=', 'detail_pembayaran.nomor_pinjaman') + ->where('tanggal_hapus_buku', '<=', request()->get('start_date')) ->where('kode_cabang', request()->get('kode_cabang')) ->whereRelation('debitur', 'name', 'like', request()->get('debitur')) ->get(); @@ -97,10 +104,151 @@ })->editColumn('loan_type', function ($row) { return $row->loan_type->kode . ' - ' . $row->loan_type->name; })->editColumn('guarantee_type', function ($row) { - $guarantee = GuaranteeType::where('id',$row->guarantee_type_id)->first(); - if(isset($guarantee->id)) { + $guarantee = GuaranteeType::where('id', $row->guarantee_type_id)->first(); + if (isset($guarantee->id)) { return $guarantee->kode . ' - ' . $guarantee->name; - }else { + } else { + return '-'; + } + })->editColumn('nilai_plafond_awal', function ($row) { + return Number::currency($row->nilai_plafond_awal, 'IDR', 'id_ID'); + })->editColumn('baki_debet', function ($row) { + return Number::currency($row->baki_debet, 'IDR', 'id_ID'); + })->editColumn('jumlah_bunga', function ($row) { + return Number::currency($row->jumlah_bunga, 'IDR', 'id_ID'); + })->editColumn('tagihan_lain', function ($row) { + return Number::currency($row->tagihan_lain, 'IDR', 'id_ID'); + })->editColumn('bunga_intra', function ($row) { + return Number::currency($row->bunga_intra, 'IDR', 'id_ID'); + })->editColumn('bunga_ekstra', function ($row) { + return Number::currency($row->bunga_ekstra ?? 0, 'IDR', 'id_ID'); + })->editColumn('jumlah_kewajiban_lain', function ($row) { + return Number::currency($row->jumlah_kewajiban_lain, 'IDR', 'id_ID'); + })->editColumn('total_kewajiban', function ($row) { + return Number::currency($row->total_kewajiban, 'IDR', 'id_ID'); + })->editColumn('total_all_kewajiban', function ($row) { + return Number::currency($row->total_all_kewajiban, 'IDR', 'id_ID'); + })->editColumn('nominal', function ($row) { + return Number::currency($row->nominal ?? 0, 'IDR', 'id_ID'); + })->editColumn('sisa_kewajiban', function ($row) { + $sisa = $row->total_all_kewajiban - $row->nominal; + return Number::currency($row->sisa ?? 0, 'IDR', 'id_ID'); + })->addIndexColumn()->toJson(); + } + + $breadcrumb = [ + 'title' => 'Laporan Outstanding Debitur Hapus Buku', + 'link' => 'laporan.penagihan' + ]; + + $start_date = request()->get('start_date'); + $month = date('m', strtotime($start_date)); + $year = date('Y', strtotime($start_date)); + + $req = [ + 'jenis_laporan' => $request->jenis_laporan, + 'kode_cabang' => request()->get('kode_cabang'), + 'jenis_pinjaman' => $request->jenis_pinjaman, + 'jenis_fasilitas' => $request->jenis_fasilitas, + 'debitur' => $request->debitur ?? '%', + 'start_date' => $request->start_date ?? Carbon::now()->format('Y-m-d'), + ]; + + $dataTable = $builder->columns([ + Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), + Column::make('nomor_pinjaman')->title('Nomor Pinjaman'), + Column::make('tanggal_hapus_buku')->title('Tanggal Hapus Buku'), + Column::make('branch')->title('Cabang'), + Column::make('debitur')->title('Debitur'), + Column::make('facility_type')->title('Jenis Fasilitas'), + Column::make('nomor_fasilitas')->title('Nomor Fasilitas'), + Column::make('loan_type')->title('Jenis Pinjaman'), + Column::make('nilai_plafond_awal')->title('Plafond Awal'), + Column::make('suku_bunga')->title('Suku Bunga'), + Column::make('baki_debet')->title('Baki Debet'), + Column::make('jumlah_bunga')->title('Jumlah Bunga'), + Column::make('jumlah_kewajiban_lain')->title('Kewajiban Lain'), + Column::make('total_kewajiban')->title('Total Kewajiban'), + Column::make('bunga_intra')->title('Bunga Intra'), + Column::make('bunga_ekstra')->title('Bunga Ekstra'), + Column::make('tagihan_lain')->title('Kewajiban Lainnya'), + Column::make('total_all_kewajiban')->title('Total Semua Kewajiban'), + Column::make('tanggal_pembayaran')->title('Tanggal Bayar'), + Column::make('nominal')->title('Nominal Bayar'), + Column::make('sisa_kewajiban')->title('Sisa Kewajiban') + ]) + ->parameters([ + 'scrollX' => false, + 'drawCallback' => 'function() { KTMenu.createInstances(); }', + ]) + ->addTableClass('align-middle table-row-dashed fs-6 gy-5') + ->setTableId('laporan-table') + ->minifiedAjax(request()->url(), null, $req) + ->stateSave(false) + ->responsive() + ->autoWidth(true) + ->orderBy(0); + + return view('writeoff::report.laporan_debitur', compact('dataTable', 'breadcrumb')); + } + + public function laporan_penagihan(Builder $builder, Request $request) + { + if (request()->ajax()) { + if (request()->get('kode_cabang') == 'all') { + $data = HapusBuku::with([ + 'branch', + 'debitur', + 'facility_type', + 'loan_type', + 'currency', + ]) + ->select('hapus_buku.*', 'detail_pembayaran.tanggal_pembayaran', 'detail_pembayaran.nominal', 'detail_jaminan.guarantee_type_id', 'detail_jaminan.nomor_jaminan', 'detail_jaminan.nilai_jaminan', 'detail_penagihan.tanggal_penagihan', 'detail_penagihan.pic_penagihan', 'detail_penagihan.tindakan', 'detail_penagihan.informasi_lku', 'detail_penagihan.proses_hukum', 'detail_penagihan.komitmen_debitur') + ->leftJoin('detail_pembayaran', 'hapus_buku.nomor_pinjaman', '=', 'detail_pembayaran.nomor_pinjaman') + ->leftJoin('detail_penagihan', 'hapus_buku.nomor_pinjaman', '=', 'detail_penagihan.nomor_pinjaman') + ->leftJoin('detail_jaminan', 'hapus_buku.nomor_pinjaman', '=', 'detail_jaminan.nomor_pinjaman') + ->whereMonth('tanggal_hapus_buku', '<=', request()->get('bulan')) + ->whereYear('tanggal_hapus_buku', '<=', request()->get('tahun')) + ->whereRelation('debitur', 'name', 'like', '%' . request()->get('debitur') . '%') + ->get(); + } else { + $data = HapusBuku::with([ + 'branch', + 'debitur', + 'facility_type', + 'loan_type', + 'currency', + ]) + ->select('hapus_buku.*', 'detail_pembayaran.tanggal_pembayaran', 'detail_pembayaran.nominal', 'detail_jaminan.guarantee_type_id', 'detail_jaminan.nomor_jaminan', 'detail_jaminan.nilai_jaminan', 'detail_penagihan.tanggal_penagihan', 'detail_penagihan.pic_penagihan', 'detail_penagihan.tindakan', 'detail_penagihan.informasi_lku', 'detail_penagihan.proses_hukum', 'detail_penagihan.komitmen_debitur') + ->leftJoin('detail_pembayaran', 'hapus_buku.nomor_pinjaman', '=', 'detail_pembayaran.nomor_pinjaman') + ->leftJoin('detail_penagihan', 'hapus_buku.nomor_pinjaman', '=', 'detail_penagihan.nomor_pinjaman') + ->leftJoin('detail_jaminan', 'hapus_buku.nomor_pinjaman', '=', 'detail_jaminan.nomor_pinjaman') + ->whereMonth('tanggal_hapus_buku', '<=', request()->get('bulan')) + ->whereYear('tanggal_hapus_buku', '<=', request()->get('tahun')) + ->where('kode_cabang', request()->get('kode_cabang')) + ->whereRelation('debitur', 'name', 'like', request()->get('debitur')) + ->get(); + } + + + return DataTables::of($data)->editColumn('tanggal_hapus_buku', function ($row) { + $date = Carbon::create($row->tanggal_hapus_buku); + return $date->locale('id')->translatedFormat('d F Y'); + })->editColumn('branch', function ($row) { + return $row->branch->kode . ' - ' . $row->branch->name; + })->editColumn('debitur', function ($row) { + return $row->debitur->kode . ' - ' . $row->debitur->name; + })->editColumn('alamat', function ($row) { + return $row->debitur->address; + })->editColumn('facility_type', function ($row) { + return $row->facility_type->kode . ' - ' . $row->facility_type->name; + })->editColumn('loan_type', function ($row) { + return $row->loan_type->kode . ' - ' . $row->loan_type->name; + })->editColumn('guarantee_type', function ($row) { + $guarantee = GuaranteeType::where('id', $row->guarantee_type_id)->first(); + if (isset($guarantee->id)) { + return $guarantee->kode . ' - ' . $guarantee->name; + } else { return '-'; } })->editColumn('nilai_plafond_awal', function ($row) { diff --git a/Resources/views/report/debitur.blade.php b/Resources/views/report/debitur.blade.php new file mode 100644 index 0000000..e269956 --- /dev/null +++ b/Resources/views/report/debitur.blade.php @@ -0,0 +1,139 @@ + + + @section('title') + Laporan Debitur Hapus Buku dan AYDA + @endsection + + @section('breadcrumbs') + {{ Breadcrumbs::render('laporan.debitur') }} + @endsection + +
+ +
+
+ @csrf + + +
+ +
+ + + + + + @error('jenis_laporan') + {{ $message }} @enderror +
+
+
+
+ +
+ + + + + + @error('kode_cabang') + {{ $message }} @enderror +
+
+ +
+ +
+ + + + + + @error('jenis_pinjaman') + {{ $message }} @enderror +
+
+ +
+ +
+ + + + + + @error('jenis_fasilitas') + {{ $message }} @enderror +
+
+ +
+ +
+ + + + + + @error('debitur') + {{ $message }} @enderror +
+
+ +
+ +
+ + + + + + @error('start_date') + {{ $message }} @enderror +
+
+ +
+ + +
+ +
+
+
+ +
+ + @push('scripts') + + @endpush +
diff --git a/Resources/views/report/laporan_debitur.blade.php b/Resources/views/report/laporan_debitur.blade.php new file mode 100644 index 0000000..8747bbe --- /dev/null +++ b/Resources/views/report/laporan_debitur.blade.php @@ -0,0 +1,141 @@ + + @section('title') + {{ $breadcrumb['title'] }} + @endsection + + @section('breadcrumbs') + {{ Breadcrumbs::render('laporan.penagihan') }} + @endsection + +
+ +
+ +
+
+ + + +
+ +
+ + + + + + +
+ +
+ +
+ +
+ + + +
+ +
+ {{ $dataTable->table() }} +
+ +
+ +
+ + @push('scripts') + {{ $dataTable->scripts() }} + + @endpush + +
diff --git a/Resources/views/report/laporan_penagihan.blade.php b/Resources/views/report/laporan_penagihan.blade.php index 79c1ace..8747bbe 100644 --- a/Resources/views/report/laporan_penagihan.blade.php +++ b/Resources/views/report/laporan_penagihan.blade.php @@ -92,7 +92,7 @@