MIF_E31211879/application/models/ModelKonsumsi.php

293 lines
19 KiB
PHP

<?php
defined('BASEPATH') or exit('No direct script access allowed');
class ModelKonsumsi 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('konsumsi.waktu, konsumsi.user_id_user, user.nama,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 1 THEN bahan_makanan.nama_makanan END SEPARATOR ", ") as makanan_pokok,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 2 THEN bahan_makanan.nama_makanan END SEPARATOR ", ") as lauk_pauk,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 3 THEN bahan_makanan.nama_makanan END SEPARATOR ", ") as sayuran,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 4 THEN bahan_makanan.nama_makanan END SEPARATOR ", ") as buah_buahan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 5 THEN bahan_makanan.nama_makanan END SEPARATOR ", ") as jajanan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 1 THEN bahan_makanan.urt END SEPARATOR ", ") as urt_makanan_pokok,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 2 THEN bahan_makanan.urt END SEPARATOR ", ") as urt_lauk_pauk,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 3 THEN bahan_makanan.urt END SEPARATOR ", ") as urt_sayuran,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 4 THEN bahan_makanan.urt END SEPARATOR ", ") as urt_buah_buahan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 5 THEN bahan_makanan.urt END SEPARATOR ", ") as urt_jajanan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 1 THEN bahan_makanan.energi * konsumsi_detail.kuantitas END SEPARATOR ", ") as energi_makanan_pokok,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 2 THEN bahan_makanan.energi * konsumsi_detail.kuantitas END SEPARATOR ", ") as energi_lauk_pauk,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 3 THEN bahan_makanan.energi * konsumsi_detail.kuantitas END SEPARATOR ", ") as energi_sayuran,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 4 THEN bahan_makanan.energi * konsumsi_detail.kuantitas END SEPARATOR ", ") as energi_buah_buahan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 5 THEN bahan_makanan.energi * konsumsi_detail.kuantitas END SEPARATOR ", ") as energi_jajanan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 1 THEN konsumsi_detail.kuantitas END SEPARATOR ", ") as kuantitas_makanan_pokok,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 2 THEN konsumsi_detail.kuantitas END SEPARATOR ", ") as kuantitas_lauk_pauk,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 3 THEN konsumsi_detail.kuantitas END SEPARATOR ", ") as kuantitas_sayuran,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 4 THEN konsumsi_detail.kuantitas END SEPARATOR ", ") as kuantitas_buah_buahan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 5 THEN konsumsi_detail.kuantitas END SEPARATOR ", ") as kuantitas_jajanan,
SUM(bahan_makanan.energi * konsumsi_detail.kuantitas) 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');
$result = $this->db->get()->result();
return $result;
}
public function get_data2($from, $till)
{
$this->db->select('konsumsi.waktu, bahan_makanan.nama_makanan, user.nama,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 1 THEN bahan_makanan.nama_makanan END SEPARATOR ", ") as makanan_pokok,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 2 THEN bahan_makanan.nama_makanan END SEPARATOR ", ") as lauk_pauk,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 3 THEN bahan_makanan.nama_makanan END SEPARATOR ", ") as sayuran,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 4 THEN bahan_makanan.nama_makanan END SEPARATOR ", ") as buah_buahan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 5 THEN bahan_makanan.nama_makanan END SEPARATOR ", ") as jajanan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 1 THEN bahan_makanan.urt END SEPARATOR ", ") as urt_makanan_pokok,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 2 THEN bahan_makanan.urt END SEPARATOR ", ") as urt_lauk_pauk,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 3 THEN bahan_makanan.urt END SEPARATOR ", ") as urt_sayuran,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 4 THEN bahan_makanan.urt END SEPARATOR ", ") as urt_buah_buahan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 5 THEN bahan_makanan.urt END SEPARATOR ", ") as urt_jajanan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 1 THEN bahan_makanan.energi * konsumsi_detail.kuantitas END SEPARATOR ", ") as energi_makanan_pokok,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 2 THEN bahan_makanan.energi * konsumsi_detail.kuantitas END SEPARATOR ", ") as energi_lauk_pauk,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 3 THEN bahan_makanan.energi * konsumsi_detail.kuantitas END SEPARATOR ", ") as energi_sayuran,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 4 THEN bahan_makanan.energi * konsumsi_detail.kuantitas END SEPARATOR ", ") as energi_buah_buahan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 5 THEN bahan_makanan.energi * konsumsi_detail.kuantitas END SEPARATOR ", ") as energi_jajanan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 1 THEN konsumsi_detail.kuantitas END SEPARATOR ", ") as kuantitas_makanan_pokok,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 2 THEN konsumsi_detail.kuantitas END SEPARATOR ", ") as kuantitas_lauk_pauk,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 3 THEN konsumsi_detail.kuantitas END SEPARATOR ", ") as kuantitas_sayuran,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 4 THEN konsumsi_detail.kuantitas END SEPARATOR ", ") as kuantitas_buah_buahan,
GROUP_CONCAT(CASE WHEN bahan_makanan.kategori = 5 THEN konsumsi_detail.kuantitas END SEPARATOR ", ") as kuantitas_jajanan,
SUM(bahan_makanan.energi * konsumsi_detail.kuantitas) 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, konsumsi.user_id_user');
// 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');
$this->db->select('GROUP_CONCAT(bahan_makanan.nama_makanan SEPARATOR ", ") as nama_makanan');
$this->db->select('SUM(bahan_makanan.energi * konsumsi_detail.kuantitas) as total_kalori');
$this->db->select('SUM(bahan_makanan.karbohidrat * konsumsi_detail.kuantitas) as total_karbohidrat');
$this->db->select('SUM(bahan_makanan.protein * konsumsi_detail.kuantitas) as total_protein');
$this->db->select('SUM(bahan_makanan.lemak * konsumsi_detail.kuantitas) as total_lemak');
$this->db->select('SUM(bahan_makanan.besi * konsumsi_detail.kuantitas) as total_besi');
$this->db->select('SUM(bahan_makanan.vitamina * konsumsi_detail.kuantitas) as total_vitamina');
$this->db->select('SUM(bahan_makanan.vitaminc * konsumsi_detail.kuantitas) 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 get_status2($from, $till)
{
$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 * konsumsi_detail.kuantitas) as total_kalori');
$this->db->select('SUM(bahan_makanan.karbohidrat * konsumsi_detail.kuantitas) as total_karbohidrat');
$this->db->select('SUM(bahan_makanan.protein * konsumsi_detail.kuantitas) as total_protein');
$this->db->select('SUM(bahan_makanan.lemak * konsumsi_detail.kuantitas) as total_lemak');
$this->db->select('SUM(bahan_makanan.besi * konsumsi_detail.kuantitas) as total_besi');
$this->db->select('SUM(bahan_makanan.vitamina * konsumsi_detail.kuantitas) as total_vitamina');
$this->db->select('SUM(bahan_makanan.vitaminc * konsumsi_detail.kuantitas) 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->where('konsumsi.waktu >=', $from);
$this->db->where('konsumsi.waktu <=', $till);
$this->db->group_by('konsumsi.waktu, konsumsi.user_id_user');
$query = $this->db->get()->result();
return $query;
}
public function get_analisis($from,$till)
{
$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 * konsumsi_detail.kuantitas) as total_kalori');
$this->db->select('SUM(CASE WHEN konsumsi.keterangan = "Sarapan" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_sarapan');
$this->db->select('SUM(CASE WHEN konsumsi.keterangan = "Makan Siang" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_siang');
$this->db->select('SUM(CASE WHEN konsumsi.keterangan = "Makan Malam" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_malam');
// Sarapan
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 1 AND konsumsi.keterangan = "Sarapan" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_sarapan_pokok');
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 2 AND konsumsi.keterangan = "Sarapan" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_sarapan_lauk');
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 3 AND konsumsi.keterangan = "Sarapan" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_sarapan_sayur');
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 4 AND konsumsi.keterangan = "Sarapan" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_sarapan_buah');
// Makan Siang
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 1 AND konsumsi.keterangan = "Makan Siang" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_siang_pokok');
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 2 AND konsumsi.keterangan = "Makan Siang" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_siang_lauk');
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 3 AND konsumsi.keterangan = "Makan Siang" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_siang_sayur');
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 4 AND konsumsi.keterangan = "Makan Siang" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_siang_buah');
// Makan Malam
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 1 AND konsumsi.keterangan = "Makan Malam" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_malam_pokok');
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 2 AND konsumsi.keterangan = "Makan malam" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_malam_lauk');
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 3 AND konsumsi.keterangan = "Makan Malam" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_malam_sayur');
$this->db->select('SUM(CASE WHEN bahan_makanan.kategori = 4 AND konsumsi.keterangan = "Makan Malam" THEN bahan_makanan.energi * konsumsi_detail.kuantitas ELSE 0 END) as total_malam_buah');
// Subquery untuk total kalori makanan pokok pada sarapan
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Sarapan" AND bm.kategori = 1 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_sarapan_pokok');
// Subquery untuk total kalori lauk pauk pada sarapan
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Sarapan" AND bm.kategori = 2 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_sarapan_lauk');
// Subquery untuk total kalori sayuran pada sarapan
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Sarapan" AND bm.kategori = 3 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_sarapan_sayur');
// Subquery untuk total kalori buah-buahan pada sarapan
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Sarapan" AND bm.kategori = 4 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_sarapan_buah');
// Subquery untuk total kalori makanan pokok pada makan siang
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Makan Siang" AND bm.kategori = 1 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_siang_pokok');
// Subquery untuk total kalori lauk pauk pada makan siang
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Makan Siang" AND bm.kategori = 2 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_siang_lauk');
// Subquery untuk total kalori sayuran pada makan siang
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Makan Siang" AND bm.kategori = 3 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_siang_sayur');
// Subquery untuk total kalori buah-buahan pada makan siang
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Makan Siang" AND bm.kategori = 4 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_siang_buah');
// Subquery untuk total kalori makanan pokok pada makan malam
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Makan Malam" AND bm.kategori = 1 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_malam_pokok');
// Subquery untuk total kalori lauk pauk pada makan malam
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Makan Malam" AND bm.kategori = 2 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_malam_lauk');
// Subquery untuk total kalori sayuran pada makan malam
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Makan Malam" AND bm.kategori = 3 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_malam_sayur');
// Subquery untuk total kalori buah-buahan pada makan malam
// $this->db->select('(
// SELECT SUM(bm.energi * konsumsi_detail.kuantitas)
// FROM bahan_makanan AS bm
// JOIN konsumsi_detail AS kd ON kd.id_makanan = bm.id_makanan
// WHERE konsumsi.keterangan = "Makan Malam" AND bm.kategori = 4 AND kd.id_konsumsi = konsumsi.idkonsumsi
// ) as total_malam_buah');
$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->where('konsumsi.waktu >=', $from);
$this->db->where('konsumsi.waktu <=', $till);
$this->db->group_by('konsumsi.waktu, konsumsi.user_id_user');
$query = $this->db->get()->result();
return $query;
}
}