with(['directorat', 'sub_directorat', 'job', 'job.sub_job', 'job.sub_job.sub_sub_job']); $odners = CardboardDetail::where('cardboard_id', '!=', $queryParameters['id']) ->pluck('document_id') ->toArray(); $query = $query->whereNotIn('id', $odners)->whereRelation('document_details', function ($query) { $query->whereNotIn('status', [0, 3, 6, 7, 8]); $query->where('aktif', 1); }); return (new EloquentDataTable($query))->filter(function ($query) { if (request()->has('search')) { $search = request()->get('search'); } })->addColumn('jumlah_halaman', function ($model) { $jumlah_halaman = DocumentDetail::where(['document_id' => $model->id,'aktif' => 1])->whereNotIn('status', [0, 3, 6, 7, 8])->sum('jumlah_halaman'); return $jumlah_halaman; })->addColumn('directorat', function ($model) { return $model->directorat->kode . ' - ' . $model->directorat->name; })->addColumn('sub_directorat', function ($model) { return $model->sub_directorat->kode . ' - ' . $model->sub_directorat->name; })->addColumn('job', function ($model) { return $model->job->kode . ' - ' . $model->job->name; })->addColumn('sub_job', function ($model) { return $model->sub_job->kode . ' - ' . $model->sub_job->name; })->addColumn('sub_sub_job', function ($model) { return $model->sub_sub_job->kode . ' - ' . $model->sub_sub_job->name; })->addIndexColumn()->addColumn('checkbox', function ($item) { return '
'; })->rawColumns(['checkbox'])->setRowId('id'); } /** * Get the query source of dataTable. */ public function query(Document $model) : QueryBuilder { return $model->newQuery(); } /** * Optional method if you want to use the html builder. */ public function html() : HtmlBuilder { return $this->builder() ->setTableId('cardboard-odner-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('checkbox') ->title('') ->orderable(false) ->searchable(false) ->printable(false) ->exportable(false) ->width(10), Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), Column::make('kode_odner')->title('Kode Odner'), Column::make('directorat')->title('Direktorat'), Column::make('sub_directorat')->title('Sub Direktorat'), Column::make('job')->title('Jenis Pekerjaan'), Column::make('sub_job')->title('Sub Jenis Pekerjaan'), Column::make('sub_sub_job')->title('Sub Sub Jenis Pekerjaan'), Column::make('jumlah_halaman')->title('Jumlah Halaman'), Column::make('sequence_odner')->title('Sequence') ]; } /** * Get the filename for export. */ protected function filename() : string { return 'Cardboard_' . date('YmdHis'); } }