NIM_E31222351/app/Http/Controllers/GajiController.php

84 lines
2.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\GajiModel; // Import model
use Illuminate\Http\Request;
use Carbon\Carbon;
class GajiController extends Controller
{
public function index()
{
// Ambil data dari tabel karyawans
$gajiKaryawan = GajiModel::whereNotNull('gaji')
->where('gaji', '>', 0)
->select('id', 'nama', 'tanggal_lahir', 'jabatan', 'gaji', 'created_at')
->get()
->map(function ($karyawan) {
// Hitung usia dari timestamp
$usia = Carbon::createFromTimestamp($karyawan->tanggal_lahir)->age;
$karyawan->usia = $usia;
return $karyawan;
});
return view('Gaji', compact('gajiKaryawan'));
}
// Tambahkan method untuk API
public function show($id)
{
$karyawan = GajiModel::findOrFail($id);
// Hitung usia untuk response
$karyawan->usia = Carbon::createFromTimestamp($karyawan->tanggal_lahir)->age;
return response()->json($karyawan);
}
public function edit($id)
{
$karyawan = GajiModel::findOrFail($id);
// Konversi timestamp ke format date untuk form
$karyawan->tanggal_lahir = Carbon::createFromTimestamp($karyawan->tanggal_lahir)->format('Y-m-d');
return view('GajiEdit', compact('karyawan'));
}
public function update(Request $request, $id)
{
try {
$karyawan = GajiModel::findOrFail($id);
// Konversi tanggal lahir ke timestamp
$tanggalLahir = Carbon::parse($request->tanggal_lahir)->timestamp;
// Bersihkan format angka dari gaji
$request->merge([
'gaji' => str_replace('.', '', $request->gaji),
'tanggal_lahir' => $tanggalLahir
]);
$karyawan->update($request->all());
return redirect()->route('gaji.index')
->with('success', 'Data gaji berhasil diperbarui!');
} catch (\Exception $e) {
return redirect()->back()
->with('error', 'Gagal memperbarui data gaji: ' . $e->getMessage());
}
}
public function destroy($id)
{
try {
$karyawan = GajiModel::findOrFail($id);
$karyawan->delete();
return response()->json([
'success' => true,
'message' => 'Data gaji berhasil dihapus!'
]);
} catch (\Exception $e) {
return response()->json([
'success' => false,
'message' => 'Gagal menghapus data gaji: ' . $e->getMessage()
]);
}
}
}