HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/ehboledensysteem.komma.pro/app/KommaApp/Users/Kms/UserController.php
<?php
/**
 *
 * @author      Komma <info@komma.pro>
 * @copyright   (c) 2012-2016, Komma
 */

namespace App\KommaApp\Users\Kms;

use App\KommaApp\Competences\Kms\CompetenceService;
use App\KommaApp\Competences\Models\Competence;
use App\KommaApp\Courses\Models\Course;
use App\KommaApp\Kms\Core\SectionController;
use App\KommaApp\Users\Models\User;
use App\Mail\SendNewEventsNotificationMail;
use Carbon\Carbon;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;

class UserController extends SectionController
{
    protected $slug = "user";
    protected $forModelName = User::class;

    function __construct(UserSection $section)
    {
        parent::__construct($section);
    }

    public function show($model)
    {
//        $this->reUpdateExpirationDates();
        return parent::show($model); // TODO: Change the autogenerated stub
    }

    public function sendUserNewEventsUpdate()
    {
        if(app()->environment() == 'development') {
            $user = User::find(1);
            Mail::to($user->email)->send(new SendNewEventsNotificationMail($user));
            return redirect(route('users.index', ['sended' => 'true']));
        }


        User::chunk(10, function ($users){
            foreach ($users as $user) {
                Mail::to($user->email)->send(new SendNewEventsNotificationMail($user));
            }
        });

        return redirect(route('users.index', ['sended' => 'true']));
    }

    /**
     * Some logic we have used to re update the expiration dates because of a bug in calculateNextExpirationDateForCompetence
     */
    private function reUpdateExpirationDates()
    {
        User::chunk(10, function ($users){

            /** @var CompetenceService $competenceService */
            $competenceService = \App::make(CompetenceService::class);

            foreach ($users as $user) {

                $competences = $user->competences;
                foreach ($competences as $competence) {

                    $acquired_at_date = Carbon::createFromFormat(Carbon::DEFAULT_TO_STRING_FORMAT, $competence->pivot->acquired_at);
                    $expirationDate = $competenceService->calculateNextExpirationDateForCompetence($competence, $acquired_at_date);

                    if($competence->pivot->expires_at !== $expirationDate->format(Carbon::DEFAULT_TO_STRING_FORMAT)) {

                        if( $competence->renew_interval == Competence::RenewEachHalfYear) $renewIntervalString = 'elk half jaar - interval 1';
                        if( $competence->renew_interval == Competence::RenewEachYear) $renewIntervalString = 'elk jaar - interval 2';
                        if( $competence->renew_interval == Competence::RenewEachTwoYear) $renewIntervalString = 'elke twee jaar - interval 3';

                        Log::info('OEPS!');
                        Log::info('User: ' . $user->first_name .' ' . $user->last_name . ' - ' . $user->id);
                        Log::info('Component: ' . $competence->translation->name);
                        Log::info('Behaald op: ' . $competence->pivot->acquired_at);
                        Log::info('Vervalt op: ' . $competence->pivot->expires_at);
                        Log::info('Interval ' . $renewIntervalString);
                        Log::info('Zou moeten vervallen op: ' . $expirationDate);
                        Log::info('');
                    }
                }
            }
        });
    }

}