load->model('model'); $this->load->library('Pdf'); // $this->db->query("SET sql_mode = '' "); date_default_timezone_set("Asia/Kuala_Lumpur"); } public function index_get() { $this->response(['message' => 'Halo Bosku', 'status' => true], 200); // redirect(base_url()); } public function index_post() { $this->response(['message' => 'Halo Bosku post', 'status' => true], 400); // redirect(base_url()); } // ----------------------------------------------------------------------------------------------------------- public function siswa_post() { $nama = $this->post('nama'); $jenis_kelamin = $this->post('jenis_kelamin'); $tanggal_lahir = $this->post('tanggal_lahir'); $tempat_lahir = $this->post('tempat_lahir'); $alamat = $this->post('alamat'); $no_telpon = $this->post('no_telpon'); $agama = $this->post('agama'); $kewarganegaraan = $this->post('kewarganegaraan'); $pendidikan_sd = $this->post('pendidikan_sd'); $pendidikan_smp = $this->post('pendidikan_smp'); $pendidikan_sma = $this->post('pendidikan_sma'); $kemampuan = $this->post('kemampuan'); $hobi = $this->post('hobi'); $foto = $_FILES['foto']; $cek_last_ai = $this->model->cek_last_ai('tb_siswa'); $upload_dir = 'assets/siswa/' . $cek_last_ai . '/'; if (!is_dir($upload_dir)) { mkdir($upload_dir); } $path = $upload_dir . $foto['name']; move_uploaded_file($foto['tmp_name'], $path); $array = [ 'nama' => $nama, 'jenis_kelamin' => $jenis_kelamin, 'tanggal_lahir' => $tanggal_lahir, 'tempat_lahir' => $tempat_lahir, 'alamat' => $alamat, 'no_telpon' => $no_telpon, 'agama' => $agama, 'kewarganegaraan' => $kewarganegaraan, 'pendidikan_sd' => $pendidikan_sd, 'pendidikan_smp' => $pendidikan_smp, 'pendidikan_sma' => $pendidikan_sma, 'kemampuan' => $kemampuan, 'hobi' => $hobi, 'img_url' => $path ]; $this->model->insert('tb_siswa', $array); $this->response(['message' => 'ini untuk siswa post', 'status' => $array], 200); } public function siswa_get() { $data = $this->model->custom_query("SELECT * FROM tb_siswa ORDER BY nama Asc")->result(); $this->response(['message' => 'ini untuk siswa get', 'status' => true, 'data' => $data], 200); } public function siswa_detail_get() { $id = $this->get('id'); $data = $this->model->tampil_data_where('tb_siswa', ['id_siswa' => $id])->result(); if (count($data) == 0) return $this->response(['message' => 'data tidak ditemukan', 'status' => false], 200); $this->response(['message' => 'ini untuk siswa get', 'status' => true, 'data' => $data[0]], 200); } public function siswa_edit_post() { $id = $this->get('id'); $nama = $this->post('nama'); $tanggal_lahir = $this->post('tanggal_lahir'); $tempat_lahir = $this->post('tempat_lahir'); $jenis_kelamin = $this->post('jenis_kelamin'); $alamat = $this->post('alamat'); $no_telpon = $this->post('no_telpon'); $agama = $this->post('agama'); $kewarganegaraan = $this->post('kewarganegaraan'); $pendidikan_sd = $this->post('pendidikan_sd'); $pendidikan_smp = $this->post('pendidikan_smp'); $pendidikan_sma = $this->post('pendidikan_sma'); $kemampuan = $this->post('kemampuan'); $hobi = $this->post('hobi'); $cek_data = $this->model->tampil_data_where('tb_siswa', ['id_siswa' => $id])->result(); if (count($cek_data) == 0) return $this->response(['message' => 'data tidak ditemukan', 'status' => false], 400); $array = [ 'nama' => $nama, 'tanggal_lahir' => $tanggal_lahir, 'tempat_lahir' => $tempat_lahir, 'jenis_kelamin' => $jenis_kelamin, 'alamat' => $alamat, 'no_telpon' => $no_telpon, 'agama' => $agama, 'kewarganegaraan' => $kewarganegaraan, 'pendidikan_sd' => $pendidikan_sd, 'pendidikan_smp' => $pendidikan_smp, 'pendidikan_sma' => $pendidikan_sma, 'kemampuan' => $kemampuan, 'hobi' => $hobi ]; $this->model->update('tb_siswa', ['id_siswa' => $id], $array); $this->response(['message' => 'ini untuk update siswa', 'status' => true], 200); } // siswa delete public function siswa_delete_post() { $id = $this->post('id'); $cek_data = $this->model->tampil_data_where('tb_siswa', ['id_siswa' => $id])->result(); if (count($cek_data) == 0) return $this->response(['message' => 'data tidak ditemukan', 'status' => false], 400); // delete the folder $upload_dir = 'assets/siswa/' . $id . '/'; if (is_dir($upload_dir)) { array_map('unlink', glob("$upload_dir/*.*")); rmdir($upload_dir); } $this->model->delete('tb_siswa', ['id_siswa' => $id]); $this->response(['message' => 'ini untuk siswa delete', 'status' => true], 200); } public function dana_sosial_post() { $nama = $this->post('nama') == '' ? null : $this->post('nama'); $jumlah = $this->post('jumlah') == '' ? null : $this->post('jumlah'); $jumlah_barang = $this->post('jumlah_barang') == '' ? null : $this->post('jumlah_barang'); $tanggal = $this->post('tanggal'); $ket = $this->post('ket') == '' ? null : $this->post('ket'); $jenis = $this->post('jenis'); $bentuk = $this->post('bentuk'); $jenis_barang = $this->post('jenis_barang'); $satuan = $this->post('satuan'); $jumlah_barang = $this->post('jumlah_barang'); $array = [ 'nama' => $nama, 'jumlah' => $jumlah ?? $jumlah_barang, 'tanggal' => $tanggal, 'ket' => $ket, 'jenis' => $jenis, 'bentuk' => $bentuk, 'jenis_barang' => $jenis_barang, 'satuan' => $satuan, 'jumlah_barang' => $jumlah_barang ]; $this->model->insert('tb_dana_sosial', $array); $this->response(['message' => 'ini untuk dana sosial', 'status' => true], 200); } public function dana_sosial_khusus_post() { $donatur = $this->post('donatur') == '' ? null : $this->post('donatur'); $jumlah = $this->post('jumlah') == '' ? null : $this->post('jumlah'); $tanggal = $this->post('tanggal'); $ket = $this->post('ket') == '' ? null : $this->post('ket'); $jenis = $this->post('jenis'); $bentuk = $this->post('bentuk'); $jenis_barang = $this->post('jenis_barang'); $satuan = $this->post('satuan'); $jumlah_barang = $this->post('jumlah_barang'); $array = [ 'id_donatur' => $donatur, 'jumlah' => $jumlah, 'tanggal' => $tanggal, 'ket' => $ket, 'jenis' => $jenis, 'bentuk' => $bentuk, 'jenis_barang' => $jenis_barang, 'satuan' => $satuan, 'jumlah_barang' => $jumlah_barang ]; $query = $this->model->insert('tb_dana_sosial_khusus', $array); if ($query) { $this->response(['message' => 'ini untuk dana sosial', 'status' => true], 200); } else { $this->response(['message' => 'ini untuk dana sosial', 'status' => false], 400); } } public function dana_sosial_get() { // $data = $this->model->tampil_data_keseluruhan('tb_dana_sosial')->result(); $data = $this->model->custom_query("SELECT * FROM tb_dana_sosial ORDER BY nama Asc")->result(); $this->response(['message' => 'ini untuk dana sosial get', 'status' => true, 'data' => $data], 200); } // ini untuk khusus public function dana_sosial_khusus_get() { // $data = $this->model->tampil_data_keseluruhan('tb_dana_sosial')->result(); $data = $this->model->custom_query("SELECT a.*, b.nama_donatur as nama FROM tb_dana_sosial_khusus a join tb_donatur b on a.id_donatur = b.id_donatur ORDER BY b.nama_donatur Asc")->result(); $this->response(['message' => 'ini untuk dana sosial get', 'status' => true, 'data' => $data], 200); } public function dana_sosial_detail_get() { $id = $this->get('id'); $data = $this->model->tampil_data_where('tb_dana_sosial', ['id_dana_sosial' => $id])->result(); if (count($data) == 0) return $this->response(['message' => 'data tidak ditemukan', 'status' => false], 400); $this->response(['message' => 'ini untuk dana sosial get', 'status' => true, 'data' => $data[0]], 200); } public function dana_sosial_khusus_detail_get() { $id = $this->get('id'); $data = $this->model->custom_query("SELECT a.*, b.nama_donatur as nama FROM tb_dana_sosial_khusus a join tb_donatur b on a.id_donatur = b.id_donatur where a.id_dana_sosial = $id")->result(); if (count($data) == 0) return $this->response(['message' => 'data tidak ditemukan', 'status' => false], 400); $this->response(['message' => 'ini untuk dana sosial get', 'status' => true, 'data' => $data[0]], 200); } public function filter_dana_post() { $sql = $this->post('sql'); $data = $this->model->custom_query($sql)->result(); $jumlah_donasi = 0; $jumlah_pengeluaran = 0; foreach ($data as $d) { if ($d->bentuk == 'Pemasukan') { $jumlah_donasi += $d->jumlah; } if ($d->bentuk == 'Pengeluaran') { $jumlah_pengeluaran += $d->jumlah; } } $this->response(['message' => 'ini untuk filter dana', 'status' => true, 'data' => $data, 'jumlah_donasi' => $jumlah_donasi, 'jumlah_pengeluaran' => $jumlah_pengeluaran], 200); } public function filter_dana_khusus_post() { $sql = $this->post('sql'); $data = $this->model->custom_query($sql)->result(); $jumlah_donasi = 0; $jumlah_pengeluaran = 0; foreach ($data as $d) { if ($d->bentuk == 'Pemasukan') { $jumlah_donasi += $d->jumlah; } if ($d->bentuk == 'Pengeluaran') { $jumlah_pengeluaran += $d->jumlah; } } $this->response(['message' => 'ini untuk filter dana', 'status' => true, 'data' => $data, 'jumlah_donasi' => $jumlah_donasi, 'jumlah_pengeluaran' => $jumlah_pengeluaran], 200); } public function hapus_dana_sosial_post() { $id_dana_sosial = $this->post('id_dana_sosial'); $cek_data = $this->model->tampil_data_where('tb_dana_sosial', ['id_dana_sosial' => $id_dana_sosial])->result(); if (count($cek_data) == 0) return $this->response(['message' => 'data tidak ditemukan', 'status' => false], 400); $this->model->delete('tb_dana_sosial', ['id_dana_sosial' => $id_dana_sosial]); $this->response(['message' => 'ini untuk hapus dana sosial', 'status' => true], 200); } public function hapus_dana_sosial_khusus_post() { $id_dana_sosial = $this->post('id_dana_sosial'); $cek_data = $this->model->tampil_data_where('tb_dana_sosial_khusus', ['id_dana_sosial' => $id_dana_sosial])->result(); if (count($cek_data) == 0) return $this->response(['message' => 'data tidak ditemukan', 'status' => false], 400); $this->model->delete('tb_dana_sosial_khusus', ['id_dana_sosial' => $id_dana_sosial]); $this->response(['message' => 'ini untuk hapus dana sosial', 'status' => true], 200); } public function dana_sosial_ttd_post() { $id = $this->post('id'); $cek_data = $this->model->tampil_data_where('tb_dana_sosial', ['id_dana_sosial' => $id])->result(); if (count($cek_data) == 0) return $this->response(['message' => 'data tidak ditemukan', 'status' => false], 400); $this->model->update('tb_dana_sosial', ['id_dana_sosial' => $id], ['status' => 1]); $this->response(['message' => 'ini untuk dana sosial ttd', 'status' => true], 200); } public function dana_sosial_khusus_ttd_post() { $id = $this->post('id'); $cek_data = $this->model->tampil_data_where('tb_dana_sosial_khusus', ['id_dana_sosial' => $id])->result(); if (count($cek_data) == 0) return $this->response(['message' => 'data tidak ditemukan', 'status' => false], 400); $this->model->update('tb_dana_sosial_khusus', ['id_dana_sosial' => $id], ['status' => 1]); $this->response(['message' => 'ini untuk dana sosial ttd', 'status' => true], 200); } public function edit_jabatan_post() { $jabatan = $this->post('jabatan'); $jumlah = $this->post('jumlah'); // change jumlah to int $jumlah = (int)$jumlah; $cek_data = $this->model->tampil_data_where('tb_jabatan', ['jabatan' => $jabatan])->result(); for ($j = 0; $j < count($cek_data); $j++) { // delete folder $upload_dir = 'assets/jabatan/' . $cek_data[$j]->id . '/'; if (is_dir($upload_dir)) { $files = glob($upload_dir . '*'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } rmdir($upload_dir); } } $this->model->delete('tb_jabatan', ['jabatan' => $jabatan]); for ($i = 1; $i <= $jumlah; $i++) { $nama = $this->post('nama' . $i); $foto = $_FILES['image' . $i]; $cek_last_ai = $this->model->cek_last_ai('tb_jabatan'); $upload_dir = 'assets/jabatan/' . $cek_last_ai . '/'; if (!is_dir($upload_dir)) { mkdir($upload_dir); } $path = $upload_dir . $foto['name']; move_uploaded_file($foto['tmp_name'], $path); $array = [ 'jabatan' => $jabatan, 'nama' => $nama, 'img_url' => $path ]; $this->model->insert('tb_jabatan', $array); } $this->response(['message' => $cek_data, 'status' => true], 200); } public function jabatan_get() { $jabatan = $this->get('jabatan'); $data = $this->model->tampil_data_where('tb_jabatan', ['jabatan' => $jabatan])->result(); $this->response(['message' => 'ini untuk jabatan get', 'status' => true, 'data' => $data], 200); } public function pemasukan_get() { $bulan = $this->get('bulan'); // get this year $tahun = date('Y'); $sql = "SELECT * FROM tb_dana_sosial where tanggal like '$tahun-$bulan%' and bentuk = 'Pemasukan' and jenis = 'Uang'"; $data = $this->model->custom_query($sql)->result(); $jumlah = 0; foreach ($data as $d) { $jumlah += $d->jumlah; } $sql_pengeluaran = "SELECT * FROM tb_dana_sosial where tanggal like '$tahun-$bulan%' and bentuk = 'Pengeluaran' and jenis = 'Uang'"; $data_pengeluaran = $this->model->custom_query($sql_pengeluaran)->result(); $jumlah_pengeluaran = 0; foreach ($data_pengeluaran as $d) { $jumlah_pengeluaran += $d->jumlah; } $this->response(['message' => 'ini untuk pemasukan get', 'status' => true, 'data' => $data, 'jumlah' => $jumlah, 'jumlah_pengeluaran' => $jumlah_pengeluaran], 200); } public function pemasukan_khusus_get() { $bulan = $this->get('bulan'); // get this year $tahun = date('Y'); $sql = "SELECT * FROM tb_dana_sosial_khusus where tanggal like '$tahun-$bulan%' and bentuk = 'Pemasukan' and jenis = 'Uang'"; $data = $this->model->custom_query($sql)->result(); $jumlah = 0; foreach ($data as $d) { $jumlah += $d->jumlah; } $sql_pengeluaran = "SELECT * FROM tb_dana_sosial where tanggal like '$tahun-$bulan%' and bentuk = 'Pengeluaran' and jenis = 'Uang'"; $data_pengeluaran = $this->model->custom_query($sql_pengeluaran)->result(); $jumlah_pengeluaran = 0; foreach ($data_pengeluaran as $d) { $jumlah_pengeluaran += $d->jumlah; } $this->response(['message' => 'ini untuk pemasukan get', 'status' => true, 'data' => $data, 'jumlah' => $jumlah, 'jumlah_pengeluaran' => $jumlah_pengeluaran], 200); } public function jumlah_siswa_get() { $sql = "SELECT count(*) as jumlah FROM tb_siswa"; $data = $this->model->custom_query($sql)->result(); $this->response(['message' => 'ini untuk jumlah siswa get', 'status' => true, 'data' => $data[0]], 200); } public function donatur_post() { $nama_donatur = $this->post('nama_donatur'); $cek_data = $this->model->tampil_data_where('tb_donatur', ['nama_donatur' => $nama_donatur])->result(); if (count($cek_data) > 0) return $this->response(['message' => 'data sudah ada', 'status' => false], 400); $this->model->insert('tb_donatur', ['nama_donatur' => $nama_donatur]); $this->response(['message' => 'ini untuk tambah donatur', 'status' => true], 200); } public function donatur_get() { $data = $this->model->tampil_data_keseluruhan('tb_donatur')->result(); $this->response(['message' => 'ini untuk donatur get', 'status' => true, 'data' => $data, 'jumlah' => count($data)], 200); } public function laporan_bulanan_get() { $bulan = $this->get('bulan'); $tahun = $this->get('tahun'); $bulan_num = $bulan; $data = $this->model->custom_query("SELECT * FROM tb_dana_sosial where tanggal like '$tahun-$bulan%' order by tanggal asc")->result(); $bulan = $this->bulan_name($bulan); $pdf = new Pdf('P', 'mm', 'LEGAL'); $pdf->AddPage(); $pdf->SetFont('times'); // $pdf->SetMargins(0, 0, 0); // make th center and $html = "

