CasperSecurity

Current Path : /var/www/hrms.uiet.co.in/app/Imports/
Upload File :
Current File : /var/www/hrms.uiet.co.in/app/Imports/AttendanceImport.php

<?php

namespace App\Imports;

use App\Models\AssignDepartments;
use App\Models\EmployeeAttendance;
use App\Models\AttendanceRule;
use App\Models\EmployeeRegistration;
use Carbon\Carbon;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;


class AttendanceImport implements ToModel, WithHeadingRow
{
    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */

    protected $selectedMonth;
    public $startDate ,$endDate;

    public function __construct($selectedMonth)
    {
        $this->selectedMonth = $selectedMonth;
    }

    public function model(array $row)
    {

        $empreginfo=EmployeeRegistration::where('user_id',$row['employee_id'])->latest()->first();

        $nextMonth = date('Y-m', strtotime($this->selectedMonth . ' +1 month'));

        $attrange=AttendanceRule::where('status',1)->first();

        $this->startDate=date("$this->selectedMonth-$attrange->cal_start_date");
        $this->endDate=date("$nextMonth-$attrange->cal_end_date");

        $startDate = Carbon::parse( $this->startDate)->format('Y-m-d');
        $endDate = Carbon::parse($this->endDate)->format('Y-m-d');

        $starttime=$lateallowed=$assignworkinghours="";
        if($empreginfo){
            $empassigndept=AssignDepartments::where('employee_id',$empreginfo->id)->where('status',1)->latest()->first();


            if($empassigndept){
                $attendancerule=$empassigndept->getAttendanceType->getAttendanceRule;

                if($attendancerule){

                    $starttime=$attendancerule->start_time;
                    $lateallowed=$attendancerule->late_allowed;
                    $assignworkinghours=$attendancerule->working_hr;
                }
            }



            $diff= \Illuminate\Support\Carbon::parse($row['attendance_out_time'])->diff(Carbon::parse($row['attendance_time']));
            $workinghours=$diff->h.".".$diff->i;
           // dd($row['attendance_out_time']);
            $workingstatus=0;
            $allwoedstarttime=Carbon::parse($starttime)->addMinutes($lateallowed)->format('h:i:s');
            if($allwoedstarttime < Carbon::parse($row['attendance_time'])->format('h:i:s')){
                $workingstatus=2;
            }else{
                $workingstatus=1;
            }


            $dateToCheck = Carbon::parse($row['date'])->format('Y-m-d');

            $checkk=EmployeeAttendance::where("employee_id",$empreginfo->id)->whereDate('date',Carbon::parse($row['date'])->format('Y-m-d'))->latest()->first();



            if(!$checkk && $dateToCheck>=($startDate) && $dateToCheck<=($endDate)){
                $attdata=[
                    'employee_id'=>$empreginfo->id,
                    'user_id'=>$row['employee_id'],
                    'date'=>Carbon::parse($row['date'])->format('Y-m-d'),
                    'attendance_time'=>Carbon::parse($row['attendance_time'])->format('H:i:s'),
                    'attendance_out_time'=>Carbon::parse($row['attendance_out_time'])->format('H:i:s'),
                    'working_hours'=>$workinghours,
                    'status'=>$workingstatus,
                ];
                //dd($attdata);
                return new EmployeeAttendance($attdata);
            }



        }

    }

}
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY