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,
 | 
						|
    ];
 | 
						|
});
 |