@php
use App\Support\Validation\KenyanFieldRules;
$input = (string) ($field['input'] ?? 'text');
$column = (string) ($field['column'] ?? '');
$name = (string) ($field['name'] ?? '');
$label = (string) ($field['label'] ?? '');
$required = (bool) ($field['is_required'] ?? false);
$isVisible = ($field['is_visible'] ?? true) !== false;
$options = (array) ($field['select_options'] ?? []);
$fieldKind = KenyanFieldRules::kindFromFieldHints(
$column !== '' ? $column : null,
(string) ($field['key'] ?? ''),
$label,
(string) ($field['data_type'] ?? ''),
);
if ($fieldKind === KenyanFieldRules::KIND_DIGITS && ($field['data_type'] ?? '') === 'number') {
$fieldKind = 'money';
}
$loanFieldAttrs = $fieldKind
? ' data-loan-field-kind="'.e($fieldKind).'" '.KenyanFieldRules::htmlAttributeStringForKind($fieldKind)
: '';
$formDefaults = $formDefaults ?? [];
$fieldValue = old(
$column !== '' ? $column : str_replace(['form_meta[', ']'], '', $name),
$formDefaults[$column] ?? $field['value'] ?? ''
);
if (str_starts_with($name, 'form_meta[')) {
$metaKey = (string) ($field['key'] ?? '');
$formMeta = is_array($formDefaults['form_meta'] ?? null) ? $formDefaults['form_meta'] : [];
$fieldValue = old("form_meta.$metaKey", $formMeta[$metaKey] ?? $field['value'] ?? '');
}
$colSpan = in_array($input, ['long_text', 'employee_number'], true) ? 'sm:col-span-2' : '';
$isCreate = ($employee ?? null) === null;
$visibilityClass = $isVisible ? '' : 'hidden';
@endphp
@if ($input === 'employee_number')
@if ($isCreate)
Auto-assigned by the system when left blank.
@endif
@elseif ($input === 'department_lookup')
@include('loan.employees.partials.add-lookup-button', [
'modalKey' => 'department',
'label' => 'department',
'target' => $column,
'createUrl' => route('loan.employees.departments.create', ['modal' => 1, 'target' => $column]),
'refreshUrl' => route('loan.lookups.departments'),
])
@elseif ($input === 'job_title_lookup')
Titles mirror active access roles under System setup → Access & roles. Custom titles already on file are kept in the list.
@elseif ($input === 'branch_lookup')
@include('loan.employees.partials.add-lookup-button', [
'modalKey' => 'branch',
'label' => 'branch',
'target' => $column,
'createUrl' => route('loan.employees.branches.create', ['modal' => 1, 'target' => $column]),
'refreshUrl' => route('loan.lookups.employee_branches'),
])
@elseif ($input === 'supervisor')
Who this employee reports to (their line manager).
@elseif ($fieldKind === KenyanFieldRules::KIND_PHONE_KE)
@elseif ($input === 'string')
@if ($fieldKind === KenyanFieldRules::KIND_KRA_PIN)
Exactly 11 letters or numbers (e.g. A1DBBF3SFGA).
@elseif ($fieldKind === KenyanFieldRules::KIND_NATIONAL_ID)
7, 8 or 9 digits.
@endif
@elseif ($input === 'select')
@elseif ($input === 'date')
@if ($column === 'date_of_birth')
Employee must be at least {{ \App\Support\Validation\EmployeeDateOfBirthRules::MIN_AGE_YEARS }} years old.
@endif
@elseif ($input === 'long_text')
@elseif ($input === 'email')
@elseif ($input === 'custom')
@php $metaKey = (string) ($field['key'] ?? ''); @endphp
@if (($field['data_type'] ?? '') === 'long_text')
@elseif (($field['data_type'] ?? '') === 'select')
@elseif (($field['data_type'] ?? '') === 'number')
@elseif (($field['data_type'] ?? '') === 'date')
@else
@endif
@if ($fieldKind === KenyanFieldRules::KIND_KRA_PIN)
Exactly 11 letters or numbers (e.g. A1DBBF3SFGA).
@elseif ($fieldKind === KenyanFieldRules::KIND_NATIONAL_ID)
7, 8 or 9 digits.
@endif
@error("form_meta.$metaKey")
@enderror
@else
@php
$fallbackErrorKey = $column !== '' ? $column : 'form_meta.'.($field['key'] ?? '');
@endphp
@endif