Compare commits
No commits in common. "fa2d93174ae2a6e58284db5c0352abbef5632cdb" and "700d69d1a2d2cd96684717d0b1292b28bdaf9ce7" have entirely different histories.
fa2d93174a
...
700d69d1a2
|
@ -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,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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] = [];
|
||||||
|
|
|
@ -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([
|
||||||
|
|
|
@ -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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue