Compare commits

..

No commits in common. "fa2d93174ae2a6e58284db5c0352abbef5632cdb" and "700d69d1a2d2cd96684717d0b1292b28bdaf9ce7" have entirely different histories.

4 changed files with 7 additions and 67 deletions

View File

@ -2,7 +2,6 @@
namespace App\Form\Enums; namespace App\Form\Enums;
use App\Form\Models\Form;
use App\Group\Enums\Level; use App\Group\Enums\Level;
use App\Member\Member; use App\Member\Member;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
@ -19,10 +18,6 @@ enum NamiType: string
case ADDRESS = 'Adresse'; case ADDRESS = 'Adresse';
case ZIP = 'PLZ'; case ZIP = 'PLZ';
case LOCATION = 'Ort'; case LOCATION = 'Ort';
case GENDER = 'Geschlecht';
case MOBILEPHONE = 'Handynummer';
case AGE = 'Alter (zum Zeitpunkt der Anmeldung)';
case AGEEVENT = 'Alter (zum Zeitpunkt der Veranstaltung)';
/** /**
* @return array<int, array{name: string, id: string}> * @return array<int, array{name: string, id: string}>
@ -34,7 +29,7 @@ enum NamiType: string
->toArray(); ->toArray();
} }
public function getMemberAttribute(Member $member, Form $form): ?string public function getMemberAttribute(Member $member): ?string
{ {
return match ($this) { return match ($this) {
static::FIRSTNAME => $member->firstname, static::FIRSTNAME => $member->firstname,
@ -47,10 +42,6 @@ enum NamiType: string
static::ZIP => $member->zip, static::ZIP => $member->zip,
static::LOCATION => $member->location, static::LOCATION => $member->location,
static::NICKNAME => $member->nickname, static::NICKNAME => $member->nickname,
static::GENDER => $member->gender?->name,
static::AGE => $member->birthday->diffInYears(now()),
static::AGEEVENT => $member->birthday->diffInYears($form->from),
static::MOBILEPHONE => $member->mobile_phone,
}; };
} }

View File

@ -116,7 +116,7 @@ class NamiField extends Field
foreach (FieldCollection::fromRequest($form, $memberData) as $field) { foreach (FieldCollection::fromRequest($form, $memberData) as $field) {
$data[$field->key] = $field->namiType === null $data[$field->key] = $field->namiType === null
? $field->value ? $field->value
: $field->namiType->getMemberAttribute($member, $form); : $field->namiType->getMemberAttribute($member);
} }
$data[$this->key] = []; $data[$this->key] = [];

View File

@ -3,7 +3,7 @@
namespace Database\Factories\Member; namespace Database\Factories\Member;
use App\Country; use App\Country;
use App\Gender; use App\Fee;
use App\Group; use App\Group;
use App\Invoice\BillKind; use App\Invoice\BillKind;
use App\Member\Member; use App\Member\Member;
@ -68,16 +68,6 @@ class MemberFactory extends Factory
]); ]);
} }
public function male(): self
{
return $this->for(Gender::factory()->male());
}
public function female(): self
{
return $this->for(Gender::factory()->female());
}
public function emailBillKind(): self public function emailBillKind(): self
{ {
return $this->state([ return $this->state([

View File

@ -10,7 +10,6 @@ use App\Group;
use App\Group\Enums\Level; use App\Group\Enums\Level;
use App\Member\Member; use App\Member\Member;
use Carbon\Carbon; use Carbon\Carbon;
use Database\Factories\Member\MemberFactory;
use Generator; use Generator;
use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
@ -481,43 +480,6 @@ class FormRegisterActionTest extends FormTestCase
NamiType::BIRTHDAY, NamiType::BIRTHDAY,
'2023-06-06' '2023-06-06'
]; ];
yield [
[],
NamiType::GENDER,
'Männlich',
fn (MemberFactory $factory) => $factory->male(),
];
yield [
['gender_id' => null],
NamiType::GENDER,
'',
];
yield [
['birthday' => '1991-10-02'],
NamiType::AGE,
'31'
];
yield [
['birthday' => '1991-05-04'],
NamiType::AGE,
'32'
];
yield [
['birthday' => '1991-08-15'],
NamiType::AGEEVENT,
'32'
];
yield [
['mobile_phone' => '+49 7776666'],
NamiType::MOBILEPHONE,
'+49 7776666'
];
} }
/** /**
@ -525,16 +487,14 @@ class FormRegisterActionTest extends FormTestCase
* @param array<string, string> $memberAttributes * @param array<string, string> $memberAttributes
* @param mixed $participantValue * @param mixed $participantValue
*/ */
public function testItSynchsMemberAttributes(array $memberAttributes, NamiType $type, mixed $participantValue, ?callable $factory = null): void public function testItSynchsMemberAttributes(array $memberAttributes, NamiType $type, mixed $participantValue): void
{ {
Carbon::setTestNow(Carbon::parse('2023-05-04'));
$this->login()->loginNami(); $this->login()->loginNami();
$this->createMember(['mitgliedsnr' => '5505', ...$memberAttributes], $factory); $this->createMember(['mitgliedsnr' => '5505', ...$memberAttributes]);
$form = Form::factory()->fields([ $form = Form::factory()->fields([
$this->namiField('members'), $this->namiField('members'),
$this->textField('other')->required(true)->namiType($type), $this->textField('other')->required(true)->namiType($type),
]) ])
->from('2023-08-15')
->create(); ->create();
$this->register($form, ['other' => '::other::', 'members' => [['id' => '5505']]])->assertOk(); $this->register($form, ['other' => '::other::', 'members' => [['id' => '5505']]])->assertOk();
@ -706,10 +666,9 @@ class FormRegisterActionTest extends FormTestCase
/** /**
* @param array<string, mixed> $attributes * @param array<string, mixed> $attributes
*/ */
protected function createMember(array $attributes, ?callable $factoryCallback = null): Member protected function createMember(array $attributes): Member
{ {
return call_user_func($factoryCallback ?: fn ($factory) => $factory, Member::factory()->defaults()) return Member::factory()->defaults()->create($attributes);
->create($attributes);
} }
/** /**