File manager - Edit - /var/www/payraty/inventory_main/app/DataTables/ExpensesDataTable.php
Back
<?php namespace App\DataTables; use PDF; use App\Models\Expenses; use Illuminate\Support\Str; use Yajra\DataTables\Html\Button; use Yajra\DataTables\Html\Column; use Yajra\DataTables\Services\DataTable; /** * ExpensesDataTable */ class ExpensesDataTable extends DataTable { protected $actions = [ 'createAction', 'csv', 'excel', 'pdf', 'print', 'reload', ]; /** * Build DataTable class. * * @param mixed $query Results from query() method. * @return \Yajra\DataTables\DataTableAbstract */ public function dataTable($query) { return datatables() ->eloquent($query) ->filterColumn('expenseBy.name', function (){ }) ->addColumn('action', function ($item) { $buttons = ''; if (auth()->user()->can('Show Expenses')) { $buttons .= '<a class="dropdown-item" href="' . route('admin.expenses.show', $item->id) . '" title="Show"><i class="mdi mdi mdi-desktop-mac"></i> ' . __('custom.show') . ' </a>'; } if (auth()->user()->can('Edit Expenses')) { $buttons .= '<a class="dropdown-item" href="' . route('admin.expenses.edit', $item->id) . '" title="Edit"><i class="mdi mdi-square-edit-outline"></i> ' . __('custom.edit') . ' </a>'; } if (auth()->user()->can('Delete Expenses')) { $buttons .= '<form action="' . route('admin.expenses.destroy', $item->id) . '" id="delete-form-' . $item->id . '" method="post"> <input type="hidden" name="_token" value="' . csrf_token() . '"> <input type="hidden" name="_method" value="DELETE"> <button class="dropdown-item text-danger delete-list-data" data-from-name="'. $item->title.'" data-from-id="' . $item->id . '" data-from-id="' . $item->id . '" type="button" title="Delete"><i class="mdi mdi-trash-can-outline"></i> ' . __('custom.delete') . '</button></form> '; } return '<div class="dropdown btn-group dropup"> <a href="#" class="btn btn-dark btn-sm" data-toggle="dropdown" data-boundary="viewport" aria-haspopup="true" aria-haspopup="true" aria-expanded="false"><i class="fas fa-ellipsis-v"></i></a> <div class="dropdown-menu"> ' . $buttons . ' </div> </div>'; })->editColumn('category.name', function ($item) { return $item->category->name ?? ''; })->editColumn('total', function ($item) { return currencySymbol() . makeCurrencyFormat($item->total); })->editColumn('notes', function ($item) { return Str::limit($item->notes, 50, '...'); })->editColumn('expenseBy.name', function ($item) { return optional($item->expenseBy)->name; }) ->filterColumn('date', function ($item) { if (request()->has('from_date') && request()->has('to_date')) { $item->whereBetween('date', [request()->from_date, request()->to_date]); } }) ->rawColumns(['action'])->addIndexColumn(); } /** * Get query source of dataTable. * * @param User $model * @return \Illuminate\Database\Eloquent\Builder */ public function query(Expenses $model) { return $model->newQuery()->with(['category'])->select('expenses.*'); } /** * Optional method if you want to use html builder. * * @return \Yajra\DataTables\Html\Builder */ public function html() { $params['order'] = [[2, 'desc']]; return $this->builder() ->columns($this->getColumns()) ->minifiedAjax() ->addAction(['width' => '55px', 'class' => "text-center", 'printable' => false, 'exportable' => false, 'title' => __('custom.action')]) ->dom('Bfrtip') ->buttons( Button::make('create')->action("window.location = '".route('admin.expenses.create')."';"), Button::make('csv'), Button::make('excel'), Button::make('pdf'), Button::make('print'), Button::make('reload') )->parameters($params);; } public function createAction() { return Button::make('create')->action("window.location = '".route('admin.expenses.create')."';"); } /** * Get columns. * * @return array */ protected function getColumns() { return [ Column::computed('DT_RowIndex', __('custom.sl')), Column::make('title', 'title')->title(__('custom.title')), Column::make('date', 'date')->title(__('custom.date'))->class('width_10p'), Column::make('category.name', 'category.name')->title(__('custom.category')), Column::make('total', 'total')->title(__('custom.total')), Column::make('expenseBy.name', 'expenseBy.name')->title(__('custom.expense_user')), ]; } /** * Get filename for export. * * @return string */ protected function filename() { return 'Expenses_' . date('YmdHis'); } /** * pdf * * @return void */ public function pdf() { $data = $this->getDataForExport(); $pdf = PDF::loadView('vendor.datatables.print', [ 'data' => $data ]); return $pdf->download($this->getFilename() . '.pdf'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings