penambahan laporan klaim jamkrindo

This commit is contained in:
daengdeni 2024-04-01 16:20:58 +07:00
parent e281dea9e8
commit 0db6589eba
5 changed files with 253 additions and 6 deletions

View File

@ -0,0 +1,93 @@
<?php
namespace Modules\Writeoff\DataTables;
use Illuminate\Database\Eloquent\Builder as QueryBuilder;
use Modules\Writeoff\Entities\KlaimJamkrindo;
use Nwidart\Modules\Facades\Module;
use Yajra\DataTables\EloquentDataTable;
use Yajra\DataTables\Html\Builder as HtmlBuilder;
use Yajra\DataTables\Html\Column;
use Yajra\DataTables\Services\DataTable;
class LaporanKlaimJamkrindoDataTable extends DataTable
{
/**
* Build the DataTable class.
*
* @param QueryBuilder $query Results from query() method.
*/
public function dataTable(QueryBuilder $query)
: EloquentDataTable
{
$query = $query->whereBetween('tanggal_rtgs_masuk', [session('start_date'), session('end_date')]);
return (new EloquentDataTable($query))->addIndexColumn()->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 ? '<span class="badge badge-light-success">Ada</span>' : '<span class="badge badge-light-danger">Tidak Ada</span>';
return $status;
})->rawColumns(['is_detail_debitur'])->setRowId('id');
}
/**
* Get the query source of dataTable.
*/
public function query(KlaimJamkrindo $model)
: QueryBuilder
{
return $model->newQuery();
}
/**
* Optional method if you want to use the html builder.
*/
public function html()
: HtmlBuilder
{
return $this->builder()
->setTableId('laporan-klaim-jamkrindo-table')
->columns($this->getColumns())
->minifiedAjax()
->stateSave(false)
->responsive()
->autoWidth(true)
->orderBy(1)
->parameters([
'scrollX' => false,
'drawCallback' => 'function() { KTMenu.createInstances(); }',
])
->addTableClass('align-middle table-row-dashed fs-6 gy-5');
}
/**
* Get the dataTable columns definition.
*/
public function getColumns()
: array
{
return [
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
Column::make('tanggal_rtgs_masuk')->title('Tgl 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'),
];
}
/**
* Get the filename for export.
*/
protected function filename()
: string
{
return 'KlaimJamkrindo_' . date('YmdHis');
}
}

View File

