MIF_E31222680/application/models/Santri_model.php

277 lines
9.7 KiB
PHP

<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Santri_model extends CI_Model
{
public function get_data($table)
{
return $this->db->get($table);
}
public function insert_data($data, $table)
{
$this->db->insert($table, $data);
}
public function check_nis_exists($nis)
{
$this->db->where('NIS', $nis);
$query = $this->db->get('tb_santri');
return $query->num_rows() > 0;
}
public function update_data($data, $table)
{
$this->db->where('id_santri', $data['id_santri']);
$this->db->update($table, $data);
}
public function get_data_by_id($id_santri)
{
return $this->db->get_where('tb_santri', array('id_santri' => $id_santri))->row();
}
public function get_santri_by_id($id_santri)
{
$this->db->where('id_santri', $id_santri);
$query = $this->db->get('tb_santri');
return $query->row(); // Mengembalikan satu baris data
}
public function get_data_by_id_santri($id_santri)
{
$this->db->where('id_santri', $id_santri);
$santri = $this->db->get('tb_santri')->row_array();
if ($santri) {
// tambahkan pelanggaran juga kalau dibutuhkan
$this->db->where('id_santri', $id_santri);
$pelanggaran = $this->db->get('tb_pelanggaran_santri')->result_array();
return [
"santri" => $santri,
"pelanggaran_santri" => $pelanggaran
];
}
return null;
}
public function get_data_by_nis($NIS)
{
// Ambil data santri dan wali
$this->db->select('
tb_santri.*,
tb_wali_santri.id_wali_santri,
tb_wali_santri.nama_wali_santri,
tb_wali_santri.alamat AS alamat_wali,
tb_wali_santri.no_telepon,
tb_wali_santri.pekerjaan,
tb_wali_santri.email AS email_wali,
tb_wali_santri.password AS password_wali
');
$this->db->from('tb_santri');
$this->db->join('tb_wali_santri', 'tb_wali_santri.id_santri = tb_santri.id_santri', 'left');
$this->db->where('tb_santri.NIS', $NIS);
$result = $this->db->get()->row();
if (!$result) {
return null;
}
$santri_data = [
'santri' => [
'id_santri' => $result->id_santri,
'NIS' => $result->NIS,
'nama_santri' => $result->nama_santri,
'kelas_diniyah' => $result->kelas_diniyah,
'status_santri' => $result->status_santri,
'kondisi_kesehatan' => $result->kondisi_kesehatan,
'alamat_santri' => $result->alamat_santri,
'tempat_lahir' => $result->tempat_lahir,
'tanggal_lahir' => $result->tanggal_lahir,
'tahun_masuk' => $result->tahun_masuk,
'tahun_keluar' => $result->tahun_keluar,
'keterangan_keluar' => $result->keterangan_keluar,
],
'wali_santri' => [
'id_wali_santri' => $result->id_wali_santri,
'nama_wali_santri' => $result->nama_wali_santri,
'alamat' => $result->alamat_wali,
'no_telepon' => $result->no_telepon,
'pekerjaan' => $result->pekerjaan,
'email' => $result->email_wali,
'password' => $result->password_wali
],
'prestasi_santri' => [],
'pelanggaran_santri' => [],
'informasi_spp_santri' => []
];
// Ambil prestasi
$this->db->select('*');
$this->db->from('tb_prestasi_santri');
$this->db->where('id_santri', $result->id_santri);
$prestasi = $this->db->get()->result();
foreach ($prestasi as $row) {
$santri_data['prestasi_santri'][] = [
'nama_santri' => $row->nama_santri,
'prestasi' => $row->prestasi,
'agenda' => $row->agenda,
'perlombaan' => $row->perlombaan,
'tanggal' => $row->tanggal,
'bukti_prestasi' => $row->bukti_prestasi,
];
}
// Ambil pelanggaran
$this->db->select('nama_santri, pelanggaran, tanggal, sanksi, keterangan AS keterangan_pelanggaran');
$this->db->from('tb_pelanggaran_santri');
$this->db->where('id_santri', $result->id_santri);
$pelanggaran = $this->db->get()->result();
foreach ($pelanggaran as $row) {
$santri_data['pelanggaran_santri'][] = [
'nama_santri' => $row->nama_santri,
'pelanggaran' => $row->pelanggaran,
'tanggal' => $row->tanggal,
'sanksi' => $row->sanksi,
'keterangan' => $row->keterangan_pelanggaran
];
}
// Ambil informasi spp
$this->db->select('nama_santri, bulan, tahun, jumlah_pembayaran, jatuh_tempo, keterangan AS keterangan_spp');
$this->db->from('tb_informasi_spp_santri');
$this->db->where('id_santri', $result->id_santri);
$spp_result = $this->db->get()->result();
foreach ($spp_result as $row) {
$santri_data['informasi_spp_santri'][] = [
'nama_santri' => $row->nama_santri,
'bulan' => $row->bulan,
'tahun' => $row->tahun,
'jumlah_pembayaran' => $row->jumlah_pembayaran,
'jatuh_tempo' => $row->jatuh_tempo,
'keterangan' => $row->keterangan_spp
];
}
return $santri_data;
}
public function get_data_by_email_wali($email)
{
// Ambil data santri dan wali
$this->db->select('
tb_santri.*,
tb_wali_santri.id_wali_santri,
tb_wali_santri.nama_wali_santri,
tb_wali_santri.alamat AS alamat_wali,
tb_wali_santri.no_telepon,
tb_wali_santri.pekerjaan,
tb_wali_santri.email AS email_wali,
tb_wali_santri.password AS password_wali
');
$this->db->from('tb_santri');
$this->db->join('tb_wali_santri', 'tb_wali_santri.id_santri = tb_santri.id_santri', 'left');
$this->db->where('tb_wali_santri.email', $email);
$result = $this->db->get()->row();
// echo $this->db->last_query();
if (!$result) {
return null;
}
$santri_data = [
'santri' => [
'id_santri' => $result->id_santri,
'NIS' => $result->NIS,
'nama_santri' => $result->nama_santri,
'kelas_diniyah' => $result->kelas_diniyah,
'status_santri' => $result->status_santri,
'kondisi_kesehatan' => $result->kondisi_kesehatan,
'alamat_santri' => $result->alamat_santri,
'tempat_lahir' => $result->tempat_lahir,
'tanggal_lahir' => $result->tanggal_lahir,
'tahun_masuk' => $result->tahun_masuk,
'tahun_keluar' => $result->tahun_keluar,
'keterangan_keluar' => $result->keterangan_keluar,
],
'wali_santri' => [
'id_wali_santri' => $result->id_wali_santri,
'nama_wali_santri' => $result->nama_wali_santri,
'alamat' => $result->alamat_wali,
'no_telepon' => $result->no_telepon,
'pekerjaan' => $result->pekerjaan,
'email' => $result->email_wali,
'password' => $result->password_wali
],
'prestasi_santri' => [],
'pelanggaran_santri' => [],
'informasi_spp_santri' => []
];
// Ambil prestasi
$this->db->select('*');
$this->db->from('tb_prestasi_santri');
$this->db->where('id_santri', $result->id_santri);
$prestasi = $this->db->get()->result();
foreach ($prestasi as $row) {
$santri_data['prestasi_santri'][] = [
'nama_santri' => $row->nama_santri,
'prestasi' => $row->prestasi,
'agenda' => $row->agenda,
'perlombaan' => $row->perlombaan,
'tanggal' => $row->tanggal,
'bukti_prestasi' => $row->bukti_prestasi,
];
}
// Ambil pelanggaran
$this->db->select('nama_santri, pelanggaran, tanggal, sanksi, keterangan AS keterangan_pelanggaran');
$this->db->from('tb_pelanggaran_santri');
$this->db->where('id_santri', $result->id_santri);
$pelanggaran = $this->db->get()->result();
foreach ($pelanggaran as $row) {
$santri_data['pelanggaran_santri'][] = [
'nama_santri' => $row->nama_santri,
'pelanggaran' => $row->pelanggaran,
'tanggal' => $row->tanggal,
'sanksi' => $row->sanksi,
'keterangan' => $row->keterangan_pelanggaran
];
}
// Ambil informasi spp
$this->db->select('nama_santri, bulan, tahun, jumlah_pembayaran, jatuh_tempo, keterangan AS keterangan_spp');
$this->db->from('tb_informasi_spp_santri');
$this->db->where('id_santri', $result->id_santri);
$spp_result = $this->db->get()->result();
foreach ($spp_result as $row) {
$santri_data['informasi_spp_santri'][] = [
'nama_santri' => $row->nama_santri,
'bulan' => $row->bulan,
'tahun' => $row->tahun,
'jumlah_pembayaran' => $row->jumlah_pembayaran,
'jatuh_tempo' => $row->jatuh_tempo,
'keterangan' => $row->keterangan_spp
];
}
return $santri_data;
}
public function delete($where, $table)
{
$this->db->where($where);
$this->db->delete($table);
}
}