From f2fb58379728ad38c6b69b4c7e8da809ef6b13e5 Mon Sep 17 00:00:00 2001 From: philipp lang Date: Fri, 4 Apr 2025 21:42:54 +0200 Subject: [PATCH] Add update to bank account --- app/Member/MemberRequest.php | 1 + ...3_30_035130_create_bank_accounts_table.php | 5 +++ tests/Feature/Member/UpdateTest.php | 35 +++++++++++++++++-- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/app/Member/MemberRequest.php b/app/Member/MemberRequest.php index a46513b6..8c158439 100644 --- a/app/Member/MemberRequest.php +++ b/app/Member/MemberRequest.php @@ -121,6 +121,7 @@ class MemberRequest extends FormRequest $namiSync = $member->isDirty(Member::$namiFields); $member->save(); + $member->bankAccount->update($this->input('bank_account')); if ($this->input('has_nami') && null === $member->nami_id) { $this->storeFreshMemberInNami($member); diff --git a/database/migrations/2025_03_30_035130_create_bank_accounts_table.php b/database/migrations/2025_03_30_035130_create_bank_accounts_table.php index cf436128..7249021c 100644 --- a/database/migrations/2025_03_30_035130_create_bank_accounts_table.php +++ b/database/migrations/2025_03_30_035130_create_bank_accounts_table.php @@ -1,5 +1,6 @@ string('account_number')->nullable(); $table->timestamps(); }); + + foreach (Member::get() as $member) { + $member->bankAccount()->create([]); + } } /** diff --git a/tests/Feature/Member/UpdateTest.php b/tests/Feature/Member/UpdateTest.php index f7747cd3..b1289e66 100644 --- a/tests/Feature/Member/UpdateTest.php +++ b/tests/Feature/Member/UpdateTest.php @@ -32,7 +32,7 @@ class UpdateTest extends TestCase $response = $this ->from("/member/{$member->id}") - ->patch("/member/{$member->id}", array_merge($member->getAttributes(), ['has_nami' => true])); + ->patch("/member/{$member->id}", array_merge($member->getAttributes(), ['has_nami' => true, 'bank_account' => []])); $response->assertRedirect('/member'); NamiPutMemberAction::spy()->shouldHaveReceived('handle')->withArgs( @@ -51,7 +51,7 @@ class UpdateTest extends TestCase $response = $this ->from("/member/{$member->id}") - ->patch("/member/{$member->id}", array_merge($member->getAttributes(), ['has_nami' => true, 'firstname' => '::firstname::'])); + ->patch("/member/{$member->id}", array_merge($member->getAttributes(), ['has_nami' => true, 'firstname' => '::firstname::', 'bank_account' => []])); $response->assertRedirect("/member/{$member->id}/edit?conflict=1"); } @@ -68,6 +68,7 @@ class UpdateTest extends TestCase 'fax' => '02103 4455130', 'children_phone' => '02103 4455130', 'has_nami' => true, + 'bank_account' => [] ])); $this->assertDatabaseHas('members', [ @@ -77,6 +78,30 @@ class UpdateTest extends TestCase ]); } + public function testItUpdatesBankAccount(): void + { + $this->withoutExceptionHandling()->login()->loginNami(); + $member = $this->member(); + $this->fakeRequest(); + NamiPutMemberAction::allowToRun(); + + $this->patch("/member/{$member->id}", array_merge($member->getAttributes(), [ + 'has_nami' => true, + 'bank_account' => [ + 'iban' => 'DE1122', + 'bic' => 'SOLSDE', + 'person' => 'Max' + ] + ])); + + $this->assertDatabaseHas('bank_accounts', [ + 'iban' => 'DE1122', + 'bic' => 'SOLSDE', + 'person' => 'Max', + 'member_id' => $member->id, + ]); + } + public function testItUpdatesWiederverwendenFlag(): void { $this->withoutExceptionHandling()->login()->loginNami(); @@ -87,6 +112,7 @@ class UpdateTest extends TestCase $this->patch("/member/{$member->id}", array_merge($member->getAttributes(), [ 'keepdata' => true, 'has_nami' => true, + 'bank_account' => [] ])); $this->assertDatabaseHas('members', [ @@ -103,6 +129,7 @@ class UpdateTest extends TestCase $this->patch("/member/{$member->id}", array_merge($member->getAttributes(), [ 'location' => null, + 'bank_account' => [] ])); $this->assertDatabaseHas('members', [ @@ -120,6 +147,7 @@ class UpdateTest extends TestCase ->from("/member/{$member->id}") ->patch("/member/{$member->id}", array_merge($member->getAttributes(), [ 'other_country' => 'englisch', + 'bank_account' => [] ])); $this->assertEquals('englisch', $member->fresh()->other_country); @@ -141,6 +169,7 @@ class UpdateTest extends TestCase 'has_nami' => true, 'first_activity_id' => $activity->id, 'first_subactivity_id' => $subactivity->id, + 'bank_account' => [] ])->assertSessionHasNoErrors(); app(MemberFake::class)->assertStored($member->group->nami_id, [ @@ -163,6 +192,7 @@ class UpdateTest extends TestCase 'has_nami' => true, 'first_activity_id' => null, 'first_subactivity_id' => null, + 'bank_account' => [] ])->assertSessionHasErrors([ 'first_activity_id' => 'Erste Tätigkeit ist erforderlich.', 'first_subactivity_id' => 'Erste Untergliederung ist erforderlich.', @@ -190,6 +220,7 @@ class UpdateTest extends TestCase 'multiply_pv' => true, 'multiply_more_pv' => true, 'salutation' => 'Doktor', + 'bank_account' => [] ])); $this->assertEquals('2021-02-01', $member->fresh()->ps_at->format('Y-m-d'));