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/vebon.komma.pro/app/KommaApp/Members/Kms/MemberRepository.php
<?php
/**
 *
 *
 * @author      Komma <info@komma.pro>
 * @copyright   (c) 2012-2016, Komma Mediadesign
 */

namespace KommaApp\Members\Kms;

use Illuminate\Mail\Message;
use Illuminate\Support\Collection;
use KommaApp\Audit\AuditService;
use KommaApp\EndUsers\EndUserService;
use KommaApp\EndUsers\Kms\EndUserRepository;
use KommaApp\EndUsers\Models\EndUser;
use KommaApp\Kms\Core\Kms;
use KommaApp\Kms\Core\KmsSiteRepository;
use KommaApp\Members\Models\Member;
use KommaApp\Kms\SidebarListItem;

class MemberRepository extends EndUserRepository
{
    /**
     * @var auditService
     */
    private $auditService;
    /**
     * @var EndUserService
     */
    private $endUserService;

    /**
     * MemberRepository constructor.
     * @param Kms $kms
     * @param auditService $auditService
     * @param EndUserService $endUserService
     */
    public function __construct(Kms $kms, AuditService $auditService, EndUserService $endUserService)
    {
        parent::__construct($kms, $endUserService);

        $this->auditService = $auditService;
        $this->endUserService = $endUserService;
    }

    protected $role = 'member';

    public function saveModel($input, $endUser = null)
    {
        $endUserId = parent::saveModel($input, $endUser);

        //Get the endUser based on the id
        $endUser = EndUser::find($endUserId);
        //Create a new audit for the given year (if it doesnt exist)
        $this->auditService->createNewAudit($endUser, $input['first_audit_year']);

        return $endUserId;
    }

    public function setExtraModelFields(&$model, $new = false)
    {
        //Set the default extraModelFields
        parent::setExtraModelFields($model, $new);

        if (!$audit = $this->auditService->getMemberFirstAudit($model)) return;
        //Set the audit year as the first_audit_year
        $model->first_audit_year = $audit->year;

    }

}