diff --git a/packages/Webkul/Shop/src/DataGrids/OrderDataGrid.php b/packages/Webkul/Shop/src/DataGrids/OrderDataGrid.php new file mode 100644 index 000000000..827fdc1ce --- /dev/null +++ b/packages/Webkul/Shop/src/DataGrids/OrderDataGrid.php @@ -0,0 +1,88 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class OrderDataGrid extends DataGrid +{ + protected $index = 'id'; //the column that needs to be treated as index column + + protected $sortOrder = 'desc'; //asc or desc + + public function prepareQueryBuilder() + { + $queryBuilder = DB::table('orders as order') + ->addSelect('order.id', 'order.status', 'order.created_at', 'order.grand_total') + ->where('customer_id', auth()->guard('customer')->user()->id); + + $this->setQueryBuilder($queryBuilder); + } + + public function addColumns() + { + $this->addColumn([ + 'index' => 'id', + 'label' => trans('shop::app.customer.account.order.index.order_id'), + 'type' => 'number', + 'searchable' => false, + 'sortable' => true, + ]); + + $this->addColumn([ + 'index' => 'created_at', + 'label' => trans('shop::app.customer.account.order.index.date'), + 'type' => 'datetime', + 'searchable' => true, + 'sortable' => true, + ]); + + $this->addColumn([ + 'index' => 'grand_total', + 'label' => trans('shop::app.customer.account.order.index.total'), + 'type' => 'price', + 'searchable' => true, + 'sortable' => true, + ]); + + $this->addColumn([ + 'index' => 'status', + 'label' => trans('shop::app.customer.account.order.index.status'), + 'type' => 'string', + 'searchable' => false, + 'sortable' => true, + 'closure' => true, + 'wrapper' => function ($value) { + if ($value->status == 'processing') + return 'Processing'; + else if ($value->status == 'completed') + return 'Completed'; + else if ($value->status == "canceled") + return 'Canceled'; + else if ($value->status == "closed") + return 'Closed'; + else if ($value->status == "pending") + return 'Pending'; + else if ($value->status == "pending_payment") + return 'Pending Payment'; + else if ($value->status == "fraud") + return 'Fraud'; + } + ]); + } + + public function prepareActions() { + $this->addAction([ + 'type' => 'View', + 'route' => 'customer.orders.view', + 'icon' => 'icon eye-icon' + ]); + } +} \ No newline at end of file diff --git a/packages/Webkul/Shop/src/Http/Controllers/OrderController.php b/packages/Webkul/Shop/src/Http/Controllers/OrderController.php index af883561f..32c545436 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/OrderController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/OrderController.php @@ -65,7 +65,8 @@ class OrderController extends Controller * * @return \Illuminate\Http\Response */ - public function index() { + public function index() + { $orders = $this->order->findWhere([ 'customer_id' => auth()->guard('customer')->user()->id ]); diff --git a/packages/Webkul/Shop/src/Resources/views/customers/account/orders/index.blade.php b/packages/Webkul/Shop/src/Resources/views/customers/account/orders/index.blade.php index 9d9c39566..1b2ea26ce 100755 --- a/packages/Webkul/Shop/src/Resources/views/customers/account/orders/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/customers/account/orders/index.blade.php @@ -23,71 +23,10 @@ {!! view_render_event('bagisto.shop.customers.account.orders.list.before', ['orders' => $orders]) !!}
-
-
- - - - - - - - - - - - @foreach ($orders as $order) - - - - - - - - - - - - @endforeach - - @if (! $orders->count()) - - - - @endif - -
{{ __('shop::app.customer.account.order.index.order_id') }} {{ __('shop::app.customer.account.order.index.date') }} {{ __('shop::app.customer.account.order.index.total') }} {{ __('shop::app.customer.account.order.index.status')}}
- - #{{ $order->id }} - - {{ core()->formatDate($order->created_at, 'd M Y') }} - {{ core()->formatPrice($order->grand_total, $order->order_currency_code) }} - - @if($order->status == 'processing') - Processing - @elseif ($order->status == 'completed') - Completed - @elseif ($order->status == "canceled") - Canceled - @elseif ($order->status == "closed") - Closed - @elseif ($order->status == "pending") - Pending - @elseif ($order->status == "pending_payment") - Pending Payment - @elseif ($order->status == "fraud") - Fraud - @endif -
{{ __('admin::app.common.no-result-found') }}
-
- + @inject('order','Webkul\Shop\DataGrids\OrderDataGrid') + {!! $order->render() !!}
- - @if (!$orders->count()) -
{{ __('admin::app.common.no-result-found') }}
- @endif -
{!! view_render_event('bagisto.shop.customers.account.orders.list.after', ['orders' => $orders]) !!}