<?php

//Hak Cipta dilindungi Undang-undang. Hak Cipta : Khamdi Rahmani, Reg. Kemenkum HAM No : 000121327. Dilarang merubah isi File tanpa ijin tertulis dari pemegang Hak Cipta. 

class listTanggungan
{
    use cekKolom;

    public function fieldTanggungan($table, $key, $id, $kode)
    {
        $db = database::getInstance();
        $show = $db->runQuery("SELECT * FROM  {$table}  WHERE {$key} = '{$id}'");
        $data = $show->fetch(PDO::FETCH_OBJ);
        $field = "tang_" . $kode;
        if ($this->cekKolom($table,  $field) > 0 and $data->$field != "") {
            $value = $data->$field;
        } else {
            $value = 0;
        };
        return $value;
    }
    public function tanggunganSiswa($table, $key, $id)
    {
        $a = $this->fieldTanggungan($table, $key, $id, 'A');
        $b = $this->fieldTanggungan($table, $key, $id, 'B');
        $c = $this->fieldTanggungan($table, $key, $id, 'C');
        $d = $this->fieldTanggungan($table, $key, $id, 'D');
        $e = $this->fieldTanggungan($table, $key, $id, 'E');
        $f = $this->fieldTanggungan($table, $key, $id, 'F');
        $g = $this->fieldTanggungan($table, $key, $id, 'G');
        $h = $this->fieldTanggungan($table, $key, $id, 'H');
        $i = $this->fieldTanggungan($table, $key, $id, 'I');
        $j = $this->fieldTanggungan($table, $key, $id, 'J');
        $k = $this->fieldTanggungan($table, $key, $id, 'K');
        $l = $this->fieldTanggungan($table, $key, $id, 'L');
        $m = $this->fieldTanggungan($table, $key, $id, 'M');
        $n = $this->fieldTanggungan($table, $key, $id, 'N');
        $o = $this->fieldTanggungan($table, $key, $id, 'O');
        $p = $this->fieldTanggungan($table, $key, $id, 'P');
        $q = $this->fieldTanggungan($table, $key, $id, 'Q');
        $r = $this->fieldTanggungan($table, $key, $id, 'R');
        $s = $this->fieldTanggungan($table, $key, $id, 'S');
        $t = $this->fieldTanggungan($table, $key, $id, 'T');
        $u = $this->fieldTanggungan($table, $key, $id, 'U');
        $v = $this->fieldTanggungan($table, $key, $id, 'V');
        $w = $this->fieldTanggungan($table, $key, $id, 'W');
        $x = $this->fieldTanggungan($table, $key, $id, 'X');
        $y = $this->fieldTanggungan($table, $key, $id, 'Y');
        $z = $this->fieldTanggungan($table, $key, $id, 'Z');

        $jumlah_tangg = @($a + $b + $c + $d + $e + $f + $g + $h + $i + $j + $k + $l + $m + $n + $o + $p + $q + $r + $s + $t + $u + $v + $w + $x + $y + $z);

        if ($jumlah_tangg == "" || $jumlah_tangg  == 0) {
            $jumlah_tangg = 0;
        } else {
            $jumlah_tangg = $jumlah_tangg;
        };
        return $jumlah_tangg;
    }

    public function fieldTanggunganClause($table, $clause, $kode)
    {
        $db = database::getInstance();
        $kode = $db->runQuery("SELECT SUM(tang_{$kode})  FROM   {$table}   where {$clause}");
        $kode = $kode->fetch();
        $value = $kode[0];
        return $value;
    }

