model.php 9.78 KB
<?php
include_once "db/db.php";
class model extends koneksi{
	public function selectprepare($table, $field = null, $params=null, $where=null, $other=null, $other1=null){
		$sql = "SELECT";
		$kolom = null;
		if($field != null){
			foreach($field as $key){
				$kolom .= ", ".$key."";
			}
			$sql .= substr($kolom, 1)."";
		}else{
			$sql .= " * ";
		}
		$sql .= " FROM $table";
		
		if($params != null){
			$sql .= " WHERE $where";
			$sql .= " $other";
			$query = $this->db->prepare($sql);
			foreach ($params as $kolom => &$isian){
				$query->bindParam($kolom, $isian);  //echo "<p>$kolom, $isian</p>";
			}
			$query->execute($params);
		}else{
			$sql .= " $other";
			$sql .= " $other1";
			$query = $this->db->prepare($sql);
			$query->execute();
		}
		//echo "<br/><br/>".$sql;
		return $query;
	}

	public function insertprepare($table, $field = null, $params=null){
		$sql = "INSERT INTO $table ";
		$kolom = null;
		$value = null;
		foreach($field as $key => $nilai){
			$kolom .= ", ".$key."";
			$value .= ", '".$nilai."'";
		}
		$sql .= "(".substr($kolom, 1).")";
		$sql .= " VALUES (".substr($value, 1).")";

		$query = $this->db->prepare($sql);
		foreach ($params as $kolom => &$isian){
			$query->bindParam($kolom, $isian);  //echo "<p>$kolom, $isian</p>";
		}
		$query->execute($params);
		//echo "<br/><br/>".$sql;
		return $query;
	}
	public function insertidprepare($table, $field = null, $params=null){
		$sql = "INSERT INTO $table ";
		$kolom = null;
		$value = null;
		foreach($field as $key => $nilai){
			$kolom .= ", ".$key."";
			$value .= ", '".$nilai."'";
		}
		$sql .= "(".substr($kolom, 1).")";
		$sql .= " VALUES (".substr($value, 1).")";

		$query = $this->db->prepare($sql);
		foreach ($params as $kolom => &$isian){
			$query->bindParam($kolom, $isian);  //echo "<p>$kolom, $isian</p>";
		}
		$query->execute($params);
		if($query->rowCount() >= 1){
			$last_id = $this->db->lastInsertId();
		} else {
			$last_id = 0;
		}
		return $last_id;
	}
	public function hapusprepare($table, $params=null, $where=null){
		$sql = "DELETE FROM $table";
		if($params != null){
			$sql .= " WHERE $where";
			$query = $this->db->prepare($sql);
			foreach ($params as $kolom => &$isian){
				$query->bindParam($kolom, $isian);  //echo "<p>$params, $isian</p>";
			}
			$query->execute($params);
		}else{
			$query = $this->db->prepare($sql);
			$query->execute();
		}
		//echo "<br/><br/>".$sql;
		return $query;
	}
	public function updateprepare($table, $field = null, $params=null, $where=null){
		$sql = "UPDATE $table set ";
			$dump = null;
			foreach($field as $key => $nilai){
				$dump .= ", ".$key." = '".$nilai."'";
			}
			$sql .= substr($dump, 1);
			
		if($params != null){
			$sql .= " WHERE $where";
			$query = $this->db->prepare($sql);
			foreach ($params as $kolom => &$isian){
				$query->bindParam($kolom, $isian);  //echo "<p>$kolom, $isian</p>";
			}
			$query->execute($params);
		}else{
			$query = $this->db->prepare($sql);
			$query->execute();
		}
		//echo "<br/><br/>".$sql;
		return $query;
	}
	public function selectcount($table, $params=null, $where=null, $other=null){
		$sql = "select count(*) as jlh from $table";
		if($params != null){
			$sql .= " WHERE $where";
			$sql .= " $other";
			$query = $this->db->prepare($sql);
			foreach ($params as $kolom => &$isian){
				$query->bindParam($kolom, $isian);  //echo "<p>$params, $isian</p>";
			}
			$query->execute($params);
		}else{
			$sql .= " $other";
			$query = $this->db->prepare($sql);
			$query->execute();
		}
		//echo "<br/><br/>".$sql;
		return $query;
	}
	public function truncate($table){
		$sql = "TRUNCATE TABLE $table";
		$query = $this->db->query($sql);
		$query->execute();
		return $query;
	}

