MIF_E31211879/application/controllers/DataStunting.php

164 lines
4.9 KiB
PHP

<?php
defined('BASEPATH') or exit('No direct script access allowed');
class DataStunting extends CI_Controller
{
public function __construct()
{
parent::__construct();
// $this->load->library('notif');
$this->load->model("ModelDataStunting");
$this->load->model("ModelDataDesa");
$this->load->library('PHPExcel');
}
function index()
{
$stunting = $this->ModelDataStunting->get_data();
$data = array(
'body' => 'DataStunting/list',
'stunting' => $stunting
);
$this->load->view('index', $data);
}
public function input()
{
$stunting = $this->ModelDataStunting->get_data();
$desa = $this->ModelDataDesa->get_data();
$data = array(
'body' => 'DataStunting/input',
'form' => 'DataStunting/form',
'stunting' => $stunting,
'desa' => $desa,
);
$this->load->view('index', $data);
}
public function insert()
{
$data = array(
'id_desa' => $this->input->post('id_desa'),
'tahun' => $this->input->post('tahun'),
'total' => $this->input->post('total'),
);
if ($this->db->insert("stunting", $data)) {
$this->session->set_flashdata("notif", $this->MNotif->berhasil("Berhasil Input Data"));
redirect(base_url() . "DataStunting");
} else {
$this->session->set_flashdata("notif", $this->MNotif->gagal("gagal Input Data"));
redirect(base_url() . "DataStunting");
}
// echo json_encode($data);
}
function edit()
{
$id = $this->uri->segment(3);
$stunting = $this->ModelDataStunting->get_data_edit($id);
$desa = $this->ModelDataDesa->get_data();
$data = array(
'body' => 'DataStunting/edit',
'form' => 'DataStunting/form',
'stunting' => $stunting,
'desa' => $desa,
);
$this->load->view('index', $data);
}
function update()
{
$id = $this->uri->segment(3);
$data = array(
'id_desa' => $this->input->post('id_desa'),
'tahun' => $this->input->post('tahun'),
'total' => $this->input->post('total'),
);
$this->db->where("id_stunting", $id);
if ($this->db->update("stunting", $data)) {
// code...
$this->session->set_flashdata("notif", $this->MNotif->berhasil("Berhasil Input Data"));
redirect(base_url() . "DataStunting");
} else {
$this->session->set_flashdata("notif", $this->MNotif->gagal("gagal Input Data"));
redirect(base_url() . "DataStunting");
}
}
function delete()
{
$id = $this->input->post("id_stunting");
$this->db->where_in("id_stunting", $id);
if ($this->db->delete("stunting")) {
$this->session->set_flashdata("notif", $this->MNotif->berhasil("Berhasil Input Data"));
redirect(base_url() . "DataStunting");
// code...
} else {
$this->session->set_flashdata("notif", $this->MNotif->gagal("gagal Input Data"));
redirect(base_url() . "DataStunting");
}
}
public function import()
{
$data = array(
'body' => 'DataStunting/import',
);
$this->load->view('index', $data);
}
public function proses_import_excel()
{
if (isset($_FILES["fileExcel"]["name"])) {
$path = $_FILES["fileExcel"]["tmp_name"];
$object = PHPExcel_IOFactory::load($path);
$dbxl_stunting = array();
$log = array();
foreach ($object->getWorksheetIterator() as $worksheet) {
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
for ($row = 4; $row <= $highestRow; $row++) {
$nama_desa = $worksheet->getCellByColumnAndRow(2, $row)->getValue();
$total = $worksheet->getCellByColumnAndRow(3, $row)->getValue();
$tahun = $worksheet->getCellByColumnAndRow(4, $row)->getValue();
// Panggil model untuk mendapatkan data desa berdasarkan nama_desa
$data_desa = $this->ModelDataDesa->get_desa_bynama($nama_desa);
// Debugging: Periksa nilai yang dikembalikan
// var_dump($data_desa);
if (is_array($data_desa) && isset($data_desa['id_desa'])) {
$id_desa = $data_desa['id_desa'];
$temp_db = array(
'id_desa' => $id_desa,
'total' => $total,
'tahun' => $tahun,
);
$cekData = $this->db->get_where("stunting", array("id_desa" => $id_desa, "tahun" => $tahun))->row_array();
if ($cekData) {
$this->db->where("id_stunting", $cekData['id_stunting']);
$this->db->update("stunting", $temp_db);
} else {
$dbxl_stunting[] = $temp_db;
}
} else {
$log[] = "Desa dengan nama '$nama_desa' tidak ditemukan di database.";
}
}
}
if (sizeof($dbxl_stunting) > 0) {
$this->db->insert_batch("stunting", $dbxl_stunting);
}
echo json_encode(
array(
"db" => $dbxl_stunting,
"log" => $log
)
);
} else {
echo "Tidak ada file yang masuk";
}
}
}