diff --git a/app/Http/Controllers/Admin/Master/UserController.php b/app/Http/Controllers/Admin/Master/UserController.php
index a276900..68d3657 100644
--- a/app/Http/Controllers/Admin/Master/UserController.php
+++ b/app/Http/Controllers/Admin/Master/UserController.php
@@ -45,6 +45,7 @@ public function store(UserRequest $request): RedirectResponse
'address' => $validated['address'],
'birth_place' => $validated['birth_place'],
'birth_date' => $validated['birth_date'],
+ 'base_salary' => $validated['base_salary'],
]);
});
@@ -77,6 +78,7 @@ public function update(UserRequest $request, User $user): RedirectResponse
'address' => $validated['address'],
'birth_place' => $validated['birth_place'],
'birth_date' => $validated['birth_date'],
+ 'base_salary' => $validated['base_salary'],
]);
});
diff --git a/app/Http/Requests/Admin/Master/UserRequest.php b/app/Http/Requests/Admin/Master/UserRequest.php
index 29b22fc..f2d2455 100644
--- a/app/Http/Requests/Admin/Master/UserRequest.php
+++ b/app/Http/Requests/Admin/Master/UserRequest.php
@@ -36,6 +36,7 @@ public function rules(): array
'address' => ['required', 'string'],
'birth_place' => ['required', 'string', 'max:100'],
'birth_date' => ['required', 'date'],
+ 'base_salary' => ['required', 'integer', 'min:0'],
];
}
}
diff --git a/app/Models/UserProfile.php b/app/Models/UserProfile.php
index 00b531e..9cd5d39 100644
--- a/app/Models/UserProfile.php
+++ b/app/Models/UserProfile.php
@@ -13,6 +13,13 @@ class UserProfile extends Model
{
use HasFactory, SoftDeletes;
+ protected function casts(): array
+ {
+ return [
+ 'base_salary' => 'integer',
+ ];
+ }
+
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
diff --git a/database/migrations/2026_04_17_132236_create_user_profiles_table.php b/database/migrations/2026_04_17_132236_create_user_profiles_table.php
index 4508ea3..0f5ee76 100644
--- a/database/migrations/2026_04_17_132236_create_user_profiles_table.php
+++ b/database/migrations/2026_04_17_132236_create_user_profiles_table.php
@@ -20,6 +20,7 @@ public function up(): void
$table->text('address');
$table->string('birth_place', 100);
$table->date('birth_date');
+ $table->unsignedInteger('base_salary')->default(0);
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->nullable()->useCurrentOnUpdate();
$table->softDeletes();
diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php
index 4ef62ef..02bc034 100644
--- a/database/seeders/UserSeeder.php
+++ b/database/seeders/UserSeeder.php
@@ -26,6 +26,7 @@ public function run(): void
'address' => 'Jl. Contoh No. 123',
'birth_place' => 'Jakarta',
'birth_date' => '1990-01-01',
+ 'base_salary' => 1500000,
]);
}
}
diff --git a/resources/js/pages/admin/master/user/create.tsx b/resources/js/pages/admin/master/user/create.tsx
index daaff92..9d59413 100644
--- a/resources/js/pages/admin/master/user/create.tsx
+++ b/resources/js/pages/admin/master/user/create.tsx
@@ -15,6 +15,7 @@ import {
PopoverContent,
PopoverTrigger,
} from "@/components/ui/popover"
+import { NumericFormat } from 'react-number-format';
export default function UserCreate() {
const [isCalendarOpen, setIsCalendarOpen] = React.useState(false);
@@ -28,6 +29,7 @@ export default function UserCreate() {
address: '',
birth_place: '',
birth_date: '',
+ base_salary: 0,
});
const onSubmit = (e: React.FormEvent) => {
@@ -62,20 +64,20 @@ export default function UserCreate() {
Informasi Profil
-
-
- setData('full_name', e.target.value)}
- autoComplete='off'
- placeholder='Contoh: John Doe'
- />
- {errors.full_name && {errors.full_name}
}
-
-