fixed #47
This commit is contained in:
parent
0c1e026bb5
commit
6d246f03e4
@ -138,6 +138,11 @@ class Invoices extends ApiController
|
|||||||
|
|
||||||
InvoiceHistory::create($request->input());
|
InvoiceHistory::create($request->input());
|
||||||
|
|
||||||
|
// Update next invoice number
|
||||||
|
$next = setting('general.invoice_number_next', 1) + 1;
|
||||||
|
setting(['general.invoice_number_next' => $next]);
|
||||||
|
setting()->save();
|
||||||
|
|
||||||
// Fire the event to make it extendible
|
// Fire the event to make it extendible
|
||||||
event(new InvoiceCreated($invoice));
|
event(new InvoiceCreated($invoice));
|
||||||
|
|
||||||
|
@ -232,7 +232,13 @@ class Invoices extends Controller
|
|||||||
|
|
||||||
$taxes = Tax::enabled()->pluck('name', 'id');
|
$taxes = Tax::enabled()->pluck('name', 'id');
|
||||||
|
|
||||||
return view('incomes.invoices.create', compact('customers', 'currencies', 'items', 'taxes'));
|
// Generate next invoice number
|
||||||
|
$prefix = setting('general.invoice_number_prefix', 'INV-');
|
||||||
|
$next = setting('general.invoice_number_next', '1');
|
||||||
|
$digit = setting('general.invoice_number_digit', '5');
|
||||||
|
$number = $prefix . str_pad($next, $digit, '0', STR_PAD_LEFT);
|
||||||
|
|
||||||
|
return view('incomes.invoices.create', compact('customers', 'currencies', 'items', 'taxes', 'number'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -345,6 +351,11 @@ class Invoices extends Controller
|
|||||||
|
|
||||||
InvoiceHistory::create($request->all());
|
InvoiceHistory::create($request->all());
|
||||||
|
|
||||||
|
// Update next invoice number
|
||||||
|
$next = setting('general.invoice_number_next', 1) + 1;
|
||||||
|
setting(['general.invoice_number_next' => $next]);
|
||||||
|
setting()->save();
|
||||||
|
|
||||||
// Fire the event to make it extendible
|
// Fire the event to make it extendible
|
||||||
event(new InvoiceCreated($invoice));
|
event(new InvoiceCreated($invoice));
|
||||||
|
|
||||||
|
36
app/Listeners/Updates/Version108.php
Normal file
36
app/Listeners/Updates/Version108.php
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Listeners\Updates;
|
||||||
|
|
||||||
|
use App\Events\UpdateFinished;
|
||||||
|
|
||||||
|
class Version108 extends Listener
|
||||||
|
{
|
||||||
|
const ALIAS = 'core';
|
||||||
|
|
||||||
|
const VERSION = '1.0.8';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the event.
|
||||||
|
*
|
||||||
|
* @param $event
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle(UpdateFinished $event)
|
||||||
|
{
|
||||||
|
// Check if should listen
|
||||||
|
if (!$this->check($event)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
setting(['general.invoice_number_prefix' => setting('general.invoice_prefix', 'INV-')]);
|
||||||
|
setting(['general.invoice_number_digit' => setting('general.invoice_digit', '5')]);
|
||||||
|
setting(['general.invoice_number_next' => setting('general.invoice_start', '1')]);
|
||||||
|
|
||||||
|
setting()->forget('general.invoice_prefix');
|
||||||
|
setting()->forget('general.invoice_digit');
|
||||||
|
setting()->forget('general.invoice_start');
|
||||||
|
|
||||||
|
setting()->save();
|
||||||
|
}
|
||||||
|
}
|
@ -16,6 +16,7 @@ class EventServiceProvider extends ServiceProvider
|
|||||||
'App\Events\UpdateFinished' => [
|
'App\Events\UpdateFinished' => [
|
||||||
'App\Listeners\Updates\Version106',
|
'App\Listeners\Updates\Version106',
|
||||||
'App\Listeners\Updates\Version107',
|
'App\Listeners\Updates\Version107',
|
||||||
|
'App\Listeners\Updates\Version108',
|
||||||
],
|
],
|
||||||
'Illuminate\Auth\Events\Login' => [
|
'Illuminate\Auth\Events\Login' => [
|
||||||
'App\Listeners\Auth\Login',
|
'App\Listeners\Auth\Login',
|
||||||
|
@ -30,9 +30,9 @@ class Settings extends Seeder
|
|||||||
'general.date_format' => 'd M Y',
|
'general.date_format' => 'd M Y',
|
||||||
'general.date_separator' => 'space',
|
'general.date_separator' => 'space',
|
||||||
'general.timezone' => 'Europe/London',
|
'general.timezone' => 'Europe/London',
|
||||||
'general.invoice_prefix' => 'INV-',
|
'general.invoice_number_prefix' => 'INV-',
|
||||||
'general.invoice_digit' => '5',
|
'general.invoice_number_digit' => '5',
|
||||||
'general.invoice_start' => '1',
|
'general.invoice_number_next' => '1',
|
||||||
'general.default_payment_method' => 'offlinepayment.cash.1',
|
'general.default_payment_method' => 'offlinepayment.cash.1',
|
||||||
'general.email_protocol' => 'mail',
|
'general.email_protocol' => 'mail',
|
||||||
'general.email_sendmail_path' => '/usr/sbin/sendmail -bs',
|
'general.email_sendmail_path' => '/usr/sbin/sendmail -bs',
|
||||||
|
@ -24,10 +24,10 @@ return [
|
|||||||
],
|
],
|
||||||
'invoice' => [
|
'invoice' => [
|
||||||
'tab' => 'Invoice',
|
'tab' => 'Invoice',
|
||||||
'prefix' => 'Invoice Prefix',
|
'prefix' => 'Prefix',
|
||||||
'digit' => 'Invoice Number Digit',
|
'digit' => 'Number Digit',
|
||||||
'start' => 'Invoice Start Number',
|
'next' => 'Next Number',
|
||||||
'logo' => 'Invoice Logo',
|
'logo' => 'Logo',
|
||||||
],
|
],
|
||||||
'default' => [
|
'default' => [
|
||||||
'tab' => 'Defaults',
|
'tab' => 'Defaults',
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
<div class="row invoice-header">
|
<div class="row invoice-header">
|
||||||
<div class="col-xs-7">
|
<div class="col-xs-7">
|
||||||
@if (setting('general.invoice_logo'))
|
@if (setting('general.invoice_logo'))
|
||||||
<img src="{{ asset(setting('general.invoice_logo')) }}" class="invoice-logo" />
|
<img src="{{ Storage::url(setting('general.invoice_logo')) }}" class="invoice-logo" />
|
||||||
@else
|
@else
|
||||||
<img src="{{ asset(setting('general.company_logo')) }}" class="invoice-logo" />
|
<img src="{{ Storage::url(setting('general.company_logo')) }}" class="invoice-logo" />
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-5 invoice-company">
|
<div class="col-xs-5 invoice-company">
|
||||||
|
@ -10,9 +10,9 @@
|
|||||||
<div class="row invoice-header">
|
<div class="row invoice-header">
|
||||||
<div class="col-xs-7">
|
<div class="col-xs-7">
|
||||||
@if (setting('general.invoice_logo'))
|
@if (setting('general.invoice_logo'))
|
||||||
<img src="{{ asset(setting('general.invoice_logo')) }}" class="invoice-logo" />
|
<img src="{{ Storage::url(setting('general.invoice_logo')) }}" class="invoice-logo" />
|
||||||
@else
|
@else
|
||||||
<img src="{{ asset(setting('general.company_logo')) }}" class="invoice-logo" />
|
<img src="{{ Storage::url(setting('general.company_logo')) }}" class="invoice-logo" />
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-5 invoice-company">
|
<div class="col-xs-5 invoice-company">
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
{{ Form::textGroup('due_at', trans('invoices.due_date'), 'calendar',['id' => 'due_at', 'class' => 'form-control', 'required' => 'required', 'data-inputmask' => '\'alias\': \'yyyy/mm/dd\'', 'data-mask' => '']) }}
|
{{ Form::textGroup('due_at', trans('invoices.due_date'), 'calendar',['id' => 'due_at', 'class' => 'form-control', 'required' => 'required', 'data-inputmask' => '\'alias\': \'yyyy/mm/dd\'', 'data-mask' => '']) }}
|
||||||
|
|
||||||
{{ Form::textGroup('invoice_number', trans('invoices.invoice_number'), 'file-text-o') }}
|
{{ Form::textGroup('invoice_number', trans('invoices.invoice_number'), 'file-text-o', ['required' => 'required'], $number) }}
|
||||||
|
|
||||||
{{ Form::textGroup('order_number', trans('invoices.order_number'), 'shopping-cart', []) }}
|
{{ Form::textGroup('order_number', trans('invoices.order_number'), 'shopping-cart', []) }}
|
||||||
|
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
<div class="row invoice-header">
|
<div class="row invoice-header">
|
||||||
<div class="col-xs-7">
|
<div class="col-xs-7">
|
||||||
@if (setting('general.invoice_logo'))
|
@if (setting('general.invoice_logo'))
|
||||||
<img src="{{ asset(setting('general.invoice_logo')) }}" class="invoice-logo" />
|
<img src="{{ Storage::url(setting('general.invoice_logo')) }}" class="invoice-logo" />
|
||||||
@else
|
@else
|
||||||
<img src="{{ asset(setting('general.company_logo')) }}" class="invoice-logo" />
|
<img src="{{ Storage::url(setting('general.company_logo')) }}" class="invoice-logo" />
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-5 invoice-company">
|
<div class="col-xs-5 invoice-company">
|
||||||
|
@ -10,9 +10,9 @@
|
|||||||
<div class="row invoice-header">
|
<div class="row invoice-header">
|
||||||
<div class="col-xs-7">
|
<div class="col-xs-7">
|
||||||
@if (setting('general.invoice_logo'))
|
@if (setting('general.invoice_logo'))
|
||||||
<img src="{{ asset(setting('general.invoice_logo')) }}" class="invoice-logo" />
|
<img src="{{ Storage::url(setting('general.invoice_logo')) }}" class="invoice-logo" />
|
||||||
@else
|
@else
|
||||||
<img src="{{ asset(setting('general.company_logo')) }}" class="invoice-logo" />
|
<img src="{{ Storage::url(setting('general.company_logo')) }}" class="invoice-logo" />
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-5 invoice-company">
|
<div class="col-xs-5 invoice-company">
|
||||||
|
@ -50,11 +50,11 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab-pane tab-margin" id="invoice">
|
<div class="tab-pane tab-margin" id="invoice">
|
||||||
{{ Form::textGroup('invoice_prefix', trans('settings.invoice.prefix'), 'font', []) }}
|
{{ Form::textGroup('invoice_number_prefix', trans('settings.invoice.prefix'), 'font', []) }}
|
||||||
|
|
||||||
{{ Form::textGroup('invoice_digit', trans('settings.invoice.digit'), 'text-width', []) }}
|
{{ Form::textGroup('invoice_number_digit', trans('settings.invoice.digit'), 'text-width', []) }}
|
||||||
|
|
||||||
{{ Form::textGroup('invoice_start', trans('settings.invoice.start'), 'chevron-right', []) }}
|
{{ Form::textGroup('invoice_number_next', trans('settings.invoice.next'), 'chevron-right', []) }}
|
||||||
|
|
||||||
{{ Form::fileGroup('invoice_logo', trans('settings.invoice.logo')) }}
|
{{ Form::fileGroup('invoice_logo', trans('settings.invoice.logo')) }}
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user