{{-- resources/views/talenta/sandbox/employees/edit.blade.php --}} @extends('layouts.app') @section('title','Sandbox – Employees') @section('page-title','Ubah Karyawan (Sandbox)') @section('content') @php use Illuminate\Support\Str; /** ========== Short helpers ========== **/ $p = (array) data_get($emp, 'personal', []); $e = (array) data_get($emp, 'employment', []); $uid = data_get($emp, 'user_id'); // old() with fallback $ov = function (string $key, $fallback = '') { $v = old($key); return isset($v) ? $v : $fallback; }; // normalize to Y-m-d (trim time) $ymd = function ($date) { $d = (string) $date; return Str::of($d)->substr(0, 10); }; // option selected helper (match by name or id string) $isSel = function ($current, $opt) { $cn = (string) $current; $name = (string) ($opt['name'] ?? ''); $id = (string) ($opt['id'] ?? ''); return strcasecmp($cn, $name) === 0 || $cn === $id; }; $formActionUser = $user ?? $uid; /** ========== PREFILL (Personal) ========== **/ $employee_id = trim($ov('employee_id', (string) data_get($e, 'employee_id', ''))); $first_name = $ov('first_name', (string) data_get($p, 'first_name', '')); $last_name = $ov('last_name', (string) data_get($p, 'last_name', '')); $email = $ov('email', (string) data_get($p, 'email', '')); // birthdate → fallback ke personal.birth_date jika date_of_birth kosong $date_of_birth = $ov('date_of_birth', $ymd(data_get($p, 'date_of_birth', data_get($p, 'birth_date', '')))); // gender: Talenta bisa kasih "1/2" atau "Male/Female" $genderRaw = data_get($p, 'gender'); $genderFromApi = is_numeric($genderRaw) ? ((int)$genderRaw === 1 ? 'Male' : ((int)$genderRaw === 2 ? 'Female' : '')) : ((string)($genderRaw ?? '')); $gender = $ov('gender', data_get($p, 'gender_text', $genderFromApi)); // marital & religion: gunakan label bila ada $marital_status = $ov('marital_status', (string) (data_get($p, 'marital_status_text') ?? data_get($p, 'marital_status') ?? '')); $religion = $ov('religion', (string) (data_get($p, 'religion_text') ?? data_get($p, 'religion') ?? '')); /** ========== PREFILL (Employment) ========== **/ $branch = $ov('branch', (string) data_get($e, 'branch', '')); $organization_name = $ov('organization_name', (string) data_get($e, 'organization_name', '')); $job_position = $ov('job_position', (string) data_get($e, 'job_position', '')); $job_level = $ov('job_level', (string) data_get($e, 'job_level', '')); $employment_status = (string) $ov('employment_status', (string) (data_get($e, 'employment_status_id') ?? data_get($e, 'employment_status') ?? '')); $join_date = $ov('join_date', $ymd(data_get($e, 'join_date', ''))); // end date → fallback ke employment.end_date $end_employment_date = $ov('end_employment_status_date', $ymd(data_get($e, 'end_employment_status_date', data_get($e, 'end_date', '')))); $schedule = $ov('schedule', (string) data_get($e, 'schedule', '')); /** ========== PREFILL (Comp & Tax) ========== **/ $basic_salary = $ov('basic_salary', (int) data_get($e, 'basic_salary', 0)); // PTKP: bisa ada di employment atau payroll_info $ptkp_status = (string) $ov('ptkp_status', (string) (data_get($e, 'ptkp_status_text') ?? data_get($e, 'ptkp_status') ?? data_get($emp, 'payroll_info.ptkp_status', 'TK/0'))); $npp_bpjs_ket = $ov('npp_bpjs_ketenagakerjaan', (string) (data_get($e, 'npp_bpjs_ketenagakerjaan', ''))); // Payroll flags (prefill default aman) $tax_configuration = (int) $ov('tax_configuration', (int) (data_get($e, 'tax_configuration', 1))); $type_salary = (int) $ov('type_salary', (int) (data_get($e, 'type_salary', 1))); $salary_configuration = (int) $ov('salary_configuration', (int) (data_get($e, 'salary_configuration', 1))); $jht_configuration = (int) $ov('jht_configuration', (int) (data_get($e, 'jht_configuration', 0))); $employee_tax_status = (int) $ov('employee_tax_status', (int) (data_get($e, 'employee_tax_status', 1))); $jp_configuration = (int) $ov('jp_configuration', (int) (data_get($e, 'jp_configuration', 0))); $overtime_status = (int) $ov('overtime_status', (int) (data_get($e, 'overtime_status', 2))); $bpjs_kesehatan_conf = (int) $ov('bpjs_kesehatan_config',(int) (data_get($e, 'bpjs_kesehatan_config', 1))); @endphp
Form auto-terisi dari data saat ini. * wajib diisi.
{{ json_encode($emp ?? [], JSON_PRETTY_PRINT) }}