3 Commits

3 changed files with 63 additions and 28 deletions

View File

@@ -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;

View File

@@ -1,33 +1,33 @@
<?php <?php
namespace Modules\Usermanagement\Database\Seeders; namespace Modules\Usermanagement\Database\Seeders;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Role;
class RolesSeeder extends Seeder class RolesSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{ {
/** $data = $this->data();
* Run the database seeds.
*
* @return void
*/
public function run()
{
$data = $this->data();
foreach ($data as $value) { foreach ($data as $value) {
Role::create([ Role::create([
'name' => $value['name'], 'name' => $value,
'guard_name' => 'web', 'guard_name' => 'web',
]); ]);
}
}
public function data()
{
return [
['name' => 'administrator']
];
} }
} }
public function data()
{
return [
'administrator'
];
}
}

View File

@@ -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,19 @@ 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 = $role->name . '@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 +41,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);
}
} }