%PDF- %PDF-
Direktori : /var/www/html/camillo/camillo-api-master/app/Observers/ |
Current File : /var/www/html/camillo/camillo-api-master/app/Observers/ClassroomMinorObserver.php |
<?php namespace App\Observers; use App\Models\Pivots\ClassroomMinor; use App\Models\Subscription; use Carbon\Carbon; use Illuminate\Http\Response; use Symfony\Component\HttpKernel\Exception\HttpException; class ClassroomMinorObserver { /** * Handle the user "created" event. * * @param \App\Models\Pivots\ClassroomMinor $classroomMinor * * @return void */ public function creating(ClassroomMinor $classroomMinor) { $minor = $classroomMinor->minor; if ($minor->classrooms()->where('classrooms.id', "!=", $classroomMinor->classroom->id)->where('institute_id', $classroomMinor->classroom->institute_id)->count() > 0) { throw new HttpException(Response::HTTP_INTERNAL_SERVER_ERROR,__('Minor already associated to a classroom in the same institute')); } if ((bool)$classroomMinor->active) { Subscription::create([ 'minor_id' => $minor->id, 'classroom_id' => $classroomMinor->classroom->id, 'start_date' => Carbon::now()->startOfMonth()->format('Y-m-d'), 'active' => true ]); } } /** * Handle the user "updated" event. * * @param \App\Models\Pivots\ClassroomMinor $classroomMinor * * @return void */ public function updated(ClassroomMinor $classroomMinor) { if ((bool)$classroomMinor->getOriginal('active') !== (bool)$classroomMinor->active) { if ((bool)$classroomMinor->active) { Subscription::create([ 'minor_id' => $classroomMinor->minor->id, 'classroom_id' => $classroomMinor->classroom->id, 'start_date' => Carbon::now()->startOfMonth()->format('Y-m-d'), 'active' => true ]); } else { Subscription::where('minor_id', $classroomMinor->minor->id)->where( 'classroom_id', $classroomMinor->classroom->id )->where('active', true)->update([ 'active' => false, 'end_date' => Carbon::now()->endOfMonth()->format('Y-m-d') ]); } } } /** * Handle the user "deleted" event. * * @param \App\Models\Pivots\ClassroomMinor $classroomMinor * * @return void */ public function deleted(ClassroomMinor $classroomMinor) { Subscription::where('minor_id', $classroomMinor->minor->id)->where( 'classroom_id', $classroomMinor->classroom->id )->where('active', true)->update([ 'active' => false, 'end_date' => Carbon::now()->endOfMonth()->format('Y-m-d') ]); } /** * Handle the user "restored" event. * * @param \App\Models\Pivots\ClassroomMinor $classroomMinor * * @return void */ public function restored(ClassroomMinor $classroomMinor) { // } /** * Handle the user "force deleted" event. * * @param \App\Models\Pivots\ClassroomMinor $classroomMinor * * @return void */ public function forceDeleted(ClassroomMinor $classroomMinor) { // } }