55 lines
1.8 KiB
PHP
55 lines
1.8 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace Modules\Accounting\Database\Seeders;
|
||
|
|
|
||
|
|
use Illuminate\Database\Seeder;
|
||
|
|
use Modules\Accounting\Models\Account;
|
||
|
|
|
||
|
|
class AccountingSeeder extends Seeder
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* Run the database seeds.
|
||
|
|
*/
|
||
|
|
public function run(): void
|
||
|
|
{
|
||
|
|
// In SaaS onboarding, dynamic restaurant id assigned.
|
||
|
|
// For now, making example default:
|
||
|
|
$restaurantId = 1;
|
||
|
|
|
||
|
|
/*
|
||
|
|
|--------------------------------------------------------------------------
|
||
|
|
| DEFAULT ACCOUNTS (Chart of Accounts)
|
||
|
|
|--------------------------------------------------------------------------
|
||
|
|
*/
|
||
|
|
$defaultAccounts = [
|
||
|
|
['name' => 'Cash', 'type' => 'asset', 'code' => 'AC-001'],
|
||
|
|
['name' => 'Bank', 'type' => 'asset', 'code' => 'AC-002'],
|
||
|
|
['name' => 'Loan Receivable', 'type' => 'asset', 'code' => 'AC-003'],
|
||
|
|
|
||
|
|
['name' => 'Sales', 'type' => 'income', 'code' => 'AC-101'],
|
||
|
|
|
||
|
|
['name' => 'Purchase', 'type' => 'expense', 'code' => 'AC-201'],
|
||
|
|
['name' => 'Operating Expense', 'type' => 'expense', 'code' => 'AC-202'],
|
||
|
|
|
||
|
|
['name' => 'Loan Payable', 'type' => 'liability', 'code' => 'AC-301'],
|
||
|
|
['name' => 'Tips Received', 'type' => 'liability', 'code' => 'AC-302'],
|
||
|
|
];
|
||
|
|
|
||
|
|
foreach ($defaultAccounts as $acc) {
|
||
|
|
Account::updateOrCreate(
|
||
|
|
[
|
||
|
|
'restaurant_id' => $restaurantId,
|
||
|
|
'code' => $acc['code'],
|
||
|
|
],
|
||
|
|
[
|
||
|
|
'name' => $acc['name'],
|
||
|
|
'type' => $acc['type'],
|
||
|
|
'opening_balance' => 0,
|
||
|
|
'current_balance' => 0,
|
||
|
|
'status' => 1,
|
||
|
|
]
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|