Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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();
     }
 }
Exemplo n.º 3
0
 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;
 }