LAPORAN BULANAN


Bulan $bulan, Tahun $tahun

"; foreach ($data as $d) { $tanggal = $this->date_formatter($d->tanggal); $html .= ""; } $html .= "
Tanggal Bentuk Bentuk Jumlah / Satuan
$tanggal $d->bentuk $d->jenis "; if ($d->jenis == 'Uang') { $html .= "Rp. " . number_format($d->jumlah, 0, ',', '.'); } else { $html .= "$d->jenis_barang $d->jumlah $d->satuan"; } $html .= "
"; $pdf->writeHTML($html); // save to pdf folder $pdf->Output(__DIR__ . '/../../assets/pdf/laporan_bulanan_' . $bulan_num . ',' . $tahun . '.pdf', 'F'); // $pdf->Output('laporan_bulanan'.$bulan.', '.$tahun.'.pdf', 'I'); return $this->response(['message' => 'ini untuk laporan bulanan', 'status' => true], 200); } function laporan_harian_get() { $tanggal = $this->get('tanggal'); $hari = $this->get('hari'); $data = $this->model->custom_query("SELECT * FROM tb_dana_sosial where tanggal = '$tanggal'")->result(); $tanggal_format = $this->date_formatter($tanggal); $pdf = new Pdf('P', 'mm', 'LEGAL'); $pdf->AddPage(); $pdf->SetFont('times'); // $pdf->SetMargins(0, 0, 0); // make th center and $html = "

