HasMany BankTransactions

This commit is contained in:
David Bomba 2022-08-12 11:40:35 +10:00
parent f6c377a10a
commit ea611e9256
4 changed files with 29 additions and 12 deletions

View File

@ -49,4 +49,9 @@ class BankIntegration extends BaseModel
return $this->belongsTo(Account::class)->withTrashed();
}
public function transactions()
{
return $this->hasMany(BankTransaction::class)->withTrashed();
}
}

View File

@ -13,6 +13,7 @@ namespace App\Transformers;
use App\Models\Account;
use App\Models\BankIntegration;
use App\Models\BankTransaction;
use App\Utils\Traits\MakesHash;
/**
@ -37,6 +38,7 @@ class BankIntegrationTransformer extends EntityTransformer
protected $availableIncludes = [
'company',
'account',
'bank_transactions',
];
/**
@ -57,6 +59,7 @@ class BankIntegrationTransformer extends EntityTransformer
'balance' => (float)$bank_integration->balance ?: 0,
'currency' => (string)$bank_integration->currency ?: '',
'nickname' => (string)$bank_integration->nickname ?: '',
'from_date' => (string)$bank_integration->from_date ?: '',
'is_deleted' => (bool) $bank_integration->is_deleted,
'created_at' => (int) $bank_integration->created_at,
'updated_at' => (int) $bank_integration->updated_at,
@ -78,4 +81,11 @@ class BankIntegrationTransformer extends EntityTransformer
return $this->includeItem($bank_integration->company, $transformer, Company::class);
}
public function includeBankTransactions(BankIntegration $bank_integration)
{
$transformer = new BankTransactionTransformer($this->serializer);
return $this->includeCollection($bank_integration->transactions, $transformer, BankTransaction::class);
}
}

View File

@ -51,18 +51,18 @@ class BankTransactionTransformer extends EntityTransformer
{
return [
'id' => (string) $this->encodePrimaryKey($bank_transaction->id),
'transaction_id' => (int)$bank_transaction->transaction_id,
'amount' => (float)$bank_transaction->amount ?: 0,
'currency_code' => (string)$bank_transaction->currency_code ?: '',
'account_type' => (string)$bank_transaction->account_type ?: '',
'transaction_id' => (int) $bank_transaction->transaction_id,
'amount' => (float) $bank_transaction->amount ?: 0,
'currency_code' => (string) $bank_transaction->currency_code ?: '',
'account_type' => (string) $bank_transaction->account_type ?: '',
'category_id' => (int) $bank_transaction->category_id,
'category_type' => (string)$bank_transaction->category_type ?: '',
'date' => (string)$bank_transaction->date ?: '',
'bank_account_id' => (int)$bank_transaction->bank_account_id,
'description' => (string)$bank_transaction->description ?: '',
'invoice_id' => (string)$this->encodePrimaryKey($bank_transaction->invoice_id) ?: '',
'expense_id'=> (string)$this->encodePrimaryKey($bank_transaction->expense_id) ?: '',
'is_matched'=> (bool)$bank_transaction->is_matched ?: '',
'category_type' => (string) $bank_transaction->category_type ?: '',
'date' => (string) $bank_transaction->date ?: '',
'bank_account_id' => (int) $bank_transaction->bank_account_id,
'description' => (string) $bank_transaction->description ?: '',
'invoice_id' => (string) $this->encodePrimaryKey($bank_transaction->invoice_id) ?: '',
'expense_id'=> (string) $this->encodePrimaryKey($bank_transaction->expense_id) ?: '',
'is_matched'=> (bool) $bank_transaction->is_matched ?: '',
'is_deleted' => (bool) $bank_transaction->is_deleted,
'created_at' => (int) $bank_transaction->created_at,
'updated_at' => (int) $bank_transaction->updated_at,

View File

@ -34,6 +34,7 @@ return new class extends Migration
$table->decimal('balance', 20, 6)->default(0); //currentBalance.amount
$table->text('currency')->nullable(); //currentBalance.currency
$table->text('nickname')->default(''); //accountName
$table->date('from_date')->nullable();
$table->boolean('is_deleted')->default(0);
@ -53,7 +54,7 @@ return new class extends Migration
$table->id();
$table->unsignedInteger('company_id');
$table->unsignedInteger('user_id');
$table->unsignedBigInteger('bank_integration_id');
$table->unsignedBigInteger('transaction_id')->nullable();
$table->decimal('amount', 20, 6);
$table->string('currency_code');
@ -71,6 +72,7 @@ return new class extends Migration
$table->timestamps(6);
$table->softDeletes('deleted_at', 6);
$table->foreign('bank_integration_id')->references('id')->on('bank_integrations')->onDelete('cascade')->onUpdate('cascade');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade')->onUpdate('cascade');
$table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade')->onUpdate('cascade');