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;
}
}