diff --git a/Http/Controllers/ReportController.php b/Http/Controllers/ReportController.php index 67e4d89..bc26898 100644 --- a/Http/Controllers/ReportController.php +++ b/Http/Controllers/ReportController.php @@ -60,160 +60,317 @@ public function laporan_debitur(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') - ->leftJoin('detail_pembayaran', 'hapus_buku.nomor_pinjaman', '=', 'detail_pembayaran.nomor_pinjaman') - ->where('tanggal_hapus_buku', '<=', request()->get('start_date')) - ->whereRelation('debitur', 'name', 'like', '%' . request()->get('debitur') . '%') - ->where('detail_pembayaran.deleted_at', null) - ->groupBy('hapus_buku.nomor_pinjaman', 'detail_pembayaran.tanggal_pembayaran') - ->get(); - } else { - $data = HapusBuku::with([ - 'branch', - 'debitur', - 'facility_type', - 'loan_type', - 'currency', - ]) - ->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') . '%') - ->where('detail_pembayaran.deleted_at', null) - ->groupBy('hapus_buku.nomor_pinjaman', 'detail_pembayaran.tanggal_pembayaran') - ->get(); + if (request()->get('jenis_laporan') == 'A1') { + 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') + ->leftJoin('detail_pembayaran', 'hapus_buku.nomor_pinjaman', '=', 'detail_pembayaran.nomor_pinjaman') + ->where('tanggal_hapus_buku', '<=', request()->get('start_date')) + ->whereRelation('debitur', 'name', 'like', '%' . request()->get('debitur') . '%') + ->where('detail_pembayaran.deleted_at', null) + ->groupBy('hapus_buku.nomor_pinjaman', 'detail_pembayaran.tanggal_pembayaran') + ->get(); + } else { + $data = HapusBuku::with([ + 'branch', + 'debitur', + 'facility_type', + 'loan_type', + 'currency', + ]) + ->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') . '%') + ->where('detail_pembayaran.deleted_at', null) + ->groupBy('hapus_buku.nomor_pinjaman', 'detail_pembayaran.tanggal_pembayaran') + ->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) { + if (isset($row->branch->kode) && isset($row->branch->name)) { + return $row->branch->kode . ' - ' . $row->branch->name; + } else { + return '-'; + } + })->editColumn('debitur', function ($row) { + if (isset($row->debitur->kode) && isset($row->debitur->name)) { + return $row->debitur->kode . ' - ' . $row->debitur->name; + } else { + return '-'; + } + })->editColumn('alamat', function ($row) { + if (isset($row->debitur->address)) { + return $row->debitur->address; + } else { + return '-'; + } + })->editColumn('facility_type', function ($row) { + if (isset($row->facility_type->kode) && isset($row->facility_type->name)) { + return $row->facility_type->kode . ' - ' . $row->facility_type->name; + } else { + return '-'; + } + })->editColumn('loan_type', function ($row) { + if (isset($row->loan_type->kode) && isset($row->loan_type->name)) { + return $row->loan_type->kode . ' - ' . $row->loan_type->name; + } else { + return '-'; + } + })->editColumn('nilai_plafond_awal', function ($row) { + return Number::currency($row->nilai_plafond_awal ?? 0, 'IDR', 'id_ID'); + })->editColumn('baki_debet', function ($row) { + return Number::currency($row->baki_debet ?? 0, 'IDR', 'id_ID'); + })->editColumn('jumlah_bunga', function ($row) { + return Number::currency($row->jumlah_bunga ?? 0, 'IDR', 'id_ID'); + })->editColumn('tagihan_lain', function ($row) { + return Number::currency($row->tagihan_lain ?? 0, 'IDR', 'id_ID'); + })->editColumn('bunga_intra', function ($row) { + return Number::currency($row->bunga_intra ?? 0, '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 ?? 0, 'IDR', 'id_ID'); + })->editColumn('total_kewajiban', function ($row) { + return Number::currency($row->total_kewajiban ?? 0, 'IDR', 'id_ID'); + })->editColumn('total_all_kewajiban', function ($row) { + return Number::currency($row->total_all_kewajiban ?? 0, '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(); + } else if (request()->get('jenis_laporan') == 'A2') { + 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') + ->leftJoin('detail_pembayaran', 'hapus_buku.nomor_pinjaman', '=', 'detail_pembayaran.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') . '%') + ->where('detail_pembayaran.deleted_at', null) + ->groupBy('hapus_buku.nomor_pinjaman', 'detail_pembayaran.tanggal_pembayaran') + ->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') + ->leftJoin('detail_pembayaran', 'hapus_buku.nomor_pinjaman', '=', 'detail_pembayaran.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') . '%') + ->where('detail_pembayaran.deleted_at', null) + ->groupBy('hapus_buku.nomor_pinjaman', 'detail_pembayaran.tanggal_pembayaran') + ->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) { + if (isset($row->branch->kode) && isset($row->branch->name)) { + return $row->branch->kode . ' - ' . $row->branch->name; + } else { + return '-'; + } + })->editColumn('debitur', function ($row) { + if (isset($row->debitur->kode) && isset($row->debitur->name)) { + return $row->debitur->kode . ' - ' . $row->debitur->name; + } else { + return '-'; + } + })->editColumn('alamat', function ($row) { + if (isset($row->debitur->address)) { + return $row->debitur->address; + } else { + return '-'; + } + })->editColumn('facility_type', function ($row) { + if (isset($row->facility_type->kode) && isset($row->facility_type->name)) { + return $row->facility_type->kode . ' - ' . $row->facility_type->name; + } else { + return '-'; + } + })->editColumn('loan_type', function ($row) { + if (isset($row->loan_type->kode) && isset($row->loan_type->name)) { + return $row->loan_type->kode . ' - ' . $row->loan_type->name; + } else { + return '-'; + } + })->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) { + return Number::currency($row->nilai_plafond_awal ?? 0, 'IDR', 'id_ID'); + })->editColumn('baki_debet', function ($row) { + return Number::currency($row->baki_debet ?? 0, 'IDR', 'id_ID'); + })->editColumn('jumlah_bunga', function ($row) { + return Number::currency($row->jumlah_bunga ?? 0, 'IDR', 'id_ID'); + })->editColumn('tagihan_lain', function ($row) { + return Number::currency($row->tagihan_lain ?? 0, 'IDR', 'id_ID'); + })->editColumn('bunga_intra', function ($row) { + return Number::currency($row->bunga_intra ?? 0, '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 ?? 0, 'IDR', 'id_ID'); + })->editColumn('total_kewajiban', function ($row) { + return Number::currency($row->total_kewajiban ?? 0, 'IDR', 'id_ID'); + })->editColumn('total_all_kewajiban', function ($row) { + return Number::currency($row->total_all_kewajiban ?? 0, '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(); } - - - 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) { - if (isset($row->branch->kode) && isset($row->branch->name)) { - return $row->branch->kode . ' - ' . $row->branch->name; - } else { - return '-'; - } - })->editColumn('debitur', function ($row) { - if (isset($row->debitur->kode) && isset($row->debitur->name)) { - return $row->debitur->kode . ' - ' . $row->debitur->name; - } else { - return '-'; - } - })->editColumn('alamat', function ($row) { - if (isset($row->debitur->address)) { - return $row->debitur->address; - } else { - return '-'; - } - })->editColumn('facility_type', function ($row) { - if (isset($row->facility_type->kode) && isset($row->facility_type->name)) { - return $row->facility_type->kode . ' - ' . $row->facility_type->name; - } else { - return '-'; - } - })->editColumn('loan_type', function ($row) { - if (isset($row->loan_type->kode) && isset($row->loan_type->name)) { - return $row->loan_type->kode . ' - ' . $row->loan_type->name; - } else { - return '-'; - } - })->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) { - return Number::currency($row->nilai_plafond_awal ?? 0, 'IDR', 'id_ID'); - })->editColumn('baki_debet', function ($row) { - return Number::currency($row->baki_debet ?? 0, 'IDR', 'id_ID'); - })->editColumn('jumlah_bunga', function ($row) { - return Number::currency($row->jumlah_bunga ?? 0, 'IDR', 'id_ID'); - })->editColumn('tagihan_lain', function ($row) { - return Number::currency($row->tagihan_lain ?? 0, 'IDR', 'id_ID'); - })->editColumn('bunga_intra', function ($row) { - return Number::currency($row->bunga_intra ?? 0, '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 ?? 0, 'IDR', 'id_ID'); - })->editColumn('total_kewajiban', function ($row) { - return Number::currency($row->total_kewajiban ?? 0, 'IDR', 'id_ID'); - })->editColumn('total_all_kewajiban', function ($row) { - return Number::currency($row->total_all_kewajiban ?? 0, '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' - ]; + if ($request->jenis_laporan == 'A1') { + $breadcrumb = [ + 'title' => 'Laporan Outstanding Debitur Hapus Buku', + 'link' => 'laporan.debitur' + ]; - $start_date = request()->get('start_date'); - $month = date('m', strtotime($start_date)); - $year = date('Y', strtotime($start_date)); + $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'), - ]; + $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')); + } else if ($request->jenis_laporan == 'A2') { + $breadcrumb = [ + 'title' => 'Laporan Daftar Debitur Hapus Buku', + 'link' => 'laporan.debitur' + ]; + + $periode = $request->get('periode'); + $month = date('m', strtotime($periode)); + $year = date('Y', strtotime($periode)); + + $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 ?? '%', + 'bulan' => $month ?? Carbon::now()->format('m'), + 'tahun' => $year ?? Carbon::now()->format('Y'), + ]; + + $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'), + Column::make('nomor_jaminan')->title('Nomor Jaminan'), + Column::make('guarantee_type')->title('Jenis Jaminan'), + Column::make('nilai_jaminan')->title('Nilai Jaminan'), + ]) + ->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')); + } - $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) diff --git a/Resources/views/partials/menu/_app.blade.php b/Resources/views/partials/menu/_app.blade.php index f7c1ac4..170aa1a 100644 --- a/Resources/views/partials/menu/_app.blade.php +++ b/Resources/views/partials/menu/_app.blade.php @@ -181,7 +181,7 @@ @endcanany @canany(['report.read','report.create','report.update','report.delete']) -