143 lines
5.3 KiB
PHP
143 lines
5.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Pelaporan;
|
|
use App\Models\PeriodePelaporan;
|
|
use App\Models\Perusahaan;
|
|
use Exception;
|
|
use Illuminate\Database\QueryException;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Log;
|
|
use Inertia\Inertia;
|
|
|
|
class PelaporanALController extends Controller
|
|
{
|
|
|
|
public function index(){
|
|
try {
|
|
// Mendapatkan data perusahaan dan periode pelaporan
|
|
$companies = Perusahaan::all();
|
|
$periodes = PeriodePelaporan::all();
|
|
|
|
// Mendapatkan pelaporan dengan relasi perusahaan dan periode
|
|
$pelaporan = Pelaporan::with(['Perusahaan', 'PeriodePelaporan'])->get();
|
|
|
|
return Inertia::render('admin/pelaporan/AL/index_AL', [
|
|
'companies' => $companies,
|
|
'periodes' => $periodes,
|
|
'pelaporan' => $pelaporan,
|
|
]);
|
|
} catch (QueryException $e) {
|
|
Log::error('Error fetching data for PelaporanALController index: ' . $e->getMessage());
|
|
return back()->with('error', 'Terjadi kesalahan saat mengambil data laporan.');
|
|
} catch (Exception $e) {
|
|
Log::error('Unexpected error in PelaporanALController index: ' . $e->getMessage());
|
|
return back()->with('error', 'Terjadi kesalahan tak terduga.');
|
|
}
|
|
}
|
|
|
|
// public function indexIpal()
|
|
// {
|
|
// try {
|
|
// return Inertia::render('admin/pelaporan/AL/index_AL_IPAL');
|
|
// } catch (\Exception $e) {
|
|
// Log::error('Error rendering view: ' . $e->getMessage());
|
|
// return back()->with('error', 'Something went wrong.');
|
|
// }
|
|
// }
|
|
|
|
public function indexIpal(){
|
|
try {
|
|
// Data IPAL
|
|
$ipals = Pelaporan::all();
|
|
|
|
return Inertia::render('admin/pelaporan/AL/index_AL_IPAL', [
|
|
'ipals' => $ipals,
|
|
]);
|
|
} catch (QueryException $e) {
|
|
Log::error('Error fetching data for IPAL in PelaporanALController indexIpal: ' . $e->getMessage());
|
|
return back()->with('error', 'Terjadi kesalahan saat mengambil data IPAL.');
|
|
} catch (Exception $e) {
|
|
Log::error('Unexpected error in PelaporanALController indexIpal: ' . $e->getMessage());
|
|
return back()->with('error', 'Terjadi kesalahan tak terduga.');
|
|
}
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
try {
|
|
// Validasi input
|
|
$request->validate([
|
|
'company_id' => 'required|exists:perusahaan,id',
|
|
'period_id' => 'required|exists:periode_pelaporan,id',
|
|
'tahun' => 'required|integer',
|
|
]);
|
|
|
|
// Membuat pelaporan baru
|
|
Pelaporan::create([
|
|
'PerusahaanId' => $request->company_id,
|
|
'PeriodePelaporanId' => $request->period_id,
|
|
'Tahun' => $request->tahun,
|
|
]);
|
|
|
|
return redirect()->route('pelaporan.index')->with('success', 'Pelaporan berhasil ditambahkan.');
|
|
} catch (QueryException $e) {
|
|
Log::error('Error while storing Pelaporan: ' . $e->getMessage());
|
|
return back()->with('error', 'Terjadi kesalahan saat menambahkan pelaporan.');
|
|
} catch (Exception $e) {
|
|
Log::error('Unexpected error while storing Pelaporan: ' . $e->getMessage());
|
|
return back()->with('error', 'Terjadi kesalahan tak terduga.');
|
|
}
|
|
}
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
try {
|
|
// Validasi input
|
|
$request->validate([
|
|
'company_id' => 'required|exists:perusahaan,id',
|
|
'period_id' => 'required|exists:periode_pelaporan,id',
|
|
'tahun' => 'required|integer',
|
|
]);
|
|
|
|
// Menemukan pelaporan berdasarkan ID
|
|
$pelaporan = Pelaporan::findOrFail($id);
|
|
|
|
// Mengupdate data pelaporan
|
|
$pelaporan->update([
|
|
'PerusahaanId' => $request->company_id,
|
|
'PeriodePelaporanId' => $request->period_id,
|
|
'Tahun' => $request->tahun,
|
|
]);
|
|
|
|
return redirect()->route('pelaporan.index')->with('success', 'Pelaporan berhasil diperbarui.');
|
|
} catch (QueryException $e) {
|
|
Log::error('Error while updating Pelaporan: ' . $e->getMessage());
|
|
return back()->with('error', 'Terjadi kesalahan saat memperbarui pelaporan.');
|
|
} catch (Exception $e) {
|
|
Log::error('Unexpected error while updating Pelaporan: ' . $e->getMessage());
|
|
return back()->with('error', 'Terjadi kesalahan tak terduga.');
|
|
}
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
try {
|
|
// Menemukan pelaporan berdasarkan ID
|
|
$pelaporan = Pelaporan::findOrFail($id);
|
|
|
|
// Menghapus pelaporan
|
|
$pelaporan->delete();
|
|
|
|
return redirect()->route('pelaporan.index')->with('success', 'Pelaporan berhasil dihapus.');
|
|
} catch (QueryException $e) {
|
|
Log::error('Error while deleting Pelaporan: ' . $e->getMessage());
|
|
return back()->with('error', 'Terjadi kesalahan saat menghapus pelaporan.');
|
|
} catch (Exception $e) {
|
|
Log::error('Unexpected error while deleting Pelaporan: ' . $e->getMessage());
|
|
return back()->with('error', 'Terjadi kesalahan tak terduga.');
|
|
}
|
|
}
|
|
}
|