mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-03 07:34:34 -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';
|
$rules['vendor_id'] = 'bail|required|exists:vendors,id,company_id,'.auth()->user()->company()->id.',is_deleted,0';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($this->expense_id)) {
|
// if (isset($this->expense_id)) {
|
||||||
$rules['expense_id'] = 'bail|required|exists:expenses,id,company_id,'.auth()->user()->company()->id.',is_deleted,0';
|
// $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';
|
$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']);
|
$input['vendor_id'] = $this->decodePrimaryKey($input['vendor_id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists('expense_id', $input) && strlen($input['expense_id']) > 1) {
|
// if (array_key_exists('expense_id', $input) && strlen($input['expense_id']) > 1) {
|
||||||
$input['expense_id'] = $this->decodePrimaryKey($input['expense_id']);
|
// $input['expense_id'] = $this->decodePrimaryKey($input['expense_id']);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (array_key_exists('ninja_category_id', $input) && strlen($input['ninja_category_id']) > 1) {
|
if (array_key_exists('ninja_category_id', $input) && strlen($input['ninja_category_id']) > 1) {
|
||||||
$input['ninja_category_id'] = $this->decodePrimaryKey($input['ninja_category_id']);
|
$input['ninja_category_id'] = $this->decodePrimaryKey($input['ninja_category_id']);
|
||||||
|
@ -11,20 +11,23 @@
|
|||||||
|
|
||||||
namespace App\Repositories;
|
namespace App\Repositories;
|
||||||
|
|
||||||
use App\Jobs\Bank\MatchBankTransactions;
|
use App\Models\Expense;
|
||||||
use App\Models\BankTransaction;
|
use App\Models\BankTransaction;
|
||||||
|
use App\Jobs\Bank\MatchBankTransactions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class for bank transaction repository.
|
* Class for bank transaction repository.
|
||||||
*/
|
*/
|
||||||
class BankTransactionRepository extends BaseRepository
|
class BankTransactionRepository extends BaseRepository
|
||||||
{
|
{
|
||||||
|
|
||||||
public function save($data, BankTransaction $bank_transaction)
|
public function save($data, BankTransaction $bank_transaction)
|
||||||
{
|
{
|
||||||
if (array_key_exists('bank_integration_id', $data)) {
|
if (array_key_exists('bank_integration_id', $data)) {
|
||||||
$bank_transaction->bank_integration_id = $data['bank_integration_id'];
|
$bank_transaction->bank_integration_id = $data['bank_integration_id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$bank_transaction->fill($data);
|
$bank_transaction->fill($data);
|
||||||
$bank_transaction->save();
|
$bank_transaction->save();
|
||||||
|
|
||||||
@ -49,11 +52,16 @@ class BankTransactionRepository extends BaseRepository
|
|||||||
$bt->payment_id = null;
|
$bt->payment_id = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($bt->expense()->exists()) {
|
$e = Expense::whereIn('id', $this->transformKeys(explode(",", $bt->expense_id)))
|
||||||
$bt->expense->transaction_id = null;
|
->cursor()
|
||||||
$bt->expense_id = null;
|
->each(function ($expense){
|
||||||
}
|
|
||||||
|
$expense->transaction_id = null;
|
||||||
|
$expense->saveQuietly();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$bt->expense_id = null;
|
||||||
$bt->vendor_id = null;
|
$bt->vendor_id = null;
|
||||||
$bt->status_id = 1;
|
$bt->status_id = 1;
|
||||||
$bt->invoice_ids = null;
|
$bt->invoice_ids = null;
|
||||||
|
@ -63,7 +63,7 @@ class BankTransactionTransformer extends EntityTransformer
|
|||||||
'description' => (string) $bank_transaction->description ?: '',
|
'description' => (string) $bank_transaction->description ?: '',
|
||||||
'base_type' => (string) $bank_transaction->base_type ?: '',
|
'base_type' => (string) $bank_transaction->base_type ?: '',
|
||||||
'invoice_ids' => (string) $bank_transaction->invoice_ids ?: '',
|
'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) ?: '',
|
'payment_id'=> (string) $this->encodePrimaryKey($bank_transaction->payment_id) ?: '',
|
||||||
'vendor_id'=> (string) $this->encodePrimaryKey($bank_transaction->vendor_id) ?: '',
|
'vendor_id'=> (string) $this->encodePrimaryKey($bank_transaction->vendor_id) ?: '',
|
||||||
'bank_transaction_rule_id' => (string) $this->encodePrimaryKey($bank_transaction->bank_transaction_rule_id) ?: '',
|
'bank_transaction_rule_id' => (string) $this->encodePrimaryKey($bank_transaction->bank_transaction_rule_id) ?: '',
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
use App\Models\Expense;
|
||||||
use Tests\MockAccountData;
|
use Tests\MockAccountData;
|
||||||
use App\Models\BankIntegration;
|
use App\Models\BankIntegration;
|
||||||
use App\Models\BankTransaction;
|
use App\Models\BankTransaction;
|
||||||
@ -122,19 +123,31 @@ class BankTransactionApiTest extends TestCase
|
|||||||
'user_id' => $this->user->id,
|
'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_transaction = BankTransaction::factory()->create([
|
||||||
'bank_integration_id' => $bi->id,
|
'bank_integration_id' => $bi->id,
|
||||||
'user_id' => $this->user->id,
|
'user_id' => $this->user->id,
|
||||||
'company_id' => $this->company->id,
|
'company_id' => $this->company->id,
|
||||||
'payment_id' => $this->payment->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,
|
'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 = [
|
$data = [
|
||||||
'ids' => [$this->encodePrimaryKey($bank_transaction->id)],
|
'ids' => [$this->encodePrimaryKey($bank_transaction->id)],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nlog($bank_transaction->toArray());
|
||||||
$response = $this->withHeaders([
|
$response = $this->withHeaders([
|
||||||
'X-API-SECRET' => config('ninja.api_secret'),
|
'X-API-SECRET' => config('ninja.api_secret'),
|
||||||
'X-API-TOKEN' => $this->token,
|
'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]['payment_id']);
|
||||||
$this->assertEquals("", $arr['data'][0]['invoice_ids']);
|
$this->assertEquals("", $arr['data'][0]['invoice_ids']);
|
||||||
$this->assertEquals("", $arr['data'][0]['expense_id']);
|
$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