<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class add_sidang_pertama_m extends CI_Model{
	//dipake : addSidangPertama_c.php
	function get_jum_jsidang($perkara_id){
		$qry="SELECT COUNT(*) AS jml FROM perkara_jadwal_sidang WHERE perkara_id='$perkara_id' AND verzet='T'";
		$result=$this->db->query($qry);
		return $result;
	}

	//dipake : addSidangPertama_c.php
	function get_data_perkara($perkara_id){
		try {
			$query = $this->db->query("SELECT nomor_perkara, alur_perkara_id, tanggal_pendaftaran, proses_terakhir_id
										FROM perkara 
										WHERE perkara_id='".$perkara_id."';");
			return $query;
		} catch (Exception $e) {
			return '';
		}
	}

	//dipake : addSidangPertama_c.php	
	function get_last_id(){
		try {
			$query = $this->db->query("SELECT (ifnull(max(id),0)) +1 AS last_id FROM perkara_jadwal_sidang;");
			if($query->num_rows>0){
				foreach ($query->result() as $row) {
					return $row->last_id;
				}
	    	}else{
	    		return 0;
	    	}
		} catch (Exception $e) {
			log_message('error', $e);
		}
	}

	//dipake : addSidangPertama_c.php	
	function get_last_id_perkara_phs(){
		try {
			$query = $this->db->query("SELECT (ifnull(max(id),0)) +1 AS last_id FROM perkara_penetapan_hari_sidang;");
			if($query->num_rows>0){
				foreach ($query->result() as $row) {
					return $row->last_id;
				}
	    	}else{
	    		return 0;
	    	}
		} catch (Exception $e) {
			log_message('error', $e);
		}
	}
	
	//dipake : addSidangPertama_c.php	
	function get_penetapan_sidang_pertama_detail($id_perkara){
		try {
			$qry="	SELECT 	A.perkara_id AS perkara_id, 
							A.penetapan_majelis_hakim AS penetapan_majelis_hakim, 
							A.majelis_hakim_id AS majelis_hakim_id, 
							A.majelis_hakim_text AS majelis_hakim_text,
							A.penetapan_panitera_pengganti AS penetapan_panitera_pengganti,
							A.panitera_pengganti_id AS panitera_pengganti_id,
							A.panitera_pengganti_text AS panitera_pengganti_text,
							A.penetapan_jurusita AS penetapan_jurusita,
							A.jurusita_id AS jurusita_id,
							A.jurusita_text AS jurusita_text,
							B.id AS jadwalsidang_id, 
							A.penetapan_hari_sidang AS penetapan_hari_sidang, 
							A.sidang_pertama AS tgl_sidang_pertama, 
							B.jam_sidang AS jam_sidang_pertama,
							B.ruangan_id AS ruangan_id
					FROM 	perkara_penetapan A LEFT JOIN perkara_jadwal_sidang B ON A.perkara_id=B.perkara_id AND B.urutan='1'  
					WHERE 	A.perkara_id='$id_perkara';";
			$query=$this->db->query($qry);
			return $query;
		} catch (Exception $e) {
			return '';
		}
	}
	
	//dipake : addSidangPertama_c.php	
	function cek_perkara_jadwal_sidang($idperkara, $tgl_sidang_phs){
		try {
			$query = $this->db->query("SELECT *
										FROM perkara_jadwal_sidang 
										WHERE perkara_id='".$idperkara."' AND tanggal_sidang>'".$tgl_sidang_phs."';");
			return $query;
		} catch (Exception $e) {
			return '';
		}
	}

	//dipake : addSidangPertama_c.php	
	function cek_perkara_penetapan_hari_sidang($idperkara, $tgl_penetapan_phs){
		try {
			$query = $this->db->query("SELECT *
										FROM perkara_penetapan_hari_sidang 
										WHERE perkara_id='".$idperkara."' AND tanggal_penetapan>'".$tgl_penetapan_phs."';");
			return $query;
		} catch (Exception $e) {
			return '';
		}
	}	

	//dipake : addSidangPertama_c.php	
	function get_phs($idphs){
		try {
			$query = $this->db->query("SELECT id, jadwalsidang_id, tanggal_penetapan, tanggal_sidang, keterangan
										FROM perkara_penetapan_hari_sidang 
										WHERE id='".$idphs."';");
			return $query;
		} catch (Exception $e) {
			return '';
		}
	}

	//dipake : addSidangPertama_c.php	
	function get_tgl_jsidang_kedua($idperkara){
		$sql="SELECT tanggal_sidang FROM perkara_jadwal_sidang WHERE urutan='2' AND perkara_id=$idperkara";
		$query = $this->db->query($sql);
		if($query->num_rows>0){
			foreach ($query->result() as $row) {
				return $row->tanggal_sidang;
			}
	    }else{
	    	return 0;
	    }	
	}

	//dipake : addSidangPertama_c.php	
	function get_urutan_jadwal_terakhir($id_perkara){
			$result = $this->db->query("SELECT (ifnull(max(urutan),0)) +1 AS last_id FROM perkara_jadwal_sidang WHERE perkara_id=".$id_perkara.";");
		return $result;
	}

	//dipake : addSidangPertama_c.php	
	function get_phs_sebelumnya($idperkara){
		try{
			$query = $this->db->query("SELECT A.tanggal_penetapan, A.tanggal_sidang, A.keterangan, B.jam_sidang, B.sampai_jam, B.ruangan_id 
										FROM perkara_penetapan_hari_sidang A LEFT JOIN perkara_jadwal_sidang B 
										ON A.jadwalsidang_id=B.id
										WHERE A.perkara_id=".$idperkara." ORDER BY A.id DESC LIMIT 1;");
			return $query;
		}catch(Exception $e){
			return FALSE;
		}
	}
	
	//dipake : addSidangPertama_c.php	
	function get_phs_sebelumnya_yangdiedit($idperkara){
		try{
			$query = $this->db->query("SELECT A.tanggal_penetapan, A.tanggal_sidang, B.jam_sidang, B.sampai_jam 
										FROM perkara_penetapan_hari_sidang A LEFT JOIN perkara_jadwal_sidang B 
										ON A.jadwalsidang_id=B.id
										WHERE A.perkara_id=".$idperkara." ORDER BY A.id DESC LIMIT 1,1;");
			return $query;
		}catch(Exception $e){
			return FALSE;
		}
	}

	//dipake : add_sidang_pertama_m.php	
	function update_perkara_penetapan($perkara_id, $data_penetapan, $namahalaman){
			$namatabel="perkara_penetapan";
			$primarykey="perkara_id";
			$this->db->where($primarykey, $perkara_id);
			$this->db->update($namatabel, $data_penetapan);
			$title = "UPDATE table <b>".$namatabel."</b> dari halaman <b>".$namahalaman."</b> dengan Primary Key [".$primarykey."=".$perkara_id."]";
			$descrip = $this->fetch_description($title,$data_penetapan);
			$this->add_audittrail("UPDATE",$title,$descrip,$namatabel,$namahalaman);
	}

	//dipake : add_sidang_pertama_m.php	
	function insert_perkara_jadwal_sidang($datajsidang, $namahalaman){
			$namatabel="perkara_jadwal_sidang";
			$primarykey="id";
			$this->db->insert($namatabel, $datajsidang);
			$title = "INSERT table <b>".$namatabel."</b> dari halaman <b>".$namahalaman."</b> dengan Primary Key [".$primarykey."=".$datajsidang['id']."]";
			$descrip = $this->fetch_description($title,$datajsidang);
			$this->add_audittrail("INSERT",$title,$descrip,$namatabel,$namahalaman);
	}
	
	//dipake : add_sidang_pertama_m.php	
	function insert_perkara_penetapan_hari_sidang($datahistoryphs, $namahalaman){
			$namatabel="perkara_penetapan_hari_sidang";
			$primarykey="id";
			$this->db->insert($namatabel, $datahistoryphs);
			$title = "INSERT table <b>".$namatabel."</b> dari halaman <b>".$namahalaman."</b> dengan Primary Key [".$primarykey."=".$datajsidangphs['id']."]";
			$descrip = $this->fetch_description($title,$datahistoryphs);
			$this->add_audittrail("INSERT",$title,$descrip,$namatabel,$namahalaman);
	}

	//dipake : addSidangPertama_c.php	
	function insert_jadwal_sidang_penetapankembali($idperkara,$datahistoryphs,$datajsidang,$namahalaman,$dataIdsidangLast){
		try{
			//update ID MAX Jadwal sidang_pertama 26/11/2017
			$this->update_jadwal_sidang($dataIdsidangLast,$datajsidang);
			//insert Jadwal sidang_pertama
			//$this->insert_perkara_jadwal_sidang($datajsidang, $namahalaman);
			$this->insert_perkara_penetapan_hari_sidang($datahistoryphs, $namahalaman);
			return TRUE;
		}catch(Exception $e){
			return FALSE;
		}
	}

	//dipake : addSidangPertama_c.php	
	function insert_jadwal_sidang_pertama($perkara_id,$data_penetapan,$datajsidang,$datahistoryphs,$namahalaman){
		try {
			$this->update_perkara_penetapan($perkara_id, $data_penetapan, $namahalaman);
			$this->insert_perkara_jadwal_sidang($datajsidang, $namahalaman);
			$this->insert_perkara_penetapan_hari_sidang($datahistoryphs, $namahalaman);
			return TRUE;
		} catch (Exception $e) {
			return FALSE;
		}
	}
	
	//dipake : addSidangPertama_c.php	
	function edit_jadwal_sidang_pertama($perkara_id, $jsidang_id, $perkaraphs_id, $data_penetapan, $data_jsidang, $data_historyphs, $namahalaman){
		try {
			$this->update_perkara_penetapan($perkara_id, $data_penetapan, $namahalaman);

			$namatabel="perkara_jadwal_sidang";
			$primarykey1="id";
			$primarykey2="perkara_id";
			$this->db->where($primarykey1, $jsidang_id);		
			$this->db->where($primarykey2, $perkara_id);		
			$this->db->update($namatabel, $data_jsidang);
			$title = "UPDATE table <b>".$namatabel."</b> dari halaman <b>".$namahalaman."</b> dengan Primary Key [".$primarykey1."=".$jsidang_id." & ".$primarykey2."=".$perkara_id."]";
			$descrip = $this->fetch_description($title,$data_jsidang);
			$this->add_audittrail("UPDATE",$title,$descrip,$namatabel,$namahalaman);

			$namatabel="perkara_penetapan_hari_sidang";
			$primarykey="id";
			$this->db->where($primarykey, $perkaraphs_id);
			$this->db->update($namatabel, $data_historyphs);
			$title = "UPDATE table <b>".$namatabel."</b> dari halaman <b>".$namahalaman."</b> dengan Primary Key [".$primarykey."=".$perkaraphs_id."]";
			$descrip = $this->fetch_description($title,$data_historyphs);
			$this->add_audittrail("UPDATE",$title,$descrip,$namatabel,$namahalaman);

			return true;
		} catch (Exception $e) {
			return false;
		}
	}

	//dipake : addSidangPertama_c.php	
	function hapus_penetapan_sidang($idperkara,$idperkaraphs,$tahapan,$action,$namahalaman){
		try{
			if($action=='edit'){
				$dataeditpenetapan['penetapan_hari_sidang']=NULL;
				$dataeditpenetapan['sidang_pertama']=NULL;
				$this->update_perkara_penetapan($idperkara, $dataeditpenetapan, $namahalaman);

				$namatabel="perkara_jadwal_sidang";
				$primarykey="perkara_id";
				$this->db->where($primarykey,$idperkara);
				$this->db->delete($namatabel);
				$title = "DELETE table <b>".$namatabel."</b> dari halaman <b>".$namahalaman."</b> dengan Foreign Key [".$primarykey."=".$idperkara."]";
				$descrip = "";
				$this->add_audittrail("DELETE",$title,$descrip,$namatabel,$namahalaman);
			}else{
				$this->db->query("DELETE FROM perkara_jadwal_sidang 
									WHERE id=(SELECT jadwalsidang_id FROM perkara_penetapan_hari_sidang WHERE id=".$idperkaraphs.");");
			}
			
			$namatabel="perkara_penetapan_hari_sidang";
			$primarykey="id";
			$this->db->where($primarykey,$idperkaraphs);
			$this->db->delete($namatabel);
			$title = "DELETE table <b>".$namatabel."</b> dari halaman <b>".$namahalaman."</b> dengan Foreign Key [".$primarykey1."=".$idperkaraphs."]";
			$descrip = "";
			$this->add_audittrail("DELETE",$title,$descrip,$namatabel,$namahalaman);

			return TRUE;
		} catch (Exception $e) {
			return FALSE;
		}
	}

	//dipake : add_sidang_pertama_m.php	
	function fetch_description($title,$data){
		$descrip = '<br><table style="vertical-align:top" cellspacing="0" cellpadding="1" border="1">';
		$descrip .= '<tr><th>Nama Kolom</th><th>Nilai</th></tr>';
		foreach ($data as $key => $value) {
			$descrip .= '<tr>';
			$descrip .= '<td>'.$key.'</td>';
			$descrip .= '<td>'.$value.'</td>';
			$descrip .= '</tr>';
		}
		$descrip .= '</table>';
		return $descrip;
	}
	
	//dipake : add_sidang_pertama_m.php	
	function add_audittrail($action,$title,$descrip,$tablename,$namahalaman){
		try {
			$data = array(
				'datetime' => date("Y-m-d H:i:s"),
				'ipaddress' => $this->input->ip_address(),
				'username' => $this->session->userdata('username'),
				'tablename' => $tablename,
				'formname' => $namahalaman,
				'action' => $action,
				'title' => $title,
				'description' => $descrip
			);
			$this->db->insert('sys_audittrail', $data);
		} catch (Exception $e) {
			
		}
	}
	//dipake : update Sidang Terakhir jika ada PHS kembali	26/11/2017
	function get_jadwal_sidang_terakhir($id_perkara){
			$result = $this->db->query("SELECT max(id) AS last_id FROM perkara_jadwal_sidang WHERE perkara_id=".$id_perkara.";");
		return $result;
	}
	//dipake : update Sidang Terakhir jika ada PHS kembali	26/11/2017
	function update_jadwal_sidang($dataIdsidangLast,$datajsidang){
			$namatabel="perkara_jadwal_sidang";
			$primarykey="id";
			$this->db->where($primarykey, $dataIdsidangLast);
			$this->db->update($namatabel, $datajsidang);
			
	}
}
?>