|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/bizkrypt/admin.bizkrypt.com/app/Imports/ |
Upload File : |
<?php
namespace App\Imports;
use App\Models\Role;
use App\Models\User;
use App\Models\School;
use App\Models\Classes;
use App\Models\Section;
use App\Models\Guardian;
use App\Models\Users_admission;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
use Maatwebsite\Excel\Concerns\ToModel;
use PhpOffice\PhpSpreadsheet\Shared\Date;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Maatwebsite\Excel\Concerns\SkipsEmptyRows;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithValidation;
class ImportUser implements ToModel, WithStartRow, WithValidation, WithHeadingRow, SkipsEmptyRows
{
use Importable;
public function startRow(): int
{
return 2;
}
public function rules(): array
{
return [
"school_code" => "required|exists:schools,code",
"class_code" => "required|exists:classes,code",
"section_code" => "required|exists:sections,code",
"first_name" => "required",
"last_name" => "nullable",
"email" => "nullable",
"phone" => "required",
"gender" => "required",
"password" => "required",
"father_name" => "required",
"father_phone" => "required",
];
}
public function model($row)
{
$classCode = Classes::where('code', trim($row['class_code']))->first();
$sectionCode = Section::where('code', trim($row['section_code']))->first();
$schoolCode = School::where('code', trim($row['school_code']))->first();
// Register User ==============
$hashed = Hash::make(trim($row['password']));
$user_unique_id = uniqid();
$user = User::create([
'user_unique_id' => $user_unique_id,
'admin_id' => Auth()->user()->id,
'school_id' => Session::get('school')['id'],
'name' => trim($row['first_name']),
'email' => trim($row['email']),
'phone' => trim($row['phone']),
'fcm_token' => NULL,
'password' => $hashed,
'remember_token' => NULL,
'status' => '1',
'user_type' => 'student',
'created_at' => date('Y-m-d H:i:s'),
]);
// User Create
if (!empty($user)) {
// Assign Roles
$role = Role::whereIn('slug', ['student'])->first();
$user->roles()->attach($role);
$uAdmisArr = new Users_admission();
$uAdmisArr["user_unique_id"] = $user_unique_id;
$uAdmisArr['school_id'] = Session::get('school')['id'];
$uAdmisArr["enrollment_no"] = NULL;
$uAdmisArr["school_name"] = trim(!empty($row['school_name']) ? $row['school_name'] : NULL);
$uAdmisArr["inquiry_no"] = trim(!empty($row['inquiry_no']) ? $row['inquiry_no'] : NULL);
// $uAdmisArr["previous_admission_no"] = trim(!empty($row['previous_admission_no']) ? $row['previous_admission_no'] : NULL);
$uAdmisArr["date_of_admission"] = Date::excelToDateTimeObject($row['date_admission'])->format('Y-m-d');
$uAdmisArr["dob"] = trim(!empty($row['dob']) ? Date::excelToDateTimeObject($row['dob'])->format('Y-m-d') : NULL);
$uAdmisArr["first_name"] = trim($row['first_name']);
$uAdmisArr["last_name"] = trim(!empty($row['last_name']) ? $row['last_name'] : NULL);
$uAdmisArr["gender"] = trim($row['gender']);
$uAdmisArr["aadhar_no"] = trim(!empty($row['aadhar_no']) ? $row['aadhar_no'] : NULL);
$uAdmisArr["address"] = trim(!empty($row['address']) ? $row['address'] : NULL);
$uAdmisArr["town"] = trim(!empty($row['town']) ? $row['town'] : NULL);
$uAdmisArr["district"] = trim(!empty($row['district']) ? $row['district'] : NULL);
$uAdmisArr["pincode"] = trim(!empty($row['pincode']) ? $row['pincode'] : NULL);
$uAdmisArr["state"] = trim(!empty($row['state']) ? $row['state'] : NULL);
$uAdmisArr["pen_no"] = trim(!empty($row['pen_no']) ? $row['pen_no'] : NULL);
$uAdmisArr["social_category"] = trim(!empty($row['social_category']) ? $row['social_category'] : NULL);
$uAdmisArr["minority_group"] = trim(!empty($row['minority_group']) ? $row['minority_group'] : NULL);
$uAdmisArr["created_at"] = date('Y-m-d H:i:s');
$admission = $uAdmisArr->save();
if ($admission) {
$uAdmisArr['enrollment_no'] = $classCode->code . '-' . $sectionCode->code . '-' . $uAdmisArr->id;
$uAdmisArr->save();
// Attech School
$userSchool = array(
'user_id' => $user->id,
'school_id' => $schoolCode->id
);
$schoolarr = array();
array_push($schoolarr, $userSchool);
$user->school()->attach($schoolarr);
$classSection = array(
'user_id' => $user->id,
'classes_id' => $classCode->id,
'section_id' => $sectionCode->id
);
$classArr = array();
array_push($classArr, $classSection);
$user->class()->attach($classArr);
// Check Existing Parents phone ================
if(!$row['father_phone'])
{
$parent = Guardian::where('phone', $row['father_phone'])->first();
}else{
$parent = Guardian::where('email', $row['email'])->first();
}
if (!empty($parent)) {
$user->guardian()->attach($parent->id);
} else {
// Users Parents Form
$uParentArr = new Guardian();
$uParentArr["user_unique_id"] = $user_unique_id;
$uParentArr["guardian_name"] = $row['father_name'];
$uParentArr["phone"] = $row['father_phone'];
$uParentArr["email"] = $row['email'];
$uParentArr["father_name"] = $row['father_name'];
$uParentArr["created_at"] = date('Y-m-d H:i:s');
$uParentArr['admin_id'] = Auth()->user()->id;
$uParentArr['school_id'] = Session::get('school')['id'];
$uParentArr['password'] = $hashed;
// Save Parents attached
$parent = $uParentArr->save();
if ($parent) {
$user->guardian()->attach($uParentArr->id);
}
}
// END Existing Parents phone ==================
}
}
// End Loop
}
}