filter(function ($query) { if (request()->has('search')) { $search = request()->get('search'); $query->where('nomor_pinjaman', 'like', "%" . request()->segment(3) . "%"); } })->addIndexColumn()->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'); })->rawColumns(['action'])->addColumn('action', function ($detail_jaminan) { return view('writeoff::pencatatan.detail_jaminan._actions', compact('detail_jaminan')); })->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') ->drawCallback("function() {" . file_get_contents(Module::getModulePath('writeoff').'Resources/views/pencatatan/detail_jaminan/_draw-scripts.js') . "}"); } /** * 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'), Column::computed('action')->exportable(false)->printable(false)->width(60)->addClass('text-center'), ]; } /** * Get the filename for export. */ protected function filename() : string { return 'Detail_Jaminan_' . date('YmdHis'); } }