69 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Pdf\Data;
 | |
| 
 | |
| use App\Member\Member;
 | |
| use App\Pdf\EnvType;
 | |
| use App\Pdf\PdfRepository;
 | |
| use Illuminate\Http\Request;
 | |
| use Illuminate\Support\Str;
 | |
| use Spatie\LaravelData\Data;
 | |
| 
 | |
| class MemberEfzData extends Data implements PdfRepository
 | |
| {
 | |
|     public function __construct(
 | |
|         public ?string $name,
 | |
|         public ?string $secondLine,
 | |
|         public ?string $currentDate,
 | |
|         public ?array $sender = [],
 | |
|         public ?string $filename = '',
 | |
|     ) {
 | |
|     }
 | |
| 
 | |
|     public static function fromRequest(Request $request): self
 | |
|     {
 | |
|         $memberId = $request->member;
 | |
| 
 | |
|         $member = Member::findOrFail($memberId);
 | |
| 
 | |
|         return new self(
 | |
|             name: $member->fullname,
 | |
|             secondLine: "geb. am {$member->birthday->format('d.m.Y')}, wohnhaft in {$member->location}",
 | |
|             currentDate: now()->format('d.m.Y'),
 | |
|             sender: [
 | |
|                 $member->fullname,
 | |
|                 $member->address,
 | |
|                 $member->zip.' '.$member->location,
 | |
|                 'Mglnr.: '.$member->nami_id,
 | |
|             ]
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     public function getFilename(): string
 | |
|     {
 | |
|         return 'efz-fuer-'.Str::slug($this->name);
 | |
|     }
 | |
| 
 | |
|     public function getView(): string
 | |
|     {
 | |
|         return 'tex.efz';
 | |
|     }
 | |
| 
 | |
|     public function getTemplate(): ?string
 | |
|     {
 | |
|         return 'efz';
 | |
|     }
 | |
| 
 | |
|     public function setFilename(string $filename): static
 | |
|     {
 | |
|         $this->filename = $filename;
 | |
| 
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     public function getScript(): EnvType
 | |
|     {
 | |
|         return EnvType::PDFLATEX;
 | |
|     }
 | |
| }
 |