Add all payments
This commit is contained in:
parent
fb1bdca780
commit
0db404ed69
|
@ -154,4 +154,14 @@ class Member extends Model
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function scopePayable($q) {
|
||||||
|
$q->where('bill_kind_id', '!=', null)->where('subscription_id', '!=', null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function scopeWhereNoPayment($q, $year) {
|
||||||
|
return $q->whereDoesntHave('payments', function($q) use ($year) {
|
||||||
|
return $q->where('nr', '=', $year);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,10 @@ class MemberController extends Controller
|
||||||
session()->put('title', 'Mitglieder');
|
session()->put('title', 'Mitglieder');
|
||||||
|
|
||||||
$payload = app(MemberView::class)->index($request);
|
$payload = app(MemberView::class)->index($request);
|
||||||
$payload['toolbar'] = [ ['href' => route('member.create'), 'label' => 'Mitglied anlegen', 'color' => 'primary', 'icon' => 'plus'] ];
|
$payload['toolbar'] = [
|
||||||
|
['href' => route('member.create'), 'label' => 'Mitglied anlegen', 'color' => 'primary', 'icon' => 'plus'],
|
||||||
|
['href' => route('allpayment.create'), 'label' => 'Rechnungen erstellen', 'color' => 'primary', 'icon' => 'plus']
|
||||||
|
];
|
||||||
|
|
||||||
return \Inertia::render('member/Index', $payload);
|
return \Inertia::render('member/Index', $payload);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Payment;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Member\Member;
|
||||||
|
use App\Payment\Status;
|
||||||
|
|
||||||
|
class AllpaymentController extends Controller
|
||||||
|
{
|
||||||
|
public function create() {
|
||||||
|
session()->put('menu', 'member');
|
||||||
|
session()->put('title', 'Rechnungen erstellen');
|
||||||
|
|
||||||
|
return \Inertia::render('allpayment/Form', [
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request) {
|
||||||
|
$request->validate([
|
||||||
|
'year' => 'required|numeric'
|
||||||
|
]);
|
||||||
|
|
||||||
|
foreach (Member::payable()->whereNoPayment($request->year)->get() as $member) {
|
||||||
|
$member->payments()->create([
|
||||||
|
'nr' => $request->year,
|
||||||
|
'subscription_id' => $member->subscription_id,
|
||||||
|
'status_id' => Status::default(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->back();
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,7 +17,7 @@
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<span class="text-xl font-semibold text-white" v-html="$page.props.title"></span>
|
<span class="text-xl font-semibold text-white" v-html="$page.props.title"></span>
|
||||||
<div class="flex ml-4">
|
<div class="flex ml-4">
|
||||||
<inertia-link v-for="link, index in $page.props.toolbar" :key="index" :href="link.href" v-text="link.label" class="btn label" :class="link.color">
|
<inertia-link v-for="link, index in $page.props.toolbar" :key="index" :href="link.href" v-text="link.label" class="btn label mr-2" :class="link.color">
|
||||||
<sprite :src="link.icon"></sprite>
|
<sprite :src="link.icon"></sprite>
|
||||||
</inertia-link>
|
</inertia-link>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
<template>
|
||||||
|
<form class="p-6 grid gap-4 justify-start" @submit.prevent="submit">
|
||||||
|
|
||||||
|
<f-text id="year" v-model="inner.year" label="Jahr" required></f-text>
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary">Absenden</button>
|
||||||
|
</form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data: function() {
|
||||||
|
return {
|
||||||
|
inner: {},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
props: {
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
submit() {
|
||||||
|
this.$inertia.post(`/allpayment`, this.inner)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
</script>
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
use App\Member\MemberController;
|
use App\Member\MemberController;
|
||||||
use App\Payment\PaymentController;
|
use App\Payment\PaymentController;
|
||||||
|
use App\Payment\AllpaymentController;
|
||||||
use App\Payment\SubscriptionController;
|
use App\Payment\SubscriptionController;
|
||||||
use App\Member\MemberConfirmController;
|
use App\Member\MemberConfirmController;
|
||||||
use App\Http\Controllers\HomeController;
|
use App\Http\Controllers\HomeController;
|
||||||
|
@ -16,6 +17,7 @@ Route::group(['middleware' => 'auth:web'], function () {
|
||||||
Route::resource('initialize', InitializeController::class);
|
Route::resource('initialize', InitializeController::class);
|
||||||
Route::resource('member', MemberController::class);
|
Route::resource('member', MemberController::class);
|
||||||
Route::resource('member.payment', PaymentController::class);
|
Route::resource('member.payment', PaymentController::class);
|
||||||
|
Route::resource('allpayment', AllpaymentController::class);
|
||||||
Route::resource('subscription', SubscriptionController::class);
|
Route::resource('subscription', SubscriptionController::class);
|
||||||
Route::post('/member/{member}/confirm', MemberConfirmController::class);
|
Route::post('/member/{member}/confirm', MemberConfirmController::class);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue