Membuat Nomor NIK dan Branch ID itu dibuat acak
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use Maatwebsite\Excel\Facades\Excel;
|
use Maatwebsite\Excel\Facades\Excel;
|
||||||
use Modules\Lpj\Models\Branch;
|
use Modules\Basicdata\Models\Branch;
|
||||||
use Modules\Usermanagement\Exports\UsersExport;
|
use Modules\Usermanagement\Exports\UsersExport;
|
||||||
use Modules\Usermanagement\Http\Requests\User as UserRequest;
|
use Modules\Usermanagement\Http\Requests\User as UserRequest;
|
||||||
use Modules\Usermanagement\Models\Role;
|
use Modules\Usermanagement\Models\Role;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ namespace Modules\Usermanagement\Database\Seeders;
|
|||||||
use Faker\Generator;
|
use Faker\Generator;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Modules\Basicdata\Models\Branch;
|
||||||
use Modules\Usermanagement\Models\User;
|
use Modules\Usermanagement\Models\User;
|
||||||
use Spatie\Permission\Models\Role;
|
use Spatie\Permission\Models\Role;
|
||||||
|
|
||||||
@@ -20,9 +21,18 @@ class UsersSeeder extends Seeder
|
|||||||
$roles = Role::all();
|
$roles = Role::all();
|
||||||
|
|
||||||
foreach ($roles as $role) {
|
foreach ($roles as $role) {
|
||||||
|
// Generate NIK secara acak dengan 6 digit angka
|
||||||
|
$randomNik = str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT);
|
||||||
|
|
||||||
|
// Ubah nama dengan format khusus
|
||||||
|
$formattedName = $this->formatRoleName($role->name);
|
||||||
|
|
||||||
|
$email = $formattedName . '@ag.co.id';
|
||||||
$user = User::create([
|
$user = User::create([
|
||||||
'name' => $role->name,
|
'name' => $formattedName,
|
||||||
'email' => $role->name . '@ag.co.id',
|
'nik' => $randomNik,
|
||||||
|
'branch_id' => Branch::inRandomOrder()->first()->id,
|
||||||
|
'email' => $email,
|
||||||
'password' => Hash::make('bagbag'),
|
'password' => Hash::make('bagbag'),
|
||||||
'email_verified_at' => now(),
|
'email_verified_at' => now(),
|
||||||
]);
|
]);
|
||||||
@@ -30,4 +40,28 @@ class UsersSeeder extends Seeder
|
|||||||
$user->assignRole($role);
|
$user->assignRole($role);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Format nama role dengan aturan khusus
|
||||||
|
*/
|
||||||
|
private function formatRoleName($roleName)
|
||||||
|
{
|
||||||
|
// Pisahkan bagian sebelum dan sesudah "-"
|
||||||
|
$parts = explode('-', $roleName);
|
||||||
|
|
||||||
|
// Jika ada lebih dari satu bagian
|
||||||
|
if (count($parts) > 1) {
|
||||||
|
// Kapitalisasi bagian pertama
|
||||||
|
$parts[0] = (strlen($parts[0]) > 2) ? ucfirst(strtolower($parts[0])) : strtoupper($parts[0]);
|
||||||
|
|
||||||
|
// Untuk bagian kedua, kapitalisasi jika lebih dari 2 huruf
|
||||||
|
$parts[1] = (strlen($parts[1]) > 2) ? ucfirst(strtolower($parts[1])) : strtoupper($parts[1]);
|
||||||
|
|
||||||
|
// Gabungkan kembali
|
||||||
|
return implode(' ', $parts);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Jika tidak ada "-", kapitalisasi biasa
|
||||||
|
return ucfirst($roleName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user