@ -3,7 +3,9 @@
namespace Modules\Writeoff\Http\Controllers; namespace Modules\Writeoff\Http\Controllers;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Modules\Writeoff\DataTables\LaporanKlaimJamkrindoDataTable;
use Yajra\DataTables\Facades\DataTables; use Yajra\DataTables\Facades\DataTables;
use Yajra\DataTables\Html\Builder; use Yajra\DataTables\Html\Builder;
use Yajra\DataTables\Html\Column; use Yajra\DataTables\Html\Column;
@ -35,6 +37,13 @@
return view('writeoff::report.subrogasi'); return view('writeoff::report.subrogasi');
} }
public function laporan_subrogasi(LaporanKlaimJamkrindoDataTable $dataTable,Request $request)
{
session(['start_date' => $request->start_date]);
session(['end_date' => $request->end_date]);
return $dataTable->render('writeoff::report.laporan_klaim_jamkrindo', $request->all());
}
public function tabel(Builder $builder) public function tabel(Builder $builder)
{ {
if (request()->ajax()) { if (request()->ajax()) {

View File

@ -0,0 +1,140 @@
<x-default-layout>
@section('title')
Cabang
@endsection
@section('breadcrumbs')
{{ Breadcrumbs::render('parameter.branches') }}
@endsection
<div class="card">
<!--begin::Card header-->
<div class="card-header border-0 pt-6">
<!--begin::Card title-->
<div class="card-title">
</div>
<!--begin::Card title-->
<!--begin::Card toolbar-->
<div class="card-toolbar">
<!--begin::Toolbar-->
<div class="d-flex justify-content-end" data-kt-laporan-klaim-jamkrindo-table-toolbar="base">
<!--begin::Export dropdown-->
<button type="button" class="btn btn-light-primary" data-kt-menu-trigger="click"
data-kt-menu-placement="bottom-end">
<i class="ki-duotone ki-exit-down fs-2"><span class="path1"></span><span class="path2"></span></i>
Export Report
</button>
<!--begin::Menu-->
<div id="kt_datatable_example_export_menu"
class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-600 menu-state-bg-light-primary fw-semibold fs-7 w-200px py-4"
data-kt-menu="true">
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="copy">
Copy to clipboard
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="excel">
Export as Excel
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="csv">
Export as CSV
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="pdf">
Export as PDF
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="print">
Print
</a>
</div>
<!--end::Menu item-->
</div>
<!--begin::Hide default export buttons-->
<div id="kt_datatable_example_buttons" class="d-none"></div>
<!--end::Hide default export buttons-->
</div>
<!--end::Toolbar-->
</div>
<!--end::Card toolbar-->
</div>
<!--end::Card header-->
<!--begin::Card body-->
<div class="card-body py-4">
<!--begin::Table-->
<div class="table-responsive">
{{ $dataTable->table() }}
</div>
<!--end::Table-->
</div>
<!--end::Card body-->
</div>
@push('scripts')
{{ $dataTable->scripts() }}
<script>
$(function(){
const documentTitle = 'Branch Report';
var buttons = new $.fn.dataTable.Buttons(LaravelDataTables['laporan-klaim-jamkrindo-table'], {
buttons: [
{
extend: 'copyHtml5',
title: documentTitle
},
{
extend: 'excelHtml5',
title: documentTitle
},
{
extend: 'csvHtml5',
title: documentTitle
},
{
extend: 'pdfHtml5',
title: documentTitle
},
{
extend: 'print',
title: documentTitle
}
]
}).container().appendTo($('#kt_datatable_example_buttons'));
// Hook dropdown menu click event to datatable export buttons
const exportButtons = document.querySelectorAll('#kt_datatable_example_export_menu [data-kt-export]');
exportButtons.forEach(exportButton => {
exportButton.addEventListener('click', e => {
e.preventDefault();
console.log(e.target.getAttribute('data-kt-export'));
// Get clicked export value
const exportValue = e.target.getAttribute('data-kt-export');
const target = document.querySelector('.dt-buttons .buttons-' + exportValue);
// Trigger click event on hidden datatable export buttons
target.click();
});
});
});
</script>
@endpush
</x-default-layout>

View File

@ -11,7 +11,7 @@
<div class="card"> <div class="card">
<!--begin::Card body--> <!--begin::Card body-->
<div class="card-body py-4"> <div class="card-body py-4">
<form id="form_jaminan" class="form" action="{{ route('pencatatan.detail_jaminan.store') }}" method="POST"> <form id="form_jaminan" class="form" action="{{ route('laporan.report.subrogasi.store') }}" method="POST">
@csrf @csrf
<!--begin::Scroll--> <!--begin::Scroll-->
<div class="d-flex flex-column px-5 px-lg-10"> <div class="d-flex flex-column px-5 px-lg-10">
@ -20,10 +20,11 @@
<label class="required fw-semibold fs-6 mb-2">Laporan</label> <label class="required fw-semibold fs-6 mb-2">Laporan</label>
<!--end::Label--> <!--end::Label-->
<!--begin::Input--> <!--begin::Input-->
<select name="jenis_fasilitas" class="form-select form-select-solid mb-3 mb-lg-0"> <select name="jenis_laporan" class="form-select form-select-solid mb-3 mb-lg-0">
<option value="">Pilih Laporan</option> <option value="">Pilih Laporan</option>
<option value="1">Hapus Buku</option> <option value="C1">Pencatatan Klaim Jamkrindo</option>
<option value="2">AYDA</option> <option value="C2">Rincian Subrogasi per Periode</option>
<option value="C3"> Rekapitulasi Pencatatan Subrogasi KUR Jamkrindo</option>
</select> </select>
<!--end::Input--> <!--end::Input-->
@error('jenis_fasilitas') @error('jenis_fasilitas')
@ -37,7 +38,7 @@
<label class="required fw-semibold fs-6 mb-2">Tanggal Awal</label> <label class="required fw-semibold fs-6 mb-2">Tanggal Awal</label>
<!--end::Label--> <!--end::Label-->
<!--begin::Input--> <!--begin::Input-->
<input type="date" name="debitur" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Tanggal Awal"/> <input type="date" name="start_date" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Tanggal Awal"/>
<!--end::Input--> <!--end::Input-->
@error('debitur') @error('debitur')
<span class="text-danger">{{ $message }}</span> @enderror <span class="text-danger">{{ $message }}</span> @enderror
@ -50,7 +51,7 @@
<label class="required fw-semibold fs-6 mb-2">Tanggal Akhir</label> <label class="required fw-semibold fs-6 mb-2">Tanggal Akhir</label>
<!--end::Label--> <!--end::Label-->
<!--begin::Input--> <!--begin::Input-->
<input type="date" name="debitur" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Tanggal Akhir"/> <input type="date" name="end_date" class="form-control form-control-solid mb-3 mb-lg-0" placeholder="Tanggal Akhir"/>
<!--end::Input--> <!--end::Input-->
@error('debitur') @error('debitur')
<span class="text-danger">{{ $message }}</span> @enderror <span class="text-danger">{{ $message }}</span> @enderror

View File

@ -55,7 +55,11 @@
Route::name('laporan.')->prefix('laporan')->group(function() { Route::name('laporan.')->prefix('laporan')->group(function() {
Route::get('laporan-debitur-hapus-buku', 'ReportController@index')->name('report.index'); Route::get('laporan-debitur-hapus-buku', 'ReportController@index')->name('report.index');
Route::get('laporan-penagihan-hapus-buku', 'ReportController@penagihan')->name('report.penagihan'); Route::get('laporan-penagihan-hapus-buku', 'ReportController@penagihan')->name('report.penagihan');
Route::get('laporan-subrogasi-hapus-buku', 'ReportController@subrogasi')->name('report.subrogasi'); Route::get('laporan-subrogasi-hapus-buku', 'ReportController@subrogasi')->name('report.subrogasi');
Route::post('laporan-klaim-jamkrindo', 'ReportController@laporan_subrogasi')->name('report.subrogasi.store');
Route::get('laporan-klaim-jamkrindo', 'ReportController@laporan_subrogasi')->name('report.subrogasi.store_get');
Route::get('laporan', 'ReportController@tabel')->name('report.tabel'); Route::get('laporan', 'ReportController@tabel')->name('report.tabel');
}); });