MIF_E31212322/app/Http/Controllers/DaftarNamaController.php

161 lines
4.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\alternatif;
use App\Models\datasubkriteria;
use App\Models\penduduk;
use Illuminate\Http\Request;
class DaftarNamaController extends Controller
{
public function index()
{
$penduduks = penduduk::all();
return view('pages.daftarNama', compact('penduduks'));
}
public function detail($id)
{
$penduduks = penduduk::find($id);
$alternatifs = alternatif::find($id);
$penduduks = penduduk::all();
$alternatifs = alternatif::all();
return view('pages.dpenduduk', compact('penduduks','alternatifs'));
}
public function showsubkriteria()
{
$penduduks = datasubkriteria::all();
return view('pages.tpenduduk', compact('penduduks'));
}
public function showpenduduk()
{
return view('pages.tpenduduk');
}
public function create()
{
return view('pages.tpenduduk', compact('kode'));
}
public function search(Request $request)
{
$query = $request->input('query');
$penduduks = Penduduk::where('nik', 'LIKE', "%{$query}%")
->orWhere('nama', 'LIKE', "%{$query}%")
->get();
return view('pages.daftarNama', compact('penduduks'));
}
public function store(Request $request)
{
$validatedData = $request->validate([
'kode' => 'required|unique:penduduks',
'nik' => 'required|unique:penduduks',
'nama' => 'required',
'jeniskelamin' => 'required',
'desa' => 'required',
'dusun' => 'required',
'rw' => 'required',
'rt' => 'required',
], [
'nik.unique' => 'Nomor Induk Keluarga sudah pernah digunakan',
'kode.unique' => 'Kode sudah pernah digunakan',
]);
$penduduks = new penduduk();
$penduduks->kode = $validatedData['kode'];
$penduduks->nik = $validatedData['nik'];
$penduduks->nama = $validatedData['nama'];
$penduduks->jenis_kelamin = $validatedData['jeniskelamin'];
$penduduks->desa = $request->input('desa');
$penduduks->dusun = $request->input('dusun');
$penduduks->rw = $request->input('rw');
$penduduks->rt = $request->input('rt');
$penduduks->save();
return redirect('/daftarnama')->with('success', 'Data Penduduk berhasil disimpan.');
}
public function edit($id)
{
$penduduks = penduduk::find($id);
return view('pages.ependuduk', compact('penduduks'));
}
public function hapus($id)
{
$penduduks = penduduk::find($id);
if ($penduduks) {
$penduduks->delete();
return redirect()->back()->with('success', 'Data berhasil dihapus.');
} else {
return redirect()->back()->with('error', ' Data gagal dihapus');
}
}
public function update(Request $request, $id)
{
$penduduks = penduduk::find($id);
$penduduks->nik = $request->input('nik');
$penduduks->nama = $request->input('nama');
$penduduks->jenis_kelamin = $request->input('jeniskelamin');
$penduduks->desa = $request->input('desa');
$penduduks->dusun = $request->input('dusun');
$penduduks->rw = $request->input('rw');
$penduduks->rt = $request->input('rt');
$penduduks->save();
// Redirect kembali ke daftar kriteria atau tampilkan pesan sukses
return redirect()->route('daftarnama')->with('success', 'Data Penduduk berhasil diperbarui.');
}
public function cetak()
{
$judul = 'Laporan Data Sub Kriteria';
$penduduks = penduduk::all();
return view('pages.print2', compact('judul', 'penduduks'));
}
public function generateKode(Request $request)
{
// Logika untuk menghasilkan kode baru
$kode = $this->generateUniqueKode();
return response()->json(['kode' => $kode]);
}
private function generateUniqueKode()
{
$kode = $this->generateRandomKode();
while ($this->isKodeAlreadyUsed($kode)) {
$kode = $this->generateRandomKode();
}
return $kode;
}
private function generateRandomKode()
{
$prefix = 'ALT';
$number = 1;
do {
$kode = $prefix . $number;
$number++;
} while ($this->isKodeAlreadyUsed($kode));
return $kode;
}
private function isKodeAlreadyUsed($kode)
{
// Logika untuk memeriksa apakah kode sudah digunakan di database
return penduduk::where('kode', $kode)->exists();
}
}