mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Fixes for setting and linking expense id
This commit is contained in:
parent
d00cdd29f7
commit
0a37f2940c
@ -44,9 +44,9 @@ class UpdateBankTransactionRequest extends Request
|
||||
$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';
|
||||
}
|
||||
// if (isset($this->expense_id)) {
|
||||
// $rules['expense_id'] = 'bail|required|exists:expenses,id,company_id,'.auth()->user()->company()->id.',is_deleted,0';
|
||||
// }
|
||||
|
||||
$rules['bank_integration_id'] = 'bail|required|exists:bank_integrations,id,company_id,'.auth()->user()->company()->id.',is_deleted,0';
|
||||
|
||||
@ -67,9 +67,9 @@ class UpdateBankTransactionRequest extends Request
|
||||
$input['vendor_id'] = $this->decodePrimaryKey($input['vendor_id']);
|
||||
}
|
||||
|
||||
if (array_key_exists('expense_id', $input) && strlen($input['expense_id']) > 1) {
|
||||
$input['expense_id'] = $this->decodePrimaryKey($input['expense_id']);
|
||||
}
|
||||
// if (array_key_exists('expense_id', $input) && strlen($input['expense_id']) > 1) {
|
||||
// $input['expense_id'] = $this->decodePrimaryKey($input['expense_id']);
|
||||
// }
|
||||
|
||||
if (array_key_exists('ninja_category_id', $input) && strlen($input['ninja_category_id']) > 1) {
|
||||
$input['ninja_category_id'] = $this->decodePrimaryKey($input['ninja_category_id']);
|
||||
|
@ -11,20 +11,23 @@
|
||||
|
||||
namespace App\Repositories;
|
||||
|
||||
use App\Jobs\Bank\MatchBankTransactions;
|
||||
use App\Models\Expense;
|
||||
use App\Models\BankTransaction;
|
||||
use App\Jobs\Bank\MatchBankTransactions;
|
||||
|
||||
/**
|
||||
* Class for bank transaction repository.
|
||||
*/
|
||||
class BankTransactionRepository extends BaseRepository
|
||||
{
|
||||
|
||||
public function save($data, BankTransaction $bank_transaction)
|
||||
{
|
||||
if (array_key_exists('bank_integration_id', $data)) {
|
||||
$bank_transaction->bank_integration_id = $data['bank_integration_id'];
|
||||
}
|
||||
|
||||
|
||||
$bank_transaction->fill($data);
|
||||
$bank_transaction->save();
|
||||
|
||||
@ -49,11 +52,16 @@ class BankTransactionRepository extends BaseRepository
|
||||
$bt->payment_id = null;
|
||||
}
|
||||
|
||||
if($bt->expense()->exists()) {
|
||||
$bt->expense->transaction_id = null;
|
||||
$bt->expense_id = null;
|
||||
}
|
||||
$e = Expense::whereIn('id', $this->transformKeys(explode(",", $bt->expense_id)))
|
||||
->cursor()
|
||||
->each(function ($expense){
|
||||
|
||||
$expense->transaction_id = null;
|
||||
$expense->saveQuietly();
|
||||
|
||||
});
|
||||
|
||||
$bt->expense_id = null;
|
||||
$bt->vendor_id = null;
|
||||
$bt->status_id = 1;
|
||||
$bt->invoice_ids = null;
|
||||
|
@ -63,7 +63,7 @@ class BankTransactionTransformer extends EntityTransformer
|
||||
'description' => (string) $bank_transaction->description ?: '',
|
||||
'base_type' => (string) $bank_transaction->base_type ?: '',
|
||||
'invoice_ids' => (string) $bank_transaction->invoice_ids ?: '',
|
||||
'expense_id'=> (string) $this->encodePrimaryKey($bank_transaction->expense_id) ?: '',
|
||||
'expense_id'=> (string) $bank_transaction->expense_id ?: '',
|
||||
'payment_id'=> (string) $this->encodePrimaryKey($bank_transaction->payment_id) ?: '',
|
||||
'vendor_id'=> (string) $this->encodePrimaryKey($bank_transaction->vendor_id) ?: '',
|
||||
'bank_transaction_rule_id' => (string) $this->encodePrimaryKey($bank_transaction->bank_transaction_rule_id) ?: '',
|
||||
|
@ -12,6 +12,7 @@
|
||||
namespace Tests\Feature;
|
||||
|
||||
use Tests\TestCase;
|
||||
use App\Models\Expense;
|
||||
use Tests\MockAccountData;
|
||||
use App\Models\BankIntegration;
|
||||
use App\Models\BankTransaction;
|
||||
@ -122,19 +123,31 @@ class BankTransactionApiTest extends TestCase
|
||||
'user_id' => $this->user->id,
|
||||
]);
|
||||
|
||||
$e = Expense::factory()->create([
|
||||
'company_id' => $this->company->id,
|
||||
'user_id' => $this->user->id,
|
||||
]);
|
||||
|
||||
$bank_transaction = BankTransaction::factory()->create([
|
||||
'bank_integration_id' => $bi->id,
|
||||
'user_id' => $this->user->id,
|
||||
'company_id' => $this->company->id,
|
||||
'payment_id' => $this->payment->id,
|
||||
'expense_id' => $this->expense->id,
|
||||
'expense_id' => "{$this->expense->hashed_id},{$e->hashed_id}",
|
||||
'invoice_ids' => $this->invoice->hashed_id,
|
||||
]);
|
||||
|
||||
$e->transaction_id = $bank_transaction->id;
|
||||
$e->save();
|
||||
|
||||
$this->expense->transaction_id = $bank_transaction->id;
|
||||
$this->expense->save();
|
||||
|
||||
$data = [
|
||||
'ids' => [$this->encodePrimaryKey($bank_transaction->id)],
|
||||
];
|
||||
|
||||
nlog($bank_transaction->toArray());
|
||||
$response = $this->withHeaders([
|
||||
'X-API-SECRET' => config('ninja.api_secret'),
|
||||
'X-API-TOKEN' => $this->token,
|
||||
@ -146,6 +159,9 @@ class BankTransactionApiTest extends TestCase
|
||||
$this->assertEquals("", $arr['data'][0]['payment_id']);
|
||||
$this->assertEquals("", $arr['data'][0]['invoice_ids']);
|
||||
$this->assertEquals("", $arr['data'][0]['expense_id']);
|
||||
|
||||
$this->assertNull($e->fresh()->transaction_id);
|
||||
$this->assertNull($this->expense->fresh()->transaction_id);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user