161 lines
4.4 KiB
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();
|
|
}
|
|
}
|