added configurable order numbers
This commit is contained in:
parent
d36ae19c9a
commit
4f8f470095
|
|
@ -28,7 +28,7 @@ class OrderDataGrid extends DataGrid
|
|||
$leftJoin->on('order_address_billing.order_id', '=', 'orders.id')
|
||||
->where('order_address_billing.address_type', 'billing');
|
||||
})
|
||||
->addSelect('orders.id', 'orders.base_sub_total', 'orders.base_grand_total', 'orders.created_at', 'channel_name', 'status')
|
||||
->addSelect('orders.id','orders.increment_id', 'orders.base_sub_total', 'orders.base_grand_total', 'orders.created_at', 'channel_name', 'status')
|
||||
->addSelect(DB::raw('CONCAT(order_address_billing.first_name, " ", order_address_billing.last_name) as billed_to'))
|
||||
->addSelect(DB::raw('CONCAT(order_address_shipping.first_name, " ", order_address_shipping.last_name) as shipped_to'));
|
||||
|
||||
|
|
@ -50,7 +50,14 @@ class OrderDataGrid extends DataGrid
|
|||
'sortable' => true,
|
||||
'filterable' => true
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'increment_id',
|
||||
'label' => trans('admin::app.datagrid.order_number'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true
|
||||
]);
|
||||
$this->addColumn([
|
||||
'index' => 'base_sub_total',
|
||||
'label' => trans('admin::app.datagrid.sub-total'),
|
||||
|
|
|
|||
|
|
@ -165,7 +165,8 @@ return [
|
|||
'ends-till' => 'Ends Till',
|
||||
'per-cust' => 'Per Customer',
|
||||
'usage-throttle' => 'Usage Times',
|
||||
'for-guest' => 'For Guest'
|
||||
'for-guest' => 'For Guest',
|
||||
'order_number' => 'Order Number'
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1096,7 +1097,13 @@ return [
|
|||
'logo-image' => 'Logo Image',
|
||||
'credit-max' => 'Customer Credit Max',
|
||||
'credit-max-value' => 'Credit Max Value',
|
||||
'use-credit-max' => 'Use Credit Max'
|
||||
'use-credit-max' => 'Use Credit Max',
|
||||
'invoice-settings' => 'Invoice Settings',
|
||||
'invoiceNumber' => 'Invoice Number Settings',
|
||||
'invoice number prefix' => 'Invoice Number Prefix',
|
||||
'invoice number length' => 'Invoice Number Length',
|
||||
'invoice number suffix' => 'Invoice Number Suffix',
|
||||
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
|
||||
{{ __('admin::app.sales.orders.view-title', ['order_id' => $order->id]) }}
|
||||
{{ __('admin::app.sales.orders.view-title', ['order_id' => $order->increment_id]) }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
[
|
||||
'key' => 'sales.invoiceSettings',
|
||||
'name' => 'admin::app.admin.system.invoice-settings',
|
||||
'sort' => 3,
|
||||
],[
|
||||
'key' => 'sales.invoiceSettings.invoice_number',
|
||||
'name' => 'admin::app.admin.system.invoiceNumber',
|
||||
'sort' => 0,
|
||||
'fields' => [
|
||||
[
|
||||
'name' => 'invoice_number_prefix',
|
||||
'title' => 'admin::app.admin.system.invoice number prefix',
|
||||
'type' => 'text',
|
||||
'validation' => false,
|
||||
'channel_based' => true,
|
||||
'locale_based' => true
|
||||
],
|
||||
[
|
||||
'name' => 'invoice_number_length',
|
||||
'title' => 'admin::app.admin.system.invoice number length',
|
||||
'type' => 'text',
|
||||
'validation' => false,
|
||||
'channel_based' => true,
|
||||
'locale_based' => true
|
||||
],
|
||||
[
|
||||
'name' => 'invoice_number_suffix',
|
||||
'title' => 'admin::app.admin.system.invoice number suffix',
|
||||
'type' => 'text',
|
||||
'validation' => false,
|
||||
'channel_based' => true,
|
||||
'locale_based' => true
|
||||
],
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
@ -20,5 +20,8 @@ class SalesServiceProvider extends ServiceProvider
|
|||
*/
|
||||
public function register()
|
||||
{
|
||||
$this->mergeConfigFrom(
|
||||
dirname(__DIR__) . '/Config/system.php', 'core'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -9,6 +9,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||
use Webkul\Core\Eloquent\Repository;
|
||||
use Webkul\Sales\Contracts\Order;
|
||||
use Webkul\Sales\Repositories\OrderItemRepository;
|
||||
use Webkul\Core\Models\CoreConfig;
|
||||
|
||||
/**
|
||||
* Order Reposotory
|
||||
|
|
@ -143,14 +144,27 @@ class OrderRepository extends Repository
|
|||
|
||||
/**
|
||||
* @inheritDoc
|
||||
* @return int|string
|
||||
*/
|
||||
public function generateIncrementId()
|
||||
{
|
||||
$lastOrder = $this->model->orderBy('id', 'desc')->limit(1)->first();
|
||||
$config = new CoreConfig();
|
||||
$invoiceNumberPrefix = $config->where('code','=',"sales.invoiceSettings.invoice_number.invoice_number_prefix")->first()->value;
|
||||
$invoiceNumberLength = $config->where('code','=',"sales.invoiceSettings.invoice_number.invoice_number_length")->first()->value;
|
||||
$invoiceNumberSuffix = $config->where('code','=',"sales.invoiceSettings.invoice_number.invoice_number_suffix")->first()->value;
|
||||
|
||||
$lastOrder = $this->model->orderBy('id', 'desc')->limit(1)->first();
|
||||
$lastId = $lastOrder ? $lastOrder->id : 0;
|
||||
|
||||
return $lastId + 1;
|
||||
if($invoiceNumberLength && ( $invoiceNumberPrefix || $invoiceNumberSuffix) ){
|
||||
|
||||
$invoiceNumber = $invoiceNumberPrefix . sprintf("%0{$invoiceNumberLength}d", $lastId + 1) . $invoiceNumberSuffix;
|
||||
}
|
||||
else{
|
||||
$invoiceNumber = $lastId + 1;
|
||||
}
|
||||
|
||||
return $invoiceNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ class OrderDataGrid extends DataGrid
|
|||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('orders as order')
|
||||
->addSelect('order.id', 'order.status', 'order.created_at', 'order.grand_total', 'order.order_currency_code')
|
||||
->addSelect('order.id','order.increment_id', 'order.status', 'order.created_at', 'order.grand_total', 'order.order_currency_code')
|
||||
->where('customer_id', auth()->guard('customer')->user()->id);
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
|
|
@ -29,9 +29,9 @@ class OrderDataGrid extends DataGrid
|
|||
public function addColumns()
|
||||
{
|
||||
$this->addColumn([
|
||||
'index' => 'id',
|
||||
'index' => 'increment_id',
|
||||
'label' => trans('shop::app.customer.account.order.index.order_id'),
|
||||
'type' => 'number',
|
||||
'type' => 'text',
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'filterable' => true
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<div class="order-success-content" style="min-height: 300px;">
|
||||
<h1>{{ __('shop::app.checkout.success.thanks') }}</h1>
|
||||
|
||||
<p>{{ __('shop::app.checkout.success.order-id-info', ['order_id' => $order->id]) }}</p>
|
||||
<p>{{ __('shop::app.checkout.success.order-id-info', ['order_id' => $order->increment_id]) }}</p>
|
||||
|
||||
<p>{{ __('shop::app.checkout.success.info') }}</p>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue