public function get_elem_per_pb(Penerima $pb, $lunas = false) { $sql = "SELECT a.KD_D_ELEM_BEASISWA AS KD_D_ELEM_BEASISWA,\r\n b.NM_ELEM_BEASISWA as KD_R_ELEM_BEASISWA,\r\n a.JML_PEG_D_ELEM_BEASISWA as JML_PEG_D_ELEM_BEASISWA,\r\n a.BLN_D_ELEM_BEASISWA as BLN_D_ELEM_BEASISWA,\r\n a.THN_D_ELEM_BEASISWA as THN_D_ELEM_BEASISWA,\r\n a.TOTAL_BAYAR_D_ELEM_BEASISWA as TOTAL_BAYAR_D_ELEM_BEASISWA,\r\n c.KD_PB as KD_PB,\r\n a.NO_SP2D_D_ELEM_BEASISWA as NO_SP2D_D_ELEM_BEASISWA\r\n FROM " . $this->_table . " a \r\n LEFT JOIN r_elem_beasiswa b ON a.KD_R_ELEM_BEASISWA = b.KD_R_ELEM_BEASISWA\r\n LEFT JOIN t_elem_beasiswa c ON a.KD_D_ELEM_BEASISWA = c.KD_D_ELEM_BEASISWA\r\n WHERE c.KD_PB=" . $pb->get_kd_pb(); if ($lunas) { $sql .= " AND a.NO_SP2D_D_ELEM_BEASISWA<>NULL"; } $result = $this->db->select($sql); $data = array(); foreach ($result as $v) { $elem = new $this($this->registry); $elem->set_kd_d($v['KD_D_ELEM_BEASISWA']); $elem->set_kd_r($v['KD_R_ELEM_BEASISWA']); $jml_peg = (int) $v['JML_PEG_D_ELEM_BEASISWA']; $total_bayar = (int) $v['TOTAL_BAYAR_D_ELEM_BEASISWA']; $by_per_peg = $total_bayar / $jml_peg; $elem->set_biaya_per_peg($v['BIAYA_PER_PEG_D_ELEM_BEASISWA']); $elem->set_total_bayar($by_per_peg); $elem->set_thn_masuk($val['TAHUN_MASUK']); $elem->set_bln(Tanggal::bulan_indo($v['BLN_D_ELEM_BEASISWA'])); $elem->set_thn($v['THN_D_ELEM_BEASISWA']); $elem->set_no_sp2d($v['NO_SP2D_KD_D_ELEM_BEASISWA']); $elem->set_no_sp2d($v['NO_SP2D_D_ELEM_BEASISWA']); $data[] = $elem; } return $data; }
public function cek_pb_konek_st_ct(Penerima $pb, $jenis_cek = 'all', $is_lulus = false, $luaran = false) { if ($pb->get_kd_pb() == '' || is_null($pb->get_kd_pb())) { return false; } if ($pb->get_st() == '' || is_null($pb->get_st())) { $pb = $pb->get_penerima_by_id($pb); } $kd_st = $pb->get_st(); $status = $pb->get_status(); switch ($jenis_cek) { case 'all': if (!$is_lulus) { //status belum lulus $sts_cuti = $this->cek_pb_konek_st_ct($pb, 'cuti', false); //cek masih cuti? // var_dump($sts_cuti); if ($sts_cuti) { $status = $this->cek_pb_konek_st_ct($pb, 'cuti', false, true); if ($luaran) { return $status; } return true; } else { //jika tidak dalam keadaan cuti $status = $this->cek_pb_konek_st_ct($pb, 'st', false, true); return $status; } } else { //TO DO cek lebih ke st, tp cek dulu dia dalam keadaancuti apa tidak //klo dalam keadaan cuti ya tidak bisa dong, harus dikembalikan ke cuti $sts_cuti = $this->cek_pb_konek_st_ct($pb, 'cuti', true); if ($sts_cuti) { $status = $this->cek_pb_konek_st_ct($pb, 'cuti', true, true); if ($luaran) { return $status; } return true; } else { $status = $this->cek_pb_konek_st_ct($pb, 'st', true, true); return $status; } } break; case 'cuti': $ct = new Cuti($this->registry); $d_ct = $ct->get_cuti(Session::get('kd_user'), $pb); //TO DO cek apakah masa cuti masih ada $exist_data = count($d_ct) > 0; if ($exist_data) { if ($luaran) { return 4; //saat cuti tidak boleh lulus } else { return true; } } else { if ($is_lulus) { //untuk kode lulus if ($luaran) { $status = $this->cek_pb_konek_st_ct($pb, 'st', true, true); //kode untuk lulus return $status; } else { //TO DO kembalian boolean return true; } } else { //untuk kode belum lulus if ($luaran) { $status = $this->cek_pb_konek_st_ct($pb, 'st', false, true); //kode sebelum lulus return $status; } else { //TO DO kembalian boolean return false; } } if (!$luaran) { return false; } } break; case 'st': $st = new SuratTugas($this->registry); $st->set_kd_st($kd_st); $st = $st->get_surat_tugas_by_id($st); $tgl_sel_st = $st->get_tgl_selesai(); $child = $st->is_child($kd_st); //child pertama if ($child) { $st_child = new SuratTugas($this->registry); $st_child->set_kd_st($st->get_st_lama()); //st parent $st_child = $st_child->get_surat_tugas_by_id($st_child); $second_child = $st_child->is_child($st_child->get_kd_st()); if ($second_child) { //jika child kedua if ($is_lulus) { //untuk status lulus if ($pb->get_tgl_lapor() == '' || is_null($pb->get_tgl_lapor())) { $tgl_lapor = date('Y-m-d'); } else { $tgl_lapor = $pb->get_tgl_lapor(); } $status = $pb->get_status_change_pb($st, $tgl_lapor, $tgl_sel_st); } else { $status = 3; } return $status; } else { if ($is_lulus) { if ($pb->get_tgl_lapor() == '' || is_null($pb->get_tgl_lapor())) { $tgl_lapor = date('Y-m-d'); } else { $tgl_lapor = $pb->get_tgl_lapor(); } $status = $pb->get_status_change_pb($st, $tgl_lapor, $tgl_sel_st); } else { $status = 2; } return $status; } } else { return 1; } break; default: throw new Exception(); } }
public function get_cost_per_pb(Penerima $pb, $lunas = false) { $sql = "SELECT CONCAT(c.NO_KON,',',c.TGL_KON) as KD_KONTRAK,\r\n a.NM_TAGIHAN AS NM_TAGIHAN,\r\n a.BIAYA_PER_PEG_TAGIHAN AS BIAYA_PER_PEG_TAGIHAN,\r\n a.NO_SP2D_TAGIHAN as NO_SP2D_TAGIHAN,\r\n a.TGL_SP2D_TAGIHAN as TGL_SP2D_TAGIHAN\r\n FROM d_tagihan a \r\n LEFT JOIN t_tagihan_kontrak b ON a.KD_TAGIHAN=b.KD_TAGIHAN\r\n LEFT JOIN d_kontrak c ON a.KD_KON=c.KD_KON \r\n WHERE b.KD_PB=" . $pb->get_kd_pb(); if ($lunas) { $sql .= " AND a.NO_SP2D_TAGIHAN<>NULL"; } $result = $this->db->select($sql); $data = array(); foreach ($result as $v) { $bea = new $this(); $bea->kd_kontrak = $v['KD_KONTRAK']; $bea->nama_tagihan = $v['NM_TAGIHAN']; $bea->biaya_per_pegawai = $v['BIAYA_PER_PEG_TAGIHAN']; $bea->no_sp2d = $v['NO_SP2D_TAGIHAN']; $bea->tgl_sp2d = $v['TGL_SP2D_TAGIHAN']; $data[] = $bea; } return $data; }