From 285db59bde101606a9733e47b36255be7608fa8c Mon Sep 17 00:00:00 2001 From: IlhamIslamy Date: Fri, 8 May 2026 02:02:40 +0700 Subject: [PATCH] feat: implement core HRIS features including dashboard, employee management, departments, positions, payroll, and attendance modules --- .../Admin/AttendanceController.php | 44 ++- .../Admin/DepartmentController.php | 19 +- .../Controllers/Admin/EmployeeController.php | 60 ++- .../Controllers/Admin/PayrollController.php | 133 ++++++- .../Controllers/Admin/PositionController.php | 21 +- app/Http/Controllers/Admin/UserController.php | 32 +- app/Http/Controllers/Controller.php | 1 - app/Http/Controllers/DashboardController.php | 24 +- .../Employee/EmployeeAttendanceController.php | 28 +- .../Employee/EmployeeDashboardController.php | 54 +++ ..._02_14_120000_create_departments_table.php | 4 +- ...26_02_14_120500_create_positions_table.php | 4 +- ...26_02_14_999999_create_employees_table.php | 6 +- ..._04_20_110000_create_attendances_table.php | 18 +- database/seeders/EmployeeSeeder.php | 3 +- database/seeders/UserSeeder.php | 59 +-- package-lock.json | 191 +++++++-- package.json | 7 +- public/assets/logo-clear.png | Bin 0 -> 182339 bytes public/assets/logo.jpg | Bin 0 -> 53880 bytes .../js/components/AttendanceMapModal.tsx | 96 +++++ resources/js/components/app-sidebar.tsx | 2 +- .../js/layouts/app/app-sidebar-layout.tsx | 15 + resources/js/layouts/employee-layout.tsx | 81 ++++ .../js/pages/admin/attendance/create.tsx | 18 +- .../js/pages/admin/attendances/index.tsx | 105 ++++- .../js/pages/admin/departments/create.tsx | 2 +- resources/js/pages/admin/departments/edit.tsx | 2 +- .../js/pages/admin/departments/index.tsx | 76 ++-- resources/js/pages/admin/employees/create.tsx | 26 +- resources/js/pages/admin/employees/edit.tsx | 13 +- resources/js/pages/admin/employees/index.tsx | 50 +-- resources/js/pages/admin/payrolls/create.tsx | 123 +++--- resources/js/pages/admin/payrolls/edit.tsx | 273 +++++++++++++ resources/js/pages/admin/payrolls/index.tsx | 179 +++++++-- resources/js/pages/admin/payrolls/show.tsx | 80 +++- resources/js/pages/admin/positions/create.tsx | 2 +- resources/js/pages/admin/positions/edit.tsx | 2 +- resources/js/pages/admin/positions/index.tsx | 73 ++-- resources/js/pages/admin/users/create.tsx | 36 +- resources/js/pages/admin/users/index.tsx | 82 +++- resources/js/pages/auth/login.tsx | 22 +- resources/js/pages/dashboard.tsx | 59 ++- .../js/pages/employee/attendances/index.tsx | 374 ++++++++---------- resources/js/pages/employee/index.tsx | 181 +++++---- routes/web.php | 7 +- 46 files changed, 1955 insertions(+), 732 deletions(-) create mode 100644 app/Http/Controllers/Employee/EmployeeDashboardController.php create mode 100644 public/assets/logo-clear.png create mode 100644 public/assets/logo.jpg create mode 100644 resources/js/components/AttendanceMapModal.tsx create mode 100644 resources/js/layouts/employee-layout.tsx create mode 100644 resources/js/pages/admin/payrolls/edit.tsx diff --git a/app/Http/Controllers/Admin/AttendanceController.php b/app/Http/Controllers/Admin/AttendanceController.php index e798f3f..706ca55 100644 --- a/app/Http/Controllers/Admin/AttendanceController.php +++ b/app/Http/Controllers/Admin/AttendanceController.php @@ -10,36 +10,52 @@ class AttendanceController extends Controller { - public function index() + public function index(Request $request) { - $attendances = Attendance::with('employee')->orderBy('date', 'desc')->get(); + $query = Attendance::with('employee')->orderBy('date', 'desc'); - $attendances = $attendances->map(function ($attendance) { + if ($request->search) { + $query->whereHas('employee', function ($q) use ($request) { + $q->where('name', 'like', '%' . $request->search . '%') + ->orWhere('nip', 'like', '%' . $request->search . '%'); + }); + } + if ($request->date) { + $query->where('date', $request->date); + } + if ($request->status) { + $query->where('status', $request->status); + } + + $attendances = $query->get()->map(function ($attendance) { $totalHours = null; - // Menghitung selisih jam kerja dalam format H:i if ($attendance->check_in && $attendance->check_out) { $checkIn = Carbon::parse($attendance->check_in); $checkOut = Carbon::parse($attendance->check_out); - $diff = $checkIn->diff($checkOut); $totalHours = sprintf('%02d:%02d', $diff->h, $diff->i); } return [ - 'id' => $attendance->id, + 'id' => $attendance->id, 'employee_name' => $attendance->employee->name ?? '-', - 'employee_nik' => $attendance->employee->nip ?? '-', - 'date' => $attendance->date, - 'check_in' => $attendance->check_in, - 'check_out' => $attendance->check_out, - 'status' => $attendance->status, - 'notes' => $attendance->notes, - 'total_hours' => $totalHours, + 'employee_nik' => $attendance->employee->nip ?? '-', + 'date' => $attendance->date, + 'check_in' => $attendance->check_in, + 'check_out' => $attendance->check_out, + 'status' => $attendance->status, + 'notes' => $attendance->notes, + 'total_hours' => $totalHours, + 'latitude_in' => $attendance->latitude_in, + 'longitude_in' => $attendance->longitude_in, + 'latitude_out' => $attendance->latitude_out, + 'longitude_out'=> $attendance->longitude_out, ]; }); return Inertia::render('admin/attendances/index', [ - 'attendances' => $attendances + 'attendances' => $attendances, + 'filters' => $request->only(['search', 'date', 'status']), ]); } } diff --git a/app/Http/Controllers/Admin/DepartmentController.php b/app/Http/Controllers/Admin/DepartmentController.php index b782060..7e3593c 100644 --- a/app/Http/Controllers/Admin/DepartmentController.php +++ b/app/Http/Controllers/Admin/DepartmentController.php @@ -9,10 +9,15 @@ class DepartmentController extends Controller { - public function index() + public function index(Request $request) { + $query = Department::withCount('employees'); + if ($request->search) { + $query->where('name', 'like', '%' . $request->search . '%'); + } return Inertia::render('admin/departments/index', [ - 'departments' => Department::withCount('employees')->latest()->get(), + 'departments' => $query->latest()->get(), + 'filters' => $request->only(['search']), ]); } @@ -26,6 +31,10 @@ public function store(Request $request) $validated = $request->validate([ 'name' => 'required|string|max:255|unique:departments,name', 'description' => 'nullable|string', + ], [ + 'name.required' => 'Nama departemen wajib diisi.', + 'name.max' => 'Nama departemen maksimal 255 karakter.', + 'name.unique' => 'Nama departemen sudah terdaftar.', ]); Department::create($validated); @@ -46,6 +55,10 @@ public function update(Request $request, Department $department) $validated = $request->validate([ 'name' => 'required|string|max:255|unique:departments,name,' . $department->id, 'description' => 'nullable|string', + ], [ + 'name.required' => 'Nama departemen wajib diisi.', + 'name.max' => 'Nama departemen maksimal 255 karakter.', + 'name.unique' => 'Nama departemen sudah terdaftar.', ]); $department->update($validated); @@ -56,7 +69,7 @@ public function update(Request $request, Department $department) public function destroy(Department $department) { - // Cek jika departemen masih punya karyawan + // Cek sisa karyawan if ($department->employees()->count() > 0) { return back()->with('error', 'Gagal hapus! Departemen ini masih memiliki karyawan.'); } diff --git a/app/Http/Controllers/Admin/EmployeeController.php b/app/Http/Controllers/Admin/EmployeeController.php index 715caaa..a576cea 100644 --- a/app/Http/Controllers/Admin/EmployeeController.php +++ b/app/Http/Controllers/Admin/EmployeeController.php @@ -30,9 +30,9 @@ public function index(Request $request) } return Inertia::render('admin/employees/index', [ - 'employees' => $query->latest()->paginate(10)->withQueryString(), + 'employees' => $query->latest()->get(), 'departments' => Department::all(), - 'filters' => $request->only(['search', 'department_id']), + 'filters' => $request->only(['search', 'department_id']), ]); } @@ -49,26 +49,48 @@ public function store(Request $request) $validated = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', - 'password' => 'required|string|min:8|confirmed', 'nip' => 'required|string|unique:employees,nip', 'gender' => 'required|in:L,P', 'place_of_birth' => 'nullable|string|max:255', 'birth_date' => 'required|date', 'address' => 'nullable|string', - 'phone_number' => 'nullable|string', + 'phone_number' => 'nullable|string|max:20', 'department_id' => 'required|exists:departments,id', 'position_id' => 'required|exists:positions,id', 'status' => 'required|in:PKWT,PKWTT,Magang', 'join_date' => 'required|date', + ], [ + 'name.required' => 'Nama lengkap wajib diisi.', + 'name.max' => 'Nama lengkap maksimal 255 karakter.', + 'email.required' => 'Email wajib diisi.', + 'email.email' => 'Format email tidak valid.', + 'email.unique' => 'Email sudah digunakan oleh karyawan lain.', + 'nip.required' => 'NIP wajib diisi.', + 'nip.unique' => 'NIP sudah terdaftar.', + 'gender.required' => 'Jenis kelamin wajib dipilih.', + 'gender.in' => 'Jenis kelamin hanya boleh Laki-laki atau Perempuan.', + 'place_of_birth.max' => 'Tempat lahir maksimal 255 karakter.', + 'birth_date.required' => 'Tanggal lahir wajib diisi.', + 'birth_date.date' => 'Format tanggal lahir tidak valid.', + 'phone_number.max' => 'Nomor telepon maksimal 20 karakter.', + 'department_id.required' => 'Departemen wajib dipilih.', + 'department_id.exists' => 'Departemen tidak ditemukan.', + 'position_id.required' => 'Jabatan wajib dipilih.', + 'position_id.exists' => 'Jabatan tidak ditemukan.', + 'status.required' => 'Status kepegawaian wajib dipilih.', + 'status.in' => 'Status hanya boleh PKWT, PKWTT, atau Magang.', + 'join_date.required' => 'Tanggal masuk wajib diisi.', + 'join_date.date' => 'Format tanggal masuk tidak valid.', ]); $user = User::create([ 'name' => $validated['name'], 'email' => $validated['email'], - 'password' => Hash::make($validated['password']), + 'password' => Hash::make('password'), + 'role' => 'employee', ]); - Employee::create([ + $employee = Employee::create([ 'user_id' => $user->id, 'nip' => $validated['nip'], 'name' => $validated['name'], @@ -83,6 +105,8 @@ public function store(Request $request) 'join_date' => $validated['join_date'], ]); + $user->update(['employee_id' => $employee->id]); + return redirect()->route('admin.employees.index') ->with('success', 'Data karyawan berhasil ditambahkan.'); } @@ -108,11 +132,33 @@ public function update(Request $request, Employee $employee) 'place_of_birth' => 'nullable|string|max:255', 'birth_date' => 'required|date', 'address' => 'nullable|string', - 'phone_number' => 'nullable|string', + 'phone_number' => 'nullable|string|max:20', 'department_id' => 'required|exists:departments,id', 'position_id' => 'required|exists:positions,id', 'status' => 'required|in:PKWT,PKWTT,Magang', 'join_date' => 'required|date', + ], [ + 'name.required' => 'Nama lengkap wajib diisi.', + 'name.max' => 'Nama lengkap maksimal 255 karakter.', + 'email.required' => 'Email wajib diisi.', + 'email.email' => 'Format email tidak valid.', + 'email.unique' => 'Email sudah digunakan oleh karyawan lain.', + 'nip.required' => 'NIP wajib diisi.', + 'nip.unique' => 'NIP sudah terdaftar.', + 'gender.required' => 'Jenis kelamin wajib dipilih.', + 'gender.in' => 'Jenis kelamin hanya boleh Laki-laki atau Perempuan.', + 'place_of_birth.max' => 'Tempat lahir maksimal 255 karakter.', + 'birth_date.required' => 'Tanggal lahir wajib diisi.', + 'birth_date.date' => 'Format tanggal lahir tidak valid.', + 'phone_number.max' => 'Nomor telepon maksimal 20 karakter.', + 'department_id.required' => 'Departemen wajib dipilih.', + 'department_id.exists' => 'Departemen tidak ditemukan.', + 'position_id.required' => 'Jabatan wajib dipilih.', + 'position_id.exists' => 'Jabatan tidak ditemukan.', + 'status.required' => 'Status kepegawaian wajib dipilih.', + 'status.in' => 'Status hanya boleh PKWT, PKWTT, atau Magang.', + 'join_date.required' => 'Tanggal masuk wajib diisi.', + 'join_date.date' => 'Format tanggal masuk tidak valid.', ]); $employee->user->update([ diff --git a/app/Http/Controllers/Admin/PayrollController.php b/app/Http/Controllers/Admin/PayrollController.php index 5a31694..49d4943 100644 --- a/app/Http/Controllers/Admin/PayrollController.php +++ b/app/Http/Controllers/Admin/PayrollController.php @@ -11,23 +11,37 @@ class PayrollController extends Controller { - public function index() + public function index(Request $request) { - // Eager loading untuk mencegah N+1 query - $payrolls = Payroll::with('employee') - ->latest() - ->get() - ->map(fn($p) => [ - 'id' => $p->id, - 'period' => $p->period, - 'net_salary' => $p->net_salary, - 'status' => $p->status, - 'employee_name' => $p->employee?->name ?? '-', - 'employee_nip' => $p->employee?->nip ?? '-', - ]); + $query = Payroll::with('employee'); + + if ($request->search) { + $query->whereHas('employee', function ($q) use ($request) { + $q->where('name', 'like', '%' . $request->search . '%') + ->orWhere('nip', 'like', '%' . $request->search . '%'); + }); + } + + if ($request->period) { + $query->where('period', $request->period); + } + + if ($request->status) { + $query->where('status', $request->status); + } + + $payrolls = $query->latest()->get()->map(fn($p) => [ + 'id' => $p->id, + 'period' => $p->period, + 'net_salary' => $p->net_salary, + 'status' => $p->status, + 'employee_name' => $p->employee?->name ?? '-', + 'employee_nip' => $p->employee?->nip ?? '-', + ]); return Inertia::render('admin/payrolls/index', [ 'payrolls' => $payrolls, + 'filters' => $request->only(['search', 'period', 'status']), ]); } @@ -70,11 +84,24 @@ public function store(Request $request) 'details.*.type' => 'required|in:bonus,deduction', 'details.*.amount' => 'required|integer|min:0', ], [ + 'employee_id.required' => 'Karyawan wajib dipilih.', + 'employee_id.exists' => 'Karyawan tidak ditemukan.', + 'period.required' => 'Periode gaji wajib diisi.', 'period.date_format' => 'Format periode harus YYYY-MM.', 'period.unique' => 'Payroll karyawan untuk periode ini sudah ada.', + 'basic_salary.required' => 'Gaji pokok wajib diisi.', + 'basic_salary.integer' => 'Gaji pokok harus berupa angka bulat.', + 'basic_salary.min' => 'Gaji pokok tidak boleh negatif.', + 'details.array' => 'Detail komponen harus berupa array.', + 'details.*.name.required' => 'Nama komponen wajib diisi.', + 'details.*.name.max' => 'Nama komponen maksimal 100 karakter.', + 'details.*.type.required' => 'Tipe komponen wajib dipilih.', + 'details.*.type.in' => 'Tipe komponen hanya boleh bonus atau potongan.', + 'details.*.amount.required' => 'Nominal komponen wajib diisi.', + 'details.*.amount.integer' => 'Nominal komponen harus berupa angka bulat.', + 'details.*.amount.min' => 'Nominal komponen tidak boleh negatif.', ]); - // net_salary = basic_salary + Σbonus − Σpotongan, minimal 0 $net = $validated['basic_salary']; foreach ($validated['details'] ?? [] as $item) { $net += $item['type'] === 'bonus' @@ -117,4 +144,82 @@ public function show(Payroll $payroll) ], ]); } + + public function edit(Payroll $payroll) + { + $payroll->load('employee.position', 'employee.department'); + + return Inertia::render('admin/payrolls/edit', [ + 'payroll' => [ + 'id' => $payroll->id, + 'period' => $payroll->period, + 'basic_salary' => $payroll->basic_salary, + 'details' => $payroll->details ?? [], + 'net_salary' => $payroll->net_salary, + 'status' => $payroll->status, + 'employee' => [ + 'id' => $payroll->employee?->id, + 'name' => $payroll->employee?->name, + 'nip' => $payroll->employee?->nip, + 'position' => $payroll->employee?->position?->name, + 'department' => $payroll->employee?->department?->name, + ], + ], + ]); + } + + public function update(Request $request, Payroll $payroll) + { + $validated = $request->validate([ + 'basic_salary' => 'required|integer|min:0', + 'details' => 'nullable|array', + 'details.*.name' => 'required|string|max:100', + 'details.*.type' => 'required|in:bonus,deduction', + 'details.*.amount' => 'required|integer|min:0', + ], [ + 'basic_salary.required' => 'Gaji pokok wajib diisi.', + 'basic_salary.integer' => 'Gaji pokok harus berupa angka bulat.', + 'basic_salary.min' => 'Gaji pokok tidak boleh negatif.', + 'details.*.name.required' => 'Nama komponen wajib diisi.', + 'details.*.type.required' => 'Tipe komponen wajib dipilih.', + 'details.*.type.in' => 'Tipe hanya boleh bonus atau potongan.', + 'details.*.amount.required' => 'Nominal wajib diisi.', + 'details.*.amount.min' => 'Nominal tidak boleh negatif.', + ]); + + $net = $validated['basic_salary']; + foreach ($validated['details'] ?? [] as $item) { + $net += $item['type'] === 'bonus' + ? $item['amount'] + : -$item['amount']; + } + + $payroll->update([ + 'basic_salary' => $validated['basic_salary'], + 'details' => $validated['details'] ?? [], + 'net_salary' => max(0, $net), + ]); + + return redirect()->route('admin.payrolls.show', $payroll) + ->with('success', 'Data payroll berhasil diperbarui.'); + } + + /** + * Update hanya field status payroll (menunggu / telah_dikirim). + */ + public function updateStatus(Request $request, Payroll $payroll) + { + $validated = $request->validate([ + 'status' => ['required', Rule::in(['pending', 'paid'])], + ], [ + 'status.required' => 'Status wajib dipilih.', + 'status.in' => 'Status hanya boleh pending atau paid.', + ]); + + $payroll->update(['status' => $validated['status']]); + + $label = $validated['status'] === 'paid' ? 'Telah Dikirim' : 'Menunggu'; + + return back()->with('success', "Status payroll diubah menjadi '{$label}'."); + } } diff --git a/app/Http/Controllers/Admin/PositionController.php b/app/Http/Controllers/Admin/PositionController.php index 1b22ab7..e706b54 100644 --- a/app/Http/Controllers/Admin/PositionController.php +++ b/app/Http/Controllers/Admin/PositionController.php @@ -9,10 +9,15 @@ class PositionController extends Controller { - public function index() + public function index(Request $request) { + $query = Position::withCount('employees'); + if ($request->search) { + $query->where('name', 'like', '%' . $request->search . '%'); + } return Inertia::render('admin/positions/index', [ - 'positions' => Position::withCount('employees')->latest()->get(), + 'positions' => $query->latest()->get(), + 'filters' => $request->only(['search']), ]); } @@ -26,6 +31,12 @@ public function store(Request $request) $validated = $request->validate([ 'name' => 'required|string|max:255|unique:positions,name', 'basic_salary' => 'nullable|integer|min:0', + ], [ + 'name.required' => 'Nama jabatan wajib diisi.', + 'name.max' => 'Nama jabatan maksimal 255 karakter.', + 'name.unique' => 'Nama jabatan sudah terdaftar.', + 'basic_salary.integer' => 'Gaji pokok harus berupa angka bulat.', + 'basic_salary.min' => 'Gaji pokok tidak boleh negatif.', ]); Position::create($validated); @@ -46,6 +57,12 @@ public function update(Request $request, Position $position) $validated = $request->validate([ 'name' => 'required|string|max:255|unique:positions,name,' . $position->id, 'basic_salary' => 'nullable|integer|min:0', + ], [ + 'name.required' => 'Nama jabatan wajib diisi.', + 'name.max' => 'Nama jabatan maksimal 255 karakter.', + 'name.unique' => 'Nama jabatan sudah terdaftar.', + 'basic_salary.integer' => 'Gaji pokok harus berupa angka bulat.', + 'basic_salary.min' => 'Gaji pokok tidak boleh negatif.', ]); $position->update($validated); diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 2b5295c..3cca1d3 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -12,18 +12,27 @@ class UserController extends Controller { - public function index() + public function index(Request $request) { + $query = User::select('id', 'name', 'email', 'role', 'created_at'); + if ($request->search) { + $query->where(function ($q) use ($request) { + $q->where('name', 'like', '%' . $request->search . '%') + ->orWhere('email', 'like', '%' . $request->search . '%'); + }); + } + if ($request->role) { + $query->where('role', $request->role); + } return Inertia::render('admin/users/index', [ - 'users' => User::select('id', 'name', 'email', 'role', 'created_at') - ->latest() - ->get(), + 'users' => $query->latest()->get(), + 'filters' => $request->only(['search', 'role']), ]); } public function create() { - // whereDoesntHave mencegah 1 employee memiliki lebih dari 1 akun + // Filter employee tanpa akun $employees = Employee::whereDoesntHave('user') ->orderBy('name') ->get() @@ -48,7 +57,6 @@ public function store(Request $request) 'unique:users,employee_id', ], 'email' => 'required|email|max:255|unique:users,email', - 'password' => 'required|string|min:8|confirmed', 'role' => ['required', Rule::in(['admin', 'employee'])], ], [ 'employee_id.required' => 'Karyawan wajib dipilih.', @@ -57,23 +65,22 @@ public function store(Request $request) 'email.required' => 'Email wajib diisi.', 'email.email' => 'Format email tidak valid.', 'email.unique' => 'Email sudah terdaftar.', - 'password.required' => 'Password wajib diisi.', - 'password.min' => 'Password minimal 8 karakter.', - 'password.confirmed' => 'Konfirmasi password tidak cocok.', 'role.required' => 'Role wajib dipilih.', 'role.in' => 'Role hanya boleh admin atau employee.', ]); $employee = Employee::findOrFail($validated['employee_id']); - User::create([ + $user = User::create([ 'name' => $employee->name, 'email' => $validated['email'], - 'password' => Hash::make($validated['password']), + 'password' => Hash::make('password'), 'role' => $validated['role'], 'employee_id' => $employee->id, ]); + $employee->update(['user_id' => $user->id]); + return redirect()->route('admin.users.index') ->with('success', "Akun untuk {$employee->name} berhasil dibuat."); } @@ -82,6 +89,9 @@ public function update(Request $request, User $user) { $validated = $request->validate([ 'role' => ['required', Rule::in(['admin', 'employee'])], + ], [ + 'role.required' => 'Role wajib dipilih.', + 'role.in' => 'Role hanya boleh admin atau employee.', ]); $user->update($validated); diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 8677cd5..3aa2580 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -4,5 +4,4 @@ abstract class Controller { - // } diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index 2611e31..57cbfbd 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -4,8 +4,10 @@ use App\Models\Department; use App\Models\Employee; +use App\Models\Payroll; use App\Models\Position; use Illuminate\Http\Request; +use Illuminate\Support\Carbon; use Inertia\Inertia; class DashboardController extends Controller @@ -16,26 +18,31 @@ public function index() return redirect()->route('employee.index'); } + $currentPeriod = Carbon::now()->format('Y-m'); + $stats = [ - 'total_employees' => Employee::count(), + 'total_employees' => Employee::count(), 'total_departments' => Department::count(), - 'total_positions' => Position::count(), + 'total_positions' => Position::count(), + 'payroll_realisasi' => Payroll::where('period', $currentPeriod) + ->where('status', 'paid') + ->sum('net_salary'), ]; $genderData = Employee::selectRaw('gender, count(*) as total') ->groupBy('gender') ->get() ->map(fn($item) => [ - 'name' => $item->gender == 'L' ? 'Laki-laki' : 'Perempuan', + 'name' => $item->gender == 'L' ? 'Laki-laki' : 'Perempuan', 'value' => $item->total, - 'fill' => $item->gender == 'L' ? '#3b82f6' : '#ec4899', + 'fill' => $item->gender == 'L' ? '#3b82f6' : '#ec4899', ]); $deptData = Department::withCount('employees') ->having('employees_count', '>', 0) ->get() ->map(fn($item) => [ - 'name' => $item->name, + 'name' => $item->name, 'employees' => $item->employees_count, ]); @@ -45,10 +52,11 @@ public function index() ->get(); return Inertia::render('dashboard', [ - 'stats' => $stats, - 'genderData' => $genderData, - 'deptData' => $deptData, + 'stats' => $stats, + 'genderData' => $genderData, + 'deptData' => $deptData, 'latestEmployees' => $latestEmployees, + 'currentPeriod' => $currentPeriod, ]); } } \ No newline at end of file diff --git a/app/Http/Controllers/Employee/EmployeeAttendanceController.php b/app/Http/Controllers/Employee/EmployeeAttendanceController.php index 5d6d147..aab4adc 100644 --- a/app/Http/Controllers/Employee/EmployeeAttendanceController.php +++ b/app/Http/Controllers/Employee/EmployeeAttendanceController.php @@ -44,6 +44,11 @@ public function clockIn(Request $request) $request->validate([ 'latitude_in' => 'required|numeric', 'longitude_in' => 'required|numeric', + ], [ + 'latitude_in.required' => 'Lokasi latitude wajib diisi.', + 'latitude_in.numeric' => 'Lokasi latitude harus berupa angka.', + 'longitude_in.required' => 'Lokasi longitude wajib diisi.', + 'longitude_in.numeric' => 'Lokasi longitude harus berupa angka.', ]); $employeeId = $employee->id; @@ -79,6 +84,11 @@ public function clockOut(Request $request) $request->validate([ 'latitude_out' => 'required|numeric', 'longitude_out' => 'required|numeric', + ], [ + 'latitude_out.required' => 'Lokasi latitude wajib diisi.', + 'latitude_out.numeric' => 'Lokasi latitude harus berupa angka.', + 'longitude_out.required' => 'Lokasi longitude wajib diisi.', + 'longitude_out.numeric' => 'Lokasi longitude harus berupa angka.', ]); $employeeId = $employee->id; @@ -110,7 +120,13 @@ public function submitLeave(Request $request) $request->validate([ 'date' => 'required|date', - 'notes' => 'required|string', + 'notes' => 'required|string|min:5', + ], [ + 'date.required' => 'Tanggal izin wajib diisi.', + 'date.date' => 'Format tanggal tidak valid.', + 'notes.required' => 'Keterangan izin wajib diisi.', + 'notes.string' => 'Keterangan izin harus berupa teks.', + 'notes.min' => 'Keterangan izin minimal 5 karakter.', ]); Attendance::create([ @@ -133,7 +149,15 @@ public function submitDispensation(Request $request) $request->validate([ 'latitude_in' => 'required|numeric', 'longitude_in' => 'required|numeric', - 'notes' => 'required|string', + 'notes' => 'required|string|min:5', + ], [ + 'latitude_in.required' => 'Lokasi latitude wajib diisi.', + 'latitude_in.numeric' => 'Lokasi latitude harus berupa angka.', + 'longitude_in.required' => 'Lokasi longitude wajib diisi.', + 'longitude_in.numeric' => 'Lokasi longitude harus berupa angka.', + 'notes.required' => 'Keterangan dispensasi wajib diisi.', + 'notes.string' => 'Keterangan dispensasi harus berupa teks.', + 'notes.min' => 'Keterangan dispensasi minimal 5 karakter.', ]); $now = Carbon::now(); diff --git a/app/Http/Controllers/Employee/EmployeeDashboardController.php b/app/Http/Controllers/Employee/EmployeeDashboardController.php new file mode 100644 index 0000000..15be824 --- /dev/null +++ b/app/Http/Controllers/Employee/EmployeeDashboardController.php @@ -0,0 +1,54 @@ +user()->employee; + if (!$employee) { + return Inertia::render('employee/index', [ + 'stats' => null, + ]); + } + + $currentMonth = Carbon::now()->month; + $currentYear = Carbon::now()->year; + + $attendances = Attendance::where('employee_id', $employee->id) + ->whereMonth('date', $currentMonth) + ->whereYear('date', $currentYear) + ->get(); + + $presentCount = $attendances->where('status', 'present')->count(); + $leaveCount = $attendances->where('status', 'leave')->count(); + $dispensationCount = $attendances->where('status', 'dispensation')->count(); + + // Batas telat 08:00 + $onTimeCount = $attendances->where('status', 'present')->filter(function ($att) { + return $att->check_in && $att->check_in <= '08:00:00'; + })->count(); + + $lateCount = $attendances->where('status', 'present')->filter(function ($att) { + return $att->check_in && $att->check_in > '08:00:00'; + })->count(); + + return Inertia::render('employee/index', [ + 'stats' => [ + 'present' => $presentCount, + 'leave' => $leaveCount, + 'dispensation' => $dispensationCount, + 'on_time' => $onTimeCount, + 'late' => $lateCount, + ], + 'employee' => $employee, + ]); + } +} diff --git a/database/migrations/2026_02_14_120000_create_departments_table.php b/database/migrations/2026_02_14_120000_create_departments_table.php index 66895e3..c0a4cb2 100644 --- a/database/migrations/2026_02_14_120000_create_departments_table.php +++ b/database/migrations/2026_02_14_120000_create_departments_table.php @@ -9,7 +9,7 @@ */ public function up(): void { - // Duplicate migration kept as a no-op so existing schema is not recreated. + // No-op } /** @@ -17,6 +17,6 @@ public function up(): void */ public function down(): void { - // Intentionally no-op. + // No-op } }; diff --git a/database/migrations/2026_02_14_120500_create_positions_table.php b/database/migrations/2026_02_14_120500_create_positions_table.php index 101480b..a28f139 100644 --- a/database/migrations/2026_02_14_120500_create_positions_table.php +++ b/database/migrations/2026_02_14_120500_create_positions_table.php @@ -8,7 +8,7 @@ */ public function up(): void { - // Duplicate migration kept as a no-op so existing schema is not recreated. + // No-op } /** @@ -16,6 +16,6 @@ public function up(): void */ public function down(): void { - // Intentionally no-op. + // No-op } }; diff --git a/database/migrations/2026_02_14_999999_create_employees_table.php b/database/migrations/2026_02_14_999999_create_employees_table.php index 827521c..d0189de 100644 --- a/database/migrations/2026_02_14_999999_create_employees_table.php +++ b/database/migrations/2026_02_14_999999_create_employees_table.php @@ -15,7 +15,7 @@ public function up() $table->id(); $table->foreignId('user_id')->constrained()->onDelete('cascade'); - // Data Pribadi + $table->string('nip')->unique(); $table->string('name'); $table->enum('gender', ['L', 'P']); @@ -24,11 +24,11 @@ public function up() $table->text('address')->nullable(); $table->string('phone_number')->nullable(); - // Data Pekerjaan + $table->foreignId('department_id')->constrained()->onDelete('restrict'); $table->foreignId('position_id')->constrained()->onDelete('restrict'); - // Status & Tanggal + $table->enum('status', ['PKWT', 'PKWTT', 'Magang']); $table->date('join_date'); diff --git a/database/migrations/2026_04_20_110000_create_attendances_table.php b/database/migrations/2026_04_20_110000_create_attendances_table.php index 8cfba4c..f7e8547 100644 --- a/database/migrations/2026_04_20_110000_create_attendances_table.php +++ b/database/migrations/2026_04_20_110000_create_attendances_table.php @@ -1,30 +1,16 @@ id(); - $table->foreignId('employee_id')->constrained()->onDelete('cascade'); - $table->date('date'); - $table->enum('shift', ['Pagi', 'Siang', 'Malam']); - $table->dateTime('check_in')->nullable(); - $table->dateTime('check_out')->nullable(); - $table->enum('status', ['hadir', 'izin', 'sakit', 'alpha'])->default('hadir'); - $table->string('notes')->nullable(); - $table->timestamps(); - - $table->unique(['employee_id', 'date'], 'attendances_employee_date_unique'); - }); + // No-op } public function down(): void { - Schema::dropIfExists('attendances'); + // No-op } }; diff --git a/database/seeders/EmployeeSeeder.php b/database/seeders/EmployeeSeeder.php index 99a9141..187ae86 100644 --- a/database/seeders/EmployeeSeeder.php +++ b/database/seeders/EmployeeSeeder.php @@ -61,7 +61,8 @@ public function run(): void foreach ($employees as $data) { $user = User::create($data['user']); - Employee::create(array_merge($data['employee'], ['user_id' => $user->id])); + $employee = Employee::create(array_merge($data['employee'], ['user_id' => $user->id])); + $user->update(['employee_id' => $employee->id]); } $this->command->info('EmployeeSeeder: ' . count($employees) . ' karyawan berhasil dibuat.'); diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php index 7b5a49a..5f47dd9 100644 --- a/database/seeders/UserSeeder.php +++ b/database/seeders/UserSeeder.php @@ -6,66 +6,29 @@ use Illuminate\Database\Seeder; use Illuminate\Support\Facades\Hash; +/** + * UserSeeder: Hanya membuat akun-akun Admin. + * Akun Employee dibuat oleh EmployeeSeeder (bersama data karyawan). + */ class UserSeeder extends Seeder { public function run(): void { // Akun Admin Utama User::create([ - 'name' => 'admin', - 'email' => 'admin@gmail.com', + 'name' => 'Admin HRIS', + 'email' => 'admin@hris.com', 'password' => Hash::make('password'), - 'role' => 'admin', + 'role' => 'admin', ]); User::create([ - 'name' => 'Jono Joni', - 'email' => 'jono@gmail.com', + 'name' => 'Siti Nurhaliza', + 'email' => 'siti.admin@hris.com', 'password' => Hash::make('password'), - 'role' => 'employee', - ]); - User::create([ - 'name' => 'Siti Nurhaliza', - 'email' => 'siti.admin@hris.com', - 'password' => Hash::make('password'), - 'role' => 'admin', - ]); - - // --- Akun Karyawan (Employee) --- - User::create([ - 'name' => 'Budi Santoso', - 'email' => 'budi.santoso@hris.com', - 'password' => Hash::make('password'), - 'role' => 'employee', - ]); - - User::create([ - 'name' => 'Dewi Rahayu', - 'email' => 'dewi.rahayu@hris.com', - 'password' => Hash::make('password'), - 'role' => 'employee', - ]); - - User::create([ - 'name' => 'Rizky Firmansyah', - 'email' => 'rizky.firmansyah@hris.com', - 'password' => Hash::make('password'), - 'role' => 'employee', - ]); - - User::create([ - 'name' => 'Anisa Putri', - 'email' => 'anisa.putri@hris.com', - 'password' => Hash::make('password'), - 'role' => 'employee', - ]); - - User::create([ - 'name' => 'Hendra Kurniawan', - 'email' => 'hendra.kurniawan@hris.com', - 'password' => Hash::make('password'), - 'role' => 'employee', + 'role' => 'admin', ]); + $this->command->info('UserSeeder: Akun admin berhasil dibuat.'); } } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 43719e9..51b464c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "HR_Management__App", + "name": "HRIS_App", "lockfileVersion": 3, "requires": true, "packages": { @@ -21,6 +21,7 @@ "@radix-ui/react-toggle-group": "^1.1.2", "@radix-ui/react-tooltip": "^1.1.8", "@tailwindcss/vite": "^4.1.11", + "@types/leaflet": "^1.9.21", "@types/react": "^19.2.0", "@types/react-dom": "^19.2.0", "@vitejs/plugin-react": "^5.0.0", @@ -30,17 +31,21 @@ "globals": "^15.14.0", "input-otp": "^1.4.2", "laravel-vite-plugin": "^2.0", + "leaflet": "^1.9.4", "lucide-react": "^0.475.0", "radix-ui": "^1.4.3", "react": "^19.2.0", "react-dom": "^19.2.0", + "react-leaflet": "^5.0.0", "recharts": "^3.7.0", + "sonner": "^2.0.7", "tailwind-merge": "^3.0.1", "tailwindcss": "^4.0.0", "tw-animate-css": "^1.4.0", "typescript": "^5.7.2", "use-debounce": "^10.1.0", - "vite": "^7.0.4" + "vite": "^7.0.4", + "xlsx": "^0.18.5" }, "devDependencies": { "@eslint/js": "^9.19.0", @@ -94,7 +99,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -4674,6 +4678,17 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, + "node_modules/@react-leaflet/core": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-3.0.0.tgz", + "integrity": "sha512-3EWmekh4Nz+pGcr+xjf0KNyYfC3U2JjnkWsh0zcqaexYqmmB5ZhH37kz41JXGmKzpaMZCnPofBBm64i+YrEvGQ==", + "license": "Hippocratic-2.1", + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + } + }, "node_modules/@react-stately/flags": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz", @@ -5503,6 +5518,12 @@ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "license": "MIT" }, + "node_modules/@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -5517,6 +5538,15 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/leaflet": { + "version": "1.9.21", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.21.tgz", + "integrity": "sha512-TbAd9DaPGSnzp6QvtYngntMZgcRk+igFELwR2N99XZn7RXUdKgsXMR+28bUO0rPsWp8MIu/f47luLIQuSLYv/w==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@types/lodash": { "version": "4.17.23", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.23.tgz", @@ -5538,7 +5568,6 @@ "integrity": "sha512-ebO/Yl+EAvVe8DnMfi+iaAyIqYdK0q/q0y0rw82INWEKJOBe6b/P3YWE8NW7oOlF/nXFNrHwhARrN/hdgDkraA==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -5548,7 +5577,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.10.tgz", "integrity": "sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==", "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -5558,7 +5586,6 @@ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -5614,7 +5641,6 @@ "integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.54.0", "@typescript-eslint/types": "8.54.0", @@ -6134,7 +6160,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6152,6 +6177,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -6471,7 +6505,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -6564,6 +6597,19 @@ ], "license": "CC-BY-4.0" }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -6627,6 +6673,15 @@ "node": ">=6" } }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -6694,6 +6749,18 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "license": "MIT" }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -7284,7 +7351,6 @@ "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -7471,7 +7537,6 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -7822,6 +7887,15 @@ "node": ">= 6" } }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -8803,6 +8877,12 @@ "vite": "^7.0.0" } }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -9583,7 +9663,6 @@ "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -9935,7 +10014,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -9945,7 +10023,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -9957,15 +10034,27 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT", - "peer": true + "license": "MIT" + }, + "node_modules/react-leaflet": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-5.0.0.tgz", + "integrity": "sha512-CWbTpr5vcHw5bt9i4zSlPEVQdTVcML390TjeDG0cK59z1ylexpqC6M1PJFjV8jD7CF+ACBFsLIDs6DRMoLEofw==", + "license": "Hippocratic-2.1", + "dependencies": { + "@react-leaflet/core": "^3.0.0" + }, + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + } }, "node_modules/react-redux": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", "license": "MIT", - "peer": true, "dependencies": { "@types/use-sync-external-store": "^0.0.6", "use-sync-external-store": "^1.4.0" @@ -10096,8 +10185,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/redux-thunk": { "version": "3.1.0", @@ -10513,6 +10601,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sonner": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.7.tgz", + "integrity": "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==", + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -10522,6 +10620,18 @@ "node": ">=0.10.0" } }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "license": "Apache-2.0", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/stable-hash-x": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.2.0.tgz", @@ -10937,7 +11047,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11003,7 +11112,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "napi-postinstall": "^0.3.0" }, @@ -11163,7 +11271,6 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -11360,6 +11467,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -11387,6 +11512,27 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -11448,7 +11594,6 @@ "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package.json b/package.json index 875f65f..84d7c2c 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "@radix-ui/react-toggle-group": "^1.1.2", "@radix-ui/react-tooltip": "^1.1.8", "@tailwindcss/vite": "^4.1.11", + "@types/leaflet": "^1.9.21", "@types/react": "^19.2.0", "@types/react-dom": "^19.2.0", "@vitejs/plugin-react": "^5.0.0", @@ -52,17 +53,21 @@ "globals": "^15.14.0", "input-otp": "^1.4.2", "laravel-vite-plugin": "^2.0", + "leaflet": "^1.9.4", "lucide-react": "^0.475.0", "radix-ui": "^1.4.3", "react": "^19.2.0", "react-dom": "^19.2.0", + "react-leaflet": "^5.0.0", "recharts": "^3.7.0", + "sonner": "^2.0.7", "tailwind-merge": "^3.0.1", "tailwindcss": "^4.0.0", "tw-animate-css": "^1.4.0", "typescript": "^5.7.2", "use-debounce": "^10.1.0", - "vite": "^7.0.4" + "vite": "^7.0.4", + "xlsx": "^0.18.5" }, "optionalDependencies": { "@rollup/rollup-linux-x64-gnu": "4.9.5", diff --git a/public/assets/logo-clear.png b/public/assets/logo-clear.png new file mode 100644 index 0000000000000000000000000000000000000000..68ae32777388389faadfb14f540380f85b1f23ca GIT binary patch literal 182339 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�jWC{h(vj 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≶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

l=y1ihqbHGvZ!Fj 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�*a2Y}>@MQ1&yCS@ z`qdta8$#It-i4}u%}?n6-yF1Ief9FM$!Rl%0U|JBLHRxP7MF)P-&d^&v%d%bFVi@N zge8i1TO|zg{<&`=;w|Cc^)LLA|Nk>Jf-p|mS1y`&3hOR;7>i*mB_CEU|Nnng6#ntN zLxNu?o;?Ls?;Ds5%Gv*2nq0k%+4uhg7F^+& literal 0 HcmV?d00001 diff --git a/public/assets/logo.jpg b/public/assets/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cdc85a23ae792ff4b51e486f331e7cd7a16afb8b GIT binary patch literal 53880 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 + Tidak ada data lokasi + + ); + } + + const posIn: [number, number] | null = hasIn ? [parseFloat(latitudeIn as string), parseFloat(longitudeIn as string)] : null; + const posOut: [number, number] | null = hasOut ? [parseFloat(latitudeOut as string), parseFloat(longitudeOut as string)] : null; + + // Default center ke check in, atau check out + const center = posIn || posOut || [-6.200000, 106.816666]; + + return ( +

+ + + + + + Detail Lokasi Absensi +

+ {employeeName} — {date} +

+
+
+ + + {posIn && ( + + +
📍 Lokasi Clock In
+
+ Lat: {posIn[0]}
+ Lng: {posIn[1]} +
+
+
+ )} + {posOut && ( + + +
📍 Lokasi Clock Out
+
+ Lat: {posOut[0]}
+ Lng: {posOut[1]} +
+
+
+ )} +
+
+
+
+ ); +} diff --git a/resources/js/components/app-sidebar.tsx b/resources/js/components/app-sidebar.tsx index 4f13cc1..14f015a 100644 --- a/resources/js/components/app-sidebar.tsx +++ b/resources/js/components/app-sidebar.tsx @@ -45,7 +45,7 @@ export function AppSidebar() { { title: 'Manajemen Absensi', href: '/admin/attendance', - icon: CalendarCheck2, + icon: CalendarClock, }, { title: 'Manajemen Gaji', diff --git a/resources/js/layouts/app/app-sidebar-layout.tsx b/resources/js/layouts/app/app-sidebar-layout.tsx index a6edb62..15ba427 100644 --- a/resources/js/layouts/app/app-sidebar-layout.tsx +++ b/resources/js/layouts/app/app-sidebar-layout.tsx @@ -3,6 +3,19 @@ import { AppShell } from '@/components/app-shell'; import { AppSidebar } from '@/components/app-sidebar'; import { AppSidebarHeader } from '@/components/app-sidebar-header'; import type { AppLayoutProps } from '@/types'; +import { usePage } from '@inertiajs/react'; +import { useEffect } from 'react'; +import { Toaster, toast } from 'sonner'; + +/** Auto-show Laravel flash messages as Sonner toasts on every page visit */ +function FlashToast() { + const { flash } = usePage<{ flash?: { success?: string; error?: string } }>().props; + useEffect(() => { + if (flash?.success) toast.success(flash.success); + if (flash?.error) toast.error(flash.error); + }, [flash]); + return null; +} export default function AppSidebarLayout({ children, @@ -13,8 +26,10 @@ export default function AppSidebarLayout({ + {children} + ); } diff --git a/resources/js/layouts/employee-layout.tsx b/resources/js/layouts/employee-layout.tsx new file mode 100644 index 0000000..a85eae4 --- /dev/null +++ b/resources/js/layouts/employee-layout.tsx @@ -0,0 +1,81 @@ +import React from 'react'; +import { Toaster } from 'sonner'; +import { Head, Link, usePage } from '@inertiajs/react'; +import { LogOut, Home, CalendarClock, User, Menu } from 'lucide-react'; + +interface EmployeeLayoutProps { + children: React.ReactNode; + title?: string; +} + +export default function EmployeeLayout({ children, title }: EmployeeLayoutProps) { + const user = (usePage().props.auth as any).user; + + return ( +
+ {title && } + + + + +
+ Logo { e.currentTarget.style.display='none'; }} /> +
HRIS Portal
+
+
+ +
+ {children} +
+ + +
+ ); +} diff --git a/resources/js/pages/admin/attendance/create.tsx b/resources/js/pages/admin/attendance/create.tsx index ef0bb73..55eb125 100644 --- a/resources/js/pages/admin/attendance/create.tsx +++ b/resources/js/pages/admin/attendance/create.tsx @@ -26,7 +26,7 @@ interface PageProps { } export default function Create({ employees }: PageProps) { - const { data, setData, post, processing, errors } = useForm({ + const { data, setData, post, processing, errors, transform } = useForm({ employee_id: '', date: '', shift: '', @@ -41,14 +41,14 @@ export default function Create({ employees }: PageProps) { const submit = (e: React.FormEvent) => { e.preventDefault(); - post('/admin/attendance', { - transform: (formData) => ({ - ...formData, - check_in: formData.check_in || null, - check_out: formData.check_out || null, - notes: formData.notes || null, - }), - }); + transform((formData) => ({ + ...formData, + check_in: formData.check_in || null, + check_out: formData.check_out || null, + notes: formData.notes || null, + })); + + post('/admin/attendance'); }; return ( diff --git a/resources/js/pages/admin/attendances/index.tsx b/resources/js/pages/admin/attendances/index.tsx index 8fb442d..65e6234 100644 --- a/resources/js/pages/admin/attendances/index.tsx +++ b/resources/js/pages/admin/attendances/index.tsx @@ -1,9 +1,16 @@ -import { Head, usePage } from '@inertiajs/react'; -import React from 'react'; +import { Head, router } from '@inertiajs/react'; +import React, { useState, useEffect } from 'react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Separator } from '@/components/ui/separator'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import AppLayout from '@/layouts/app-layout'; +import { Search } from 'lucide-react'; +import { useDebounce } from 'use-debounce'; +import * as XLSX from 'xlsx'; +import { AttendanceMapModal } from '@/components/AttendanceMapModal'; interface Attendance { id: number; @@ -15,14 +22,51 @@ interface Attendance { status: 'present' | 'leave' | 'dispensation'; notes: string | null; total_hours: string | null; + latitude_in?: string | null; + longitude_in?: string | null; + latitude_out?: string | null; + longitude_out?: string | null; } interface PageProps { attendances: Attendance[]; + filters: { search?: string; date?: string; status?: string }; [key: string]: unknown; } -export default function Index({ attendances }: PageProps) { +export default function Index({ attendances, filters }: PageProps) { + const [search, setSearch] = useState(filters.search || ''); + const [date, setDate] = useState(filters.date || ''); + const [status, setStatus] = useState(filters.status || 'all'); + const [debouncedSearch] = useDebounce(search, 500); + + useEffect(() => { + if (debouncedSearch !== filters.search || date !== filters.date || (status !== 'all' && status !== filters.status)) { + router.get( + '/admin/attendances', + { search: debouncedSearch, date, status: status === 'all' ? '' : status }, + { preserveState: true, replace: true } + ); + } + }, [debouncedSearch, date, status]); + + const exportExcel = () => { + const rows = attendances.map((a, i) => ({ + No: i + 1, + Nama: a.employee_name, + NIK: a.employee_nik, + Tanggal: a.date, + 'Jam Masuk': a.check_in || '-', + 'Jam Keluar': a.check_out || '-', + Status: a.status === 'present' ? 'Hadir' : a.status === 'leave' ? 'Izin/Cuti' : 'Dispensasi', + 'Total Jam': a.total_hours ? `${a.total_hours} Jam` : '-', + Catatan: a.notes || '-', + })); + const ws = XLSX.utils.json_to_sheet(rows); + const wb = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(wb, ws, 'Absensi'); + XLSX.writeFile(wb, `Data_Absensi_${new Date().toISOString().slice(0, 10)}.xlsx`); + }; const formatStatus = (status: string) => { switch (status) { case 'present': return Hadir; @@ -43,10 +87,50 @@ export default function Index({ attendances }: PageProps) { - + Daftar Absensi + + +
+
+ +
+ + setSearch(e.target.value)} + /> +
+
+
+ + setDate(e.target.value)} + /> +
+
+ + +
+
+ +
+
+
@@ -57,6 +141,7 @@ export default function Index({ attendances }: PageProps) { TanggalJam MasukJam Keluar + Lokasi PetaKeteranganTotal Jam Kerja @@ -70,6 +155,16 @@ export default function Index({ attendances }: PageProps) { {attendance.date}{attendance.check_in || '-'}{attendance.check_out || '-'} + + +
{formatStatus(attendance.status)} @@ -85,7 +180,7 @@ export default function Index({ attendances }: PageProps) { )) ) : ( - + Belum ada data absensi. diff --git a/resources/js/pages/admin/departments/create.tsx b/resources/js/pages/admin/departments/create.tsx index 191af23..c6dea04 100644 --- a/resources/js/pages/admin/departments/create.tsx +++ b/resources/js/pages/admin/departments/create.tsx @@ -68,7 +68,7 @@ export default function Create() { Batal
diff --git a/resources/js/pages/admin/departments/edit.tsx b/resources/js/pages/admin/departments/edit.tsx index db77149..a43157e 100644 --- a/resources/js/pages/admin/departments/edit.tsx +++ b/resources/js/pages/admin/departments/edit.tsx @@ -75,7 +75,7 @@ export default function Edit({ department }: PageProps) { Batal diff --git a/resources/js/pages/admin/departments/index.tsx b/resources/js/pages/admin/departments/index.tsx index ff15689..1395f61 100644 --- a/resources/js/pages/admin/departments/index.tsx +++ b/resources/js/pages/admin/departments/index.tsx @@ -9,8 +9,14 @@ import { TooltipContent, TooltipProvider, TooltipTrigger, -} from "@/components/ui/tooltip"; // Import Tooltip +} from "@/components/ui/tooltip"; +import { Input } from '@/components/ui/input'; import AppLayout from '@/layouts/app-layout'; +import { Search } from 'lucide-react'; +import { useState, useEffect } from 'react'; +import { useDebounce } from 'use-debounce'; +import { router } from '@inertiajs/react'; +import * as XLSX from 'xlsx'; interface Department { id: number; @@ -21,18 +27,36 @@ interface Department { interface PageProps { departments: Department[]; + filters: { search?: string }; [key: string]: unknown; } -interface SharedData { - flash: { - success?: string; - error?: string; - }; -} +export default function Index({ departments, filters }: PageProps) { + const [search, setSearch] = useState(filters.search || ''); + const [debouncedSearch] = useDebounce(search, 500); -export default function Index({ departments }: PageProps) { - const { flash } = usePage().props as SharedData; + useEffect(() => { + if (debouncedSearch !== filters.search) { + router.get( + '/admin/departments', + { search: debouncedSearch }, + { preserveState: true, replace: true } + ); + } + }, [debouncedSearch]); + + const exportExcel = () => { + const rows = departments.map((d, i) => ({ + No: i + 1, + 'Nama Departemen': d.name, + Deskripsi: d.description || '-', + 'Total Karyawan': d.employees_count, + })); + const ws = XLSX.utils.json_to_sheet(rows); + const wb = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(wb, ws, 'Departemen'); + XLSX.writeFile(wb, `Data_Departemen_${new Date().toISOString().slice(0, 10)}.xlsx`); + }; return ( @@ -46,26 +70,30 @@ export default function Index({ departments }: PageProps) {

Kelola struktur organisasi dan unit kerja.

- {/* Flash Messages */} - {flash?.success && ( -
- {flash.success} -
- )} - {flash?.error && ( -
- {flash.error} -
- )} - Daftar Departemen - +
+ + +
+ +
+
+ + setSearch(e.target.value)} + /> +
+
+
diff --git a/resources/js/pages/admin/employees/create.tsx b/resources/js/pages/admin/employees/create.tsx index 541804d..9ed8827 100644 --- a/resources/js/pages/admin/employees/create.tsx +++ b/resources/js/pages/admin/employees/create.tsx @@ -18,8 +18,6 @@ export default function Create({ departments, positions }: PageProps) { const { data, setData, post, processing, errors } = useForm({ name: '', email: '', - password: '', - password_confirmation: '', nip: '', gender: '', birth_date: '', @@ -85,31 +83,13 @@ export default function Create({ departments, positions }: PageProps) { {errors.email &&
{errors.email}
} -
- - setData('password', e.target.value)} - /> - {errors.password &&
{errors.password}
} -
- -
- - setData('password_confirmation', e.target.value)} - /> -
-
setData('phone_number', e.target.value)} /> + {errors.phone_number &&
{errors.phone_number}
}
@@ -122,6 +102,7 @@ export default function Create({ departments, positions }: PageProps) { value={data.place_of_birth} onChange={e => setData('place_of_birth', e.target.value)} /> + {errors.place_of_birth &&
{errors.place_of_birth}
}
@@ -152,6 +133,7 @@ export default function Create({ departments, positions }: PageProps) { value={data.address} onChange={e => setData('address', e.target.value)} /> + {errors.address &&
{errors.address}
}
@@ -244,7 +226,7 @@ export default function Create({ departments, positions }: PageProps) { Batal diff --git a/resources/js/pages/admin/employees/edit.tsx b/resources/js/pages/admin/employees/edit.tsx index 86a1536..e66d635 100644 --- a/resources/js/pages/admin/employees/edit.tsx +++ b/resources/js/pages/admin/employees/edit.tsx @@ -8,7 +8,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@ import { Separator } from '@/components/ui/separator'; import AppLayout from '@/layouts/app-layout'; -// Definisi Tipe Data Employee yang diterima dari Controller + interface Employee { id: number; nip: string; @@ -35,7 +35,7 @@ interface PageProps { } export default function Edit({ employee, departments, positions }: PageProps) { - // Inisialisasi Form dengan Data Lama (Pre-filled) + // Inisialisasi State const { data, setData, put, processing, errors } = useForm({ name: employee.user.name, email: employee.user.email, @@ -109,6 +109,7 @@ export default function Edit({ employee, departments, positions }: PageProps) { value={data.phone_number} onChange={e => setData('phone_number', e.target.value)} /> + {errors.phone_number &&
{errors.phone_number}
} @@ -121,6 +122,7 @@ export default function Edit({ employee, departments, positions }: PageProps) { value={data.place_of_birth} onChange={e => setData('place_of_birth', e.target.value)} /> + {errors.place_of_birth &&
{errors.place_of_birth}
}
@@ -151,6 +153,7 @@ export default function Edit({ employee, departments, positions }: PageProps) { value={data.address} onChange={e => setData('address', e.target.value)} /> + {errors.address &&
{errors.address}
}
@@ -187,6 +190,7 @@ export default function Edit({ employee, departments, positions }: PageProps) { ))} + {errors.department_id &&
{errors.department_id}
} @@ -202,6 +206,7 @@ export default function Edit({ employee, departments, positions }: PageProps) { ))} + {errors.position_id &&
{errors.position_id}
}
@@ -215,6 +220,7 @@ export default function Edit({ employee, departments, positions }: PageProps) { Magang + {errors.status &&
{errors.status}
}
@@ -224,6 +230,7 @@ export default function Edit({ employee, departments, positions }: PageProps) { value={data.join_date} onChange={e => setData('join_date', e.target.value)} /> + {errors.join_date &&
{errors.join_date}
}
@@ -238,7 +245,7 @@ export default function Edit({ employee, departments, positions }: PageProps) { Batal diff --git a/resources/js/pages/admin/employees/index.tsx b/resources/js/pages/admin/employees/index.tsx index 45d79c3..752719f 100644 --- a/resources/js/pages/admin/employees/index.tsx +++ b/resources/js/pages/admin/employees/index.tsx @@ -36,10 +36,7 @@ interface Employee { } interface PageProps { - employees: { - data: Employee[]; - links: any[]; - }; + employees: Employee[]; departments: { id: number; name: string }[]; filters: { search?: string; @@ -48,15 +45,9 @@ interface PageProps { [key: string]: unknown; } -interface SharedData { - flash: { - success?: string; - error?: string; - }; -} +import * as XLSX from 'xlsx'; export default function Index({ employees, departments, filters }: PageProps) { - const { flash } = usePage().props as SharedData; const [search, setSearch] = useState(filters.search || ''); const [departmentId, setDepartmentId] = useState(filters.department_id || 'all'); const [debouncedSearch] = useDebounce(search, 500); @@ -74,6 +65,23 @@ export default function Index({ employees, departments, filters }: PageProps) { } }, [debouncedSearch, departmentId]); + const exportExcel = () => { + const rows = employees.map((p, i) => ({ + No: i + 1, + Nama: p.user?.name || '-', + Email: p.user?.email || '-', + NIP: p.nip, + Departemen: p.department?.name || '-', + Jabatan: p.position?.name || '-', + Status: p.status, + Bergabung: new Date(p.join_date).toLocaleDateString('id-ID'), + })); + const ws = XLSX.utils.json_to_sheet(rows); + const wb = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(wb, ws, 'Data Karyawan'); + XLSX.writeFile(wb, `Data_Karyawan_${new Date().toISOString().slice(0, 10)}.xlsx`); + }; + return ( @@ -85,19 +93,15 @@ export default function Index({ employees, departments, filters }: PageProps) {

Kelola data seluruh karyawan perusahaan.

- {/* Flash Messages */} - {flash?.success && ( -
- {flash.success} -
- )} - Daftar Karyawan - +
+ + +
@@ -142,8 +146,8 @@ export default function Index({ employees, departments, filters }: PageProps) {
- {employees.data.length > 0 ? ( - employees.data.map((employee) => ( + {employees.length > 0 ? ( + employees.map((employee) => (
{employee.user?.name}
diff --git a/resources/js/pages/admin/payrolls/create.tsx b/resources/js/pages/admin/payrolls/create.tsx index 2f1c370..9c43fbf 100644 --- a/resources/js/pages/admin/payrolls/create.tsx +++ b/resources/js/pages/admin/payrolls/create.tsx @@ -15,7 +15,7 @@ import { Separator } from '@/components/ui/separator'; import AppLayout from '@/layouts/app-layout'; import { PlusCircle, Trash2 } from 'lucide-react'; -// ─── Types ─────────────────────────────────────────────────────────────────── + interface Position { id: number; @@ -45,7 +45,7 @@ interface PageProps { employees: Employee[]; } -// ─── Helpers ───────────────────────────────────────────────────────────────── + function formatRupiah(value: number): string { return new Intl.NumberFormat('id-ID', { @@ -55,7 +55,7 @@ function formatRupiah(value: number): string { }).format(value); } -// ─── Component ─────────────────────────────────────────────────────────────── + export default function Create({ employees }: PageProps) { const { data, setData, post, processing, errors } = useForm<{ @@ -72,14 +72,14 @@ export default function Create({ employees }: PageProps) { const [selectedEmployee, setSelectedEmployee] = useState(null); - // Kalkulasi net salary secara real-time di sisi frontend + // Kalkulasi net salary const netSalary = data.details.reduce((acc, item) => { return item.type === 'bonus' ? acc + (item.amount || 0) : acc - (item.amount || 0); }, data.basic_salary); - // Auto-fill basic_salary saat employee dipilih + // Set basic_salary otomatis const handleEmployeeChange = (value: string) => { const emp = employees.find((e) => String(e.id) === value) ?? null; setSelectedEmployee(emp); @@ -90,7 +90,7 @@ export default function Create({ employees }: PageProps) { })); }; - // Tambah baris komponen (bonus/potongan) + // Tambah baris const addDetail = () => { setData('details', [ ...data.details, @@ -98,7 +98,7 @@ export default function Create({ employees }: PageProps) { ]); }; - // Update baris komponen pada index tertentu + // Update baris const updateDetail = (index: number, field: keyof DetailItem, value: string | number) => { const updated = [...data.details]; // @ts-expect-error – dynamic field assignment @@ -106,7 +106,7 @@ export default function Create({ employees }: PageProps) { setData('details', updated); }; - // Hapus baris komponen + // Hapus baris const removeDetail = (index: number) => { setData('details', data.details.filter((_, i) => i !== index)); }; @@ -278,56 +278,69 @@ export default function Create({ employees }: PageProps) { {data.details.map((item, index) => ( -
- {/* Nama Komponen */} - - updateDetail(index, 'name', e.target.value) - } - /> - - {/* Tipe */} - + {/* Nama Komponen */} + + updateDetail(index, 'name', e.target.value) + } + /> - {/* Nominal */} - - updateDetail(index, 'amount', e.target.value) - } - /> + {/* Tipe */} + - {/* Hapus */} - + {/* Nominal */} + + updateDetail(index, 'amount', e.target.value) + } + /> + + {/* Hapus */} + +
+ {/* Error per baris detail */} +
+ {errors[`details.${index}.name`] && ( +

{errors[`details.${index}.name`]}

+ )} + {errors[`details.${index}.type`] && ( +

{errors[`details.${index}.type`]}

+ )} + {errors[`details.${index}.amount`] && ( +

{errors[`details.${index}.amount`]}

+ )} +
))} diff --git a/resources/js/pages/admin/payrolls/edit.tsx b/resources/js/pages/admin/payrolls/edit.tsx new file mode 100644 index 0000000..bf91025 --- /dev/null +++ b/resources/js/pages/admin/payrolls/edit.tsx @@ -0,0 +1,273 @@ +import { Head, useForm, Link } from '@inertiajs/react'; +import React from 'react'; +import { Button } from '@/components/ui/button'; +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; +import { Separator } from '@/components/ui/separator'; +import AppLayout from '@/layouts/app-layout'; +import { PlusCircle, Trash2 } from 'lucide-react'; + + + +interface DetailItem { + name: string; + type: 'bonus' | 'deduction'; + amount: number; +} + +interface PayrollData { + id: number; + period: string; + basic_salary: number; + details: DetailItem[]; + net_salary: number; + status: 'pending' | 'paid'; + employee: { + id: number; + name: string; + nip: string; + position: string; + department: string; + }; +} + +interface PageProps { + payroll: PayrollData; +} + + + +function formatRupiah(value: number): string { + return new Intl.NumberFormat('id-ID', { + style: 'currency', + currency: 'IDR', + minimumFractionDigits: 0, + }).format(value); +} + +function formatPeriod(period: string): string { + const [year, month] = period.split('-'); + return new Date(Number(year), Number(month) - 1, 1) + .toLocaleDateString('id-ID', { month: 'long', year: 'numeric' }); +} + + + +export default function Edit({ payroll }: PageProps) { + const { data, setData, put, processing, errors } = useForm<{ + basic_salary: number; + details: DetailItem[]; + }>({ + basic_salary: payroll.basic_salary, + details: payroll.details, + }); + + // Hitung net salary + const netSalary = data.details.reduce((acc, item) => { + return item.type === 'bonus' + ? acc + (item.amount || 0) + : acc - (item.amount || 0); + }, data.basic_salary); + + const addDetail = () => { + setData('details', [...data.details, { name: '', type: 'bonus', amount: 0 }]); + }; + + const updateDetail = (index: number, field: keyof DetailItem, value: string | number) => { + const updated = [...data.details]; + // @ts-expect-error – dynamic field assignment + updated[index][field] = field === 'amount' ? Number(value) : value; + setData('details', updated); + }; + + const removeDetail = (index: number) => { + setData('details', data.details.filter((_, i) => i !== index)); + }; + + const submit = (e: React.FormEvent) => { + e.preventDefault(); + put(`/admin/payrolls/${payroll.id}`); + }; + + return ( + + + +
+ + + + + Edit Payroll +

+ Revisi komponen gaji untuk periode ini. Karyawan dan periode tidak dapat diubah. +

+
+ + + + + {/* Info Payroll (read-only) */} +
+
+

Karyawan

+

{payroll.employee.name}

+
+
+

NIP

+

{payroll.employee.nip}

+
+
+

Jabatan

+

{payroll.employee.position ?? '-'}

+
+
+

Periode

+

{formatPeriod(payroll.period)}

+
+
+ +
+ + {/* ── Gaji Pokok ── */} +
+

+ 1 + Gaji Pokok +

+
+ + setData('basic_salary', Number(e.target.value))} + className="font-medium" + /> + {errors.basic_salary && ( +

{errors.basic_salary}

+ )} +
+
+ + + + {/* ── Komponen Bonus / Potongan ── */} +
+
+

+ 2 + Komponen Gaji +

+ +
+ + {data.details.length === 0 ? ( +

+ Belum ada komponen. Klik "Tambah Komponen" untuk menambah bonus atau potongan. +

+ ) : ( +
+
+ Nama Komponen + Tipe + Nominal (Rp) + +
+ {data.details.map((item, index) => ( +
+
+ updateDetail(index, 'name', e.target.value)} + /> + + updateDetail(index, 'amount', e.target.value)} + /> + +
+
+ {errors[`details.${index}.name` as keyof typeof errors] && ( +

{errors[`details.${index}.name` as keyof typeof errors]}

+ )} +
+
+ ))} +
+ )} +
+ + + + {/* ── Ringkasan Gaji Bersih ── */} +
+
+
+

Total Gaji Bersih (Estimasi)

+

Gaji Pokok + Bonus − Potongan

+
+

+ {formatRupiah(Math.max(0, netSalary))} +

+
+
+ + {/* ── Tombol Aksi ── */} +
+ + +
+ + +
+
+
+
+ ); +} diff --git a/resources/js/pages/admin/payrolls/index.tsx b/resources/js/pages/admin/payrolls/index.tsx index 5882678..8ec4e99 100644 --- a/resources/js/pages/admin/payrolls/index.tsx +++ b/resources/js/pages/admin/payrolls/index.tsx @@ -1,7 +1,15 @@ -import { Head, Link } from '@inertiajs/react'; +import { Head, Link, router, usePage } from '@inertiajs/react'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; +import { Input } from '@/components/ui/input'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; import { Table, TableBody, @@ -11,7 +19,11 @@ import { TableRow, } from '@/components/ui/table'; import AppLayout from '@/layouts/app-layout'; -import { PlusCircle, FileText } from 'lucide-react'; +import { PlusCircle, FileText, Search, CheckCircle2, Clock, Pencil, Download } from 'lucide-react'; +import { useState } from 'react'; +import * as XLSX from 'xlsx'; + + interface Payroll { id: number; @@ -24,8 +36,12 @@ interface Payroll { interface PageProps { payrolls: Payroll[]; + filters: { search?: string; period?: string; status?: string }; + [key: string]: unknown; } + + function formatRupiah(value: number): string { return new Intl.NumberFormat('id-ID', { style: 'currency', @@ -42,41 +58,137 @@ function formatPeriod(period: string): string { function StatusBadge({ status }: { status: 'pending' | 'paid' }) { return status === 'paid' ? ( - Paid + + + Telah Dikirim + ) : ( - Pending + + + Menunggu + ); } -export default function Index({ payrolls }: PageProps) { + + +export default function Index({ payrolls, filters }: PageProps) { + const [search, setSearch] = useState(filters.search ?? ''); + const [period, setPeriod] = useState(filters.period ?? ''); + const [status, setStatus] = useState(filters.status ?? ''); + const [processingId, setProcessingId] = useState(null); + + const applyFilter = () => { + router.get('/admin/payrolls', { search, period, status }, { preserveScroll: true }); + }; + + const resetFilter = () => { + setSearch(''); setPeriod(''); setStatus(''); + router.get('/admin/payrolls', {}, { preserveScroll: true }); + }; + + const toggleStatus = (payroll: Payroll) => { + const newStatus = payroll.status === 'paid' ? 'pending' : 'paid'; + setProcessingId(payroll.id); + router.patch( + `/admin/payrolls/${payroll.id}/status`, + { status: newStatus }, + { preserveScroll: true, onFinish: () => setProcessingId(null) }, + ); + }; + + const exportExcel = () => { + const rows = payrolls.map((p, i) => ({ + No: i + 1, + Karyawan: p.employee_name, + NIP: p.employee_nip, + Periode: formatPeriod(p.period), + 'Gaji Bersih': p.net_salary, + Status: p.status === 'paid' ? 'Telah Dikirim' : 'Menunggu', + })); + const ws = XLSX.utils.json_to_sheet(rows); + const wb = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(wb, ws, 'Payroll'); + XLSX.writeFile(wb, `payroll_${new Date().toISOString().slice(0, 10)}.xlsx`); + }; + return (
-
-

Manajemen Payroll

-

Daftar seluruh payroll yang telah di-generate.

-
- - - - Daftar Slip Gaji +
+
+

Manajemen Payroll

+

Daftar seluruh payroll yang telah di-generate.

+
+
+ +
+
+ + {/* Filter */} + + +
+
+ +
+ + setSearch(e.target.value)} + onKeyDown={e => e.key === 'Enter' && applyFilter()} + /> +
+
+
+ + setPeriod(e.target.value)} + /> +
+
+ + +
+ + +
+
+
+ + {/* Tabel */} + + + Daftar Slip Gaji {payrolls.length === 0 ? (
-

- Belum ada data payroll. -

+

Belum ada data payroll.

@@ -96,28 +208,39 @@ export default function Index({ payrolls }: PageProps) { {payrolls.map((payroll, index) => ( - - {index + 1} - + {index + 1}
{payroll.employee_name}
-
- NIP: {payroll.employee_nip} -
+
NIP: {payroll.employee_nip}
{formatPeriod(payroll.period)} {formatRupiah(payroll.net_salary)} - + - +
+ + +
))} diff --git a/resources/js/pages/admin/payrolls/show.tsx b/resources/js/pages/admin/payrolls/show.tsx index ad174c2..5f388d2 100644 --- a/resources/js/pages/admin/payrolls/show.tsx +++ b/resources/js/pages/admin/payrolls/show.tsx @@ -1,12 +1,13 @@ -import { Head, Link } from '@inertiajs/react'; +import { Head, Link, router } from '@inertiajs/react'; +import { useState } from 'react'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { Card, CardContent } from '@/components/ui/card'; import { Separator } from '@/components/ui/separator'; import AppLayout from '@/layouts/app-layout'; -import { Printer, Building2, CalendarDays, Hash } from 'lucide-react'; +import { Printer, Building2, CalendarDays, Hash, Pencil, CheckCircle2, Clock } from 'lucide-react'; + -// ─── Types ─────────────────────────────────────────────────────────────────── interface DetailItem { name: string; @@ -34,7 +35,7 @@ interface PageProps { payroll: PayrollData; } -// ─── Helpers ───────────────────────────────────────────────────────────────── + function formatRupiah(value: number): string { return new Intl.NumberFormat('id-ID', { @@ -50,7 +51,7 @@ function formatPeriod(period: string): string { return date.toLocaleDateString('id-ID', { month: 'long', year: 'numeric' }); } -// ─── Sub-components ─────────────────────────────────────────────────────────── + function InfoCell({ label, value }: { label: string; value: string }) { return ( @@ -90,23 +91,36 @@ function LineItem({ function StatusBadge({ status }: { status: 'pending' | 'paid' }) { return status === 'paid' ? ( - - Lunas + + + Telah Dikirim ) : ( - - Belum Dibayar + + + Menunggu ); } -// ─── Main Component ─────────────────────────────────────────────────────────── + export default function Show({ payroll }: PageProps) { const bonuses = payroll.details.filter((d) => d.type === 'bonus'); const deductions = payroll.details.filter((d) => d.type === 'deduction'); const totalBonus = bonuses.reduce((s, d) => s + d.amount, 0); const totalDeduction = deductions.reduce((s, d) => s + d.amount, 0); + const [toggling, setToggling] = useState(false); + + const toggleStatus = () => { + const newStatus = payroll.status === 'paid' ? 'pending' : 'paid'; + setToggling(true); + router.patch( + `/admin/payrolls/${payroll.id}/status`, + { status: newStatus }, + { onFinish: () => setToggling(false) }, + ); + }; return ( @@ -115,19 +129,45 @@ export default function Show({ payroll }: PageProps) {
{/* Toolbar — tersembunyi saat print */} -
+
- +
+ {payroll.status !== 'paid' && ( + <> + + + + )} + +
{/* ── Slip Card ── */} diff --git a/resources/js/pages/admin/positions/create.tsx b/resources/js/pages/admin/positions/create.tsx index 72cb184..c552483 100644 --- a/resources/js/pages/admin/positions/create.tsx +++ b/resources/js/pages/admin/positions/create.tsx @@ -78,7 +78,7 @@ export default function Create() {
- {/* Flash Messages */} - {flash?.success && ( -
- {flash.success} -
- )} - {flash?.error && ( -
- {flash.error} -
- )} - Daftar Jabatan - +
+ + +
+ +
+
+ + setSearch(e.target.value)} + /> +
+
+
diff --git a/resources/js/pages/admin/users/create.tsx b/resources/js/pages/admin/users/create.tsx index 179db02..32edd60 100644 --- a/resources/js/pages/admin/users/create.tsx +++ b/resources/js/pages/admin/users/create.tsx @@ -14,7 +14,7 @@ import { import { Separator } from '@/components/ui/separator'; import AppLayout from '@/layouts/app-layout'; -// ─── Types ─────────────────────────────────────────────────────────────────── + interface Employee { id: number; @@ -27,14 +27,12 @@ interface PageProps { employees: Employee[]; } -// ─── Component ─────────────────────────────────────────────────────────────── + export default function Create({ employees }: PageProps) { const { data, setData, post, processing, errors } = useForm({ employee_id: '', email: '', - password: '', - password_confirmation: '', role: '', }); @@ -125,31 +123,6 @@ export default function Create({ employees }: PageProps) { )} -
- - setData('password', e.target.value)} - /> - {errors.password && ( -

{errors.password}

- )} -
- -
- - setData('password_confirmation', e.target.value)} - /> -
{/* Role */}
@@ -170,6 +143,11 @@ export default function Create({ employees }: PageProps) { )}
+ {/* Helper text password default */} +

+ *password default user adalah 'password' +

+
diff --git a/resources/js/pages/admin/users/index.tsx b/resources/js/pages/admin/users/index.tsx index d2f8692..ffee8c9 100644 --- a/resources/js/pages/admin/users/index.tsx +++ b/resources/js/pages/admin/users/index.tsx @@ -4,9 +4,14 @@ import React, { useState } from 'react'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; +import { Input } from '@/components/ui/input'; import { Separator } from '@/components/ui/separator'; import AppLayout from '@/layouts/app-layout'; import { type BreadcrumbItem } from '@/types'; +import { Search } from 'lucide-react'; +import { useEffect } from 'react'; +import { useDebounce } from 'use-debounce'; +import * as XLSX from 'xlsx'; interface User { id: number; @@ -18,6 +23,7 @@ interface User { interface PageProps { users: User[]; + filters: { search?: string; role?: string }; [key: string]: unknown; } @@ -25,10 +31,35 @@ const breadcrumbs: BreadcrumbItem[] = [ { title: 'Manajemen Pengguna', href: '/admin/users' }, ]; -export default function Index({ users }: PageProps) { - const { flash } = usePage().props; +export default function Index({ users, filters }: PageProps) { + const [search, setSearch] = useState(filters.search || ''); + const [roleFilter, setRoleFilter] = useState(filters.role || 'all'); + const [debouncedSearch] = useDebounce(search, 500); const [processingId, setProcessingId] = useState(null); + useEffect(() => { + if (debouncedSearch !== filters.search || (roleFilter !== 'all' && roleFilter !== filters.role)) { + router.get( + '/admin/users', + { search: debouncedSearch, role: roleFilter === 'all' ? '' : roleFilter }, + { preserveState: true, replace: true } + ); + } + }, [debouncedSearch, roleFilter]); + + const exportExcel = () => { + const rows = users.map((u, i) => ({ + No: i + 1, + Nama: u.name, + Email: u.email, + Role: u.role.toUpperCase(), + })); + const ws = XLSX.utils.json_to_sheet(rows); + const wb = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(wb, ws, 'Pengguna'); + XLSX.writeFile(wb, `Data_Pengguna_${new Date().toISOString().slice(0, 10)}.xlsx`); + }; + const updateRole = (id: number, role: string) => { setProcessingId(id); router.patch( @@ -53,27 +84,42 @@ export default function Index({ users }: PageProps) {

Kelola akun dan hak akses pengguna sistem.

- {/* Flash Messages */} - {flash?.success && ( -
- {flash.success} -
- )} - {flash?.error && ( -
- {flash.error} -
- )} - - {/* Tabel */} Daftar Pengguna - +
+ + +
+ +
+
+
+ + setSearch(e.target.value)} + /> +
+
+
+ +
+
+
diff --git a/resources/js/pages/auth/login.tsx b/resources/js/pages/auth/login.tsx index f51d48c..111db38 100644 --- a/resources/js/pages/auth/login.tsx +++ b/resources/js/pages/auth/login.tsx @@ -36,25 +36,11 @@ export default function Login({ status, canResetPassword }: Props) { {/* Logo / Nama Aplikasi */}
-
- - - - - - +
+ Logo
-

HRIS App

-

Masuk ke panel manajemen

+

HRIS APP

+

PT. ZHANHUI JAYA INDONESIA

{/* Card Login */} diff --git a/resources/js/pages/dashboard.tsx b/resources/js/pages/dashboard.tsx index f631727..3aae650 100644 --- a/resources/js/pages/dashboard.tsx +++ b/resources/js/pages/dashboard.tsx @@ -1,7 +1,7 @@ import { Head, Link } from '@inertiajs/react'; import AppLayout from '@/layouts/app-layout'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; -import { Users, Building2, Briefcase, UserPlus } from 'lucide-react'; +import { Users, Building2, Briefcase, UserPlus, Banknote } from 'lucide-react'; import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip as RechartsTooltip, ResponsiveContainer, PieChart, Pie, Cell, Legend @@ -12,13 +12,35 @@ interface DashboardProps { total_employees: number; total_departments: number; total_positions: number; + payroll_realisasi: number; }; - genderData: any[]; - deptData: any[]; - latestEmployees: any[]; + genderData: { name: string; value: number; fill: string }[]; + deptData: { name: string; employees: number }[]; + latestEmployees: { + id: number; + join_date: string; + user: { name: string }; + position: { name: string }; + department: { name: string }; + }[]; + currentPeriod: string; } -export default function Dashboard({ stats, genderData, deptData, latestEmployees }: DashboardProps) { +function formatRupiah(value: number): string { + return new Intl.NumberFormat('id-ID', { + style: 'currency', + currency: 'IDR', + minimumFractionDigits: 0, + }).format(value); +} + +function formatPeriod(period: string): string { + const [year, month] = period.split('-'); + return new Date(Number(year), Number(month) - 1, 1) + .toLocaleDateString('id-ID', { month: 'long', year: 'numeric' }); +} + +export default function Dashboard({ stats, genderData, deptData, latestEmployees, currentPeriod }: DashboardProps) { return ( @@ -26,7 +48,7 @@ export default function Dashboard({ stats, genderData, deptData, latestEmployees
{/* CARD STATISTIK */} -
+
Total Karyawan @@ -57,6 +79,23 @@ export default function Dashboard({ stats, genderData, deptData, latestEmployees

Posisi pekerjaan

+ {/* Card Realisasi Gaji */} + + + + Realisasi Gaji Bulan Ini + + + + +
+ {formatRupiah(stats.payroll_realisasi)} +
+

+ Status "Telah Dikirim" · {formatPeriod(currentPeriod)} +

+
+
@@ -137,14 +176,16 @@ export default function Dashboard({ stats, genderData, deptData, latestEmployees
- {latestEmployees.map((emp) => ( + {latestEmployees.length === 0 ? ( +

Belum ada data karyawan.

+ ) : latestEmployees.map((emp) => (
-

{emp.user.name}

-

{emp.position.name} • {emp.department.name}

+

{emp.user?.name ?? '-'}

+

{emp.position?.name ?? '-'} • {emp.department?.name ?? '-'}

{new Date(emp.join_date).toLocaleDateString('id-ID', { day: 'numeric', month: 'short', year: 'numeric' })} diff --git a/resources/js/pages/employee/attendances/index.tsx b/resources/js/pages/employee/attendances/index.tsx index 19b0238..ba11adf 100644 --- a/resources/js/pages/employee/attendances/index.tsx +++ b/resources/js/pages/employee/attendances/index.tsx @@ -3,13 +3,14 @@ import React, { useState, useEffect } from 'react'; import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; -import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Textarea } from '@/components/ui/textarea'; -import AppLayout from '@/layouts/app-layout'; +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; +import EmployeeLayout from '@/layouts/employee-layout'; +import { AttendanceMapModal } from '@/components/AttendanceMapModal'; +import { MapPin, AlertCircle, RefreshCw, CheckCircle2, LogOut } from 'lucide-react'; -// Define expected prop types interface Attendance { id: number; date: string; @@ -17,6 +18,10 @@ interface Attendance { check_out: string | null; status: 'present' | 'leave' | 'dispensation'; notes: string | null; + latitude_in?: string | null; + longitude_in?: string | null; + latitude_out?: string | null; + longitude_out?: string | null; } interface PageProps { @@ -25,56 +30,31 @@ interface PageProps { [key: string]: unknown; } -interface SharedData { - flash: { - success?: string; - error?: string; - }; -} - -export default function Index({ attendances, todayAttendance }: PageProps) { - const { flash } = usePage().props as SharedData; +export default function AttendanceIndex({ attendances, todayAttendance }: PageProps) { + const { flash } = usePage().props; const [locationError, setLocationError] = useState(null); const [coordinates, setCoordinates] = useState<{ lat: number; lng: number } | null>(null); - const [isLoadingLocation, setIsLoadingLocation] = useState(false); + const [isLoadingLocation, setIsLoadingLocation] = useState(true); - const { - data: regulerData, - setData: setRegulerData, - post: postReguler, - processing: processingReguler - } = useForm({ + const { data: regulerData, setData: setRegulerData, post: postReguler, processing: processingReguler } = useForm({ latitude_in: '', longitude_in: '', latitude_out: '', longitude_out: '', }); - const { - data: leaveData, - setData: setLeaveData, - post: postLeave, - processing: processingLeave, - reset: resetLeave - } = useForm({ + const { data: leaveData, setData: setLeaveData, post: postLeave, processing: processingLeave, reset: resetLeave, errors: leaveErrors } = useForm({ date: '', notes: '', }); - const { - data: dispenData, - setData: setDispenData, - post: postDispen, - processing: processingDispen, - reset: resetDispen - } = useForm({ + const { data: dispenData, setData: setDispenData, post: postDispen, processing: processingDispen, reset: resetDispen, errors: dispenErrors } = useForm({ latitude_in: '', longitude_in: '', notes: '', }); - // Mendapatkan lokasi saat komponen dimuat atau tombol ditekan - const getLocation = (callback?: (lat: number, lng: number) => void) => { + const getLocation = () => { setIsLoadingLocation(true); setLocationError(null); @@ -102,11 +82,10 @@ export default function Index({ attendances, todayAttendance }: PageProps) { longitude_in: lng.toString(), }); setIsLoadingLocation(false); - if (callback) callback(lat, lng); }, (error) => { let errorMsg = 'Gagal mengambil lokasi.'; - if (error.code === 1) errorMsg = 'Izin lokasi ditolak. Harap izinkan akses lokasi.'; + if (error.code === 1) errorMsg = 'Izin lokasi ditolak. Harap izinkan akses lokasi di pengaturan browser/perangkat Anda.'; setLocationError(errorMsg); setIsLoadingLocation(false); }, @@ -120,24 +99,12 @@ export default function Index({ attendances, todayAttendance }: PageProps) { const handleClockIn = (e: React.FormEvent) => { e.preventDefault(); - if (!coordinates) { - getLocation((lat, lng) => { - postReguler('/employee/attendances/clock-in'); - }); - } else { - postReguler('/employee/attendances/clock-in'); - } + postReguler('/employee/attendances/clock-in'); }; const handleClockOut = (e: React.FormEvent) => { e.preventDefault(); - if (!coordinates) { - getLocation((lat, lng) => { - postReguler('/employee/attendances/clock-out'); - }); - } else { - postReguler('/employee/attendances/clock-out'); - } + postReguler('/employee/attendances/clock-out'); }; const handleLeaveSubmit = (e: React.FormEvent) => { @@ -149,17 +116,9 @@ export default function Index({ attendances, todayAttendance }: PageProps) { const handleDispenSubmit = (e: React.FormEvent) => { e.preventDefault(); - if (!coordinates) { - getLocation((lat, lng) => { - postDispen('/employee/attendances/dispensation', { - onSuccess: () => resetDispen() - }); - }); - } else { - postDispen('/employee/attendances/dispensation', { - onSuccess: () => resetDispen() - }); - } + postDispen('/employee/attendances/dispensation', { + onSuccess: () => resetDispen() + }); }; const formatStatus = (status: string) => { @@ -171,208 +130,215 @@ export default function Index({ attendances, todayAttendance }: PageProps) { } }; + const isClockInDisabled = processingReguler || isLoadingLocation || !coordinates || Boolean(todayAttendance?.check_in); + const isClockOutDisabled = processingReguler || isLoadingLocation || !coordinates || !todayAttendance || Boolean(todayAttendance?.check_out); + return ( - - - -
+ +
+
+
+

Portal Absensi

+

Lakukan absen masuk, pulang, atau ajukan izin.

+
+
+
+ +
- {/* Header Section */} -
-

Portal Absensi

-

Lakukan absen masuk/pulang, atau ajukan izin dan dispensasi.

+
+ {isLoadingLocation ? ( + + ) : locationError ? ( + + ) : ( + + )} +
+
+

+ {isLoadingLocation ? 'Mencari lokasi Anda...' : + locationError ? 'Gagal Akses Lokasi' : + 'Lokasi Ditemukan'} +

+

+ {isLoadingLocation ? 'Harap tunggu, pastikan GPS aktif.' : + locationError ? locationError : + `Koordinat: ${coordinates?.lat.toFixed(6)}, ${coordinates?.lng.toFixed(6)}`} +

+
+ {locationError && ( + + )} +
- {/* Flash Messages */} - {flash?.success && ( -
- {flash.success} -
- )} - {flash?.error && ( -
- {flash.error} -
- )} - {locationError && ( -
- {locationError} -
- )} +
+
+ + + + + Harian + Izin + Dispen + -
- {/* Left Column: Forms */} -
- - - Harian - Izin - Dispen - - - {/* Tab Absen Reguler */} - - - - Absen Reguler - - {todayAttendance - ? 'Anda sudah memiliki catatan absensi hari ini.' - : 'Sistem membutuhkan akses lokasi untuk mencatat absensi.'} - - - -
-

Lokasi Saat Ini:

-

- {isLoadingLocation ? 'Mengambil lokasi...' : (coordinates ? `${coordinates.lat.toFixed(6)}, ${coordinates.lng.toFixed(6)}` : 'Lokasi tidak tersedia')} + +

+

Absen Harian

+

+ {todayAttendance + ? 'Anda sudah memiliki catatan absensi hari ini.' + : 'Sistem membutuhkan akses lokasi.'}

- -
+
- - - + - {/* Tab Izin */} - - - - Form Izin / Cuti - Ajukan izin tidak masuk kerja. - - +
- + setLeaveData('date', e.target.value)} + className="h-11" /> + {leaveErrors.date &&

{leaveErrors.date}

}
- +