File manager - Edit - /var/www/payraty/inventory_main/app/DataTables/ProductDataTable.php
Back
<?php namespace App\DataTables; use PDF; use App\Models\Product; use Illuminate\Support\Str; use Yajra\DataTables\Html\Column; use Yajra\DataTables\Services\DataTable; /** * ProductDataTable */ class ProductDataTable extends DataTable { /** * Build DataTable class. * * @param mixed $query Results from query() method. * @return \Yajra\DataTables\DataTableAbstract */ public function dataTable($query) { return datatables() ->eloquent($query) ->addColumn('id', function ($row) { return '<input type="checkbox" class="product_checkbox" name="product_id[]" value="' . $row->id . '">'; }) ->addColumn('action', function ($item) { $buttons = ''; $buttons .= '<a class="dropdown-item" href="' . route('admin.products.show', $item->id) . '" title="Show"><i class="fa fa-eye"></i> ' . __('custom.show') . ' </a>'; if (auth()->user()->can('Edit Product')) { $buttons .= '<a class="dropdown-item" href="' . route('admin.products.edit', $item->id) . '" title="Edit"><i class="mdi mdi-square-edit-outline"></i> ' . __('custom.edit') . ' </a>'; } if (auth()->user()->can('Stock Product')) { $buttons .= '<a class="dropdown-item" href="' . route('admin.product-stocks.edit', $item->id) . '" title="Stock And Price"><i class="mdi mdi-format-list-bulleted"></i> ' . __('custom.stock_and_price') . ' </a>'; } $buttons .= '<a class="dropdown-item update-stock" data-id="' . $item->id . '" href="#" title="Update Stock"><i class="mdi mdi-stack-exchange"></i> ' . __('custom.update_stock') . ' </a>'; $buttons .= '<a class="dropdown-item" href="' . route('admin.products.barcode.download', $item->id) . '" title="Download Barcode"><i class="mdi mdi-download"></i> ' . __('custom.download_barcode') . ' </a>'; if (auth()->user()->can('Delete Product')) { $buttons .= '<form action="' . route('admin.products.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-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('is_variant', function ($item) { if ($item->is_variant) { return '<span class="badge badge-success">Yes</span>'; } else { return '<span class="badge badge-secondary">No</span>'; } }) ->editColumn('name', function ($item) { return '<a class="btn btn-link" href="'.route('admin.products.show', $item->id).'">'.$item->name.'</a>'; }) ->editColumn('price', function ($item) { return currencySymbol() . make2decimal($item->price); }) ->editColumn('stock', function ($item) { return $item->stock .' '.optional($item->weight_unit)->name; }) ->editColumn('category.name', function ($item) { return $item->category->name ?? ''; }) ->editColumn('suppliers', function ($item) { return $item->suppliers ?? ''; }) ->editColumn('thumb', function ($item) { return '<img class="img-64" src="' . $item->thumb_url . '" alt="' . $item->name . '" />'; })->editColumn('status', function ($item) { $badge = $item->status == Product::STATUS_ACTIVE ? "badge-success" : "badge-danger"; return '<span class="badge ' . $badge . '">' . Str::upper($item->status) . '</span>'; })->addColumn('transfer_product', function($item){ return '<a class="btn btn-link badge badge-primary text-white transfer-product-link" href="'.route('admin.products.transfer.page', $item->id).'">Transfer Product</a>'; }) /*->editColumn('tax_status', function ($item) { return Str::upper($item->tax_status); })*/ ->rawColumns(['tax_status','suppliers', 'status', 'is_variant', 'thumb', 'action', 'id', 'name','transfer_product'])->addIndexColumn(); } /** * Get query source of dataTable. * * @param User $model * @return \Illuminate\Database\Eloquent\Builder */ public function query(Product $model) { return $model->with(['category', 'manufacturer', 'weight_unit'])->newQuery()->select('products.*'); } /** * Optional method if you want to use html builder. * * @return \Yajra\DataTables\Html\Builder */ public function html() { $params = $this->getBuilderParameters(); $params['order'] = [[3, 'asc']]; return $this->builder() ->columns($this->getColumns()) ->minifiedAjax() ->addAction( [ 'width' => '55px', 'class' => "text-center", 'printable' => false, 'exportable' => false, 'title' => __('custom.action'), 'scrollY' => '320px' ], ) ->parameters($params); } /** * Get columns. * * @return array */ protected function getColumns() { return [ Column::computed('DT_RowIndex', __('custom.sl')), Column::make('id', 'id') ->orderable(false) ->searchable(false) ->printable(false) ->exportable(false) ->className('select_all_checkbox') ->title('<input type="checkbox" class="select_all"/>') ->render(''), Column::make('thumb', 'thumb')->title(__('custom.thumb')), Column::make('name', 'name')->title(__('custom.product_name')), Column::make('sku', 'sku')->title(__('custom.sku')), Column::make('category.name', 'category.name')->title(__('custom.category')), Column::make('price', 'price')->title(__('custom.price')), Column::make('stock', 'stock')->title(__('custom.stock_quantity')), Column::make('suppliers', 'suppliers')->title(__('custom.suppliers_count')), Column::make('is_variant', 'is_variant')->title(__('custom.variant')), /*Column::make('tax_status', 'tax_status')->title(__('custom.tax')),*/ Column::make('status', 'status')->title(__('custom.status')), Column::make('transfer_product', 'transfer_product')->title(__("custom.transfer_product")), ]; } /** * Get filename for export. * * @return string */ protected function filename() { return 'Product_' . 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