143 lines
6.0 KiB
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();
|
|
}
|
|
} |