diff --git a/app/Member/DeleteJob.php b/app/Member/DeleteJob.php new file mode 100644 index 00000000..5b1be239 --- /dev/null +++ b/app/Member/DeleteJob.php @@ -0,0 +1,46 @@ +<?php + +namespace App\Member; + +use Illuminate\Bus\Queueable; +use Illuminate\Contracts\Queue\ShouldQueue; +use Illuminate\Foundation\Bus\Dispatchable; +use Illuminate\Queue\InteractsWithQueue; +use Illuminate\Queue\SerializesModels; +use Zoomyboy\LaravelNami\Nami; +use App\Confession; + +class DeleteJob implements ShouldQueue +{ + use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; + + public $memberId; + public $member; + public $user; + + public function __construct(Member $member, $user) + { + $this->memberId = $member->id; + $this->user = $user; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + $this->member = Member::find($this->memberId); + + if (!$this->member->hasNami) { + return false; + } + + Nami::login($this->user->mglnr)->deleteMember($this->member->nami_id); + + Member::withoutEvents(function() { + $this->member->update(['nami_id' => null]); + }); + } +} diff --git a/app/Member/MemberRequest.php b/app/Member/MemberRequest.php index 3fc5a0f6..99d938de 100644 --- a/app/Member/MemberRequest.php +++ b/app/Member/MemberRequest.php @@ -59,7 +59,10 @@ class MemberRequest extends FormRequest public function persistCreate() { $this->merge(['group_id' => Group::where('nami_id', auth()->user()->getNamiGroupId())->firstOrFail()->id]); - $m = Member::create($this->input()); + $member = Member::create($this->input()); + if($this->input('has_nami')) { + CreateJob::dispatch($member, auth()->user()); + } } public function persistUpdate(Member $member) { @@ -71,5 +74,8 @@ class MemberRequest extends FormRequest if($this->input('has_nami') && $member->nami_id !== null) { UpdateJob::dispatch($member, auth()->user()); } + if(!$this->input('has_nami') && $member->nami_id !== null) { + DeleteJob::dispatch($member, auth()->user()); + } } } diff --git a/resources/lang/de/validation.php b/resources/lang/de/validation.php index bdbaa7c3..3c3f833e 100644 --- a/resources/lang/de/validation.php +++ b/resources/lang/de/validation.php @@ -187,5 +187,6 @@ return [ 'nationality_id' => 'Staatsangehörigkeit', 'first_group_id' => 'Erste Untertätigkeit', 'first_activity_id' => 'Erste Tätigkeit', + 'fee_id' => 'Beitragsart', ], ];