331 lines
11 KiB
PHP
331 lines
11 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Makanan;
|
|
use App\Http\Requests\MakananRequest;
|
|
use App\Http\Requests\UpdateMakananRequest;
|
|
use App\Models\Kategori;
|
|
use App\Http\Requests\KategoriRequest;
|
|
use App\Http\Requests\UpdateKategoriRequest;
|
|
use App\Models\JenisMakanan;
|
|
use App\Http\Requests\JenisMakananRequest;
|
|
use App\Http\Requests\UpdateJenisMakananRequest;
|
|
use App\Models\Komponen;
|
|
// use App\Http\Requests\JenisMakananRequest;
|
|
// use App\Http\Requests\UpdateJenisMakananRequest;
|
|
use App\Models\WaktuMakan;
|
|
// use App\Http\Requests\JenisMakananRequest;
|
|
// use App\Http\Requests\UpdateJenisMakananRequest;
|
|
use App\Models\MakananKomponenWaktu;
|
|
// use App\Http\Requests\JenisMakananRequest;
|
|
// use App\Http\Requests\UpdateJenisMakananRequest;
|
|
|
|
class MakananController extends Controller
|
|
{
|
|
//
|
|
|
|
public function makanan(){
|
|
$makanans = Makanan::with('kategori', 'jenis')->get(); // Ambil semua data makanan dengan relasi kategori
|
|
return view('admin.makanan.makanan', compact('makanans'));
|
|
}
|
|
|
|
public function editmakanan(Makanan $makanan){
|
|
// Ambil semua kategori untuk dropdown
|
|
$kategoris = Kategori::pluck('kategori', 'id'); // Ambil nama dan ID kategori
|
|
$jenis_makanans = JenisMakanan::pluck('name', 'id'); // Ambil nama dan ID kategori
|
|
return view('admin.makanan.editmakanan', compact('makanan', 'kategoris', 'jenis_makanans'));
|
|
}
|
|
|
|
public function tambahMakanan(){
|
|
// Mengambil semua data kategori
|
|
$kategoris = Kategori::all(); // Pastikan ini adalah koleksi Eloquent
|
|
$jenis_makanans = JenisMakanan::all(); // Pastikan ini adalah koleksi Eloquent
|
|
// Mengirim data ke view
|
|
return view('admin.makanan.tambahmakanan', compact('kategoris', 'jenis_makanans'));
|
|
}
|
|
|
|
|
|
public function storemakanan(MakananRequest $request)
|
|
{
|
|
$validatedData = $request->validated();
|
|
// dd($validatedData);
|
|
|
|
// Ganti koma dengan titik untuk input desimal
|
|
$validatedData['lemak'] = str_replace(',', '.', $validatedData['lemak']);
|
|
$validatedData['natrium'] = str_replace(',', '.', $validatedData['natrium']);
|
|
$validatedData['energi'] = str_replace(',', '.', $validatedData['energi']);
|
|
$validatedData['karbohidrat'] = str_replace(',', '.', $validatedData['karbohidrat']);
|
|
|
|
|
|
// Simpan relasi kategori_id ke database
|
|
$validatedData['kategori_id'] = $request->input('kategori_id');
|
|
$validatedData['jenis_id'] = $request->input('jenis_id');
|
|
|
|
|
|
|
|
// Simpan data makanan ke database
|
|
Makanan::create($validatedData);
|
|
|
|
return redirect()->route('makanan')->with('success', 'Makanan berhasil ditambahkan!');
|
|
}
|
|
|
|
public function updatemakanan(UpdateMakananRequest $request, Makanan $makanan)
|
|
{
|
|
|
|
$validatedData = $request->validated();
|
|
|
|
// Simpan relasi kategori_id ke database
|
|
$validatedData['kategori_id'] = $request->input('kategori_id');
|
|
$validatedData['jenis_id'] = $request->input('jenis_id');
|
|
|
|
// Ganti koma dengan titik untuk input desimal
|
|
$validatedData['lemak'] = str_replace(',', '.', $validatedData['lemak']);
|
|
$validatedData['natrium'] = str_replace(',', '.', $validatedData['natrium']);
|
|
$validatedData['energi'] = str_replace(',', '.', $validatedData['energi']);
|
|
$validatedData['karbohidrat'] = str_replace(',', '.', $validatedData['karbohidrat']);
|
|
|
|
// Update data makanan di database
|
|
$makanan->update($validatedData);
|
|
|
|
|
|
return redirect()->route('makanan')->with('success', 'Makanan berhasil diperbarui!');
|
|
}
|
|
|
|
public function deletemakanan(Makanan $makanan) {
|
|
$makanan->delete();
|
|
return redirect()->route('makanan')->with('success', 'Makanan deleted successfully');
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function kategori(){
|
|
$kategoris = Kategori::all();
|
|
return view('admin.kategori.kategori', compact('kategoris'));
|
|
}
|
|
public function editkategori(Kategori $kategori){
|
|
return view('admin.kategori.editkategori', compact('kategori'));
|
|
}
|
|
public function tambahkategori(){
|
|
return view('admin.kategori.tambahkategori');
|
|
}
|
|
public function storekategori(KategoriRequest $request){
|
|
$validatedData = $request->validated();
|
|
Kategori::create($validatedData);
|
|
return redirect()->route('kategori');
|
|
}
|
|
public function updatekategori(UpdateKategoriRequest $request, Kategori $kategori)
|
|
{
|
|
$validatedData = $request->validated();
|
|
$kategori->update($validatedData);
|
|
return redirect()->route('kategori');
|
|
}
|
|
|
|
public function deletekategori(Kategori $kategori) {
|
|
$kategori->delete();
|
|
return redirect()->route('kategori')->with('success', 'user deleted successfully');
|
|
}
|
|
|
|
|
|
|
|
public function jenismakanan()
|
|
{
|
|
$jenis_makanans = JenisMakanan::all();
|
|
return view('admin.jenismakanan.jenismakanan', compact('jenis_makanans'));
|
|
}
|
|
|
|
public function editjenismakanan(JenisMakanan $jenis)
|
|
{
|
|
return view('admin.jenismakanan.editjenismakanan', compact('jenis'));
|
|
}
|
|
|
|
public function tambahjenismakanan()
|
|
{
|
|
return view('admin.jenismakanan.tambahjenismakanan');
|
|
}
|
|
|
|
public function storejenismakanan(JenisMakananRequest $request)
|
|
{
|
|
$validatedData = $request->validated();
|
|
JenisMakanan::create($validatedData);
|
|
return redirect()->route('jenismakanan');
|
|
}
|
|
|
|
public function updatejenismakanan(UpdateJenisMakananRequest $request, JenisMakanan $jenis)
|
|
{
|
|
$validatedData = $request->validated();
|
|
$jenis->update($validatedData);
|
|
return redirect()->route('jenismakanan');
|
|
}
|
|
|
|
public function deletejenismakanan(JenisMakanan $jenis)
|
|
{
|
|
$jenis->delete();
|
|
return redirect()->route('jenismakanan')->with('success', 'Jenis makanan berhasil dihapus');
|
|
}
|
|
|
|
|
|
|
|
public function komponen(){
|
|
$komponens = Komponen::all();
|
|
return view('admin.komponen.komponen', compact('komponens'));
|
|
}
|
|
public function editkomponen(Komponen $komponen){
|
|
return view('admin.komponen.editkomponen', compact('komponen'));
|
|
}
|
|
public function tambahkomponen(){
|
|
return view('admin.komponen.tambahkomponen');
|
|
}
|
|
// public function storekomponen(KategoriRequest $request){
|
|
// $validatedData = $request->validated();
|
|
// Kategori::create($validatedData);
|
|
// return redirect()->route('kategori');
|
|
// }
|
|
// public function updatekategori(UpdateKategoriRequest $request, Kategori $kategori)
|
|
// {
|
|
// $validatedData = $request->validated();
|
|
// $kategori->update($validatedData);
|
|
// return redirect()->route('kategori');
|
|
// }
|
|
|
|
public function deletekomponen(Komponen $komponen) {
|
|
$komponen->delete();
|
|
return redirect()->route('komponen')->with('success', 'user deleted successfully');
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function waktumakan(){
|
|
$waktu_makans = WaktuMakan::all();
|
|
return view('admin.waktumakan.waktumakan', compact('waktu_makans'));
|
|
}
|
|
public function editwaktumakan(WaktuMakan $waktumakan){
|
|
return view('admin.waktumakan.editwaktumakan', compact('waktumakan'));
|
|
}
|
|
public function tambahwaktumakan(){
|
|
return view('admin.waktumakan.tambahwaktumakan');
|
|
}
|
|
// public function storekomponen(KategoriRequest $request){
|
|
// $validatedData = $request->validated();
|
|
// Kategori::create($validatedData);
|
|
// return redirect()->route('kategori');
|
|
// }
|
|
// public function updatekategori(UpdateKategoriRequest $request, Kategori $kategori)
|
|
// {
|
|
// $validatedData = $request->validated();
|
|
// $kategori->update($validatedData);
|
|
// return redirect()->route('kategori');
|
|
// }
|
|
|
|
public function deletewaktumakan(WaktuMakan $waktumakan) {
|
|
$waktumakan->delete();
|
|
return redirect()->route('waktumakan')->with('success', 'user deleted successfully');
|
|
}
|
|
|
|
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$query = MakananKomponenWaktu::with(['makanan', 'komponen', 'waktuMakan']);
|
|
|
|
if ($request->komponen_id) {
|
|
$query->where('komponen_id', $request->komponen_id);
|
|
}
|
|
|
|
if ($request->waktu_makan_id) {
|
|
$query->where('waktu_makan_id', $request->waktu_makan_id);
|
|
}
|
|
|
|
$relasis = $query->get();
|
|
$makanans = Makanan::all();
|
|
$komponens = Komponen::all();
|
|
$waktuMakans = WaktuMakan::all();
|
|
|
|
return view('admin.relasi.relasi', compact('relasis', 'makanans', 'komponens', 'waktuMakans'));
|
|
}
|
|
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'makanan_id' => 'required|exists:makanans,id',
|
|
'komponen_id' => 'required|exists:komponens,id',
|
|
'waktu_makan_id' => 'required|exists:waktu_makans,id',
|
|
]);
|
|
|
|
// Cegah duplikasi
|
|
$exists = MakananKomponenWaktu::where([
|
|
'makanan_id' => $request->makanan_id,
|
|
'komponen_id' => $request->komponen_id,
|
|
'waktu_makan_id' => $request->waktu_makan_id
|
|
])->exists();
|
|
|
|
if (!$exists) {
|
|
MakananKomponenWaktu::create($request->only(['makanan_id', 'komponen_id', 'waktu_makan_id']));
|
|
return redirect()->back()->with('success', 'Relasi berhasil ditambahkan.');
|
|
} else {
|
|
return redirect()->back()->with('error', 'Relasi sudah ada.');
|
|
}
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$relasi = MakananKomponenWaktu::findOrFail($id);
|
|
$makanans = Makanan::all();
|
|
$komponens = Komponen::all();
|
|
$waktuMakans = WaktuMakan::all();
|
|
|
|
return view('admin.relasi.edit', compact('relasi', 'makanans', 'komponens', 'waktuMakans'));
|
|
}
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
$request->validate([
|
|
'makanan_id' => 'required|exists:makanans,id',
|
|
'komponen_id' => 'required|exists:komponens,id',
|
|
'waktu_makan_id' => 'required|exists:waktu_makans,id',
|
|
]);
|
|
|
|
$relasi = MakananKomponenWaktu::findOrFail($id);
|
|
|
|
// Cek apakah ada duplikasi selain record yang sedang diupdate
|
|
$exists = MakananKomponenWaktu::where('id', '!=', $id)
|
|
->where('makanan_id', $request->makanan_id)
|
|
->where('komponen_id', $request->komponen_id)
|
|
->where('waktu_makan_id', $request->waktu_makan_id)
|
|
->exists();
|
|
|
|
if ($exists) {
|
|
return redirect()->back()->with('error', 'Relasi sudah ada.');
|
|
}
|
|
|
|
$relasi->update([
|
|
'makanan_id' => $request->makanan_id,
|
|
'komponen_id' => $request->komponen_id,
|
|
'waktu_makan_id' => $request->waktu_makan_id,
|
|
]);
|
|
|
|
return redirect()->route('relasi')->with('success', 'Relasi berhasil diperbarui.');
|
|
}
|
|
|
|
|
|
public function destroy($id)
|
|
{
|
|
$relasi = MakananKomponenWaktu::findOrFail($id);
|
|
$relasi->delete();
|
|
|
|
return redirect()->back()->with('success', 'Relasi berhasil dihapus.');
|
|
}
|
|
}
|