	function noref($id_sk = "", $internal = ""){
		if($internal == "internal"){
			$table = "surat_keluar_internal";
		} else {
			$table = "surat_keluar";
		}
		$params = array(':id_sk' => $id_sk);
		$field	= array('a.no_agenda', 'DATE_FORMAT(a.tgl_agenda, "%Y") AS tahun', 'CONCAT(b.kode_masalah, ".", b.primer, ".", b.sekunder) AS kode_masalah', 'CONCAT(c.kode1, ".", c.kode2) AS unit_kerja');
		$getdata= $this->selectprepare("".$table." a left join kode_masalah b ON b.id = a.kodemasalahid left join unit_kerja c ON c.id = a.unitkerjaid", $field, $params, 'a.id_sk=:id_sk', $order=null);
		$datashow = $getdata->fetch(PDO::FETCH_OBJ);
		$noagenda = sprintf("%05d", $datashow->no_agenda);
		return $datashow->kode_masalah."/".$datashow->unit_kerja.".".$noagenda."/".$datashow->tahun;
	}
	
	function noref_sk($id_sk = ""){
		$table = "surat_keluar";
		$params = array(':id_sk' => $id_sk);
		$field	= array('a.no_agenda', 'DATE_FORMAT(a.tgl_agenda, "%Y") AS tahun', 'CONCAT(b.kode_masalah, ".", b.primer, ".", b.sekunder) AS kode_masalah', 'CONCAT(c.kode1, ".", c.kode2) AS unit_kerja');
		$getdata= $this->selectprepare("".$table." a left join kode_masalah b ON b.id = a.kodemasalahid left join unit_kerja c ON c.id = a.unitkerjaid", $field, $params, 'a.id_sk=:id_sk', $order=null);
		$datashow = $getdata->fetch(PDO::FETCH_OBJ);
		$noagenda = sprintf("%05d", $datashow->no_agenda);
		return $datashow->kode_masalah."/".$datashow->unit_kerja.".".$noagenda."/".$datashow->tahun;
	}

	function noref_ski($id_sk = ""){
		$table = "surat_keluar_internal";
		$params = array(':id_sk' => $id_sk);
		$field	= array('a.no_agenda', 'DATE_FORMAT(a.tgl_agenda, "%Y") AS tahun', 'CONCAT(b.kode_masalah, ".", b.primer, ".", b.sekunder) AS kode_masalah', 'CONCAT(c.kode1, ".", c.kode2) AS unit_kerja');
		$getdata= $this->selectprepare("".$table." a left join kode_masalah b ON b.id = a.kodemasalahid left join unit_kerja c ON c.id = a.unitkerjaid", $field, $params, 'a.id_sk=:id_sk', $order=null);
		$datashow = $getdata->fetch(PDO::FETCH_OBJ);
		$noagenda = sprintf("%05d", $datashow->no_agenda);
		return $datashow->kode_masalah."/".$datashow->unit_kerja.".".$noagenda."/".$datashow->tahun;
	}

	function noref_sm($id_sm = "", $internal = ""){
		if($internal == "internal"){
			$table = "surat_masuk_internal";
		} else {
			$table = "surat_masuk";
		}
		$params = array(':id_sm' => $id_sm);
		$field	= array('a.no_agenda', 'DATE_FORMAT(a.tgl_agenda, "%Y") AS tahun', 'CONCAT(b.kode_masalah, ".", b.primer, ".", b.sekunder) AS kode_masalah', 'CONCAT(c.kode1, ".", c.kode2) AS unit_kerja');
		$getdata= $this->selectprepare("".$table." a left join kode_masalah b ON b.id = a.kodemasalahid left join unit_kerja c ON c.id = a.unitkerjaid", $field, $params, 'a.id_sm=:id_sm', $order=null);
		$datashow = $getdata->fetch(PDO::FETCH_OBJ);
		$noagenda = sprintf("%05d", $datashow->no_agenda);
		return $datashow->kode_masalah."/".$datashow->unit_kerja.".".$noagenda."/".$datashow->tahun;
	}

