File: D:/HostingSpaces/SBogers10/hours.komma.pro/app/Komma/Absences/AbsenceService.php
<?php
namespace App\Komma\Absences;
use Carbon\Carbon;
use App\Komma\Settings\AbsenceTypes\AbsenceType;
use Illuminate\Support\Facades\Auth;
class AbsenceService
{
public function __construct()
{
}
/**
* @param $request
* @param $absence
* @return mixed
*/
public function save($request, $absence){
//get user
$user = \Request::filled('user') ? \Request::get('user') : Auth::id();
$foundAbsence = Absence::where('user_id', $user)->where('absence_type_id', $request->absenceType)->where('value', $request->internHours)->where('description', $request->internDescription)->where('date', Carbon::parse($request->date)->startOfDay())->first();
if (!empty($foundAbsence)) { $absence = $foundAbsence;}
//save regular columns
$absence->absence_type_id = $request->absenceType;
$absence->user_id = $user;
$absence->value = $request->internHours;
$absence->description = $request->internDescription;
$saveDate = Carbon::parse($request->date)->startOfDay();
$absence->date = $saveDate->toDateString();
//find absence type
$absenceType = AbsenceType::find($request->absenceType);
$absence->not_in_weektotal = $absenceType->not_in_weektotal;
$absence->sick = $absenceType->sick;
$absence->payed = $absenceType->payed;
//save
$absence->save();
//return saved absence
return $absence;
}
}