HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.shooperm.com/Modules/Attendance/Http/Controllers/HolidayController.php
<?php

namespace Modules\Attendance\Http\Controllers;

use Brian2694\Toastr\Facades\Toastr;
use Carbon\Carbon;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\DB;
use Modules\Attendance\Repositories\HolidayRepositoryInterface;
use Modules\UserActivityLog\Traits\LogActivity;

class HolidayController extends Controller
{
    public $holidayRepository;

    public function __construct(HolidayRepositoryInterface $holidayRepository)
    {
        $this->holidayRepository = $holidayRepository;
        $this->middleware('maintenance_mode');

        $this->middleware('prohibited_demo_mode')->only('store');
    }
    public function index()
    {
         $holidays = $this->holidayRepository->year(null);
        return view('attendance::holiday_setup.index',compact('holidays'));
    }

    public function create()
    {
        return view('attendance::create');
    }

    public function store(Request $request)
    {

        session()->put('holidays',$request->except('_token'));
        $request->validate([
            'holiday_name' => 'required',
            'type' => 'required',
            'date' => 'required_if:type,==,0',
            'start_date' => 'required_if:type,==,1',
            'end_date' => 'required_if:type,==,1',
        ]);


        DB::beginTransaction();

        $this->holidayRepository->create($request->except('_token'));
        try {
            DB::commit();
            session()->forget('holidays');
            LogActivity::successLog(__('hr.holiday_saved_successfully'));
            Toastr::success(__('hr.holiday_saved_successfully'), __('common.success'));
            return back();
        } catch (\Exception $e) {
            DB::rollBack();
            LogActivity::errorLog($e->getMessage());
            Toastr::error(__('common.error_message'), __('common.error'));
            return back();
        }

    }

    public function show($id)
    {
        return view('attendance::show');
    }

    public function edit($id)
    {
        return view('attendance::edit');
    }

    public function addRow(Request $request)
    {
        $year = $request->year ?? null;
        $holidays = $this->holidayRepository->year($year);
        if ($year)
            return view('attendance::holiday_setup.row',compact('year','holidays'));
        else
            return view('attendance::holiday_setup.row',compact('year','holidays'));
    }

    public function getLastYearData($year)
    {
        DB::beginTransaction();
        try {
            $holidays = $this->holidayRepository->copyYear($year);
            if($holidays == 1){
                session()->forget('holidays');
                DB::commit();
                Toastr::success(__('hr.holiday_saved_successfully'), __('common.success'));
                return back();
            }
            Toastr::warning(Carbon::create($year)->subYears(1)->year.' '.__('hr.year_holiday_not_found'), __('common.warning'));
            return back();
        } catch (\Exception $e) {
            DB::rollBack();
            LogActivity::errorLog($e->getMessage());
            Toastr::error(__('common.error_message'), __('common.error'));
            return back();
        }
    }
}