feat: add submit URL to EmployeeForm component for employee creation functionality
This commit is contained in:
parent
4cbd296c0c
commit
245127c921
@ -28,7 +28,7 @@ public function rules(): array
|
||||
{
|
||||
$isOwner = $this->role === Role::OWNER->value;
|
||||
|
||||
return [
|
||||
$rules = [
|
||||
'email' => ['required', 'email', 'max:100', Rule::unique('users', 'email')->ignore($this->route('user')?->id)],
|
||||
'username' => ['required', 'string', 'max:20', 'alpha_dash', Rule::unique('users', 'username')->ignore($this->route('user')?->id)],
|
||||
'full_name' => ['required', 'string', 'max:200'],
|
||||
@ -36,11 +36,16 @@ public function rules(): array
|
||||
'gender' => ['nullable', Rule::enum(Gender::class)],
|
||||
'birth_date' => ['nullable', 'date', 'before:today'],
|
||||
'address' => ['nullable', 'string'],
|
||||
'join_date' => [Rule::requiredIf(! $isOwner), 'date'],
|
||||
'employment_status' => [Rule::requiredIf(! $isOwner), Rule::enum(EmploymentStatus::class)],
|
||||
'base_salary' => [Rule::requiredIf(! $isOwner), 'integer', 'min:0'],
|
||||
'role' => ['required', Rule::in(Role::assignableValues())],
|
||||
];
|
||||
|
||||
if (! $isOwner) {
|
||||
$rules['join_date'] = ['required', 'date'];
|
||||
$rules['employment_status'] = ['required', Rule::enum(EmploymentStatus::class)];
|
||||
$rules['base_salary'] = ['required', 'integer', 'min:0'];
|
||||
}
|
||||
|
||||
return $rules;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Services\Hr;
|
||||
|
||||
use App\Enums\Role;
|
||||
use App\Models\Employee;
|
||||
use App\Models\User;
|
||||
use App\Models\UserProfile;
|
||||
@ -70,9 +71,7 @@ public function create(array $validated): void
|
||||
'address' => $validated['address'],
|
||||
]);
|
||||
|
||||
$hasEmployee = ! empty($validated['join_date']) && ! empty($validated['employment_status']) && ! empty($validated['base_salary']);
|
||||
|
||||
if ($hasEmployee) {
|
||||
if ($validated['role'] !== Role::OWNER->value) {
|
||||
Employee::create([
|
||||
'user_id' => $user->id,
|
||||
'join_date' => $validated['join_date'],
|
||||
|
||||
@ -30,6 +30,6 @@ defineProps<{
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
<EmployeeForm :genders="genders" :employment-statuses="employmentStatuses" :roles="roles" />
|
||||
<EmployeeForm submit-url="/admin/hr/employees" :genders="genders" :employment-statuses="employmentStatuses" :roles="roles" />
|
||||
</AdminLayout>
|
||||
</template>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user