middleware(function ($request, $next) { $this->user = Auth::guard('web')->user(); return $next($request); }); } public function index() { 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(); return view('writeoff::report.penagihan', compact('branches')); } public function subrogasi() { $branches = Branch::all(); return view('writeoff::report.subrogasi', compact('branches')); } public function laporan_debitur(Builder $builder, Request $request) { if (request()->ajax()) { 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(); } } 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)); $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')); } } 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') . '%') ->where('detail_penagihan.deleted_at', null) ->where('detail_pembayaran.deleted_at', null) ->where('detail_jaminan.deleted_at', null) ->groupBy('hapus_buku.nomor_pinjaman', 'detail_penagihan.pic_penagihan', 'detail_penagihan.tanggal_penagihan') ->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') . '%') ->where('detail_penagihan.deleted_at', null) ->where('detail_pembayaran.deleted_at', null) ->where('detail_jaminan.deleted_at', null) ->groupBy('hapus_buku.nomor_pinjaman', 'detail_penagihan.pic_penagihan', 'detail_penagihan.tanggal_penagihan') ->get(); } //echo json_encode($data);exit; 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, '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('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'); })->addIndexColumn()->toJson(); } $breadcrumb = [ 'title' => 'Laporan Catatan Penagihan Debitur Hapus Buku dan AYDA', 'link' => 'laporan.penagihan' ]; $start_date = request()->get('periode'); $month = date('m', strtotime($start_date)); $year = date('Y', strtotime($start_date)); $req = [ 'jenis_laporan' => $request->jenis_laporan, 'kode_cabang' => request()->get('kode_cabang'), 'debitur' => $request->debitur ?? '%', 'bulan' => $month, 'tahun' => $year ]; $dataTable = $builder->columns([ Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), Column::make('nomor_pinjaman')->title('Nomor Pinjaman'), Column::make('debitur')->title('Debitur'), Column::make('alamat')->title('Alamat'), Column::make('branch')->title('Cabang'), Column::make('facility_type')->title('Jenis Fasilitas'), Column::make('nomor_fasilitas')->title('Nomor Fasilitas'), Column::make('loan_type')->title('Jenis Pinjaman'), Column::make('currency.kode')->title('Mata Uang'), Column::make('baki_debet')->title('Baki Debet'), Column::make('jumlah_bunga')->title('Jumlah Bunga'), Column::make('jumlah_kewajiban_lain')->title('Jumlah Kewajiban Lain'), Column::make('total_kewajiban')->title('Total Kewajiban'), Column::make('tanggal_pembayaran')->title('Tanggal Bayar'), Column::make('nominal')->title('Nominal Bayar'), Column::make('nomor_jaminan')->title('Nomor Jaminan'), Column::make('guarantee_type')->title('Jenis Jaminan'), Column::make('nilai_jaminan')->title('Nilai Jaminan'), Column::make('tanggal_penagihan')->title('Tanggal Penagihan'), Column::make('pic_penagihan')->title('PIC Penagihan'), Column::make('tindakan')->title('Tindakan'), Column::make('informasi_lku')->title('Informasi IKU'), Column::make('proses_hukum')->title('Proses Hukum'), Column::make('komitmen_debitur')->title('Komitmen Debitur') ]) ->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_penagihan', compact('dataTable', 'breadcrumb')); } public function laporan_subrogasi(Builder $builder, Request $request) { if (request()->ajax()) { if (request()->get('jenis_laporan') == 'C1') { $klaimJamkrindo = KlaimJamkrindo::whereBetween('tanggal_rtgs_masuk', [ request()->get('start_date'), request()->get('end_date') ])->get(); return DataTables::of($klaimJamkrindo)->editColumn('tanggal_rtgs_masuk', function ($row) { return $row->updated_at->locale('id')->translatedFormat('d F Y'); })->editColumn('is_detail_debitur', function ($row) { $status = $row->is_detail_debitur ? 'Ada' : 'Tidak Ada'; return $status; })->rawColumns(['is_detail_debitur'])->addIndexColumn()->toJson(); } else if (request()->get('jenis_laporan') == 'C2') { if (request()->get('kode_cabang') == 'all') { $data = DetailSubrogasiJamkrindo::with([ 'subrogasi_jamkrindo', 'subrogasi_jamkrindo.branch', 'subrogasi_jamkrindo.debitur' ]) ->selectRaw('nomor_pinjaman, SUM(pembayaran_debitur) AS pembayaran_debitur, SUM(subrogasi_jamkrindo) AS nilai_subrogasi_jamkrindo, SUM(pendapatan_bank) AS pendapatan_bank') ->whereMonth('tanggal_pembayaran', request()->get('bulan')) ->whereYear('tanggal_pembayaran', request()->get('tahun')) ->groupBy('nomor_pinjaman') ->get(); } else { $data = DetailSubrogasiJamkrindo::query() ->with([ 'subrogasi_jamkrindo', 'subrogasi_jamkrindo.branch', 'subrogasi_jamkrindo.debitur' ]) ->selectRaw('nomor_pinjaman, SUM(pembayaran_debitur) AS pembayaran_debitur, SUM(subrogasi_jamkrindo) AS nilai_subrogasi_jamkrindo , SUM(pendapatan_bank) AS pendapatan_bank') ->whereRelation('subrogasi_jamkrindo', 'kode_cabang', request()->get('kode_cabang')) ->whereMonth('tanggal_pembayaran', request()->get('bulan')) ->whereYear('tanggal_pembayaran', request()->get('tahun')) ->groupBy('nomor_pinjaman') ->get(); } return DataTables::of($data)->editColumn('branch', function ($row) { $data = json_decode($row); return $data->subrogasi_jamkrindo->branch->kode . ' - ' . $data->subrogasi_jamkrindo->branch->name; })->editColumn('debitur', function ($row) { $data = json_decode($row); return $data->subrogasi_jamkrindo->debitur->kode . ' - ' . $data->subrogasi_jamkrindo->debitur->name; })->editColumn('pembayaran_debitur', function ($row) { return Number::currency($row->pembayaran_debitur, 'IDR', 'id_ID'); })->editColumn('nilai_subrogasi_jamkrindo', function ($row) { return Number::currency($row->nilai_subrogasi_jamkrindo, 'IDR', 'id_ID'); })->editColumn('pendapatan_bank', function ($row) { return Number::currency($row->pendapatan_bank, 'IDR', 'id_ID'); })->rawColumns(['action'])->addIndexColumn()->toJson(); } else if (request()->get('jenis_laporan') == 'C3') { if (request()->get('kode_cabang') == 'all') { $data = SubrogasiJamkrindo::with([ 'branch', 'debitur' ]) ->where('tanggal_pengajuan_klaim', '<=', request()->get('start_date')) ->groupBy('kode_cabang', 'nomor_pinjaman') ->get(); } else { $data = SubrogasiJamkrindo::with([ 'branch', 'debitur' ]) ->where('kode_cabang', request()->get('kode_cabang')) ->where('tanggal_pengajuan_klaim', '<=', request()->get('start_date')) ->groupBy('kode_cabang', 'nomor_pinjaman') ->get(); } return DataTables::of($data)->editColumn('branch', function ($row) { $data = json_decode($row); return $data->branch->kode . ' - ' . $data->branch->name; })->editColumn('debitur', function ($row) { $data = json_decode($row); return $data->debitur->kode . ' - ' . $data->debitur->name; })->editColumn('tanggal_pengajuan_klaim', function ($row) { $date = Carbon::create($row->tanggal_pengajuan_klaim); return $date->locale('id')->translatedFormat('d F Y'); })->editColumn('is_lunas_subrogasi', function ($row) { $status = $row->is_lunas_subrogasi ? 'Lunas' : 'Belum Lunas'; return $status; })->rawColumns(['is_lunas_subrogasi'])->addIndexColumn()->toJson(); } } if ($request->jenis_laporan == 'C1') { $breadcrumb = [ 'title' => 'Laporan Pencatatan Klaim Jamkrindo', 'link' => 'laporan.subrogasi' ]; $dataTable = $builder->columns([ Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), Column::make('tanggal_rtgs_masuk')->title('Tanggal RTGS Masuk'), Column::make('jumlah_debitur_surat')->title('Jml Debitur Surat'), Column::make('jumlah_debitur_excel')->title('Jml Debitur Excel'), Column::make('dana_hasil_klaim')->title('Dana Hasil Klaim'), Column::make('nilai_penyelesaian')->title('Nilai Penyelesaian'), Column::make('jumlah_debitur_penyelesaian')->title('Jml Debitur Penyelesaian'), Column::make('sisa_dana_ksl')->title('Sisa Dana KSL'), Column::make('jumlah_debitur_sisa_ksl')->title('Jml Debitur Sisa KSL'), Column::make('is_detail_debitur')->title('Detail Debitur') ]) ->parameters([ 'scrollX' => false, 'drawCallback' => 'function() { KTMenu.createInstances(); }', ]) ->addTableClass('align-middle table-row-dashed fs-6 gy-5') ->setTableId('laporan-table') ->minifiedAjax(request()->url(), null, [ 'jenis_laporan' => $request->jenis_laporan, 'start_date' => $request->start_date, 'end_date' => $request->end_date ]) ->stateSave(false) ->responsive() ->autoWidth(true) ->orderBy(1); } else if ($request->jenis_laporan == 'C2') { $breadcrumb = [ 'title' => 'Rincian Subrogasi per Posisi Akhir Bulan', 'link' => 'laporan.subrogasi' ]; $start_date = request()->get('periode'); $month = date('m', strtotime($start_date)); $year = date('Y', strtotime($start_date)); $req = [ 'jenis_laporan' => $request->jenis_laporan, 'kode_cabang' => request()->get('kode_cabang'), 'bulan' => $month, 'tahun' => $year ]; $dataTable = $builder->columns([ Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), Column::make('debitur')->title('Debitur'), Column::make('branch')->title('Cabang'), Column::make('nomor_pinjaman')->title('Nomor Pinjaman'), Column::make('subrogasi_jamkrindo.nomor_rekening')->title('Norek Tabungan'), Column::make('pembayaran_debitur')->title('Pembayaran Debitur'), Column::make('nilai_subrogasi_jamkrindo')->title('Subrogasi Jamkrindo'), Column::make('pendapatan_bank')->title('Pendapatan Bank'), Column::make('subrogasi_jamkrindo.keterangan')->title('Keterangan Subrogasi') ]) ->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); } else if ($request->jenis_laporan == 'C3') { $breadcrumb = [ 'title' => 'Rekapitulasi Pencatatan Subrogasi KUR Jamkrindo', 'link' => 'laporan.subrogasi' ]; $req = [ 'jenis_laporan' => $request->jenis_laporan, 'kode_cabang' => request()->get('kode_cabang'), 'start_date' => $request->start_date, ]; $dataTable = $builder->columns([ Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), Column::make('nomor_pinjaman')->title('Nomor Pinjaman'), Column::make('nomor_rekening')->title('Norek Tabungan'), Column::make('debitur')->title('Debitur'), Column::make('branch')->title('Cabang'), Column::make('plafond')->title('Nilai Plafond'), Column::make('tenor')->title('Tenor'), Column::make('tanggal_pengajuan_klaim')->title('Tgl Pengajuan Klaim'), Column::make('piutang_subrogasi')->title('Piutang Subrogasi'), Column::make('total_bayar_subrogasi')->title('Tot Bayar Subrogasi'), Column::make('sisa_piutang_subrogasi')->title('Sisa Piutang Subrogasi'), Column::make('is_lunas_subrogasi')->title('Subrogasi Lunas') ]) ->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_klaim_jamkrindo', compact('dataTable', 'breadcrumb')); } }