akaunting/app/Traits/Sales.php

64 lines
1.3 KiB
PHP
Raw Normal View History

2017-11-26 15:20:17 +03:00
<?php
namespace App\Traits;
2019-12-31 16:03:20 +03:00
trait Sales
2017-11-26 15:20:17 +03:00
{
/**
* Generate next invoice number
*
* @return string
*/
public function getNextInvoiceNumber()
{
2019-11-16 10:21:14 +03:00
$prefix = setting('invoice.number_prefix', 'INV-');
$next = setting('invoice.number_next', '1');
$digit = setting('invoice.number_digit', '5');
2017-11-26 15:20:17 +03:00
$number = $prefix . str_pad($next, $digit, '0', STR_PAD_LEFT);
return $number;
}
/**
* Increase the next invoice number
*/
public function increaseNextInvoiceNumber()
{
2019-11-16 10:21:14 +03:00
$next = setting('invoice.number_next', 1) + 1;
setting(['invoice.number_next' => $next]);
2017-11-26 15:20:17 +03:00
setting()->save();
}
2020-01-11 16:57:32 +03:00
/**
* Get a collection invoice statuses
*
* @return Collection
*/
public function getInvoiceStatuses()
{
$list = [
'draft',
'sent',
'viewed',
'approved',
'partial',
'paid',
'overdue',
'unpaid',
2020-03-28 17:54:36 +03:00
'cancelled',
2020-01-11 16:57:32 +03:00
];
$statuses = collect($list)->each(function ($code) {
$item = new \stdClass();
$item->code = $code;
$item->name = trans('invoices.statuses.' . $code);
return $item;
});
return $statuses;
}
}