middleware(function ($request, $next) { $this->user = Auth::guard('web')->user(); return $next($request); }); } public function index() { return view('writeoff::report.index'); } public function penagihan() { return view('writeoff::report.penagihan'); } public function subrogasi() { $branches = Branch::all(); return view('writeoff::report.subrogasi', compact('branches')); } 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(); } } 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]; //NO Debitur Cabang Nomor Pinjaman Norek Tabungan Pembayaran Debitur Subrogasi Jamkrindo Pendapatan Bank Keterangan Subrogasi $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); } return view('writeoff::report.laporan_klaim_jamkrindo', compact('dataTable', 'breadcrumb')); } }