Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/e-tepian.aplikasipos.info/app/Imports/
Upload File :
Current File : /home/aplikasiposinfo/www/e-tepian.aplikasipos.info/app/Imports/UsersImport.php

<?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 UsersImport 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]