<?php
namespace App\Imports;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
use Illuminate\Support\Facades\Hash;
use App\Models\User;
use App\Models\PerangkatDaerah;
class PptkImport implements ToCollection
{
public $error = [];
public function collection(Collection $rows)
{
foreach ($rows as $row => $data) {
if ($data[0] && $data[0] != "Username" ) {
// Hilangkan Enter
$data[0] = trim(preg_replace('/\s+/', ' ', $data[0]));
$data[1] = trim(preg_replace('/\s+/', ' ', $data[1]));
$data[2] = trim(preg_replace('/\s+/', ' ', $data[2]));
$data[3] = trim(preg_replace('/\s+/', ' ', $data[3]));
// Cek Apakah Field Lengkap
if ($data[0] && $data[1] && $data[2] && $data[3]) {
$baris = $row + 1;
// Cek Perangkat PerangkatDaerah
$pd = PerangkatDaerah::where('nama_perangkat_daerah', $data[3])->first();
if ($pd) {
// Cek Username unique
$user = User::where('username', $data['0'])->first();
if (!$user) {
// Cek Standar Password
if(preg_match('/^(?=.*\d)(?=.*[@#\-_$%^&+=§!\?])(?=.*[a-z])(?=.*[A-Z])[0-9A-Za-z@#\-_$%^&+=§!\?]{8,20}$/',$data[1])) {
// Create User
User::create([
'username' => $data[0],
'nama' => $data[2],
'password' => bcrypt($data[1]),
'status_input_evaluasi' => '1',
'perangkat_daerah_id' => $pd->id,
'level_id' => 7,
]);
}else{
// Error Password Tidak Memenuhi Standar
$this->error[] = "Pastikan Password anda memiliki 8-20 karakter, Satu Huruf Besar, Satu Huruf Kecil, Satu Angka, dan Satu Spesial Karakter (@,#,!,?), Cek Excel Baris " . $baris;
}
}else{
// Cek Standar Password
if(preg_match('/^(?=.*\d)(?=.*[@#\-_$%^&+=§!\?])(?=.*[a-z])(?=.*[A-Z])[0-9A-Za-z@#\-_$%^&+=§!\?]{8,20}$/',$data[1])) {
// Create User
$user->update([
'username' => $data[0],
'nama' => $data[2],
'password' => bcrypt($data[1]),
'status_input_evaluasi' => '1',
'perangkat_daerah_id' => $pd->id,
'level_id' => 7,
]);
}else{
// Error Password Tidak Memenuhi Standar
$this->error[] = "Pastikan Password anda memiliki 8-20 karakter, Satu Huruf Besar, Satu Huruf Kecil, Satu Angka, dan Satu Spesial Karakter (@,#,!,?), Cek Excel Baris " . $baris;
}
// Error Username Tersedia
// $this->error[] = "Username <b>" . $data[0] . "</b> Telah Tersedia, Mohon Cek Excel Baris " . $baris;
}
}else{
// Error, Perangkat Daerah Tidak Tersedia
$this->error[] = "Perangkat Daerah <b>" . $data[3] . "</b> Tidak Tersedia, Mohon Cek Excel Baris " . $baris;
}
}else{
$this->error[] = "Error, Salah Format atau Data Kosong";
}
}
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]