    public function tanggunganSiswaIf($table, $clause)
    {
        $a = $this->fieldTanggunganClause($table, $clause, 'A');
        $b = $this->fieldTanggunganClause($table, $clause, 'B');
        $c = $this->fieldTanggunganClause($table, $clause, 'C');
        $d = $this->fieldTanggunganClause($table, $clause, 'D');
        $e = $this->fieldTanggunganClause($table, $clause, 'E');
        $f = $this->fieldTanggunganClause($table, $clause, 'F');
        $g = $this->fieldTanggunganClause($table, $clause, 'G');
        $h = $this->fieldTanggunganClause($table, $clause, 'H');
        $i = $this->fieldTanggunganClause($table, $clause, 'I');
        $j = $this->fieldTanggunganClause($table, $clause, 'J');
        $k = $this->fieldTanggunganClause($table, $clause, 'K');
        $l = $this->fieldTanggunganClause($table, $clause, 'L');
        $m = $this->fieldTanggunganClause($table, $clause, 'M');
        $n = $this->fieldTanggunganClause($table, $clause, 'N');
        $o = $this->fieldTanggunganClause($table, $clause, 'O');
        $p = $this->fieldTanggunganClause($table, $clause, 'P');
        $q = $this->fieldTanggunganClause($table, $clause, 'Q');
        $r = $this->fieldTanggunganClause($table, $clause, 'R');
        $s = $this->fieldTanggunganClause($table, $clause, 'S');
        $t = $this->fieldTanggunganClause($table, $clause, 'T');
        $u = $this->fieldTanggunganClause($table, $clause, 'U');
        $v = $this->fieldTanggunganClause($table, $clause, 'V');
        $w = $this->fieldTanggunganClause($table, $clause, 'W');
        $x = $this->fieldTanggunganClause($table, $clause, 'X');
        $y = $this->fieldTanggunganClause($table, $clause, 'Y');
        $z = $this->fieldTanggunganClause($table, $clause, 'Z');

        $jumlah_tangg = @($a + $b + $c + $d + $e + $f + $g + $h + $i + $j + $k + $l + $m + $n + $o + $p + $q + $r + $s + $t + $u + $v + $w + $x + $y + $z);
        return $jumlah_tangg;
    }

