This commit is contained in:
rahul shukla 2019-02-20 19:11:46 +05:30
parent 71207b059c
commit a7f545fcf4
3 changed files with 92 additions and 64 deletions

View File

@ -0,0 +1,88 @@
<?php
namespace Webkul\Shop\DataGrids;
use Webkul\Ui\DataGrid\DataGrid;
use DB;
/**
* OrderDataGrid class
*
* @author Rahul Shukla <rahulshkla.symfont517@webkul.com>
* @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 '<span class="badge badge-md badge-success">Processing</span>';
else if ($value->status == 'completed')
return '<span class="badge badge-md badge-success">Completed</span>';
else if ($value->status == "canceled")
return '<span class="badge badge-md badge-danger">Canceled</span>';
else if ($value->status == "closed")
return '<span class="badge badge-md badge-info">Closed</span>';
else if ($value->status == "pending")
return '<span class="badge badge-md badge-warning">Pending</span>';
else if ($value->status == "pending_payment")
return '<span class="badge badge-md badge-warning">Pending Payment</span>';
else if ($value->status == "fraud")
return '<span class="badge badge-md badge-danger">Fraud</span>';
}
]);
}
public function prepareActions() {
$this->addAction([
'type' => 'View',
'route' => 'customer.orders.view',
'icon' => 'icon eye-icon'
]);
}
}

View File

@ -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
]);

View File

@ -23,71 +23,10 @@
{!! view_render_event('bagisto.shop.customers.account.orders.list.before', ['orders' => $orders]) !!}
<div class="account-items-list">
<div class="account-table-content">
<div class="table">
<table>
<thead>
<tr>
<th> {{ __('shop::app.customer.account.order.index.order_id') }}</th>
<th> {{ __('shop::app.customer.account.order.index.date') }} </th>
<th> {{ __('shop::app.customer.account.order.index.total') }} </th>
<th> {{ __('shop::app.customer.account.order.index.status')}} </th>
</tr>
</thead>
<tbody>
@foreach ($orders as $order)
<tr>
<td data-value="{{ __('shop::app.customer.account.order.index.order_id') }}">
<a href="{{ route('customer.orders.view', $order->id) }}">
#{{ $order->id }}
</a>
</td>
<td data-value="{{ __('shop::app.customer.account.order.index.date') }}">{{ core()->formatDate($order->created_at, 'd M Y') }}</td>
<td data-value="{{ __('shop::app.customer.account.order.index.total') }}">
{{ core()->formatPrice($order->grand_total, $order->order_currency_code) }}
</td>
<td data-value="{{ __('shop::app.customer.account.order.index.status') }}">
@if($order->status == 'processing')
<span class="badge badge-md badge-success">Processing</span>
@elseif ($order->status == 'completed')
<span class="badge badge-md badge-success">Completed</span>
@elseif ($order->status == "canceled")
<span class="badge badge-md badge-danger">Canceled</span>
@elseif ($order->status == "closed")
<span class="badge badge-md badge-info">Closed</span>
@elseif ($order->status == "pending")
<span class="badge badge-md badge-warning">Pending</span>
@elseif ($order->status == "pending_payment")
<span class="badge badge-md badge-warning">Pending Payment</span>
@elseif ($order->status == "fraud")
<span class="badge badge-md badge-danger">Fraud</span>
@endif
</td>
</tr>
@endforeach
@if (! $orders->count())
<tr>
<td class="empty" colspan="10" style="text-align: center;">{{ __('admin::app.common.no-result-found') }}</td>
<tr>
@endif
</tbody>
</table>
</div>
@inject('order','Webkul\Shop\DataGrids\OrderDataGrid')
{!! $order->render() !!}
</div>
@if (!$orders->count())
<div class="responsive-empty">{{ __('admin::app.common.no-result-found') }}</div>
@endif
</div>
{!! view_render_event('bagisto.shop.customers.account.orders.list.after', ['orders' => $orders]) !!}