<?php
namespace App\Imports;
use App\Models\Kabupaten;
use App\Models\User;
use Maatwebsite\Excel\Concerns\ToModel;
use Illuminate\Support\Facades\Auth;
use App\Models\UserLog;
// use Session;
use Exception;
use Illuminate\Support\Facades\Session;
class DataPenggunaImport implements ToModel
{
public function transformDate($value, $format = 'Y-m-d')
{
try {
return \Carbon\Carbon::instance(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value))->format($format);
} catch (\ErrorException $e) {
return date($format,strtotime($value));
}
}
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function model(array $row)
{
$user = Auth::user();
if(isset($row[0]) && strlen($row[0]) > 0 && isset($row[1]) && strlen($row[1]) > 0 && isset($row[2]) && strlen($row[2]) > 0 && isset($row[3]) && strlen($row[3]) > 0 && isset($row[4]) && strlen($row[4]) > 0){
$pengguna = User::where('email', 'like','%'.$row[1].'%')->first();
if($pengguna) {
$s = Session::get('alert_import',[]);
$s[] = 'data user dari excel dengan name '.$row[0].' tidak bisa di input karena data dengan email tersebut sudah ada / pernah diinput';
Session::put('alert_import', $s);
} else {
if($row[3] == "User Super Admin") {
$role = 1;
} else if($row[3] == "User Admin") {
$role = 2;
} else if($row[3] == "User Operator") {
$role = 0;
}
// $role = == "User Admin" ? 2 : 0;
// dd($role);
if($role == 0) {
$kabupaten = Kabupaten::where('nama_kabupaten', 'like','%'.$row[4].'%')->first();
// dd($kabupaten->id);
if(isset($kabupaten)) {
// dd("YES");
$data = [
'name'=>$row[0],
'email'=>$row[1],
'no_telepon'=>$row[2],
'role'=> $role,
'kabupaten_id' => $kabupaten->id,
'password'=> password_hash($row[5],PASSWORD_DEFAULT) ,
'api_token'=>str_random(100),
];
$msg = 'Berhasil menambah data User dari excel';
UserLog::create(['user_id'=>$user->id,'keterangan'=>$msg]);
return new User($data);
} else {
$s = Session::get('alert_import',[]);
$s[] = 'data user dari excel dengan name '.$row[0].' tidak bisa di input karena data kabupaten tidak tersedia';
Session::put('alert_import', $s);
}
} else {
$data = [
'name'=>$row[0],
'email'=>$row[1],
'no_telepon'=>$row[2],
'role'=> $role,
'kabupaten_id' => null,
'password'=> password_hash($row[4],PASSWORD_DEFAULT) ,
'api_token'=>str_random(100),
];
$msg = 'Berhasil menambah data User dari excel';
UserLog::create(['user_id'=>$user->id,'keterangan'=>$msg]);
return new User($data);
}
}
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]