    public function tanggunganSiswaByNIS($table, $nis)
    {
        $a = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'A');
        $b = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'B');
        $c = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'C');
        $d = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'D');
        $e = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'E');
        $f = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'F');
        $g = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'G');
        $h = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'H');
        $i = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'I');
        $j = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'J');
        $k = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'K');
        $l = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'L');
        $m = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'M');
        $n = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'N');
        $o = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'O');
        $p = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'P');
        $q = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'Q');
        $r = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'R');
        $s = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'S');
        $t = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'T');
        $u = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'U');
        $v = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'V');
        $w = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'W');
        $x = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'X');
        $y = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'Y');
        $z = $this->fieldTanggunganClause($table, "nis='{$nis}'", 'Z');

        $jumlah_tangg = @($a + $b + $c + $d + $e + $f + $g + $h + $i + $j + $k + $l + $m + $n + $o + $p + $q + $r + $s + $t + $u + $v + $w + $x + $y + $z);
        return $jumlah_tangg;
    }

    public function tanggunganByKode($table, $key, $id, $kode)
    {
        if ($kode == "Semua") {
            $value = $this->tanggunganSiswa($table, $key, $id);
        } else {
            $field = "tang_" . $kode;
            $db = database::getInstance();
            $show = $db->runQuery("SELECT * FROM   {$table}  WHERE {$key} = '$id' ");
            $data = $show->fetch(PDO::FETCH_OBJ);
            $value = @($data->$field);
        }
        return $value;
    }

    public function sumTanggunganByFilter($tabel, $jenjang, $paralel, $kode)
    {
        if ($jenjang == "Semua" and $paralel == "Semua") {
            $v_kelas = "jenjang!=''";
        } elseif ($jenjang == "Semua" and $paralel != "Semua") {
            $v_kelas = "paralel='{$paralel}'";
        } elseif ($jenjang != "Semua" and $paralel == "Semua") {
            $v_kelas = "jenjang='{$jenjang}'";
        } elseif ($jenjang != "Semua" and $paralel != "Semua") {
            $v_kelas = "jenjang='{$jenjang}' and paralel='{$paralel}'";
        } else {
            $v_kelas = "jenjang!=''";
        };

        if ($kode == "Semua") {
            $value = $this->tanggunganSiswaIf($tabel, $v_kelas);
        } else {
            $field = "tang_" . $kode;
            $db = database::getInstance();
            $show = $db->runQuery("SELECT SUM($field)  FROM  {$tabel} where $v_kelas and $field>0");
            $data = $show->fetch();
            $value = $data[0];
        }
        return $value;
    }

    //Laporan Rekapitulasi
    public function sumTanggunganByFilterRekap($tabel, $jenjang, $paralel, $status, $kode)
    {
        if ($jenjang == "Semua" and $paralel == "Semua") {
            $v_kelas = "jenjang!=''";
        } elseif ($jenjang == "Semua" and $paralel != "Semua") {
            $v_kelas = "paralel='{$paralel}'";
        } elseif ($jenjang != "Semua" and $paralel == "Semua") {
            $v_kelas = "jenjang='{$jenjang}'";
        } elseif ($jenjang != "Semua" and $paralel != "Semua") {
            $v_kelas = "jenjang='{$jenjang}' and paralel='{$paralel}'";
        } else {
            $v_kelas = "jenjang!=''";
        };

        if ($status == "Semua") {
            $v_status = "";
        } else {
            $v_status = "and status='{$status}'";
        };

        if ($kode == "Semua") {
            $value = $this->tanggunganSiswaIf($tabel, $v_kelas . " " . $v_status);
        } else {
            $field = "tang_" . $kode;
            $db = database::getInstance();
            $show = $db->runQuery("SELECT SUM($field)  FROM  {$tabel} where $v_kelas and $field>0 $v_status");
            $data = $show->fetch();
            $value = $data[0];
        }
        return $value;
    }

    //TANGGUNGAN ON PERIODE
    public function fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, $kolom)
    {
        $db = database::getInstance();
        //bulanan?
        $namaBayar = new namaBayar();
        $bulanan = $namaBayar->cekBulanan($tahun, $kolom, $jenjang);

        if ($jenjang == "Semua" and $paralel == "Semua") {
            $v_kelas = "jenjang!=''";
        } elseif ($jenjang == "Semua" and $paralel != "Semua") {
            $v_kelas = "paralel='{$paralel}'";
        } elseif ($jenjang != "Semua" and $paralel == "Semua") {
            $v_kelas = "jenjang='{$jenjang}'";
        } elseif ($jenjang != "Semua" and $paralel != "Semua") {
            $v_kelas = "jenjang='{$jenjang}' and paralel='{$paralel}'";
        } else {
            $v_kelas = "jenjang!=''";
        };

        if ($status == "Semua") {
            $v_status = "";
        } else {
            $v_status = "and status='{$status}'";
        };

        $kode = $db->runQuery("SELECT SUM(tang_{$kolom})  FROM  {$table} where $v_kelas $v_status");
        $kode = $kode->fetch();
        $value = $kode[0];

        if ($bulanan == 1) {
            $value = $value;
        } else {
            $value = 0;
        };
        return $value;
    }

    public function tanggunganSiswaOnPeriode($tahun, $jenjang, $paralel, $status, $table)
    {
        $a = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'A');
        $b = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'B');
        $c = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'C');
        $d = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'D');
        $e = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'E');
        $f = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'F');
        $g = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'G');
        $h = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'H');
        $i = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'I');
        $j = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'J');
        $k = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'K');
        $l = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'L');
        $m = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'M');
        $n = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'N');
        $o = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'O');
        $p = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'P');
        $q = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'Q');
        $r = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'R');
        $s = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'S');
        $t = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'T');
        $u = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'U');
        $v = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'V');
        $w = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'W');
        $x = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'X');
        $y = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'Y');
        $z = $this->fieldTanggunganOnPeriode($tahun, $jenjang, $paralel, $status, $table, 'Z');

        $jumlah_tangg = @($a + $b + $c + $d + $e + $f + $g + $h + $i + $j + $k + $l + $m + $n + $o + $p + $q + $r + $s + $t + $u + $v + $w + $x + $y + $z);

        return $jumlah_tangg;
    }

    public function fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, $kode)
    {
        $db = database::getInstance();
        //bulanan?
        $namaBayar = new namaBayar();
        $bulanan = $namaBayar->cekBulanan($tahun, $kode, $jenjang);

        $show = $db->runQuery("SELECT * FROM  {$table}  WHERE {$key} = '{$id}'");
        $data = $show->fetch(PDO::FETCH_OBJ);
        $field = "tang_" . $kode;
        if ($this->cekKolom($table,  $field) > 0 and $data->$field != "" and $bulanan == 1) {
            $value = $data->$field;
        } else {
            $value = 0;
        };

        return $value;
    }

    public function tanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id)
    {

        $a = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'A');
        $b = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'B');
        $c = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'C');
        $d = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'D');
        $e = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'E');
        $f = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'F');
        $g = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'G');
        $h = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'H');
        $i = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'I');
        $j = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'J');
        $k = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'K');
        $l = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'L');
        $m = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'M');
        $n = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'N');
        $o = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'O');
        $p = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'P');
        $q = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'Q');
        $r = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'R');
        $s = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'S');
        $t = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'T');
        $u = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'U');
        $v = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'V');
        $w = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'W');
        $x = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'X');
        $y = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'Y');
        $z = $this->fieldTanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id, 'Z');

        $jumlah_tangg = @($a + $b + $c + $d + $e + $f + $g + $h + $i + $j + $k + $l + $m + $n + $o + $p + $q + $r + $s + $t + $u + $v + $w + $x + $y + $z);

        if ($jumlah_tangg == "" || $jumlah_tangg  == 0) {
            $jumlah_tangg = 0;
        } else {
            $jumlah_tangg = $jumlah_tangg;
        };
        return $jumlah_tangg;
    }


    public function tanggunganByKodeOnPeriode($tahun,  $jenjang, $table, $key, $id, $kode)
    {
        if ($kode == "Semua") {
            $value = $this->tanggunganByNISOnPeriode($tahun, $jenjang, $table, $key, $id);
        } else {
            $field = "tang_" . $kode;
            $db = database::getInstance();
            $show = $db->runQuery("SELECT * FROM   {$table}  WHERE {$key} = '$id' ");
            $data = $show->fetch(PDO::FETCH_OBJ);
            $value = @($data->$field);
        }
        return $value;
    }

    public function sumTanggunganOnPeriode($tahun, $tabel, $jenjang, $paralel, $status, $kode, $jml_bulan)
    {
        if ($jenjang == "Semua" and $paralel == "Semua") {
            $v_kelas = "jenjang!=''";
        } elseif ($jenjang == "Semua" and $paralel != "Semua") {
            $v_kelas = "paralel='{$paralel}'";
        } elseif ($jenjang != "Semua" and $paralel == "Semua") {
            $v_kelas = "jenjang='{$jenjang}'";
        } elseif ($jenjang != "Semua" and $paralel != "Semua") {
            $v_kelas = "jenjang='{$jenjang}' and paralel='{$paralel}'";
        } else {
            $v_kelas = "jenjang!=''";
        };

        if ($status == "Semua") {
            $v_status = "";
        } else {
            $v_status = "and status='{$status}'";
        };


        $field = "tang_" . $kode;
        $db = database::getInstance();

        if ($kode == "Semua") {
            $value = $this->tanggunganSiswaOnPeriode($tahun, $jenjang, $paralel, $status, $tabel);
        } else {

            $show = $db->runQuery("SELECT SUM($field)  FROM  {$tabel} where $v_kelas and $field>0  $v_status");
            $data = $show->fetch();
            $value = $data[0];
        }
        $value = @(($value / 12) * $jml_bulan);
        return $value;
    }
}
