Laravel - Рассчитать рабочие дни, исключая праздничные дни между двумя датами, используя Laravel - PullRequest
0 голосов
/ 09 апреля 2020

Используя Laravel -5,8, я хочу вычислить количество рабочих дней, исключая выходные и праздничные дни c.

public function store(StoreLeaveRequestRequest $request)
{   
        $commencementDate   = Carbon::parse($request->commencement_date);
        $resumptionDate     = Carbon::parse($request->resumption_date);
    $holidays           = DB::table('hr_employees')->select('holiday_date')->whereYear('created_at', '=', date('Y'))->get();
    $numOfDays      = $resumptionDate->diffInWeekdays($commencementDate) + 1;
        $leaverequest  = HrLeaveRequest::create([
            'leave_type_id'             => $request->leave_type_id,
            'commencement_date'         => $commencementDate,
            'resumption_date'           => $resumptionDate,  
            'authorized_days'           => $request->authorized_days,
            'available_days'            => $request->available_days,
            'no_of_days'                => $numOfDays,
        ]);
        Session::flash('success', 'Leave Request is created successfully');
        return redirect()->route('service.leave_requests.index');        
}

Из функции контроллера, приведенной выше, я рассчитал дни отпуска, исключая выходные дни с использованием:

$numOfDays      = $resumptionDate->diffInWeekdays($commencementDate) + 1;

Тем не менее, у меня есть таблица для праздника, которая называется hr_holidays, а класс модели - HrHoliday. Это поле holiday_date

Теперь, как мне добавить:

 $holidays   = DB::table('hr_employees')->select('holiday_date')->whereYear('created_at', '=', date('Y'))->get();

к этому коду:

$numOfDays = $resumptionDate->diffInWeekdays($commencementDate) + 1;

, чтобы исключить также публичные c праздничные дни.

Может быть один или несколько выходных или даже ни одного в конкретном запросе на отпуск.

Как мне добиться этого и сохранить его в:

'no_of_days' => $ numOfDays,

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...