LAPORAN HARIAN


Hari $hari, Tanggal $tanggal_format

"; foreach ($data as $d) { $html .= ""; } $html .= "
Tanggal Bentuk Bentuk Jumlah / Satuan
$d->tanggal $d->bentuk $d->jenis "; if ($d->jenis == 'Uang') { $html .= "Rp. " . number_format($d->jumlah, 0, ',', '.'); } else { $html .= "$d->jenis_barang $d->jumlah $d->satuan"; } $html .= "
"; $pdf->writeHTML($html); // save to pdf folder $pdf->Output(__DIR__ . '/../../assets/pdf/laporan_harian_' . $hari . ',' . $tanggal . '.pdf', 'F'); // $pdf->Output('laporan_harian'.$hari.', '.$tanggal_format.'.pdf', 'I'); return $this->response(['message' => 'ini untuk laporan harian', 'status' => true], 200); } function laporan_tahunan_get() { $tahun = $this->get('tahun'); $data = $this->model->custom_query("SELECT * FROM tb_dana_sosial where year(tanggal) = '$tahun'")->result(); $pdf = new Pdf('P', 'mm', 'LEGAL'); $pdf->AddPage(); $pdf->SetFont('times'); // $pdf->SetMargins(0, 0, 0); // make th center and $html = "

