generate bill number
This commit is contained in:
parent
907d348d8f
commit
8201af741b
@ -108,7 +108,9 @@ class Bills extends Controller
|
|||||||
|
|
||||||
$categories = Category::type('expense')->enabled()->orderBy('name')->pluck('name', 'id');
|
$categories = Category::type('expense')->enabled()->orderBy('name')->pluck('name', 'id');
|
||||||
|
|
||||||
return view('purchases.bills.create', compact('vendors', 'currencies', 'currency', 'items', 'taxes', 'categories'));
|
$number = $this->getNextBillNumber();
|
||||||
|
|
||||||
|
return view('purchases.bills.create', compact('vendors', 'currencies', 'currency', 'items', 'taxes', 'categories', 'number'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
23
app/Listeners/Purchase/IncreaseNextBillNumber.php
Normal file
23
app/Listeners/Purchase/IncreaseNextBillNumber.php
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Listeners\Purchase;
|
||||||
|
|
||||||
|
use App\Events\Purchase\BillCreated as Event;
|
||||||
|
use App\Traits\Purchases;
|
||||||
|
|
||||||
|
class IncreaseNextBillNumber
|
||||||
|
{
|
||||||
|
use Purchases;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the event.
|
||||||
|
*
|
||||||
|
* @param $event
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle(Event $event)
|
||||||
|
{
|
||||||
|
// Update next bill number
|
||||||
|
$this->increaseNextBillNumber();
|
||||||
|
}
|
||||||
|
}
|
@ -99,5 +99,6 @@ class Bill extends DocumentModel
|
|||||||
public function onCloning($src, $child = null)
|
public function onCloning($src, $child = null)
|
||||||
{
|
{
|
||||||
$this->status = 'draft';
|
$this->status = 'draft';
|
||||||
|
$this->bill_number = $this->getNextBillNumber();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ class Event extends Provider
|
|||||||
],
|
],
|
||||||
'App\Events\Purchase\BillCreated' => [
|
'App\Events\Purchase\BillCreated' => [
|
||||||
'App\Listeners\Purchase\CreateBillCreatedHistory',
|
'App\Listeners\Purchase\CreateBillCreatedHistory',
|
||||||
|
'App\Listeners\Purchase\IncreaseNextBillNumber',
|
||||||
],
|
],
|
||||||
'App\Events\Purchase\BillReceived' => [
|
'App\Events\Purchase\BillReceived' => [
|
||||||
'App\Listeners\Purchase\MarkBillReceived',
|
'App\Listeners\Purchase\MarkBillReceived',
|
||||||
|
@ -4,6 +4,33 @@ namespace App\Traits;
|
|||||||
|
|
||||||
trait Purchases
|
trait Purchases
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Generate next bill number
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getNextBillNumber()
|
||||||
|
{
|
||||||
|
$prefix = setting('bill.number_prefix', 'BIL-');
|
||||||
|
$next = setting('bill.number_next', '1');
|
||||||
|
$digit = setting('bill.number_digit', '5');
|
||||||
|
|
||||||
|
$number = $prefix . str_pad($next, $digit, '0', STR_PAD_LEFT);
|
||||||
|
|
||||||
|
return $number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increase the next bill number
|
||||||
|
*/
|
||||||
|
public function increaseNextBillNumber()
|
||||||
|
{
|
||||||
|
$next = setting('bill.number_next', 1) + 1;
|
||||||
|
|
||||||
|
setting(['bill.number_next' => $next]);
|
||||||
|
setting()->save();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a collection of bill statuses
|
* Get a collection of bill statuses
|
||||||
*
|
*
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
{{ Form::dateGroup('due_at', trans('bills.due_date'), 'calendar', ['id' => 'due_at', 'class' => 'form-control datepicker', 'required' => 'required', 'date-format' => 'Y-m-d', 'autocomplete' => 'off'], request()->get('due_at', request()->get('billed_at', Date::now()->toDateString()))) }}
|
{{ Form::dateGroup('due_at', trans('bills.due_date'), 'calendar', ['id' => 'due_at', 'class' => 'form-control datepicker', 'required' => 'required', 'date-format' => 'Y-m-d', 'autocomplete' => 'off'], request()->get('due_at', request()->get('billed_at', Date::now()->toDateString()))) }}
|
||||||
|
|
||||||
{{ Form::textGroup('bill_number', trans('bills.bill_number'), 'file') }}
|
{{ Form::textGroup('bill_number', trans('bills.bill_number'), 'file', ['required' => 'required'], $number) }}
|
||||||
|
|
||||||
{{ Form::textGroup('order_number', trans('bills.order_number'), 'shopping-cart',[]) }}
|
{{ Form::textGroup('order_number', trans('bills.order_number'), 'shopping-cart',[]) }}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user