54 lines
1.6 KiB
PHP
54 lines
1.6 KiB
PHP
<?php
|
|
|
|
use App\Models\Auth\User;
|
|
use App\Models\Banking\Account;
|
|
use App\Models\Banking\Transaction;
|
|
use App\Models\Banking\Transfer;
|
|
use App\Models\Setting\Category;
|
|
use Faker\Generator as Faker;
|
|
|
|
$user = User::first();
|
|
$company = $user->companies()->first();
|
|
|
|
$factory->define(Transfer::class, function (Faker $faker) use ($company) {
|
|
session(['company_id' => $company->id]);
|
|
setting()->setExtraColumns(['company_id' => $company->id]);
|
|
|
|
$accounts = Account::enabled()->get();
|
|
|
|
if ($accounts->count() >= 2) {
|
|
$random = $accounts->random(2);
|
|
|
|
$expense_account = $random->first();
|
|
$income_account = $random->last();
|
|
} else {
|
|
$expense_account = $accounts->first();
|
|
|
|
$income_account = factory(Account::class)->states('enabled', 'default_currency')->create();
|
|
}
|
|
|
|
$request = [
|
|
'amount' => $faker->randomFloat(2, 1, 1000),
|
|
'paid_at' => $faker->dateTimeBetween(now()->startOfYear(), now()->endOfYear())->format('Y-m-d'),
|
|
'category_id' => Category::transfer(),
|
|
'description' => $faker->text(20),
|
|
'reference' => $faker->text(20),
|
|
];
|
|
|
|
$expense_transaction = factory(Transaction::class)->create(array_merge($request, [
|
|
'type' => 'expense',
|
|
'account_id' => $expense_account->id,
|
|
]));
|
|
|
|
$income_transaction = factory(Transaction::class)->create(array_merge($request, [
|
|
'type' => 'income',
|
|
'account_id' => $income_account->id,
|
|
]));
|
|
|
|
return [
|
|
'company_id' => $company->id,
|
|
'expense_transaction_id' => $expense_transaction->id,
|
|
'income_transaction_id' => $income_transaction->id,
|
|
];
|
|
});
|