LAPORAN TAHUNAN


Tahun $tahun

"; foreach ($data as $d) { $html .= ""; } $html .= "
Tanggal Bentuk Bentuk Jumlah / Satuan
$d->tanggal $d->bentuk $d->jenis "; if ($d->jenis == 'Uang') { $html .= "Rp. " . number_format($d->jumlah, 0, ',', '.'); } else { $html .= "$d->jenis_barang $d->jumlah $d->satuan"; } $html .= "
"; $pdf->writeHTML($html); // save to pdf folder $pdf->Output(__DIR__ . '/../../assets/pdf/laporan_tahunan_' . $tahun . '.pdf', 'F'); // $pdf->Output('laporan_tahunan'.$tahun.'.pdf', 'I'); return $this->response(['message' => 'ini untuk laporan tahunan', 'status' => true], 200); } function data_tahunan_get() { $data = $this->model->custom_query("SELECT * FROM tb_dana_sosial")->result(); $new_data = []; // kumpulkan nilai pemasukkan dan pengeluaran berdasarkan tahun // make teh data like [["tahun" => 2021, "pemasukan" => 1000, "pengeluaran" => 2000], ["tahun" => 2022, "pemasukan" => 2000, "pengeluaran" => 3000], ...] foreach ($data as $d) { $year = date('Y', strtotime($d->tanggal)); $pemasukan = 0; $pengeluaran = 0; if ($d->bentuk == 'Pemasukan' and $d->jenis == 'Uang') { $pemasukan += $d->jumlah; } else if ($d->bentuk == 'Pengeluaran' and $d->jenis == 'Uang') { $pengeluaran += $d->jumlah; } if (count($new_data) == 0) { array_push($new_data, ["tahun" => $year, "pemasukan" => $pemasukan, "pengeluaran" => $pengeluaran]); } else { if ($new_data[count($new_data) - 1]['tahun'] == $year) { $new_data[count($new_data) - 1]['pemasukan'] += $pemasukan; $new_data[count($new_data) - 1]['pengeluaran'] += $pengeluaran; } else { array_push($new_data, ["tahun" => $year, "pemasukan" => $pemasukan, "pengeluaran" => $pengeluaran]); } } } $this->response(['message' => 'ini untuk data tahunan', 'status' => true, 'data' => $new_data], 200); } function bulan_name($number) { $number = (int)$number; $arr = ['', 'Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember']; return $arr[$number]; } function date_formatter($tgl) { // dd-mm-yyyy $arr = explode('-', $tgl); return $arr[2] . '-' . $arr[1] . '-' . $arr[0]; } }