MIF_E31221247/app/Http/Controllers/DataStuntingController.php

116 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\HistoryStunting;
use App\Models\Stunting;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class DataStuntingController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('admin.stunting', [
'stunting' => Stunting::all()
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
Stunting::create($request->all());
return back();
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
Stunting::find($id)->update($request->all());
return back();
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
Stunting::find($id)->delete();
return back();
}
public function checkStunting(Request $request)
{
$validated = $request->validate([
'umur' => 'required|integer',
'berat' => 'required|numeric',
'tinggi' => 'required|numeric',
]);
$criteria = Stunting::where('dari_umur', '<=', $validated['umur'])
->where('sampai_umur', '>=', $validated['umur'])
->first();
if (!$criteria) {
return response()->json([
'message' => 'No criteria found for this age range.',
'status' => 'unknown'
], 404);
}
$isStunting = $validated['berat'] < $criteria->dari_berat
|| $validated['berat'] > $criteria->sampai_berat
|| $validated['tinggi'] < $criteria->dari_tinggi
|| $validated['tinggi'] > $criteria->sampai_tinggi;
HistoryStunting::create([
'user_id' => Auth::id(),
'umur' => $validated['umur'],
'berat' => $validated['berat'],
'tinggi' => $validated['tinggi'],
'status' => $isStunting ? 'Stunting' : 'Normal',
]);
return response()->json([
'umur' => $validated['umur'],
'berat' => $validated['berat'],
'tinggi' => $validated['tinggi'],
'status' => $isStunting ? 'Stunting' : 'Normal',
'solusi' => $isStunting ? 'Berikan gizi yang cukup untuk anak agar pertumbuhan lebih baik' : 'Anak sehat dan baik, tetap jaga pola makan dan perhatikan selalu gizi anak',
]);
}
}