Merge pull request #1343 from lemmeV/master

added configurable order numbers
This commit is contained in:
Jitendra Singh 2019-09-11 15:51:30 +05:30 committed by GitHub
commit ac48a20822
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 84 additions and 11 deletions

View File

@ -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'),

View File

@ -196,7 +196,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' => [
@ -1130,7 +1131,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',
]
]
];

View File

@ -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>

View File

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

View File

@ -20,5 +20,8 @@ class SalesServiceProvider extends ServiceProvider
*/
public function register()
{
$this->mergeConfigFrom(
dirname(__DIR__) . '/Config/system.php', 'core'
);
}
}

View File

@ -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,30 @@ 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()
? $config->where('code','=',"sales.invoiceSettings.invoice_number.invoice_number_prefix")->first()->value : false;
$invoiceNumberLength = $config->where('code','=',"sales.invoiceSettings.invoice_number.invoice_number_length")->first()
? $config->where('code','=',"sales.invoiceSettings.invoice_number.invoice_number_length")->first()->value : false;
$invoiceNumberSuffix = $config->where('code','=',"sales.invoiceSettings.invoice_number.invoice_number_suffix")->first()
? $config->where('code','=',"sales.invoiceSettings.invoice_number.invoice_number_suffix")->first()->value: false;
$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;
}
/**

View File

@ -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

View File

@ -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>