	function noref_doc($id = ""){
		$params = array(':id_sm' => $id);
		$field	= array('a.no_agenda', 'DATE_FORMAT(a.tgl_agenda, "%Y") AS tahun', 'DATE_FORMAT(a.tgl_agenda, "%m") AS bulan', 'CONCAT(c.kode1, ".", c.kode2) AS unit_kerja');
		$getdata= $this->selectprepare("surat_dokumen a left join unit_kerja c ON c.id = a.unitkerjaid", $field, $params, 'a.id_sm=:id_sm', $order=null);
		$datashow = $getdata->fetch(PDO::FETCH_OBJ);
		$noagenda = sprintf("%05d", $datashow->no_agenda);
		return $noagenda."/".$datashow->unit_kerja."/".$datashow->bulan."/".$datashow->tahun;
	}

	function hari_libur($input = ""){
		//## Cek Data di Pengaturan ##
		$params		= array(':status' => 1);
		$pengaturan	= $this->selectprepare("pengaturan", $field=null, $params, "status=:status", $other=null);
		$data_pengaturan = $pengaturan->fetch(PDO::FETCH_OBJ);
		$tahun_atur 	 = $data_pengaturan->tahun;

		//## Cek data Libur ##
		$data_harilibur	= $this->selectprepare("hari_libur", $field=null, $params=null, "", "WHERE DATE_FORMAT(tgl, '%Y') = '".$tahun_atur."' ");
		$count = $data_harilibur->rowCount();
		$no = 0;
		$show = "";
		while($harilibur = $data_harilibur->fetch(PDO::FETCH_OBJ)){
			$dump_harilibur[] = $harilibur->tgl;
			$no++;
			$tgl = explode("-", $harilibur->tgl);
			$show .= "'".$tgl['0']."-".intval($tgl['1'])."-".intval($tgl['2'])."'";
			if($no < $count){
				$show .= ", ";
			}
		}

		if($input == ""){
			return $show;
		} else {
			return $dump_harilibur;
		}
	}
	
	public function sendSMSMasking($handphone, $text, $no_surat=''){
		$usernamesmsmasking="wika_bsi";
		$passwordsmsmasking="bfdb70970ec8f41e4016f6e341c7596c";
		$sender="WIKA-SURAT";
		$drurl="103.25.196.13";#ip public hcis.wika.co.id
		$subs=substr($handphone,1);
		$depan=substr($handphone,0,1);
		if($depan=="0") $handphone="62".$subs;
		$data_xml="data=
		<bulk_sending>
			<username>".$usernamesmsmasking."</username>
			<password>".$passwordsmsmasking."</password>
			<priority>high</priority>
			<sender>".$sender."</sender>
			<dr_url>".$drurl."</dr_url>
			<allowduplicate>1</allowduplicate>
			<data_packet>
				<packet>
					<msisdn>".$handphone."</msisdn>
					<sms>".$text."</sms>
					<is_long_sms>Y</is_long_sms>
				</packet>
			</data_packet>
		</bulk_sending>
		";
		$URL = "http://webapps.promediautama.com:29003/sms_applications/smsb/api_mt_send_message.php";
		$ch = curl_init($URL);
		curl_setopt($ch, CURLOPT_MUTE, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data_xml);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		$output = curl_exec($ch);
		curl_close($ch);
		return $output;
	}
	public function hpsupdmemo($id_sm, $id_user, $nip){
		$sql = "DELETE FROM memo where status='0' and id_sm='".$id_sm."' and (id_user='".$id_user."' or disposisi like '%".$nip."%')";
		$query = $this->db->prepare($sql);
		$query->execute();
		$sql = "UPDATE memo a
				inner JOIN (SELECT max(id_status) as jum, id_sm from memo where id_sm='".$id_sm."') b ON a.id_sm = b.id_sm and a.id_status=b.jum
				SET a.status = '0'";
		$query = $this->db->prepare($sql);
		$query->execute();
		
		return $query;
	}

}?>