From 5eee14e0dea7f6dd5ddb1f76a63add604a19b23c Mon Sep 17 00:00:00 2001 From: philipp lang <philipp@aweos.de> Date: Tue, 23 Aug 2022 23:49:19 +0200 Subject: [PATCH] Add DV zuschuss --- app/Contribution/ContributionController.php | 3 + app/Contribution/DvData.php | 110 ++++++++++++++++++ app/Contribution/SolingenData.php | 4 +- app/Member/Member.php | 17 ++- app/Member/MemberResource.php | 2 +- app/Pdf/BillType.php | 2 +- app/Pdf/Data/MemberEfzData.php | 2 +- app/Pdf/PdfGenerator.php | 4 +- app/Pdf/PdfRepository.php | 2 +- app/Pdf/RememberType.php | 2 +- resources/js/components/FSelect.vue | 5 +- resources/js/views/contribution/VIndex.vue | 27 +++++ resources/js/views/member/MemberCourses.vue | 67 +++++++---- resources/js/views/member/MemberFilter.vue | 52 +++++++-- .../js/views/member/MemberMemberships.vue | 62 +++++++--- resources/js/views/member/MemberPayments.vue | 95 +++++++++++---- resources/js/views/member/VForm.vue | 22 +++- .../views/subscription/SubscriptionForm.vue | 16 ++- .../templates/zuschussdv/teilnahmeliste.pdf | Bin 0 -> 41285 bytes resources/views/tex/zuschuss-dv.tex | 39 +++++++ 20 files changed, 442 insertions(+), 91 deletions(-) create mode 100644 app/Contribution/DvData.php create mode 100644 resources/views/tex/templates/zuschussdv/teilnahmeliste.pdf create mode 100644 resources/views/tex/zuschuss-dv.tex diff --git a/app/Contribution/ContributionController.php b/app/Contribution/ContributionController.php index 63a8f5d2..a4cbff8c 100644 --- a/app/Contribution/ContributionController.php +++ b/app/Contribution/ContributionController.php @@ -2,6 +2,7 @@ namespace App\Contribution; +use App\Country; use App\Http\Controllers\Controller; use App\Member\Member; use App\Member\MemberResource; @@ -19,6 +20,8 @@ class ContributionController extends Controller return Inertia::render('contribution/VIndex', [ 'allMembers' => MemberResource::collection(Member::slangOrdered()->get()), + 'countries' => Country::pluck('name', 'id'), + 'defaultCountry' => Country::firstWhere('name', 'Deutschland')->id, ]); } diff --git a/app/Contribution/DvData.php b/app/Contribution/DvData.php new file mode 100644 index 00000000..8a70812c --- /dev/null +++ b/app/Contribution/DvData.php @@ -0,0 +1,110 @@ +<?php + +namespace App\Contribution; + +use App\Country; +use App\Member\Member; +use App\Pdf\EnvType; +use App\Pdf\PdfRepository; +use Carbon\Carbon; +use Illuminate\Database\Eloquent\Collection; +use Illuminate\Http\Request; +use Spatie\LaravelData\Data; + +class DvData extends Data implements PdfRepository +{ + public function __construct( + public string $dateFrom, + public string $dateUntil, + public string $zipLocation, + public ?Country $country, + public array $members, + public ?string $filename = '', + public $type = 'F', + ) { + } + + public static function fromRequest(Request $request): self + { + return new self( + dateFrom: $request->dateFrom, + dateUntil: $request->dateUntil, + zipLocation: $request->zipLocation, + country: Country::findOrFail($request->country), + members: $request->members, + ); + } + + public function members(): Collection + { + return Member::whereIn('id', $this->members)->orderByRaw('lastname, firstname')->get(); + } + + public function memberShort(Member $member): string + { + return $member->isLeader() ? 'L' : ''; + } + + public function memberName(Member $member): string + { + return $member->lastname.', '.$member->firstname; + } + + public function memberAddress(Member $member): string + { + return $member->fullAddress; + } + + public function memberGender(Member $member): string + { + if (!$member->gender) { + return ''; + } + + return strtolower(substr($member->gender->name, 0, 1)); + } + + public function memberAge(Member $member): string + { + return (string) $member->getAge(); + } + + public function countryName(): string + { + return $this->country->name; + } + + public function dateRange(): string + { + return Carbon::parse($this->dateFrom)->format('d.m.Y') + .' - ' + .Carbon::parse($this->dateUntil)->format('d.m.Y'); + } + + public function getFilename(): string + { + return 'zuschuesse-dv'; + } + + public function getView(): string + { + return 'tex.zuschuss-dv'; + } + + public function getTemplate(): ?string + { + return 'zuschussdv'; + } + + public function setFilename(string $filename): static + { + $this->filename = $filename; + + return $this; + } + + public function getScript(): EnvType + { + return EnvType::PDFLATEX; + } +} diff --git a/app/Contribution/SolingenData.php b/app/Contribution/SolingenData.php index 7b2f5c56..41b5266d 100644 --- a/app/Contribution/SolingenData.php +++ b/app/Contribution/SolingenData.php @@ -73,9 +73,9 @@ class SolingenData extends Data implements PdfRepository return 'tex.zuschuss-stadt'; } - public function getTemplate(): string + public function getTemplate(): ?string { - return 'efz'; + return null; } public function setFilename(string $filename): static diff --git a/app/Member/Member.php b/app/Member/Member.php index d67d8247..105a749c 100644 --- a/app/Member/Member.php +++ b/app/Member/Member.php @@ -91,9 +91,14 @@ class Member extends Model return $this->firstname.' '.$this->lastname; } + public function getFullAddressAttribute(): string + { + return $this->address.', '.$this->zip.' '.$this->location; + } + public function getEfzLink(): ?string { - return $this->memberships()->whereHas('activity', fn (Builder $query) => $query->where('has_efz', true))->exists() + return $this->isLeader() ? route('efz', ['member' => $this]) : null; } @@ -120,6 +125,16 @@ class Member extends Model return $this->subscription->fee->nami_id; } + public function isLeader(): bool + { + return $this->memberships()->whereHas('activity', fn (Builder $query) => $query->where('has_efz', true))->exists(); + } + + public function getAge(): int + { + return $this->birthday->diffInYears(now()); + } + // ---------------------------------- Relations ---------------------------------- public function country(): BelongsTo { diff --git a/app/Member/MemberResource.php b/app/Member/MemberResource.php index 11672a46..51ef0765 100644 --- a/app/Member/MemberResource.php +++ b/app/Member/MemberResource.php @@ -71,7 +71,7 @@ class MemberResource extends JsonResource 'without_efz_at' => $this->without_efz_at, 'multiply_pv' => $this->multiply_pv, 'multiply_more_pv' => $this->multiply_more_pv, - 'age' => $this->birthday->diffInYears(now()), + 'age' => $this->getModel()->getAge(), ]; } } diff --git a/app/Pdf/BillType.php b/app/Pdf/BillType.php index fa521100..60a897ca 100644 --- a/app/Pdf/BillType.php +++ b/app/Pdf/BillType.php @@ -47,7 +47,7 @@ class BillType extends Repository implements LetterRepository return 'tex.bill'; } - public function getTemplate(): string + public function getTemplate(): ?string { return 'default'; } diff --git a/app/Pdf/Data/MemberEfzData.php b/app/Pdf/Data/MemberEfzData.php index 27d27e9a..725c0ac4 100644 --- a/app/Pdf/Data/MemberEfzData.php +++ b/app/Pdf/Data/MemberEfzData.php @@ -49,7 +49,7 @@ class MemberEfzData extends Data implements PdfRepository return 'tex.efz'; } - public function getTemplate(): string + public function getTemplate(): ?string { return 'efz'; } diff --git a/app/Pdf/PdfGenerator.php b/app/Pdf/PdfGenerator.php index 5aea082d..fc0d5164 100644 --- a/app/Pdf/PdfGenerator.php +++ b/app/Pdf/PdfGenerator.php @@ -27,7 +27,9 @@ class PdfGenerator implements Responsable Storage::disk('temp')->put($this->dir.'/'.$this->repo->getFilename().'.tex', $this->compileView()); Storage::disk('temp')->makeDirectory($this->dir); - $this->copyTemplateTo(Storage::disk('temp')->path($this->dir)); + if ($this->repo->getTemplate()) { + $this->copyTemplateTo(Storage::disk('temp')->path($this->dir)); + } $command = 'cd '.Storage::disk('temp')->path($this->dir); $command .= ' && '.env($this->repo->getScript()->value).' --halt-on-error '.$this->repo->getFilename().'.tex'; diff --git a/app/Pdf/PdfRepository.php b/app/Pdf/PdfRepository.php index 79879680..f392ebcb 100644 --- a/app/Pdf/PdfRepository.php +++ b/app/Pdf/PdfRepository.php @@ -10,7 +10,7 @@ interface PdfRepository public function getView(): string; - public function getTemplate(): string; + public function getTemplate(): ?string; public function getScript(): EnvType; } diff --git a/app/Pdf/RememberType.php b/app/Pdf/RememberType.php index 30208ef0..4b6c86a5 100644 --- a/app/Pdf/RememberType.php +++ b/app/Pdf/RememberType.php @@ -47,7 +47,7 @@ class RememberType extends Repository implements LetterRepository return 'tex.remember'; } - public function getTemplate(): string + public function getTemplate(): ?string { return 'default'; } diff --git a/resources/js/components/FSelect.vue b/resources/js/components/FSelect.vue index 22e9f7ac..45cca843 100644 --- a/resources/js/components/FSelect.vue +++ b/resources/js/components/FSelect.vue @@ -5,7 +5,7 @@ <span v-show="required" class="text-red-800"> *</span> </span> <div class="real-field-wrap" :class="`size-${size}`"> - <select :disabled="disabled" :value="value" @change="trigger"> + <select :disabled="disabled" :name="name" :value="value" @change="trigger"> <option v-if="placeholder" v-html="placeholder" :value="null"></option> <option @@ -74,6 +74,9 @@ export default { type: Number, default: -1, }, + name: { + required: true, + }, hint: {}, options: { default: function () { diff --git a/resources/js/views/contribution/VIndex.vue b/resources/js/views/contribution/VIndex.vue index 47733db3..ddd0853a 100644 --- a/resources/js/views/contribution/VIndex.vue +++ b/resources/js/views/contribution/VIndex.vue @@ -18,6 +18,16 @@ required ></f-text> + <f-text id="zipLocation" name="zipLocation" v-model="values.zipLocation" label="PLZ / Ort" required></f-text> + <f-select + id="country" + :options="countries" + name="country" + v-model="values.country" + label="Land" + required + ></f-select> + <div class="border-gray-200 shadow shadow-primary-700 p-3 shadow-[0_0_4px_gray] col-span-2"> <f-text class="col-span-2" @@ -52,6 +62,15 @@ > Für Stadt erstellen </button> + <button + target="_BLANK" + type="submit" + name="type" + value="\App\Contribution\DvData" + class="btn btn-primary mt-3 inline-block" + > + Für DV erstellen + </button> </form> </template> @@ -65,10 +84,14 @@ export default { event_name: '', dateFrom: '', dateUntil: '', + zipLocation: '', + country: null, }, }; }, props: { + countries: {}, + defaultCountry: {}, allMembers: {}, }, computed: { @@ -105,5 +128,9 @@ export default { this.onSubmitMemberResult(this.memberResults[0]); }, }, + + created() { + this.values.country = this.defaultCountry; + }, }; </script> diff --git a/resources/js/views/member/MemberCourses.vue b/resources/js/views/member/MemberCourses.vue index 22541d52..b552e73c 100644 --- a/resources/js/views/member/MemberCourses.vue +++ b/resources/js/views/member/MemberCourses.vue @@ -1,10 +1,25 @@ <template> <div class="sidebar flex flex-col"> - <sidebar-header :links="indexLinks" @close="$emit('close')" @create="mode = 'create'; single = {}" title="Ausbildungen"></sidebar-header> + <sidebar-header + :links="indexLinks" + @close="$emit('close')" + @create=" + mode = 'create'; + single = {}; + " + title="Ausbildungen" + ></sidebar-header> <form v-if="single" class="p-6 grid gap-4 justify-start" @submit.prevent="submit"> <f-text id="completed_at" type="date" v-model="single.completed_at" label="Datum" required></f-text> - <f-select id="course_id" :options="courses" v-model="single.course_id" label="Baustein" required></f-select> + <f-select + id="course_id" + name="course_id" + :options="courses" + v-model="single.course_id" + label="Baustein" + required + ></f-select> <f-text id="event_name" v-model="single.event_name" label="Veranstaltung" required></f-text> <f-text id="organizer" v-model="single.organizer" label="Veranstalter" required></f-text> <button type="submit" class="btn btn-primary">Absenden</button> @@ -20,14 +35,24 @@ <th></th> </thead> - <tr v-for="course, index in value.courses" :key="index"> + <tr v-for="(course, index) in value.courses" :key="index"> <td v-text="course.course_name"></td> <td v-text="course.event_name"></td> <td v-text="course.organizer"></td> <td v-text="course.completed_at_human"></td> <td class="flex"> - <a href="#" @click.prevent="single = course; mode = 'edit'" class="inline-flex btn btn-warning btn-sm"><svg-sprite src="pencil"></svg-sprite></a> - <i-link href="#" @click.prevent="remove(course)" class="inline-flex btn btn-danger btn-sm"><svg-sprite src="trash"></svg-sprite></i-link> + <a + href="#" + @click.prevent=" + single = course; + mode = 'edit'; + " + class="inline-flex btn btn-warning btn-sm" + ><svg-sprite src="pencil"></svg-sprite + ></a> + <i-link href="#" @click.prevent="remove(course)" class="inline-flex btn btn-danger btn-sm" + ><svg-sprite src="trash"></svg-sprite + ></i-link> </td> </tr> </table> @@ -39,22 +64,20 @@ import SidebarHeader from '../../components/SidebarHeader.vue'; export default { - data: function() { + data: function () { return { mode: null, single: null, - indexLinks: [ - {event: 'create', label: 'Neuer Kurs'} - ] + indexLinks: [{event: 'create', label: 'Neuer Kurs'}], }; }, props: { courses: {}, - value: {} + value: {}, }, - components: { SidebarHeader }, + components: {SidebarHeader}, methods: { remove(payment) { @@ -72,18 +95,18 @@ export default { submit() { var _self = this; - this.mode === 'create' + this.mode === 'create' ? this.$inertia.post(`/member/${this.value.id}/course`, this.single, { - onFinish() { - _self.single = null; - } - }) + onFinish() { + _self.single = null; + }, + }) : this.$inertia.patch(`/member/${this.value.id}/course/${this.single.id}`, this.single, { - onFinish() { - _self.single = null; - } - }); - } - } + onFinish() { + _self.single = null; + }, + }); + }, + }, }; </script> diff --git a/resources/js/views/member/MemberFilter.vue b/resources/js/views/member/MemberFilter.vue index a2979daf..51cd494a 100644 --- a/resources/js/views/member/MemberFilter.vue +++ b/resources/js/views/member/MemberFilter.vue @@ -1,9 +1,41 @@ <template> <div class="px-6 py-2 flex border-b border-gray-600 space-x-3"> - <f-switch v-show="hasModule('bill')" id="ausstand" @input="reload" v-model="inner.ausstand" label="Nur Ausstände" size="sm"></f-switch> - <f-select v-show="hasModule('bill')" id="billKinds" @input="reload" :options="billKinds" v-model="inner.bill_kind" label="Rechnung" size="sm"></f-select> - <f-select id="activity_id" @input="reload" :options="activities" v-model="inner.activity_id" label="Tätigkeit" size="sm"></f-select> - <f-select id="subactivity_id" @input="reload" :options="subactivities" v-model="inner.subactivity_id" label="Untertätigkeit" size="sm"></f-select> + <f-switch + v-show="hasModule('bill')" + id="ausstand" + @input="reload" + v-model="inner.ausstand" + label="Nur Ausstände" + size="sm" + ></f-switch> + <f-select + v-show="hasModule('bill')" + name="billKinds" + id="billKinds" + @input="reload" + :options="billKinds" + v-model="inner.bill_kind" + label="Rechnung" + size="sm" + ></f-select> + <f-select + id="activity_id" + @input="reload" + :options="activities" + v-model="inner.activity_id" + label="Tätigkeit" + size="sm" + name="activity_id" + ></f-select> + <f-select + id="subactivity_id" + @input="reload" + :options="subactivities" + v-model="inner.subactivity_id" + label="Untertätigkeit" + size="sm" + name="subactivity_id" + ></f-select> </div> </template> @@ -11,10 +43,9 @@ import mergesQueryString from '../../mixins/mergesQueryString.js'; export default { - - data: function() { + data: function () { return { - inner: {} + inner: {}, }; }, @@ -30,14 +61,13 @@ export default { methods: { reload() { this.$inertia.visit(this.qs({filter: JSON.stringify(this.inner)}), { - preserveState: true + preserveState: true, }); - } + }, }, created() { this.inner = this.value; - } - + }, }; </script> diff --git a/resources/js/views/member/MemberMemberships.vue b/resources/js/views/member/MemberMemberships.vue index 8fddf780..3a79f4bb 100644 --- a/resources/js/views/member/MemberMemberships.vue +++ b/resources/js/views/member/MemberMemberships.vue @@ -1,10 +1,32 @@ <template> <div class="sidebar flex flex-col"> - <sidebar-header :links="links" @create="mode = 'create'; single = {}" @close="$emit('close')" title="Mitgliedschaften"></sidebar-header> + <sidebar-header + :links="links" + @create=" + mode = 'create'; + single = {}; + " + @close="$emit('close')" + title="Mitgliedschaften" + ></sidebar-header> <form v-if="single" class="p-6 grid gap-4 justify-start" @submit.prevent="submit"> - <f-select id="activity_id" :options="activities" v-model="single.activity_id" label="Tätigkeit" required></f-select> - <f-select v-if="single.activity_id" :options="subactivities[single.activity_id]" id="subactivity_id" v-model="single.subactivity_id" label="Untertätigkeit"></f-select> + <f-select + id="activity_id" + name="activity_id" + :options="activities" + v-model="single.activity_id" + label="Tätigkeit" + required + ></f-select> + <f-select + v-if="single.activity_id" + name="subactivity_id" + :options="subactivities[single.activity_id]" + id="subactivity_id" + v-model="single.subactivity_id" + label="Untertätigkeit" + ></f-select> <button type="submit" class="btn btn-primary">Absenden</button> </form> @@ -17,13 +39,23 @@ <th></th> </thead> - <tr v-for="membership, index in value.memberships" :key="index"> + <tr v-for="(membership, index) in value.memberships" :key="index"> <td v-text="membership.activity_name"></td> <td v-text="membership.subactivity_name"></td> <td v-text="membership.human_date"></td> <td class="flex"> - <a href="#" @click.prevent="single = membership; mode = 'edit'" class="inline-flex btn btn-warning btn-sm"><svg-sprite src="pencil"></svg-sprite></a> - <i-link href="#" @click.prevent="remove(membership)" class="inline-flex btn btn-danger btn-sm"><svg-sprite src="trash"></svg-sprite></i-link> + <a + href="#" + @click.prevent=" + single = membership; + mode = 'edit'; + " + class="inline-flex btn btn-warning btn-sm" + ><svg-sprite src="pencil"></svg-sprite + ></a> + <i-link href="#" @click.prevent="remove(membership)" class="inline-flex btn btn-danger btn-sm" + ><svg-sprite src="trash"></svg-sprite + ></i-link> </td> </tr> </table> @@ -35,17 +67,15 @@ import SidebarHeader from '../../components/SidebarHeader.vue'; export default { - data: function() { + data: function () { return { mode: null, single: null, - links: [ - { event: 'create', label: 'Neu' } - ] + links: [{event: 'create', label: 'Neu'}], }; }, - components: { SidebarHeader }, + components: {SidebarHeader}, methods: { remove(membership) { @@ -53,7 +83,7 @@ export default { }, accept(payment) { - this.$inertia.patch(`/member/${this.value.id}/payment/${payment.id}`, { ...payment, status_id: 3 }); + this.$inertia.patch(`/member/${this.value.id}/payment/${payment.id}`, {...payment, status_id: 3}); }, openLink(link) { @@ -71,19 +101,19 @@ export default { onFinish() { _self.single = null; _self.mode = null; - } + }, }; - this.mode === 'create' + this.mode === 'create' ? this.$inertia.post(`/member/${this.value.id}/membership`, this.single, options) : this.$inertia.patch(`/member/${this.value.id}/membership/${this.single.id}`, this.single, options); - } + }, }, props: { value: {}, activities: {}, subactivities: {}, - } + }, }; </script> diff --git a/resources/js/views/member/MemberPayments.vue b/resources/js/views/member/MemberPayments.vue index f013e9d2..1ecf5bad 100644 --- a/resources/js/views/member/MemberPayments.vue +++ b/resources/js/views/member/MemberPayments.vue @@ -1,11 +1,33 @@ <template> <div class="sidebar flex flex-col"> - <sidebar-header :links="indexLinks" @close="$emit('close')" @create="mode = 'create'; single = {}" title="Zahlungen"></sidebar-header> + <sidebar-header + :links="indexLinks" + @close="$emit('close')" + @create=" + mode = 'create'; + single = {}; + " + title="Zahlungen" + ></sidebar-header> <form v-if="single" class="p-6 grid gap-4 justify-start" @submit.prevent="submit"> <f-text id="nr" v-model="single.nr" label="Jahr" required></f-text> - <f-select id="subscription_id" :options="subscriptions" v-model="single.subscription_id" label="Beitrag" required></f-select> - <f-select id="status_id" :options="statuses" v-model="single.status_id" label="Status" required></f-select> + <f-select + id="subscription_id" + name="subscription_id" + :options="subscriptions" + v-model="single.subscription_id" + label="Beitrag" + required + ></f-select> + <f-select + id="status_id" + name="status_id" + :options="statuses" + v-model="single.status_id" + label="Status" + required + ></f-select> <button type="submit" class="btn btn-primary">Absenden</button> </form> @@ -18,20 +40,45 @@ <th></th> </thead> - <tr v-for="payment, index in value.payments" :key="index"> + <tr v-for="(payment, index) in value.payments" :key="index"> <td v-text="payment.nr"></td> <td v-text="payment.status_name"></td> <td v-text="payment.subscription_name"></td> <td class="flex"> - <a href="#" @click.prevent="single = payment; mode = 'edit'" class="inline-flex btn btn-warning btn-sm"><svg-sprite src="pencil"></svg-sprite></a> - <i-link v-show="!payment.is_accepted" href="#" @click.prevent="accept(payment)" class="inline-flex btn btn-success btn-sm"><svg-sprite src="check"></svg-sprite></i-link> - <i-link href="#" @click.prevent="remove(payment)" class="inline-flex btn btn-danger btn-sm"><svg-sprite src="trash"></svg-sprite></i-link> + <a + href="#" + @click.prevent=" + single = payment; + mode = 'edit'; + " + class="inline-flex btn btn-warning btn-sm" + ><svg-sprite src="pencil"></svg-sprite + ></a> + <i-link + v-show="!payment.is_accepted" + href="#" + @click.prevent="accept(payment)" + class="inline-flex btn btn-success btn-sm" + ><svg-sprite src="check"></svg-sprite + ></i-link> + <i-link href="#" @click.prevent="remove(payment)" class="inline-flex btn btn-danger btn-sm" + ><svg-sprite src="trash"></svg-sprite + ></i-link> </td> </tr> </table> </div> <div class="flex flex-col pb-6 px-6"> - <a href="#" @click.prevent="openLink(link)" :class="{'disabled': link.disabled}" target="_BLANK" v-for="link, index in value.payment_links" :key="index" class="mt-1 text-center btn btn-primary" v-text="link.label"></a> + <a + href="#" + @click.prevent="openLink(link)" + :class="{disabled: link.disabled}" + target="_BLANK" + v-for="(link, index) in value.payment_links" + :key="index" + class="mt-1 text-center btn btn-primary" + v-text="link.label" + ></a> </div> </div> </template> @@ -40,17 +87,15 @@ import SidebarHeader from '../../components/SidebarHeader.vue'; export default { - data: function() { + data: function () { return { mode: null, single: null, - indexLinks: [ - {event: 'create', label: 'Neue Zahlung'} - ] + indexLinks: [{event: 'create', label: 'Neue Zahlung'}], }; }, - components: { SidebarHeader }, + components: {SidebarHeader}, methods: { remove(payment) { @@ -58,7 +103,7 @@ export default { }, accept(payment) { - this.$inertia.patch(`/member/${this.value.id}/payment/${payment.id}`, { ...payment, status_id: 3 }); + this.$inertia.patch(`/member/${this.value.id}/payment/${payment.id}`, {...payment, status_id: 3}); }, openLink(link) { @@ -72,24 +117,24 @@ export default { submit() { var _self = this; - this.mode === 'create' + this.mode === 'create' ? this.$inertia.post(`/member/${this.value.id}/payment`, this.single, { - onFinish() { - _self.single = null; - } - }) + onFinish() { + _self.single = null; + }, + }) : this.$inertia.patch(`/member/${this.value.id}/payment/${this.single.id}`, this.single, { - onFinish() { - _self.single = null; - } - }); - } + onFinish() { + _self.single = null; + }, + }); + }, }, props: { value: {}, subscriptions: {}, statuses: {}, - } + }, }; </script> diff --git a/resources/js/views/member/VForm.vue b/resources/js/views/member/VForm.vue index 6595d8bf..9714e4fb 100644 --- a/resources/js/views/member/VForm.vue +++ b/resources/js/views/member/VForm.vue @@ -46,7 +46,13 @@ <!-- ***************************** Hauptbereich ****************************** --> <div class="grow"> <div class="grid grid-cols-2 gap-3 p-4" v-show="menuTitle == 'Stammdaten'"> - <f-select id="gender_id" :options="genders" v-model="inner.gender_id" label="Geschlecht"></f-select> + <f-select + id="gender_id" + name="gender_id" + :options="genders" + v-model="inner.gender_id" + label="Geschlecht" + ></f-select> <f-text id="firstname" v-model="inner.firstname" label="Vorname" required></f-text> <f-text id="lastname" v-model="inner.lastname" label="Nachname" required></f-text> <f-text id="address" v-model="inner.address" label="Adresse" required></f-text> @@ -54,12 +60,19 @@ <f-text id="zip" v-model="inner.zip" label="PLZ" required></f-text> <f-text id="location" v-model="inner.location" label="Ort" required></f-text> <f-text type="date" id="birthday" v-model="inner.birthday" label="Geburtsdatum" required></f-text> - <f-select :options="regions" id="region_id" v-model="inner.region_id" label="Bundesland"></f-select> + <f-select + :options="regions" + name="region_id" + id="region_id" + v-model="inner.region_id" + label="Bundesland" + ></f-select> <f-select :options="countries" id="country_id" v-model="inner.country_id" label="Land" + name="country_id" required ></f-select> <f-select @@ -67,6 +80,7 @@ id="nationality_id" v-model="inner.nationality_id" label="Staatsangehörigkeit" + name="nationality_id" required ></f-select> <f-text @@ -83,6 +97,7 @@ id="first_activity_id" v-model="inner.first_activity_id" label="Erste Tätigkeit" + name="first_activity_id" required ></f-select> <f-select @@ -91,6 +106,7 @@ id="first_subactivity_id" v-model="inner.first_subactivity_id" label="Erste Untertätigkeit" + name="first_subactivity_id" required ></f-select> </div> @@ -110,6 +126,7 @@ id="bill_kind_id" v-model="inner.bill_kind_id" label="Rechnung versenden über" + name="bill_kind_id" ></f-select> </div> <div class="grid grid-cols-2 gap-3 p-4" v-show="menuTitle == 'Prävention'"> @@ -200,6 +217,7 @@ id="subscription_id" v-model="inner.subscription_id" label="Beitrag" + name="subscription_id" ></f-select> <f-textarea class="col-span-2" diff --git a/resources/js/views/subscription/SubscriptionForm.vue b/resources/js/views/subscription/SubscriptionForm.vue index 6322f5e1..49a47307 100644 --- a/resources/js/views/subscription/SubscriptionForm.vue +++ b/resources/js/views/subscription/SubscriptionForm.vue @@ -1,8 +1,14 @@ <template> <form class="p-6 grid gap-4 justify-start" @submit.prevent="submit"> - <f-text id="name" v-model="inner.name" label="Name" required></f-text> - <f-select id="fee_id" :options="fees" v-model="inner.fee_id" label="Nami-Beitrag" required></f-select> + <f-select + id="fee_id" + name="fee_id" + :options="fees" + v-model="inner.fee_id" + label="Nami-Beitrag" + required + ></f-select> <f-text id="amount" v-model="inner.amount" label="Interner Beitrag" required></f-text> <button type="submit" class="btn btn-primary">Absenden</button> @@ -11,7 +17,7 @@ <script> export default { - data: function() { + data: function () { return { inner: {}, }; @@ -28,11 +34,11 @@ export default { this.mode === 'create' ? this.$inertia.post(`/subscription`, this.inner) : this.$inertia.patch(`/subscription/${this.inner.id}`, this.inner); - } + }, }, created() { this.inner = this.data; - } + }, }; </script> diff --git a/resources/views/tex/templates/zuschussdv/teilnahmeliste.pdf b/resources/views/tex/templates/zuschussdv/teilnahmeliste.pdf new file mode 100644 index 0000000000000000000000000000000000000000..345736a5992b7c77c60bef8d8a17eb57f9ca57d1 GIT binary patch literal 41285 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 QnlKPhhgL*H(*RBTKe}{<AOHXW literal 0 HcmV?d00001 diff --git a/resources/views/tex/zuschuss-dv.tex b/resources/views/tex/zuschuss-dv.tex new file mode 100644 index 00000000..6ed4184f --- /dev/null +++ b/resources/views/tex/zuschuss-dv.tex @@ -0,0 +1,39 @@ +\documentclass[a4paper,landscape]{article} + +\usepackage[landscape,top=0cm,left=0cm,bottom=0cm,right=0cm]{geometry} +\usepackage{tikz} +\usepackage{background} +\usepackage{blindtext} +\usetikzlibrary{matrix, shapes.misc, calc} + +\pagestyle{empty} +\setlength{\parindent}{0cm} +\backgroundsetup{scale = 1, angle = 0, opacity = 1, color=black, contents = {\includegraphics[width = \paperwidth, height = \paperheight] {teilnahmeliste.pdf}}} + +\begin{document} +\noindent \sffamily + +@foreach($data->members()->chunk(17) as $chunk) +\begin{tikzpicture}[remember picture,overlay,yscale=-1] + \node[anchor=base west] at (38mm,41.62mm) {\bfseries{\large{<<<!!$data->dateRange()!!>>>}}}; +\node[anchor=base west] at (135.2mm,41.62mm) {\bfseries{\large{<<<!!$data->zipLocation!!>>>}}}; + \node[anchor=base west] at (242.7mm,41.62mm) {\bfseries{\large{<<<!!$data->countryName()!!>>>}}}; + +\node[thick, cross out,draw=black,text width=2.4mm, text height=2.4mm, inner sep=0mm] at (17.76mm,47.10mm) {}; + +@foreach($chunk as $i => $member) + \node[anchor=base, text width=7.75mm, align=center] at ($(16.35mm, 76.6mm + 7mm * <<<$i % 17>>>)$) {<<<$i+1>>>}; + \node[anchor=base, text width=18mm, align=center] at ($(32.55mm, 76.6mm + 7mm * <<<$i%17>>>)$) {<<<$data->memberShort($member)>>>}; + \node[anchor=base, text width=70mm, align=center] at ($(80.25mm, 76.6mm + 7mm * <<<$i%17>>>)$) {<<<$data->memberName($member)>>>}; + \node[anchor=base, text width=118mm, align=center] at ($(178.25mm, 76.6mm + 7mm * <<<$i%17>>>)$) {<<<$data->memberAddress($member)>>>}; + \node[anchor=base, text width=16mm, align=center] at ($(249.50mm, 76.6mm + 7mm * <<<$i%17>>>)$) {<<<$data->memberGender($member)>>>}; + \node[anchor=base, text width=16mm, align=center] at ($(269.50mm, 76.6mm + 7mm * <<<$i%17>>>)$) {<<<$data->memberAge($member)>>>}; +@endforeach + +\end{tikzpicture} + +\pagebreak + +@endforeach +\end{document} +