MIF_E31211879/application/models/ModelAnalisis.php

143 lines
6.0 KiB
PHP

<?php
defined('BASEPATH') or exit('No direct script access allowed');
class ModelAnalisis extends CI_Model
{
/**
* @author Fendrik Nurul Jadid <fendrik1311@gmail.com>
* @since v.1.0
**/
public function __construct()
{
parent::__construct();
//Codeigniter : Write Less Do More
}
public function get_data()
{
$this->db->select('kalori.energi, konsumsi.user_id_user, user.nama, GROUP_CONCAT(bahan_makanan.nama_makanan SEPARATOR ", ") as nama_makanan, GROUP_CONCAT(bahan_makanan.urt SEPARATOR ", ") as urt, GROUP_CONCAT(bahan_makanan.energi SEPARATOR ", ") as energi, SUM(bahan_makanan.energi) as total_kalori');
$this->db->from('bahan_makanan');
$this->db->join('konsumsi_detail', 'konsumsi_detail.id_makanan = bahan_makanan.id_makanan');
$this->db->join('konsumsi', 'konsumsi.idkonsumsi = konsumsi_detail.id_konsumsi');
$this->db->join('user', 'user.id_user = konsumsi.user_id_user');
$this->db->join('kalori', 'kalori.jenis_kelamin = user.jekel');
$this->db->group_by('konsumsi.waktu');
$result = $this->db->get()->result();
// Menambahkan status kalori ke setiap entri dalam hasil
foreach ($result as $record) {
if ($record->total_kalori < $record->energi) {
$record->kalori_status = "Kalori tidak tercukupi";
} else {
$record->kalori_status = "Kalori mencukupi";
}
}
return $result;
}
public function get_data2($from, $till)
{
$this->db->select('konsumsi.waktu, bahan_makanan.nama_makanan, user.nama, SUM(bahan_makanan.energi) as total_kalori');
$this->db->from('bahan_makanan');
$this->db->join('konsumsi_detail', 'konsumsi_detail.id_makanan = bahan_makanan.id_makanan');
$this->db->join('konsumsi', 'konsumsi.idkonsumsi = konsumsi_detail.id_konsumsi');
$this->db->join('user', 'user.id_user = konsumsi.user_id_user');
$this->db->group_by('konsumsi.waktu');
// Add WHERE conditions for date range
$this->db->where('konsumsi.waktu >=', $from);
$this->db->where('konsumsi.waktu <=', $till);
$result = $this->db->get()->result();
return $result;
}
public function get_status()
{
$this->db->select('konsumsi.waktu, konsumsi.user_id_user, user.nama, GROUP_CONCAT(bahan_makanan.nama_makanan SEPARATOR ", ") as nama_makanan, SUM(bahan_makanan.energi) as total_kalori, SUM(bahan_makanan.karbohidrat) as total_karbohidrat, SUM(bahan_makanan.protein) as total_protein, SUM(bahan_makanan.lemak) as total_lemak, SUM(bahan_makanan.besi) as total_besi, SUM(bahan_makanan.vitamina) as total_vitamina, SUM(bahan_makanan.vitaminc) as total_vitaminc, kalori.*');
$this->db->from('bahan_makanan');
$this->db->join('konsumsi_detail', 'konsumsi_detail.id_makanan = bahan_makanan.id_makanan');
$this->db->join('konsumsi', 'konsumsi.idkonsumsi = konsumsi_detail.id_konsumsi');
$this->db->join('user', 'user.id_user = konsumsi.user_id_user');
$this->db->join('kalori', 'kalori.jenis_kelamin = user.jekel');
$this->db->where('kalori.awal <=', 'user.umur');
$this->db->where('kalori.akhir >=', 'user.umur');
$this->db->where('kalori.jenis_kelamin', 'user.jekel');
$this->db->group_by('konsumsi.waktu');
$result = $this->db->get()->result();
// Menambahkan kondisi untuk memeriksa jika total kalori kurang dari target
foreach ($result as $record) {
if ($record->total_kalori < $record->kalori_target) {
$record->kalori_status = "Kalori tidak tercukupi";
} else {
$record->kalori_status = "Kalori mencukupi";
}
}
return $result;
}
public function get_status2()
{
$this->db->select('konsumsi.waktu, konsumsi.user_id_user, user.nama');
$this->db->select('GROUP_CONCAT(bahan_makanan.nama_makanan SEPARATOR ", ") as nama_makanan');
$this->db->select('SUM(bahan_makanan.energi) as total_kalori');
$this->db->select('SUM(bahan_makanan.karbohidrat) as total_karbohidrat');
$this->db->select('SUM(bahan_makanan.protein) as total_protein');
$this->db->select('SUM(bahan_makanan.lemak) as total_lemak');
$this->db->select('SUM(bahan_makanan.besi) as total_besi');
$this->db->select('SUM(bahan_makanan.vitamina) as total_vitamina');
$this->db->select('SUM(bahan_makanan.vitaminc) as total_vitaminc');
$this->db->select('kalori.*');
$this->db->from('bahan_makanan');
$this->db->join('konsumsi_detail', 'konsumsi_detail.id_makanan = bahan_makanan.id_makanan');
$this->db->join('konsumsi', 'konsumsi.idkonsumsi = konsumsi_detail.id_konsumsi');
$this->db->join('user', 'user.id_user = konsumsi.user_id_user');
$this->db->join('kalori', 'kalori.jenis_kelamin = user.jekel');
$this->db->where('user.umur >= kalori.awal');
$this->db->where('user.umur <= kalori.akhir');
$this->db->group_by('konsumsi.waktu');
$query = $this->db->get()->result();
return $query;
}
public function getketer($id_user, $waktu, $keterangan)
{
$this->db->select(
'bahan_makanan.kategori, bahan_makanan.nama_makanan, bahan_makanan.kuantitas, ' .
'bahan_makanan.besaran, bahan_makanan.urt, bahan_makanan.energi, ' .
'bahan_makanan.karbohidrat, bahan_makanan.protein, bahan_makanan.lemak, ' .
'bahan_makanan.besi, bahan_makanan.vitamina, bahan_makanan.vitaminc, ' .
'konsumsi.idkonsumsi, konsumsi.waktu, bahan_makanan.id_makanan, ' .
'user.id_user, konsumsi.keterangan'
);
$this->db->from('konsumsi');
$this->db->join('konsumsi_detail', 'konsumsi.idkonsumsi = konsumsi_detail.id_konsumsi');
$this->db->join('bahan_makanan', 'bahan_makanan.id_makanan = konsumsi_detail.id_makanan');
$this->db->join('user', 'konsumsi.user_id_user = user.id_user');
$this->db->where('id_user', $id_user);
$this->db->where('waktu', $waktu);
$this->db->where('keterangan', $keterangan);
$query = $this->db->get();
return $query->result();
}
}