diff --git a/DataTables/DetailJaminanDataTable.php b/DataTables/DetailJaminanDataTable.php new file mode 100644 index 0000000..f8dadc6 --- /dev/null +++ b/DataTables/DetailJaminanDataTable.php @@ -0,0 +1,93 @@ +filter(function ($query) { + if (request()->has('search')) { + $search = request()->get('search'); + $query->where('nomor_pinjaman', 'like', "%" . $search['value'] . "%"); + } + })->addColumn('jenis_jaminan', function ($row) { + $guarantee = GuaranteeType::where('id', $row->guarantee_type_id)->first(); + if ($guarantee) + return $guarantee->kode . ' - ' . $guarantee->name; + + return ''; + })->editColumn('nilai_jaminan', function ($row) { + return Number::currency($row->nilai_jaminan, 'IDR', 'id_ID'); + })->setRowId('id'); + } + + /** + * Get the query source of dataTable. + */ + public function query(DetailJaminan $model) + : QueryBuilder + { + return $model->newQuery(); + } + + /** + * Optional method if you want to use the html builder. + */ + public function html() + : HtmlBuilder + { + return $this->builder() + ->setTableId('detail-jaminan-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('jenis_jaminan')->title('Jenis Jaminan'), + Column::make('nomor_jaminan')->title('Nomor Jaminan'), + Column::make('nilai_jaminan')->title('Nilai Jaminan'), + ]; + } + + /** + * Get the filename for export. + */ + protected function filename() + : string + { + return 'Detail_Jaminan_' . date('YmdHis'); + } + } diff --git a/Entities/DetailJaminan.php b/Entities/DetailJaminan.php new file mode 100644 index 0000000..49e12bb --- /dev/null +++ b/Entities/DetailJaminan.php @@ -0,0 +1,26 @@ +belongsTo(GuaranteeType::class); + } + } diff --git a/Http/Controllers/DetailJaminanController.php b/Http/Controllers/DetailJaminanController.php new file mode 100644 index 0000000..26aa771 --- /dev/null +++ b/Http/Controllers/DetailJaminanController.php @@ -0,0 +1,54 @@ +middleware(function ($request, $next) { + $this->user = Auth::guard('web')->user(); + return $next($request); + }); + } + + public function index() + { + return view('writeoff::pencatatan.detail_jaminan.index'); + } + + public function store(Request $request) + { + $hapusbuku = HapusBuku::where('nomor_pinjaman', $request->nomor_pinjaman)->first(); + if($hapusbuku){ + echo json_encode(['status' => 'success', 'message' => 'Nomo Pinjaman ditemukan.','redirect' => route('pencatatan.detail_jaminan.show', ['nomor_pinjaman' => $request->nomor_pinjaman])]); + } else { + echo json_encode(['status' => 'error', 'message' => 'Nomor Pinjaman tidak ditemukan.']); + } + } + + public function show(DetailJaminanDataTable $dataTable, $nomor_pinjaman) + { + if (is_null($this->user) || !$this->user->can('master.read')) { + abort(403, 'Sorry !! You are Unauthorized to view any master data !'); + } + + $hapusbuku = HapusBuku::where('nomor_pinjaman', $nomor_pinjaman)->first(); + if($hapusbuku){ + return $dataTable->render('writeoff::pencatatan.detail_jaminan.show', compact('hapusbuku')); + } else { + return redirect()->route('pencatatan.detail_jaminan.index')->with('error', 'Nomor Pinjaman tidak ditemukan.'); + } + } + + } diff --git a/Http/Requests/DetailJaminan/StoreDetailJaminanRequest.php b/Http/Requests/DetailJaminan/StoreDetailJaminanRequest.php new file mode 100644 index 0000000..21e4d5a --- /dev/null +++ b/Http/Requests/DetailJaminan/StoreDetailJaminanRequest.php @@ -0,0 +1,43 @@ + + */ + public function rules() + : array + { + return [ + 'nomor_pinjaman' => 'required', + 'guarantee_type_id' => 'required', + 'nomor_jaminan' => 'required', + 'nilai_jaminan' => 'required|numeric', + 'status' => 'required|boolean', + ]; + } + + public function ignored(): string + { + return $this->id; + } + } diff --git a/Livewire/DetailJaminan/DetailJaminanModal.php b/Livewire/DetailJaminan/DetailJaminanModal.php new file mode 100644 index 0000000..ec71cd0 --- /dev/null +++ b/Livewire/DetailJaminan/DetailJaminanModal.php @@ -0,0 +1,61 @@ +validate(); + + // Validate the form input data + DB::transaction(function () { + // Prepare the data for creating a new user + $data = [ + 'nomor_pinjaman' => $this->nomor_pinjaman, + 'guarantee_type_id' => $this->guarantee_type_id, + 'nomor_jaminan' => $this->nomor_jaminan, + 'nilai_jaminan' => $this->nilai_jaminan, + 'status' => $this->status, + ]; + + Branch::create($data); + $this->dispatch('success', __('Data jamina berhasil ditambahkan')); + }); + + // Reset the form fields after successful submission + $this->reset(); + } + + + public function hydrate() + { + $this->resetErrorBag(); + $this->resetValidation(); + } + + protected function rules() + { + $request = new StoreDetailJaminanRequest(); + + return $request->rules(); + } + } + diff --git a/Resources/views/livewire/detail-jaminan/detail-jaminan-modal.blade.php b/Resources/views/livewire/detail-jaminan/detail-jaminan-modal.blade.php new file mode 100644 index 0000000..6995143 --- /dev/null +++ b/Resources/views/livewire/detail-jaminan/detail-jaminan-modal.blade.php @@ -0,0 +1,72 @@ + diff --git a/Resources/views/partials/menu/_app.blade.php b/Resources/views/partials/menu/_app.blade.php index bb08df1..d9e3fbf 100644 --- a/Resources/views/partials/menu/_app.blade.php +++ b/Resources/views/partials/menu/_app.blade.php @@ -79,7 +79,7 @@ {!! getIcon('people', 'fs-2') !!} - Penctatan Data + Pencatatan Data @@ -116,4 +116,28 @@ + + @endcanany diff --git a/Resources/views/pencatatan/detail_jaminan/index.blade.php b/Resources/views/pencatatan/detail_jaminan/index.blade.php new file mode 100644 index 0000000..6067723 --- /dev/null +++ b/Resources/views/pencatatan/detail_jaminan/index.blade.php @@ -0,0 +1,74 @@ + + + @section('title') + Detail Jaminan Pinjaman Write-off + @endsection + + @section('breadcrumbs') + {{ Breadcrumbs::render('detail.jaminan') }} + @endsection + +
+ +
+
+ @csrf + +
+ +
+ + + + + + @error('nomor_pinjaman') + {{ $message }} @enderror +
+
+ +
+ + +
+ +
+
+ +
+ @push('scripts') + + @endpush +
diff --git a/Resources/views/pencatatan/detail_jaminan/show.blade.php b/Resources/views/pencatatan/detail_jaminan/show.blade.php new file mode 100644 index 0000000..f282222 --- /dev/null +++ b/Resources/views/pencatatan/detail_jaminan/show.blade.php @@ -0,0 +1,118 @@ + + + @section('title') + Detail Jaminan Pinjaman Write-off + @endsection + + @section('breadcrumbs') + {{ Breadcrumbs::render('detail.jaminan') }} + @endsection + + +
+ +
+ +
+
+ +
+ + + + + + @error('nomor_pinjaman') + {{ $message }} @enderror +
+
+
+ +
+ + + + + + @error('nomor_pinjaman') + {{ $message }} @enderror +
+
+ +
+ +
+ + + + + + @error('nomor_pinjaman') + {{ $message }} @enderror +
+
+
+ + + +
+ +
+ + + +
+ + + + +
+ +
+ + + +
+ +
+ {{ $dataTable->table() }} +
+ +
+ +
+ + @push('scripts') + {{ $dataTable->scripts() }} + + @endpush + +
diff --git a/Resources/views/pencatatan/hapus_buku/index.blade.php b/Resources/views/pencatatan/hapus_buku/index.blade.php index 208ca0a..732e139 100644 --- a/Resources/views/pencatatan/hapus_buku/index.blade.php +++ b/Resources/views/pencatatan/hapus_buku/index.blade.php @@ -61,6 +61,7 @@ @push('scripts') {{ $dataTable->scripts() }}