Add validation
This commit is contained in:
parent
4690e86bbf
commit
52ac5937a4
|
@ -81,4 +81,14 @@ class MemberData extends Data
|
||||||
{
|
{
|
||||||
return (string) $this->birthday->year;
|
return (string) $this->birthday->year;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function birthdayHuman(): string
|
||||||
|
{
|
||||||
|
return $this->birthday->format('d.m.Y');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function genderLetter(): string
|
||||||
|
{
|
||||||
|
return $this->gender->short;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,11 +25,14 @@ class GallierDocument extends ContributionDocument
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function dateRange(): string
|
public function dateFromHuman(): string
|
||||||
{
|
{
|
||||||
return Carbon::parse($this->dateFrom)->format('d.m.Y')
|
return Carbon::parse($this->dateFrom)->format('d.m.Y');
|
||||||
. ' - '
|
}
|
||||||
. Carbon::parse($this->dateUntil)->format('d.m.Y');
|
|
||||||
|
public function dateUntilHuman(): string
|
||||||
|
{
|
||||||
|
return Carbon::parse($this->dateUntil)->format('d.m.Y');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -60,40 +63,6 @@ class GallierDocument extends ContributionDocument
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function countryName(): string
|
|
||||||
{
|
|
||||||
return $this->country->name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function memberShort(MemberData $member): string
|
|
||||||
{
|
|
||||||
return $member->isLeader ? 'L' : '';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function memberName(MemberData $member): string
|
|
||||||
{
|
|
||||||
return $member->separatedName();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function memberAddress(MemberData $member): string
|
|
||||||
{
|
|
||||||
return $member->fullAddress();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function memberGender(MemberData $member): string
|
|
||||||
{
|
|
||||||
if (!$member->gender) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
return strtolower(substr($member->gender->name, 0, 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function memberAge(MemberData $member): string
|
|
||||||
{
|
|
||||||
return $member->age();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function basename(): string
|
public function basename(): string
|
||||||
{
|
{
|
||||||
return 'zuschuesse-gallier';
|
return 'zuschuesse-gallier';
|
||||||
|
@ -123,7 +92,7 @@ class GallierDocument extends ContributionDocument
|
||||||
|
|
||||||
public static function getName(): string
|
public static function getName(): string
|
||||||
{
|
{
|
||||||
return 'Für RdP NRW erstellen';
|
return 'Für Gallier erstellen';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -134,9 +103,7 @@ class GallierDocument extends ContributionDocument
|
||||||
return [
|
return [
|
||||||
'dateFrom' => 'required|string|date_format:Y-m-d',
|
'dateFrom' => 'required|string|date_format:Y-m-d',
|
||||||
'dateUntil' => 'required|string|date_format:Y-m-d',
|
'dateUntil' => 'required|string|date_format:Y-m-d',
|
||||||
'country' => 'required|integer|exists:countries,id',
|
|
||||||
'zipLocation' => 'required|string',
|
'zipLocation' => 'required|string',
|
||||||
'eventName' => 'required|string',
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,15 @@ class Gender extends Model
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getShortAttribute(): string
|
||||||
|
{
|
||||||
|
return match ($this->name) {
|
||||||
|
'Männlich' => 'm',
|
||||||
|
'Weiblich' => 'w',
|
||||||
|
default => ''
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
public static function fromString(string $title): self
|
public static function fromString(string $title): self
|
||||||
{
|
{
|
||||||
return self::firstWhere('name', $title);
|
return self::firstWhere('name', $title);
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
\node[anchor=center, text width=45.75mm, align=center] at ($(135.35mm, 59.7mm + 9.2mm * <<<$i%14>>>)$) {<<<$member->address>>>};
|
\node[anchor=center, text width=45.75mm, align=center] at ($(135.35mm, 59.7mm + 9.2mm * <<<$i%14>>>)$) {<<<$member->address>>>};
|
||||||
\node[anchor=center, text width=26.75mm, align=center] at ($(174.35mm, 59.7mm + 9.2mm * <<<$i%14>>>)$) {<<<$member->city()>>>};
|
\node[anchor=center, text width=26.75mm, align=center] at ($(174.35mm, 59.7mm + 9.2mm * <<<$i%14>>>)$) {<<<$member->city()>>>};
|
||||||
\node[anchor=center, text width=19.75mm, align=center] at ($(199.35mm, 59.7mm + 9.2mm * <<<$i%14>>>)$) {<<<$member->birthdayHuman()>>>};
|
\node[anchor=center, text width=19.75mm, align=center] at ($(199.35mm, 59.7mm + 9.2mm * <<<$i%14>>>)$) {<<<$member->birthdayHuman()>>>};
|
||||||
\node[anchor=center, text width=7.75mm, align=center] at ($(216.35mm, 59.7mm + 9.2mm * <<<$i%14>>>)$) {<<<$member->gender?->short>>>};
|
\node[anchor=center, text width=7.75mm, align=center] at ($(216.35mm, 59.7mm + 9.2mm * <<<$i%14>>>)$) {<<<$member->genderLetter()>>>};
|
||||||
\node[anchor=center, text width=7.75mm, align=center] at ($(276.35mm, 59.7mm + 9.2mm * <<<$i%14>>>)$) {<<<$member->isLeader ? 'GL' : 'T'>>>};
|
\node[anchor=center, text width=7.75mm, align=center] at ($(276.35mm, 59.7mm + 9.2mm * <<<$i%14>>>)$) {<<<$member->isLeader ? 'GL' : 'T'>>>};
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ namespace Tests\Feature\Contribution;
|
||||||
use App\Contribution\Documents\ContributionDocument;
|
use App\Contribution\Documents\ContributionDocument;
|
||||||
use App\Contribution\Documents\RdpNrwDocument;
|
use App\Contribution\Documents\RdpNrwDocument;
|
||||||
use App\Contribution\Documents\CitySolingenDocument;
|
use App\Contribution\Documents\CitySolingenDocument;
|
||||||
|
use App\Contribution\Documents\GallierDocument;
|
||||||
use App\Country;
|
use App\Country;
|
||||||
use App\Gender;
|
use App\Gender;
|
||||||
use App\Invoice\InvoiceSettings;
|
use App\Invoice\InvoiceSettings;
|
||||||
|
@ -89,6 +90,21 @@ dataset('validation', function () {
|
||||||
CitySolingenDocument::class,
|
CitySolingenDocument::class,
|
||||||
'zipLocation',
|
'zipLocation',
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
['zipLocation' => ''],
|
||||||
|
GallierDocument::class,
|
||||||
|
'zipLocation',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
['dateFrom' => ''],
|
||||||
|
GallierDocument::class,
|
||||||
|
'dateFrom',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
['dateUntil' => ''],
|
||||||
|
GallierDocument::class,
|
||||||
|
'dateUntil',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue