<?php
namespace App\Imports;
use App\Models\DataWarga;
use App\Models\Dpt;
use Maatwebsite\Excel\Concerns\ToModel;
// use Auth;
use App\Models\UserLog;
use App\Models\Kelurahan;
use App\Models\Kecamatan;
use App\Models\Tp;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
// use Session;
// use Exception;
class DataDPTImport 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[2]) && strlen($row[2]) > 0 && strtolower($row[2]) != "nik"){
$ceknik = Dpt::where('nik',$row[2])->first();
if($ceknik){
$s = Session::get('alert_import',[]);
$s[] = 'data DPT dari excel dengan nik '.$row[2].' tidak bisa di input karena data dengan nik tersebut sudah ada / pernah diinput';
Session::put('alert_import', $s);
} else {
// $cek = Kelurahan::where('nama_kelurahan','like','%'.$row[8].'%')->first();
$cek = Tp::where('nomor','like','%'.$row[1].'%')->orWhere('id','=',$row[1])->first();
if($cek){
// $kelurahan_id = $cek->id;
$data = [
'nik'=>$row[2] != '-' ? $row[2] : null ,
'nama_lengkap'=>$row[3],
// 'no_telepon'=> null,
'jenis_kelamin'=>$row[4] == "L" ? "Laki - Laki" : "Perempuan",
// 'ttl'=>null,
'user_id'=>$user->id,
// 'e_ktp'=>"-",
'alamat'=>null,
'rt'=>$row[5],
'rw'=>$row[6],
'tps_id'=>$row[1],
// 'agama'=>null,
// 'kawin'=>null,
// 'pekerjaan'=> null,
// 'nama_penghubung'=> null,
// 'no_telp_penghubung'=> null,
'umur' => $row[7],
'keterangan' => $row[8]
];
if($row[0]) {
$data['id'] = $row[0];
}
$msg = 'Berhasil menambah data DPT dari excel dengan nik '.$data['nik'];
UserLog::create(['user_id'=>$user->id,'keterangan'=>$msg]);
return new Dpt($data);
} else {
$s = Session::get('alert_import',[]);
$s[] = 'data DPT dari excel dengan nik '.$row[2].' tidak bisa di input karena data kelurahan tidak di temukan';
Session::put('alert_import', $s);
}
}
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]