accrual invoices/bills

This commit is contained in:
denisdulici
2017-11-07 05:11:03 +03:00
parent 7bba022101
commit 188953d862
21 changed files with 562 additions and 387 deletions

View File

@@ -3,6 +3,9 @@
namespace App\Listeners\Updates;
use App\Events\UpdateFinished;
use App\Models\Company\Company;
use App\Models\Expense\Bill;
use App\Models\Expense\BillStatus;
class Version108 extends Listener
{
@@ -23,6 +26,13 @@ class Version108 extends Listener
return;
}
$this->updateSettings();
$this->updateBills();
}
private function updateSettings()
{
// Set new invoice settings
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')]);
@@ -33,4 +43,48 @@ class Version108 extends Listener
setting()->save();
}
private function updateBills()
{
// Create new bill statuses
$companies = Company::all();
foreach ($companies as $company) {
$rows = [
[
'company_id' => $company->id,
'name' => trans('bills.status.draft'),
'code' => 'draft',
],
[
'company_id' => $company->id,
'name' => trans('bills.status.received'),
'code' => 'received',
],
];
foreach ($rows as $row) {
BillStatus::create($row);
}
}
$bills = Bill::all();
foreach ($bills as $bill) {
if (($bill->bill_status_code != 'new') || ($bill->bill_status_code != 'updated')) {
continue;
}
$bill->bill_status_code = 'draft';
$bill->save();
}
$new = BillStatus::where('code', 'new');
$new->delete();
$new->forceDelete();
$updated = BillStatus::where('code', 'updated');
$updated->delete();
$updated->forceDelete();
}
}