diff --git a/app/Helpers/Bank/Yodlee/Transformer/IncomeTransformer.php b/app/Helpers/Bank/Yodlee/Transformer/IncomeTransformer.php index b888eb28af69..d772c5f45d66 100644 --- a/app/Helpers/Bank/Yodlee/Transformer/IncomeTransformer.php +++ b/app/Helpers/Bank/Yodlee/Transformer/IncomeTransformer.php @@ -143,6 +143,7 @@ class IncomeTransformer implements BankRevenueInterface 'date' => $transaction->date, 'bank_account_id' => $transaction->accountId, 'description' => $transaction->description->original, + 'base_type' => $transaction->baseType, ]; } diff --git a/app/Http/Requests/BankTransaction/UpdateBankTransactionRequest.php b/app/Http/Requests/BankTransaction/UpdateBankTransactionRequest.php index be5b87e5c4cf..d101cd45239d 100644 --- a/app/Http/Requests/BankTransaction/UpdateBankTransactionRequest.php +++ b/app/Http/Requests/BankTransaction/UpdateBankTransactionRequest.php @@ -31,7 +31,20 @@ class UpdateBankTransactionRequest extends Request public function rules() { /* Ensure we have a client name, and that all emails are unique*/ - $rules = []; + $rules = [ + 'date' => 'bail|required|date', + 'description', 'bail|required|string' + ]; + + if (isset($this->currency_code)) + $rules['currency_code'] = 'sometimes|exists:currencies,code'; + + if(isset($this->vendor_id)) + $rules['vendor_id'] = 'bail|required|exists:vendors,id,company_id,'.auth()->user()->company()->id.',is_deleted,0'; + + if(isset($this->expense_id)) + $rules['expense_id'] = 'bail|required|exists:expenses,id,company_id,'.auth()->user()->company()->id.',is_deleted,0'; + return $rules; } @@ -45,6 +58,15 @@ class UpdateBankTransactionRequest extends Request { $input = $this->all(); + if(array_key_exists('vendor_id', $input)) + $input['vendor_id'] = $this->decodePrimaryKey($input['vendor_id']); + + if(array_key_exists('expense_id', $input)) + $input['expense_id'] = $this->decodePrimaryKey($input['expense_id']); + + if(array_key_exists('ninja_category_id', $input)) + $input['ninja_category_id'] = $this->decodePrimaryKey($input['ninja_category_id']); + $this->replace($input); } diff --git a/app/Repositories/BankTransactionRepository.php b/app/Repositories/BankTransactionRepository.php index e407adb67c0e..1c3bc0951047 100644 --- a/app/Repositories/BankTransactionRepository.php +++ b/app/Repositories/BankTransactionRepository.php @@ -24,10 +24,11 @@ class BankTransactionRepository extends BaseRepository public function save($data, BankTransaction $bank_transaction) { - //stub to store + $bank_transaction->fill($data); - return $bank_transaction->save(); + $bank_transaction->save(); + return $bank_transaction; } } diff --git a/database/migrations/2022_08_05_023357_bank_integration.php b/database/migrations/2022_08_05_023357_bank_integration.php index 3677a966269f..02e386da23da 100644 --- a/database/migrations/2022_08_05_023357_bank_integration.php +++ b/database/migrations/2022_08_05_023357_bank_integration.php @@ -19,11 +19,7 @@ return new class extends Migration $table->unsignedInteger('account_id'); $table->unsignedInteger('company_id'); $table->unsignedInteger('user_id'); - - $table->unsignedInteger('invoice_id'); - $table->unsignedInteger('expense_id'); - $table->boolean('is_matched')->default(0); - + $table->text('provider_name'); //providerName ie Chase $table->bigInteger('provider_id'); //id of the bank $table->bigInteger('bank_account_id'); //id @@ -62,6 +58,7 @@ return new class extends Migration $table->unsignedInteger('category_id')->nullable(); $table->unsignedInteger('ninja_category_id')->nullable(); $table->string('category_type')->index(); + $table->string('base_type')->index(); $table->date('date')->nullable(); $table->unsignedBigInteger('bank_account_id'); $table->text('description')->nullable();