CasperSecurity
<?php
namespace App\Imports;
use App\Models\Designation;
use App\Models\EmployeeRegistration;
use App\Models\Role;
use App\Models\Team;
use App\Models\User;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithBatchInserts;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
class EmployeeRegistrationImport implements ToModel,WithHeadingRow
{
public function model(array $row)
{
$designation="";
if($row['designation']){
$designation=Designation::find($row['designation'])->designation_name;
}
$empreg= new EmployeeRegistration([
'id'=>$row['id'],
'name'=>$row['name'],
'employee_id'=>$row['employee_id'],
'email_id'=>$row['email_id'],
'mobile_no'=>$row['mobile_no'],
'gender'=>$row['gender'],
'blood_group'=>$row['blood_group'],
'date_of_birth'=>$row['date_of_birth'],
'designation'=>$designation,
'qualification'=>$row['qualification'],
'manager_id'=>$row['manager_id'],
'hr_id'=>$row['hr_id'],
'role_id'=>$row['role_id'],
'team_id'=>$row['team_id'],
'city_id'=>$row['city_id'],
'date_of_joining'=>$row['date_of_joining'],
'employment_status'=>$row['employment_status'],
'employee_category'=>$row['employee_category'],
'is_site_employess'=>$row['is_site_employess'],
'status'=>'1',
'created_by'=>Auth::user()->name,
]);
if($empreg){
$userinfo=User::where('email',$empreg->email_id)->first();
$userpassword="";
if(!$userinfo){
$userpassword='Password@'.$empreg->employee_id;
$userinfo=User::create([
'name'=>$empreg->name,
'email'=>$empreg->email_id,
'password'=>Hash::make($userpassword),
'designation_id'=>$row['designation'],
]);
if($userinfo){
$empreg->user_id=$userinfo->id;
$empreg->save();
$role = Role::find($empreg->role_id);
$team = Team::find($empreg->team_id);
if($role) {
$userinfo->attachRole($role,$team);
}
}
}
$employeeregistraion=json_decode($empreg,true);
$userinformation=json_decode($userinfo,true);
$userinformation['password_string']=$userpassword;
$userinfo->notify(new \App\Notifications\EmployeeRegistration($employeeregistraion,$userinformation));
return $empreg;
}
}
public function uniqueBy()
{
return 'email_id';
}
}