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