pushHandler(new StreamHandler($dir_log, Logger::DEBUG)); $logger->pushHandler(new FirePHPHandler()); // NUMBER FORMATTING if (!function_exists('tsen')) { function tsen($x){ if(preg_match("/\./", $x)){ $str = stristr($x,"."); $ex = explode('.',$x); $a = $ex[1]; if(($ex[1]/10) >= 1){ $a = abs($ex[1]); } $string = array("nol", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan","sepuluh", "sebelas"); $string_nol = array("nol", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan"); $temp = ""; $a2 = $ex[1]/10; $pjg = strlen($str); $i =1; if($a >= 1 && $a < 12){ if(substr($a, 0, 1) == "0") { $last_digit = substr($a, 1,1); $temp .= $string_nol[$last_digit]; } else { $temp .= " ".$string[$a]; } }else if($a >= 12 && $a < 20){ $temp .= bilang($a - 10)." belas"; }else if ($a >= 20 && $a < 100){ $temp .= bilang($a / 10)." puluh". bilang($a % 10); } else{ if($a2<1){ while ($i<$pjg){ $char = substr($str,$i,1); $i++; $temp .= " ".$string[$char]; } } } return $temp; } else return false; } } if (!function_exists('bilang')) { function bilang($x) { $x = abs($x); $angka = array("", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas"); $result = ""; if ($x <12) { $result = " ". $angka[$x]; } else if ($x <20) { $result = bilang($x - 10). " belas"; } else if ($x <100) { $result = bilang($x/10)." puluh". bilang($x % 10); } else if ($x <200) { $result = " seratus" . bilang($x - 100); } else if ($x <1000) { $result = bilang($x/100) . " ratus" . bilang($x % 100); } else if ($x <2000) { $result = " seribu" . bilang($x - 1000); } else if ($x <1000000) { $result = bilang($x/1000) . " ribu" . bilang($x % 1000); } else if ($x <1000000000) { $result = bilang($x/1000000) . " juta" . bilang($x % 1000000); } else if ($x <1000000000000) { $result = bilang($x/1000000000) . " milyar" . bilang(fmod($x,1000000000)); } else if ($x <1000000000000000) { $result = bilang($x/1000000000000) . " trilyun" . bilang(fmod($x,1000000000000)); } return $result; } } if (!function_exists('app_terbilang')) { function app_terbilang($x, $style = 'ucwords') { if(is_numeric($x)) { $poin = 0; if($x<0){ $hasil = "minus ". trim(bilang($x)); } else{ $poin = trim(tsen($x)); $hasil = trim(bilang($x)); } if($poin){ $hasil .= " rupiah ".$poin." sen "; }else{ $hasil .= " rupiah"; } // $hasil.= " rupiah"; switch ($style){ case 'upper': $hasil = strtoupper($hasil);break; case 'lower':$hasil = strtolower($hasil);break; case 'ucwords':$hasil = ucwords(strtolower($hasil));break; default:$hasil = ucfirst(strtolower($hasil));break; } return $hasil; } else{ return false; } } } if (!function_exists('app_pembulatan')) { function app_pembulatan($nilai) { return round($nilai,0); } } if (!function_exists('round_up')) { function round_up($number, $precision = 2) { $fig = (int) str_pad('1', $precision, '0'); return (ceil($number * $fig) / $fig); } } if (!function_exists('round_down')) { function round_down($number, $precision = 2) { $fig = (int) str_pad('1', $precision, '0'); return (floor($number * $fig) / $fig); } } if (!function_exists('bulat_puluhan')) { function bulat_puluhan($nilai,$aturan_farmasi = false) { $r1 = round($nilai,0); $ratusan = substr($r1,-3); $puluhan = substr($r1,-2); $bilangan1 = $r1 - $puluhan; $desimal = '0,'.$puluhan; $nilai_bulat = str_pad(str_replace("0,", "", round_up($desimal,2) ), 2, '0', STR_PAD_RIGHT); if($aturan_farmasi == true) { $desimal = '0.'.$puluhan; $nilai_bulat = str_pad(str_replace("0.", "", round_up($desimal,2) ), 2, '0', STR_PAD_RIGHT); $nilai_bulat = ($nilai_bulat > 0 && $nilai_bulat <= 50) ? 50 : ( ($nilai_bulat > 50) ? 100 : 0); } $hasil = $bilangan1 + $nilai_bulat; return $hasil; } } if (!function_exists('bulat_ratusan')) { function bulat_ratusan($nilai) { $r1 = round($nilai,0); $ratusan = substr($r1,-3); $puluhan = substr($r1,-2); $bilangan1 = $r1 - $ratusan; $desimal = '0,'.$ratusan; $nilai_bulat = str_pad(str_replace("0,", "", round_up($desimal,2) ), 3, '0', STR_PAD_RIGHT); $hasil = $bilangan1 + $nilai_bulat; return $hasil; } } if (!function_exists('Terbilang')) { function Terbilang($x) { return bilang($x); } } if(!function_exists('app_trim')) { function app_trim(&$value, $arr_search = array(), $arr_replace = array()) { if(is_array($value)){ app_trimInput($value); } else { $value = trim($value); // $value = strip_slashes($value); $arr_search = array("\n\n", '

'); $arr_replace = array("\n", '

'); $value = str_replace($arr_search, $arr_replace, $value); } } } if(!function_exists('app_trimInput')) { function app_trimInput(array $arr=array()) { if(!is_array($arr)){ die("Inputan Bukan Array"); } array_walk($arr,"app_trim"); return $arr; } } // DATE FORMATTING if (!function_exists('date_to_db')) { // Function to convert from d-m-y to y-m-d function date_to_db($tanggal){ if($tanggal != '') { $x_tanggal = explode("-", $tanggal); $d = $x_tanggal[0]; $m = $x_tanggal[1]; $y = $x_tanggal[2]; $date = $y."-".$m."-".$d; return $date; } else return $tanggal; } } if (!function_exists('datetime_to_id')) { // Function to convert from y-m-d h:i:s to d-m-y h:i:s function datetime_to_id($datetime){ $x_datetime = explode(" ", $datetime); $date = $x_datetime[0]; $time = $x_datetime[1]; $dateid = date_to_id($date); $new_datetime = $dateid." ".$time; return $new_datetime; } } if (!function_exists('datetime_to_date_en')) { // convert datetime to date function datetime_to_date_en($datetime){ $x_datetime = explode(" ", $datetime); $date = $x_datetime[0]; return $date; } } if (!function_exists('date_to_id')) { // convert y-m-d --> d-m-y function date_to_id($tanggal){ if(strpos($tanggal,'-')) { list($y,$m,$d) = explode("-", $tanggal); } elseif(strpos($tanggal,'/')){ list($m,$d,$y) = explode("/", $tanggal); } else { $d = $m = $y = ''; } $date = $d."-".$m."-".$y; return $date; } } if (!function_exists('datetime_to_dateid')) { // convert y-m-d h:i:s --> d-m-y function datetime_to_dateid($datetime){ $x_datetime = explode(" ", $datetime); $date = $x_datetime[0]; $time = $x_datetime[1]; $dateid = date_to_id($date); return $dateid; } } if (!function_exists('datetime_to_time')) { // convert y-m-d h:i:s --> d-m-y function datetime_to_time($datetime){ $x_datetime = explode(" ", $datetime); $date = $x_datetime[0]; $time = $x_datetime[1]; $dateid = date_to_id($date); return $time; } } if (!function_exists('date_full_id')) { // convert y-m-d h:i:s --> d M y function date_full_id($tanggal){ $x_datetime = explode(" ", $tanggal); $date = $x_datetime[0]; $x_tanggal = explode("-", $date); $d = $x_tanggal[2]; $m = $x_tanggal[1]; $y = $x_tanggal[0]; switch($m){ case 1 : $m_id = 'Januari'; break; case 2 : $m_id = 'Februari'; break; case 3 : $m_id = 'Maret'; break; case 4 : $m_id = 'April'; break; case 5 : $m_id = 'Mei'; break; case 6 : $m_id = 'Juni'; break; case 7 : $m_id = 'Juli'; break; case 8 : $m_id = 'Agustus'; break; case 9 : $m_id = 'September'; break; case 10: $m_id = 'Oktober'; break; case 11: $m_id = 'Nopember'; break; case 12: $m_id = 'Desember'; break; } return $d.' '.$m_id.' '.$y; } } if (!function_exists('date_to_id_mm')) { // convert y-m-d --> d M y function date_to_id_mm($tanggal){ $x_tanggal = explode("-", $tanggal); $d = $x_tanggal[2]; $m = $x_tanggal[1]; $y = $x_tanggal[0]; switch($m){ case 1 : $m_id = 'Januari'; break; case 2 : $m_id = 'Februari'; break; case 3 : $m_id = 'Maret'; break; case 4 : $m_id = 'April'; break; case 5 : $m_id = 'Mei'; break; case 6 : $m_id = 'Juni'; break; case 7 : $m_id = 'Juli'; break; case 8 : $m_id = 'Agustus'; break; case 9 : $m_id = 'September'; break; case 10: $m_id = 'Oktober'; break; case 11: $m_id = 'Nopember'; break; case 12: $m_id = 'Desember'; break; } return $d.' '.$m_id.' '.$y; } } if (!function_exists('day_to_id')) { // convert international day to indonesian day function day_to_id($day){ switch(strtolower($day)){ case 'sunday': $hr = 'Minggu'; break; case 'monday': $hr = 'Senin'; break; case 'wednesday': $hr = 'Rabu'; break; case 'tuesday': $hr = 'Selasa'; break; case 'thursday': $hr = 'Kamis'; break; case 'friday': $hr = 'Jumat'; break; case 'saturday': $hr = 'Sabtu'; break; } return $hr; } } if (!function_exists('m_to_id')) { // convert month to indonesian month function m_to_id($m){ switch($m){ case 1 : return 'Januari'; break; case 2 : return 'Februari'; break; case 3 : return 'Maret'; break; case 4 : return 'April'; break; case 5 : return 'Mei'; break; case 6 : return 'Juni'; break; case 7 : return 'Juli'; break; case 8 : return 'Agustus'; break; case 9 : return 'September'; break; case 10 : return 'Oktober'; break; case 11 : return 'November'; break; case 12 : return 'Desember'; break; } } } if (!function_exists('get_dbdate_by')) { // get date part from y-m-d format function get_dbdate_by($by,$tanggal){ $x_tanggal = explode("-", $tanggal); $d = $x_tanggal[2]; $m = $x_tanggal[1]; $y = $x_tanggal[0]; if($by == 'month') return $m; elseif($by == 'year') return $y; elseif($by == 'day') return $d; } } if (!function_exists('datetimepart')) { // get date part from datetime format function datetimepart($by,$date){ list($date,$time) = explode(" ",$date); $ex_date = explode('-', $date); $ex_time = explode(':', $time); if($by == 'day' || $by == 'd') return $ex_date[0]; elseif($by == 'month' || $by == 'm') return $ex_date[1]; elseif($by = 'year' || $by == 'y') return $ex_date[2]; elseif($by = 'hour' || $by == 'h') return $ex_time[0]; elseif($by = 'minute' || $by == 'i') return $ex_time[1]; elseif($by = 'second' || $by == 's') return $ex_time[2]; } } if (!function_exists('datepart')) { // get date part from date format function datepart($by,$date){ $date = date_to_id($date); $ex_date = explode('-', $date); if($by == 'day' || $by == 'd') return $ex_date[0]; elseif($by == 'month' || $by == 'm') return $ex_date[1]; elseif($by = 'year' || $by == 'y') return $ex_date[2]; } } if (!function_exists('sql_to_id')) { // convert sql date to indonesian date function sql_to_id($tanggal){ $x_tanggal = explode("/", $tanggal); $d = $x_tanggal[1]; $m = $x_tanggal[0]; $y = $x_tanggal[2]; $date = $d."-".$m."-".$y; return $date; } } if (!function_exists('thisday')) { //get N day in date >> 12-12-2012 -> should returning 3 function thisday($date,$separator = '/',$format = 'd/m/y'){ $date = explode($separator, $date); if($format == 'd/m/y' || $format == 'd-m-y'){ $d = $date[0]; $m = $date[1]; $y = $date[2]; } elseif($format== 'm/d/y' || $format == 'm-d-y'){ $d = $date[1]; $m = $date[0]; $y = $date[2]; } elseif($format == 'y-m-d' || $format == 'y/m/d'){ $d = $date[2]; $m = $date[1]; $y = $date[0]; } return date('N',mktime(0,0,0,$m,$d,$y)); } } if (!function_exists('conv_date')) { /* For Postgre */ // Convert MM/DD/YYYY H:i To YYYY-MM-DD H:i function conv_date($param = array()){ if(isset($param['date_separator'])){ $exp_datetime = explode(' ',$param['datetime']); $exp_date = explode($param['date_separator'], $exp_datetime[0]); $res_date = $exp_date[2].$param['new_separator'].$exp_date[0].$param['new_separator'].$exp_date[1]; $result = $res_date.' '.$exp_datetime[1]; } return $result; } } if (!function_exists('excel5_to_db')) { // convert 1-Jan-13 00:00:00 to 2013-01-01 function excel5_to_db($excel5date){ $date = explode(' ',$excel5date); $ex_date = explode('-', $date[0]); $tgl = $ex_date[0]; $bln = $ex_date[1]; $thn = $ex_date[2]; switch ($bln) { case 'jan' || 'Jan': $bulan = '01'; break; case 'feb' || 'Feb': $bulan = '02'; break; case 'mar' || 'Mar': $bulan = '03'; break; case 'apr' || 'Apr': $bulan = '04'; break; case 'may' || 'May': $bulan = '05'; break; case 'jun' || 'Jun': $bulan = '06'; break; case 'jul' || 'Jul': $bulan = '07'; break; case 'aug' || 'Aug': $bulan = '08'; break; case 'sep' || 'Sep': $bulan = '09'; break; case 'oct' || 'Oct': $bulan = '10'; break; case 'nov' || 'Nov': $bulan = '11'; break; case 'dec' || 'Dec': $bulan = '12'; break; } $tahun = (strftime('%C') == true) ? strftime('%C').$thn : '20'.$thn; return $tahun.'-'.$bulan.'-'.$tgl; } } if (!function_exists('local_standard')) { // convert standard date Mon, 17 Nov 14 07:00:00 +0700 to Mon, 17 Nov 14 07:00 (WIB) function local_standard($standard_date, $format = 'd D M Y H:i') { list($day,$d,$m,$y,$t,$gmt) = explode(" ", $standard_date); list($h,$i) = explode(":",$t); $id_time = ($gmt == '+0700') ? 'WIB' : ''; $str_date= ''; for($x=0;$x'10',9=>'9 cm']; } } if(!function_exists('get_rawat')) { function get_rawat() { return ['rajal'=>'RAJAL','ranap'=>'RANAP']; } } if(!function_exists('arr_year')) { function arr_year() { $tahun = []; for($i = 2019; $i <= date('Y'); $i++){ $tahun[$i] = $i; } return $tahun; } } if(!function_exists('arr_month')) { function arr_month() { return [1=>'Januari',2=>'Februari',3=>'Maret',4=>'April',5=>'Mei',6=>'Juni', 7=>'Juli',8=>'Agustus',9=>'September',10=>'Oktober',11=>'November',12=>'Desember']; } } if (!function_exists('date_parse_from_format')) { function date_parse_from_format($format, $date) { // reverse engineer date formats $keys = array( 'Y' => array('year', '\d{4}'), 'y' => array('year', '\d{2}'), 'm' => array('month', '\d{2}'), 'n' => array('month', '\d{1,2}'), 'M' => array('month', '[A-Z][a-z]{3}'), 'F' => array('month', '[A-Z][a-z]{2,8}'), 'd' => array('day', '\d{2}'), 'j' => array('day', '\d{1,2}'), 'D' => array('day', '[A-Z][a-z]{2}'), 'l' => array('day', '[A-Z][a-z]{6,9}'), 'u' => array('hour', '\d{1,6}'), 'h' => array('hour', '\d{2}'), 'H' => array('hour', '\d{2}'), 'g' => array('hour', '\d{1,2}'), 'G' => array('hour', '\d{1,2}'), 'i' => array('minute', '\d{2}'), 's' => array('second', '\d{2}') ); // convert format string to regex $regex = ''; $chars = str_split($format); foreach ($chars AS $n => $char) { $lastChar = isset($chars[$n - 1]) ? $chars[$n - 1] : ''; $skipCurrent = '\\' == $lastChar; if (!$skipCurrent && isset($keys[$char])) { $regex .= '(?P<' . $keys[$char][0] . '>' . $keys[$char][1] . ')'; } else if ('\\' == $char) { $regex .= $char; } else { $regex .= preg_quote($char); } } $dt = array(); $dt['error_count'] = 0; // now try to match it if (preg_match('#^' . $regex . '$#', $date, $dt)) { foreach ($dt AS $k => $v) { if (is_int($k)) { unset($dt[$k]); } } if (!checkdate($dt['month'], $dt['day'], $dt['year'])) { $dt['error_count'] = 1; } } else { $dt['error_count'] = 1; } $dt['errors'] = array(); $dt['fraction'] = ''; $dt['warning_count'] = 0; $dt['warnings'] = array(); $dt['is_localtime'] = 0; $dt['zone_type'] = 0; $dt['zone'] = 0; $dt['is_dst'] = ''; return $dt; } } if(!function_exists('date_conv_eklaim')) { function date_conv_eklaim($dt) { $date_full = date_full_id($dt); $time = datetime_to_time($dt); return $date_full.' '.$time; } } // SIMGOS SNIPPET if (!function_exists('getLastMR')) { function getLastMR($p=0){ $sql="select last1 as nomor from m_maxnomr where status=1"; $query = $db->query($sql); $data = $query->fetchAll()[0]; $v = $data['nomor']; $vl=strlen($v); if($v < 10){ $value = '0'.$v; }else if($v < 100){ $value =$v; } return $value; } } if (!function_exists('datediff')) { function datediff($d1, $d2){ if($d1 == null) { $a['years'] = 0; $a['months'] = 0; $a['days'] = 0; } else { $d1 = new Datetime($d1); $d2 = new Datetime($d2); $a = array(); $diff = $d2->diff($d1); $a['years'] = $diff->format('%y'); $a['months'] = $diff->format('%m'); $a['days'] = $diff->format('%d'); } return $a; } } if (!function_exists('CurFormat')) { function CurFormat($value,$dec=0){ $res = number_format ($value,$dec,",","."); return $res; } } if(!function_exists('format_uang')){ function format_uang($amount) { if($amount == ''){ return '0,00'; } // log_message('error','Before Format '.$amount); $amount = preg_replace('/,/', '.', $amount); $result = number_format($amount, 2, ',','.'); return $result; } } if (!function_exists('getRealIpAddr')) { function getRealIpAddr() { if(!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; // share internet } elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; // pass from proxy } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; } } if (!function_exists('jeniskelamin')) { function jeniskelamin($P){ if($P == 'P'){ $v = "Perempuan (P)"; }elseif($P == 'L'){ $v = "Laki - Laki (L)"; } else { $v = ''; } return $v; } } if (!function_exists('getDokterName')) { function getDokterName($kddokter){ global $db; $sql = $db->query('SELECT NAMADOKTER from m_dokter where KDDOKTER = '.$kddokter); if($sql->numRows() > 0){ $data = $sql->fetchAll(); $val = $data[0]['NAMADOKTER']; }else{ $val = ''; } return $val; } } if (!function_exists('getJenisPoly')) { function getJenisPoly($kdpoly){ global $db; $sql = $db->query('SELECT no as kode,nama,jenispoly from m_ruang where kelompok = \'IRJA\' and no = '.$kdpoly); if($sql->numRows() > 0){ $data = $sql->fetchAll(); $val = $data[0]['jenispoly']; }else{ $val = ''; } return $val; } } if (!function_exists('getProfesiDoktor')) { function getProfesiDoktor($kddokter){ global $db; $sql = $db->query('SELECT * from m_dokter where KDDOKTER = '.$kddokter); if($sql->numRows() > 0){ $data = $sql->fetchAll(); $val = $data[0]['KDPROFESI']; }else{ $val = ''; } return $val; } } if (!function_exists('getKodePendaftaran')) { function getKodePendaftaran(){ global $db; $sql = $db->query('SELECT * from global_var where var_name = \'tarif_daftar\''); if($sql->numRows() > 0){ $data = $sql->fetchAll(); $val = $data[0]['var_value']; }else{ $val = ''; } return $val; } } if (!function_exists('getKodeKonsul')) { function getKodeKonsul(){ global $db; $sql = $db->query('SELECT * from global_var where var_name = \'tarif_konsul\''); if($sql->numRows() > 0){ $data = $sql->fetchAll(); $val = $data[0]['var_value']; }else{ $val = ''; } return $val; } } if (!function_exists('getTarifPendaftaran')) { function getTarifPendaftaran($kodetarif, $poli = null, $kelas = 3){ global $db; $sql = "SELECT *,(select nilai from m_tarifdetil where komponen like '%SARANA%' and kode_tarif = a.kode_tarif) as jasa_sarana, (select nilai from m_tarifdetil where komponen like '%LAYANAN%' and kode_tarif = a.kode_tarif) as jasa_pelayanan from m_tarif_rs a left join m_tarifkelas k on a.kelas_tarif = k.kelas left join m_tarifpengguna p on a.kode_tarif = p.kode_tarif left join m_unit u on p.pengguna = u.smf where a.kode_tarif = '$kodetarif' and a.aktif = 1"; if($poli != '' || $poli != null) { $sql .= " and u.kode_unit = $poli "; } if($kelas != '' || $poli != null) { $sql .= " and k.kokel = $kelas "; } $sql .= " limit 1"; $tarif = $db->query($sql); if($tarif->numRows() > 0){ $data = $tarif->fetchAll(); $val['kode_tarif'] = $data[0]['kode_tarif']; $val['jumlah'] = $data[0]['jumlah']; $val['jasa_sarana'] = ($data[0]['jasa_sarana'] == '' || $data[0]['jasa_sarana'] == null) ? 0 : $data[0]['jasa_sarana']; $val['jasa_pelayanan'] = ($data[0]['jasa_pelayanan'] == '' || $data[0]['jasa_pelayanan'] == null) ? 0 : $data[0]['jasa_pelayanan']; }else{ $val[] = ''; } return $val; } } if (!function_exists('getLastNoBILL')) { function getLastNoBILL($p=0){ global $db; $PRE_NO = $LASTNOBILL = $xLASTNOBILL = null; $PRE_NO = date('y'); $sql = $db->query('SELECT nomor FROM M_MAXNOBILL where type = \'bill_pasien\' and SUBSTRING(nomor::varchar(10),1,2) = \''.$PRE_NO.'\''); if($sql->numRows() > 0){ $row = $sql->fetchAll(); $LASTNOBILL = $row[0]['nomor']; // 18000002 if(substr($LASTNOBILL, 2) == '999999') { $xLASTNOBILL = '1'.str_pad('0', 6, '0', STR_PAD_LEFT); } else { if(strlen(substr($LASTNOBILL,2)) < 6) { $xLASTNOBILL = str_pad( (substr($LASTNOBILL,2)+$p), 6, '0', STR_PAD_LEFT); } else { $xLASTNOBILL = str_pad( (substr($LASTNOBILL,2)+$p), strlen(substr($LASTNOBILL,2)), '0', STR_PAD_LEFT); } } return $PRE_NO.$xLASTNOBILL; } else { return $PRE_NO.'000001'; } } } if(!function_exists('duplikasi_bill')) { function duplikasi_bill($nobill) { global $db; $nobill_top = $db->query("SELECT nobill from temp_nobill where nobill = '".$nobill."'"); if($nobill_top->numRows() > 0) { log_message('error','Terdapat nobill yang sama, proses pencarian bill baru...'); return true; } else { return false; } } } if (!function_exists('getLastNobillNonreg')) { function getLastNobillNonreg($p=0){ global $db; $PRE_NO = $LASTNOBILL = $xLASTNOBILL = null; $PRE_NO = date('y'); $sql = $db->query('SELECT nomor FROM M_MAXNOBILL where type = \'bill_nonreg\' and substring(nomor::varchar,1,2) = \''.$PRE_NO.'\''); if($sql->numRows() > 0){ $row = $sql->fetchAll(); $LASTNOBILL = $row[0]['nomor']; // 18000002 if(substr($LASTNOBILL, 2) == '999999') { $xLASTNOBILL = '1'.str_pad('0', 6, '0', STR_PAD_LEFT); } else { if(strlen(substr($LASTNOBILL,2)) < 6) { $xLASTNOBILL = str_pad( (substr($LASTNOBILL,2)+$p), 6, '0', STR_PAD_LEFT); } else { $xLASTNOBILL = str_pad( (substr($LASTNOBILL,2)+$p), strlen(substr($LASTNOBILL,2)), '0', STR_PAD_LEFT); } } return $PRE_NO.$xLASTNOBILL; } else { return $PRE_NO.'000001'; } } } if(!function_exists('duplikasi_bill_nonreg')) { function duplikasi_bill_nonreg($nobill) { global $db; $nobill_top = $db->query("SELECT nobill from temp_nobill_nonreg where nobill = '".$nobill."'"); if($nobill_top->numRows() > 0) { log_message('error','Terdapat nobill yang sama, proses pencarian bill baru...'); return true; } else { return false; } } } if (!function_exists('getLastIDXDAFTAR')) { function getLastIDXDAFTAR($p=0){ global $db; $sql = $db->query('SELECT idxdaftar from t_pendaftaran order by IDXDAFTAR desc limit 1'); if($sql->numRows() > 0){ $data = $sql->fetchFirst(); $no = $data['idxdaftar'] + $p; }else{ $no = 1; } return $no; } } if (!function_exists('getLastIDXOBATtmp')) { function getLastIDXOBATtmp($p=0){ global $db; $sql = $db->query('SELECT IDXOBAT from tmp_cartresep order by IDXOBAT desc limit 1'); if($sql->numRows() > 0){ $data = $sql->fetchAll(); $no = $data[0]['IDXOBAT'] + $p; }else{ $no = 1; } return $no; } } if (!function_exists('getNamaSMF')) { function getNamaSMF($kdpoly = null,$subspesialis = null){ global $db; if($kdpoly != null){ $tmp_ruang = $db->query("SELECT kdunit from m_ruang where no = ".$kdpoly); $unit_klinik = $tmp_ruang->fetchFirst()['kdunit']; } else { $unit_klinik = $subspesialis; } $sql = $db->query('SELECT nama_unit from m_unit where kode_unit = '.$unit_klinik); if($sql->numRows() > 0){ $data = $sql->fetchAll(); $v = 'Daftar Tindakan Poliklinik '.$data[0]['nama_unit']; }else{ $v = 'Daftar Tindakan Lain Lain'; } return $v; } } if (!function_exists('getGroupUnit')) { function getGroupUnit($val){ global $db; $sql = $db->query('SELECT * from m_unit where kode_unit = '.$val); if($sql->numRows() > 0){ $data = $sql->fetchAll(); $v = $data[0]['grup_unit']; }else{ $v = 1; } return $v; } } if (!function_exists('check_t_bayarrajal')) { function check_t_bayarrajal($nomr,$idxdaftar){ global $db; $sql = $db->query('SELECT * from t_bayarrajal where IDXDAFTAR = "'.$idxdaftar.'" and NOMR = "'.$nomr.'" ORDER BY NOBILL DESC LIMIT 1'); $data = $sql->fetchAll(); return $data[0]; } } if (!function_exists('check_t_bayarranap')) { function check_t_bayarranap($nomr,$idxdaftar){ global $db; $sql = $db->query('SELECT * from t_bayarranap where IDXDAFTAR = "'.$idxdaftar.'" and NOMR = "'.$nomr.'"'); $data = $sql->fetchAll(); return $data[0]; } } if (!function_exists('check_rajal_ranap_status_operasi')) { function check_rajal_ranap_status_operasi($select="*",$id){ global $db; $sql = $db->query('SELECT '.$select.' from t_operasi where id_operasi = '.$id); $data = $sql->fetchAll(); return $data[0]; } } if (!function_exists('getNamaDokter')) { function getNamaDokter($kddokter){ global $db; $sql = $db->query('SELECT * from m_dokter where KDDOKTER = '.$kddokter); $data = $sql->fetchAll(); return $data[0]; } } if (!function_exists('getTarif')) { function getTarif($kode){ global $db; $sql = $db->query("SELECT *,(select nilai from m_tarifdetil where komponen like '%SARANA%' and kode_tarif = a.kode_tarif) as jasa_sarana, (select nilai from m_tarifdetil where komponen like '%LAYANAN%' and kode_tarif = a.kode_tarif) as jasa_pelayanan, (select nilai from m_tarifdetil where komponen like '%ANASTESI%' and kode_tarif = a.kode_tarif) as jasa_anastesi from m_tarif_rs a join m_tarifkelas k on a.kelas_tarif = k.kelas left join m_tarifpengguna p on a.kode_tarif = p.kode_tarif left join m_unit u on p.pengguna = u.smf where a.kode_tarif = '$kode' and a.aktif = 1"); $data = $sql->fetchAll()[0]; return $data; } } if (!function_exists('TrimArray')) { function TrimArray($Input){ if (!is_array($Input)) return trim($Input); return array_map('TrimArray', $Input); } } if (!function_exists('getKecamatanName')) { function getKecamatanName($id){ global $db; $sql = $db->query('SELECT * from m_kecamatan where idkecamatan = '.$id); if($sql->numRows() > 0){ $data = $sql->fetchAll(); $val = $data[0]['namakecamatan']; }else{ $val = ''; } return $val; } } if (!function_exists('getdaftar')) { function getdaftar($nomr){ global $db; $sql = $db->query('SELECT idxdaftar from t_pendaftaran where KDPOLY ="10" and NOMR = "'.$nomr.'" order by IDXDAFTAR desc limit 1'); $data2 = $sql->fetchAll(); $data = $data2[0]['idxdaftar']; return $data; } } if (!function_exists('no_rm_billing')) { function no_rm_billing($no_terakhir) { $xLastno = $no_terakhir; $xLastnoreg = ''; if($xLastno == NULL) { $xLastnoreg = 1; } else { $xLastnoreg = $xLastno + 1; } $xPanjange = strlen(ltrim($xLastnoreg)); $xNOLkiup = (8-$xPanjange > 0) ? str_repeat('0', 8 - $xPanjange) : ''; if($xPanjange < 8) { $xLastnoreg = $xNOLkiup . ltrim($xLastnoreg); } else { $xLastnoreg = ltrim($xLastnoreg); } return $xLastnoreg; } } if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { global $db; global $logger; $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = $db->escape($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } if(!function_exists('get_antrian_poli')) { function get_antrian_poli($poli) { global $db; $count = 'SELECT count(IDXDAFTAR) as antrian FROM t_pendaftaran where KDPOLY = '.$poli.' and TGLREG = \''.date('Y-m-d').'\''; $dt_antri = $db->query($count)->fetchFirst(); $no_antri = ''; if(!empty($dt_antri)) { $no_antri = $dt_antri['antrian']+1; } else { $no_antri = 1; } return str_pad($no_antri, 3, '0', STR_PAD_LEFT); } } if(!function_exists('get_no_kunjungan')) { function get_no_kunjungan() { global $db; $count = 'SELECT count(IDXDAFTAR) as no FROM t_pendaftaran where tglreg = \''.date('Y-m-d').'\''; $dt_kunjungan = $db->query($count)->fetchFirst(); $no_kunjungan = ''; if(!empty($dt_kunjungan)) { $no_kunjungan = $dt_kunjungan['no']+1; } else { $no_kunjungan = 1; } return $no_kunjungan; } } // DATABASE HELPER if (!function_exists('execute')) { function execute($sql_queries,$enable_log = TRUE, $use_multiquery = FALSE) { global $db; global $logger; // include 'connect.php'; try { $str_query = $sql_queries; if($use_multiquery == TRUE) { /* $uri = $_SERVER['REQUEST_URI']; $protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $query = $_SERVER['QUERY_STRING']; if(!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; // share internet } elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; // pass from proxy } else { $ip=$_SERVER['REMOTE_ADDR']; } if($enable_log == TRUE){ $logger->addInfo($str_query,[$_SESSION['NAMA_PEGAWAI'],$url,$query,$ip]); } */ $result_set = array(); /* // execute multi query with mysqli_multi_query if (mysqli_multi_query($connect, $str_query)) { $i = 0; do { if ($result[$i] = mysqli_store_result($connect)) { $j = 0; while($result_set[$i][$j] = mysqli_fetch_array($result[$i])) { $j++; } mysqli_free_result($result[$i]); } mysqli_more_results($connect); $i++; } while (mysqli_more_results($connect) && mysqli_next_result($connect)); } */ // get all query $multi_query = explode(";", $str_query); $i = 0; foreach($multi_query as $single) { if(preg_match("/^SELECT/", trim($single)) ) { $result_set[$i] = $db->query(trim($single))->fetchAll(); } else { $db->debugging = TRUE; $result_set[$i] = $db->query(trim($single)); $db->debugging = FALSE; } } $execute = $result_set; } else { $db->debugging = TRUE; $execute = $db->query($str_query); $db->debugging = FALSE; } return $execute; } catch(Exception $e) { return $e->getMessage(); } } } // FORM HELPER /** * Drop-down Menu * * @access public * @param string * @param array * @param string * @param string * @return string */ if ( ! function_exists('form_dropdown')) { function form_dropdown($name = '', $options = array(), $selected = array(), $extra = '', $callback = null) { if ( ! is_array($selected)) { $selected = array($selected); } // If no selected state was submitted we will attempt to set it automatically if (count($selected) === 0) { // If the form name appears in the $_POST array we have a winner! if (isset($_POST[$name])) { $selected = array($_POST[$name]); } } if ($extra != '') $extra = ' '.$extra; $multiple = (count($selected) > 1 && strpos($extra, 'multiple') === FALSE) ? ' multiple="multiple"' : ''; $form = ''; return $form; } } if ( ! function_exists('form_input_radio')) { function form_input_radio($name = '', $options = array(), $selected = array(), $extra = '', $wrapper_class = 'form-check form-check-inline', $callback = null) { if ( ! is_array($selected)) { $selected = array($selected); } // If no selected state was submitted we will attempt to set it automatically if (count($selected) === 0) { // If the form name appears in the $_POST array we have a winner! if (isset($_POST[$name])) { $selected = array($_POST[$name]); } } // if ($extra != '') $extra = ' '.$extra; $multiple = (count($selected) > 1 && strpos($extra, 'multiple') === FALSE) ? ' multiple="multiple"' : ''; $form = ''; foreach ($options as $key => $val) { $key = (string) $key; if (is_array($val) && ! empty($val)) { $form .= ''."\n"; foreach ($val as $optgroup_key => $optgroup_val) { $sel = (in_array($optgroup_key, $selected)) ? ' selected="selected"' : ''; $form .= '\n"; } $form .= ''."\n"; } else { $sel = (in_array($key, $selected)) ? ' checked="checked"' : ''; $id = preg_replace("/[ ]/", '', $val); $val = ($callback != '') ? $callback($val) : $val; $form .= '

'; $form .= ' '; $form .= '
'; } } return $form; } } if ( ! function_exists('form_input')) { function form_input($name = '', $value = '', $extra = '') { $form = ''; return $form; } } if ( ! function_exists('form_number')) { function form_number($name = '', $value = '', $extra = '') { $form = ''; return $form; } } if ( ! function_exists('form_textarea')) { function form_textarea($name = '', $value = '', $extra = '') { $form = ''; return $form; } } if ( ! function_exists('form_file')) { function form_file($name = '', $value = '', $extra = '') { $form = ''; return $form; } } if ( ! function_exists('form_input_checkbox')) { function form_input_checkbox($name = '', $options = array(), $selected = array(), $extra = '',$wrapper_class = 'form-check form-check-inline') { if ( ! is_array($selected)) { $selected = array($selected); } // If no selected state was submitted we will attempt to set it automatically if (count($selected) === 0) { // If the form name appears in the $_POST array we have a winner! if (isset($_POST[$name])) { $selected = array($_POST[$name]); } } // if ($extra != '') $extra = ' '.$extra; $multiple = (count($selected) > 1 && strpos($extra, 'multiple') === FALSE) ? ' multiple="multiple"' : ''; $form = ''; foreach ($options as $key => $val) { $key = (string) $key; if (is_array($val) && ! empty($val)) { $form .= ''."\n"; foreach ($val as $optgroup_key => $optgroup_val) { $sel = (in_array($optgroup_key, $selected)) ? ' selected="selected"' : ''; $form .= '\n"; } $form .= ''."\n"; } else { $sel = (in_array($val, $selected)) ? ' checked="checked"' : ''; $id = preg_replace("/[ ]/", '', $val); $form .= '
'; $form .= ' '; $form .= '
'; } } return $form; } } // FILE HELPER /** * Read File * * Opens the file specfied in the path and returns it as a string. * * @access public * @param string path to file * @return string */ if ( ! function_exists('read_file')) { function read_file($file) { if ( ! file_exists($file)) { return FALSE; } if (function_exists('file_get_contents')) { return file_get_contents($file); } if ( ! $fp = @fopen($file, FOPEN_READ)) { return FALSE; } flock($fp, LOCK_SH); $data = ''; if (filesize($file) > 0) { $data =& fread($fp, filesize($file)); } flock($fp, LOCK_UN); fclose($fp); return $data; } } // SIMRS SNIPPET if (!function_exists('last_nolab')) { function last_nolab($lab_code){ global $db; if($lab_code == $_SESSION['kd_unit_lab_pk']) { $sql = "SELECT distinct nolab FROM t_orderlabpk_main WHERE nolab LIKE '".$lab_code.date('ym')."%' ORDER BY nolab DESC LIMIT 1"; } elseif($lab_code == $_SESSION['kd_unit_lab_mikro']) { $sql = "SELECT distinct nolab FROM t_orderlabmikro_main WHERE nolab LIKE '".$lab_code.date('ym')."%' ORDER BY nolab DESC LIMIT 1"; } elseif($lab_code == $_SESSION['kd_unit_lab_pa']) { $sql = "SELECT distinct noreglab FROM t_orderlabpa_main WHERE noreglab LIKE '".$lab_code.date('ym')."%' ORDER BY noreglab DESC LIMIT 1"; } elseif($lab_code == $_SESSION['kd_unit_rtindakan']) { $sql = "SELECT distinct noorder FROM t_ordertindakan_main WHERE noorder LIKE '".$lab_code.date('ym')."%' ORDER BY noorder DESC LIMIT 1"; } elseif($lab_code == $_SESSION['kd_unit_lab_darah']) { $sql = "SELECT distinct no_form FROM t_orderlabdarah_main WHERE no_form LIKE '".$lab_code.date('ym')."%' ORDER BY no_form DESC LIMIT 1"; } elseif($lab_code == $_SESSION['kd_unit_kendaraan']) { $sql = "SELECT distinct noorder FROM t_orderambulance_main WHERE noorder LIKE '".$lab_code.date('ym')."%' ORDER BY noorder DESC LIMIT 1"; } elseif($lab_code == $_SESSION['kd_unit_forensik']) { $sql = "SELECT distinct noorder FROM t_orderrjenazah_main WHERE noorder LIKE '".$lab_code.date('ym')."%' ORDER BY noorder DESC LIMIT 1"; } elseif($lab_code == $_SESSION['kd_unit_rehabmedik']) { $sql = "SELECT distinct nolab FROM t_orderrehabmedik_main WHERE nolab LIKE '".$lab_code.date('ym')."%' ORDER BY nolab DESC LIMIT 1"; } elseif($lab_code == 15) // kamar operasi { $sql = "SELECT distinct kode_booking FROM t_kamar_operasi WHERE kode_booking LIKE '".$lab_code.date('ym')."%' ORDER BY kode_booking DESC LIMIT 1"; } $sql = $db->query($sql); $PRE_NO = $LASTNOLAB = $xLASTNOLAB = null; $PRE_NO = $lab_code.date('ym'); if($sql->numRows() > 0) { $row = $sql->fetchAll(); if($lab_code == $_SESSION['kd_unit_lab_pa']){ $LASTNOLAB = $row[0]['noreglab']; } elseif($lab_code == $_SESSION['kd_unit_rtindakan']) { $LASTNOLAB = $row[0]['noorder']; } elseif($lab_code == $_SESSION['kd_unit_lab_darah']) { $LASTNOLAB = $row[0]['no_form']; } elseif($lab_code == $_SESSION['kd_unit_kendaraan']) { $LASTNOLAB = $row[0]['noorder']; } elseif($lab_code == $_SESSION['kd_unit_forensik']) { $LASTNOLAB = $row[0]['noorder']; } elseif($lab_code == 15) { $LASTNOLAB = $row[0]['kode_booking']; } else { $LASTNOLAB = $row[0]['nolab']; // 1618000001 } if(substr($LASTNOLAB, 6) == '999999') { $xLASTNOLAB = '1'.str_pad('0', 6, '0', STR_PAD_LEFT); } else { if(strlen(substr($LASTNOLAB,6)) < 6) { $xLASTNOLAB = str_pad( (substr($LASTNOLAB,6)+1), 6, '0', STR_PAD_LEFT); } else { $xLASTNOLAB = str_pad( (substr($LASTNOLAB,6)+1), strlen(substr($LASTNOLAB,6)), '0', STR_PAD_LEFT); } } return $PRE_NO.$xLASTNOLAB; } else { return $PRE_NO.'000001'; } } } if (!function_exists('last_noFilmRadiologi')) { function last_noFilmRadiologi(){ global $db; $sql = $db->query("SELECT nofilm FROM t_orderradiologi_main WHERE nofilm LIKE '".date('ym')."%' ORDER BY IDXPKRAD DESC LIMIT 1"); $PRE_NO = $LASTNOLAB = $xLASTNOLAB = null; $PRE_NO = date('ym'); if($sql->numRows() > 0) { $row = $sql->fetchAll(); $LASTNOLAB = $row[0]['nofilm']; // 1904000001 if(substr($LASTNOLAB, 4) == '999999') { $xLASTNOLAB = '1'.str_pad('0', 6, '0', STR_PAD_LEFT); } else { if(strlen(substr($LASTNOLAB,4)) < 6) { $xLASTNOLAB = str_pad( (substr($LASTNOLAB,4)+1), 6, '0', STR_PAD_LEFT); } else { $xLASTNOLAB = str_pad( (substr($LASTNOLAB,4)+1), strlen(substr($LASTNOLAB,4)), '0', STR_PAD_LEFT); } } return $PRE_NO.$xLASTNOLAB; } else { return $PRE_NO.'000001'; } } } if(!function_exists('preview_lap')) { function preview_lap($args,$temp_file = NULL,$is_pdf = FALSE) { if($temp_file == NULL) { $temp_file = 'laporan_temp.php'; } $report_template = read_file($temp_file); $image_path = ($is_pdf) ? _BASE_.'assets/images/kop_header.jpeg' : _BASE_.'assets/images/kop_header.jpeg'; $args['title'] = array_key_exists('title', $args) ? $args['title'] : 'Laporan'; $args['style'] = array_key_exists('style', $args) ? $args['style'] : ''; $args['header'] = array_key_exists('header', $args) ? '
'.$args['header'] : ''; $args['subheader'] = array_key_exists('subheader', $args) ? $args['subheader'] : ''; $args['headertambahan'] = array_key_exists('headertambahan', $args) ? $args['headertambahan'] : ''; $args['table_list1'] = array_key_exists('table_list1', $args) ? $args['table_list1'] : ''; $args['html_list'] = array_key_exists('html_list', $args) ? $args['html_list'] : 'Test'; $html = preg_replace("/\{\{title\}\}/", $args['title'], $report_template); $html = preg_replace("/\{\{style\}\}/", $args['style'], $html); $html = preg_replace("/\{\{header\}\}/", $args['header'], $html); $html = preg_replace("/\{\{subheader\}\}/", $args['subheader'], $html); $html = preg_replace("/\{\{headertambahan\}\}/", $args['headertambahan'], $html); $html = preg_replace("/\{\{table_list1\}\}/", $args['table_list1'], $html); $html = preg_replace("/\{\{table_list2\}\}/", $args['table_list2'], $html); $html = preg_replace("/\{\{html_list\}\}/", $args['html_list'], $html); return $html; } } if(!function_exists('getSMF')) { function getSMF($kode_unit) { global $db; $get_subs = $db->query("SELECT nama_unit,have_subspesialis from m_unit where kode_unit = ".$kode_unit); if($get_subs->numRows() > 0) { $first_row = $get_subs->fetchFirst(); if($first_row['have_subspesialis'] == 1) { $tmp_smf = $db->query("SELECT * from m_unit where pendapatan_unit like '%{$first_row['nama_unit']}%' and smf is not null;"); } else { $tmp_smf = $db->query("SELECT * from m_unit where kode_unit = ".$kode_unit); } } if($tmp_smf->numRows() > 0) { $arr_result = []; foreach($tmp_smf->fetchAll() as $data){ $arr_result[] = $data['smf']; $arr_result[] = $data['kel_smf_tarif']; } return implode('\',\'', $arr_result); } else { return false; } } } if (!function_exists('getTarifById')) { function getTarifById($id){ global $db; $sql = $db->query("SELECT *,(select nilai from m_tarifdetil where komponen like '%SARANA%' and kode_tarif = a.kode_tarif) as jasa_sarana, (select nilai from m_tarifdetil where komponen like '%LAYANAN%' and kode_tarif = a.kode_tarif) as jasa_pelayanan, (select nilai from m_tarifdetil where komponen like '%ANASTESI%' and kode_tarif = a.kode_tarif) as jasa_anastesi from m_tarif_rs a where a.id_tarif = $id and a.aktif = 1"); if($sql->numRows() > 0){ $data = $sql->fetchAll(); return $data[0]; }else{ $val = false; } return $val; } } if(!function_exists('get_data_table')) { function get_data_table($param = array()) { global $db; global $logger; $limit = ""; // Paging if ( isset( $param['get']['start'] ) && $param['get']['length'] != '-1' ){ $limit = "LIMIT ".$param['get']['length']." OFFSET ".$param['get']['start']; } // Ordering $sOrder = ""; if($param['order'] == '') { if ( isset( $param['get']['order'][0]['column'] ) ){ $sOrder = "ORDER BY "; for ( $i=0 ; $i < count( $param['get']['columns'] ) ; $i++ ) { if ( $param['get']['columns'][$i]['orderable'] == TRUE ) { $sOrder .= $param['get']['columns'][$i]['name'].", "; } } $sOrder = substr_replace( $sOrder, "", -2 ); if ( $sOrder == "ORDER BY" ) { $sOrder = ""; } } } else { $sOrder = $param['order']; } /* * Filtering * NOTE this does not match the built-in DataTables filtering which does it * word by word on any field. It's possible to do here, but concerned about efficiency * on very large tables, and MySQL's regex functionality is very limited */ $sWhere = ""; if ( isset($param['get']['search']['value']) && $param['get']['search']['value'] != "" ) { $sWhere = "WHERE ("; for ( $i=0 ; $iaddInfo("searchable col $i = ".$param['get']['columns'][$i]['searchable']); if ($param['get']['columns'][$i]['searchable'] == "true") { if(_DBTYPE_ == 'mysqli') { $col_name = change_where_column($param['aColumns'][$i]); $operator = 'LIKE'; } else { $col_name = change_where_column($param['aColumns'][$i]); $col_name = ($param['column_type'][$i] == 1) ? $col_name.'::text' : $col_name; $operator = 'ILIKE'; } $sWhere .= $col_name." $operator '%".$param['get']['search']['value']."%' OR "; } } $sWhere = substr_replace( $sWhere, "", -3 ); $sWhere .= ')'; } // Individual column filtering for ( $i=0 ; $idb->list_fields($param['table_name']); // if (in_array('is_deleted', $fields)){ // $sWhere .= ($sWhere == "") ? "WHERE " : " AND "; // $sWhere .= " ".$param['table_name'].".is_deleted = 0"; // } } // SQL queries Get data to display // ditambah distinct karena ada data yang double setelah dilakukan join $sJoin = (array_key_exists("sJoin", $param) && $param["sJoin"] != '') ? $param["sJoin"] : ""; $sQuery = "SELECT ".str_replace(" , ", " ", implode(", ", $param['aColumns']))." FROM ".$param['table_name']." $sJoin $sWhere $sOrder $limit"; $sQuery2 = "SELECT count(".$param['sIndexColumn'].") as rows FROM ".$param['table_name']." $sJoin $sWhere "; $sQuery3 = "SELECT COUNT(".$param['sIndexColumn'].") as jmlrow FROM ".$param['table_name']." $sJoin "; $rResult = $db->query($sQuery)->fetchAll(); /* Data set length after filtering */ $rResultFilterTotal = $db->query($sQuery2); $arrFilteredTotal = $rResultFilterTotal->fetchAll()[0]; $iFilteredTotal = $arrFilteredTotal['rows']; /* Total data set length */ $rResultTotal = $db->query($sQuery3); $arrTotal = $rResultTotal->fetchAll()[0]; $iTotal = $arrTotal['jmlrow']; return array( "data" => $rResult, "recordsTotal" => $iTotal, "recordsFiltered" => $iFilteredTotal ); } function change_column($column_name) { // Spesial treatment to show row data if (preg_match("/\./", $column_name)) { $exp_column_name = explode(".",$column_name); $column_name = end($exp_column_name); } if (preg_match("/ as /i", $column_name)) { $exp_column_name = explode(" as ",$column_name); $column_name = end($exp_column_name); } return $column_name; } function change_where_column($column_name) { // Spesial treatment to show row data if (preg_match("/ as /i", $column_name)) { $exp_column_name = explode(" as ",$column_name); $column_name = end($exp_column_name); } elseif(preg_match("/tgl/", $column_name)) { $column_name = $column_name.'::varchar(10)'; } return $column_name; } function change_value($column_name, $column_value) { $column_value = preg_replace('/[\x00-\x08\x10\x0B\x0C\x0E-\x19\x7F]'. '|[\x00-\x7F][\x80-\xBF]+'. '|([\xC0\xC1]|[\xF0-\xFF])[\x80-\xBF]*'. '|[\xC2-\xDF]((?![\x80-\xBF])|[\x80-\xBF]{2,})'. '|[\xE0-\xEF](([\x80-\xBF](?![\x80-\xBF]))|(?![\x80-\xBF]{2})|[\x80-\xBF]{3,})/S', '?', $column_value ); if ($column_name == 'icon') $result = ''; elseif (preg_match("/(biaya)|(total)|(bayar)|debet|kredit|saldo|db|cr|profit/", $column_name)) { $column_value = floatval($column_value); $result = curformat($column_value); } elseif (preg_match("/_availability/", $column_name)) $result = ($column_value == 1) ? 'Ya' : 'Tidak'; else $result = $column_value; return $result; } } if (!function_exists('valid_nip')) { function valid_nip($args) { global $db; $ip = getRealIpAddr(); $db->query("DELETE from tmp_cartbayar where IP = '$ip'"); $db->query("DELETE from tmp_orderpenunjang where ip = '$ip'"); $db->query("DELETE from tmp_cartresep where IP = '$ip'"); $sql = "SELECT * FROM m_login WHERE NIP = '$args' and aktif = 1"; $query = $db->query($sql)->fetchAll(); $data = $query[0]; $NIP = $data['nip']; $KDUNIT = $data['kdunit']; if($args == $NIP){ $_SESSION['NIP'] = $NIP; $_SESSION['KDUNIT'] = $KDUNIT; $status_sistem = ''; if($data['kddokter'] != 0 && $data['roles'] == 10) { $status_login = 'dokter'; } elseif($data['kdperawat'] != 0) { $status_login = 'perawat'; if(in_array($data['kdunit'],[19,20,21,22,23,26])) { $status_sistem = 'ranap'; } else { $status_sistem = 'rajal'; } // sleect login akses $tmp_akses = $db->query("SELECT * from m_login_akses where nip ='$NIP' and roles = 28"); if($tmp_akses->numRows() > 0) { $status_tindakan = 'tindakan'; } else { $status_tindakan = ''; } } elseif($KDUNIT == 14) { $stutus_login = 'farmasi'; } else { $status_login = 'umum'; } // $status_login = ($data['kddokter'] != 0 && $data['roles'] == 10) ? 'dokter' : (($data['kdperawat'] != 0) ? 'perawat' : (($KDUNIT == 14) ? 'farmasi' : 'umum')); $hidden_form = ''; $hidden_form .= ''; $hidden_form .= ''; $hidden_form .= ''; $hidden_form .= ''; if($status_login == 'dokter') { $_SESSION['KDDOKTER'] = $data['kddokter']; } if($KDUNIT == 14){ // $hidden_form .= ''; } return " USERNAME Valid".$hidden_form; }else{ return " USERNAME Tidak Valid"; } } } if (!function_exists('lastNoBayar')) { function lastNoBayar($petugas = '', $tanggal = '', $shift = ''){ global $db; $tanggal = ($tanggal != '') ? $tanggal : date('Y-m-d'); $shift = ($shift != '') ? $shift : $_SESSION['SHIFT']; $sql = $db->query("SELECT nomor FROM m_maxnobyr where type='kuitansi' and petugas = '$petugas' and tanggal = '$tanggal' and shift = '$shift'"); $PRE_NO = $LASTNOBAYAR = $xLASTNOBAYAR = null; $PRE_NO = date('y'); $jml_no = $sql->numRows(); if($jml_no > 0){ $row = $sql->fetchFirst(); $LASTNOBAYAR = ((int) $row['nomor'])+1; // 0000002 $xLASTNOBAYAR = str_pad($LASTNOBAYAR, 7, '0', STR_PAD_LEFT); return $xLASTNOBAYAR; } else { $new_nobayar = '0000001'; execute("INSERT into m_maxnobyr values ('$new_nobayar','kuitansi','$petugas','$tanggal','$shift')"); return $new_nobayar; } } } if (!function_exists('lastNoNota')) { function lastNoNota(){ global $db; $sql = $db->query('SELECT nomor FROM m_maxnobyr where type=\'nota\''); $PRE_NO = $LASTNOBAYAR = $xLASTNOBAYAR = null; $PRE_NO = date('y'); $nonota = null; if($sql->numRows() > 0){ $row = $sql->fetchAll(); $LASTNOBAYAR = $row[0]['nomor']; // 18000002 if(substr($LASTNOBAYAR, 2) == '999999') { $xLASTNOBAYAR = '1'.str_pad('0', 6, '0', STR_PAD_LEFT); } else { if(strlen(substr($LASTNOBAYAR, 2)) < 6) { $xLASTNOBAYAR = str_pad( (substr($LASTNOBAYAR, 2)+1), 6, '0', STR_PAD_LEFT); } else { $xLASTNOBAYAR = str_pad( (substr($LASTNOBAYAR, 2)+1), strlen(substr($LASTNOBAYAR, 2)), '0', STR_PAD_LEFT); } } $nonota = $PRE_NO.$xLASTNOBAYAR; } else { $nonota = $PRE_NO.'000001'; } $update = $db->query("UPDATE m_maxnobyr set nomor = $nonota where type='nota'"); return $nonota; } } if (!function_exists('last_nononreg')) { function last_nononreg($prefix){ global $db; $sql = "SELECT distinct no_nonreg FROM m_nonreg WHERE no_nonreg LIKE '".$prefix.date('ymd')."%' ORDER BY no_nonreg DESC LIMIT 1"; $sql = $db->query($sql); $PRE_NO = $LASTNOLAB = $xLASTNOLAB = null; $PRE_NO = $prefix.date('ymd'); if($sql->numRows() > 0) { $row = $sql->fetchAll(); $LASTNOLAB = $row[0]['no_nonreg']; if(substr($LASTNOLAB, 8) == '9999') { $xLASTNOLAB = '1'.str_pad('0', 4, '0', STR_PAD_LEFT); } else { if(strlen(substr($LASTNOLAB,8)) < 4) { $xLASTNOLAB = str_pad( (substr($LASTNOLAB,8)+1), 4, '0', STR_PAD_LEFT); } else { $xLASTNOLAB = str_pad( (substr($LASTNOLAB,8)+1), strlen(substr($LASTNOLAB,8)), '0', STR_PAD_LEFT); } } return $PRE_NO.$xLASTNOLAB; } else { return $PRE_NO.'0001'; } } } if (!function_exists('last_noresep')) { function last_noresep($prefix,$rajal_status){ global $db; if($rajal_status == 1) { $table = 't_permintaan_apotek_rajal'; } else { $table = 't_permintaan_apotek_ranap'; } $sql = "SELECT distinct no,idxpesanobat FROM $table WHERE no LIKE '".$prefix.date('ym')."%' ORDER BY idxpesanobat DESC LIMIT 1"; $sql = $db->query($sql); $PRE_NO = $LASTNOLAB = $xLASTNOLAB = null; $PRE_NO = $prefix.date('ym'); if($sql->numRows() > 0) { $row = $sql->fetchAll(); $LASTNOLAB = $row[0]['no']; if(substr($LASTNOLAB, 6) == '999999') { $xLASTNOLAB = '1'.str_pad('0', 6, '0', STR_PAD_LEFT); } else { if(strlen(substr($LASTNOLAB,6)) < 6) { $xLASTNOLAB = str_pad( (substr($LASTNOLAB,6)+1), 6, '0', STR_PAD_LEFT); } else { $xLASTNOLAB = str_pad( (substr($LASTNOLAB,6)+1), strlen(substr($LASTNOLAB,6)), '0', STR_PAD_LEFT); } } return $PRE_NO.$xLASTNOLAB; } else { return $PRE_NO.'000001'; } $db->close(); } } if (!function_exists('last_nonota_by_bill')) { function last_nonota_by_bill($prefix,$rajal_status){ global $db; if($rajal_status == 1) { $table = 't_billrajal'; } elseif($rajal_status == 0) { $table = 't_billranap'; } elseif ($rajal_status == 2) { $table = 't_billnonreg'; } $sql = "SELECT distinct nonota FROM $table WHERE nonota::varchar(50) LIKE '".$prefix."%' ORDER BY nonota DESC LIMIT 1"; $sql = $db->query($sql); $PRE_NO = $LASTNOLAB = $xLASTNOLAB = null; $PRE_NO = $prefix; if($sql->numRows() > 0) { $row = $sql->fetchAll(); $LASTNOLAB = $row[0]['nonota']; if(substr($LASTNOLAB, 8) == '999') { $xLASTNOLAB = '1'.str_pad('0', 3, '0', STR_PAD_LEFT); } else { if(strlen(substr($LASTNOLAB,8)) < 3) { $xLASTNOLAB = str_pad( (substr($LASTNOLAB,8)+1), 3, '0', STR_PAD_LEFT); } else { $xLASTNOLAB = str_pad( (substr($LASTNOLAB,8)+1), strlen(substr($LASTNOLAB,8)), '0', STR_PAD_LEFT); } } return $PRE_NO.$xLASTNOLAB; } else { return $PRE_NO.'001'; } $db->close(); } } if(!function_exists('arr_dokter')) { function arr_dokter() { global $db; $dokter = 'SELECT distinct b.kddokter, b.namadokter, b.tgl_akhir_sip,b.kdpoly, b.kdsmf, b.kdprofesi FROM m_dokter b WHERE b.aktif = 1'; $tmp_dokter = $db->query($dokter); $arr_dokter = $arr_dokter_ppds = []; if($tmp_dokter->numRows() > 0){ foreach($tmp_dokter->fetchAll() as $d){ $tgl_SIP = new Datetime($d['tgl_akhir_sip']); $tgl_sekarang = new Datetime(date('Y-m-d')); if($d['tgl_akhir_sip'] > '0000-00-00' || $d['tgl_akhir_sip'] > '0001-01-01'){ if($tgl_sekarang <= $tgl_SIP) { $arr_dokter[$d['kddokter']] = $d['namadokter']; } } if($d['kdprofesi'] == 0) { $arr_dokter_ppds[$d['namadokter']] = $d['namadokter']; } } } return $arr_dokter; } } if(!function_exists('arr_dokter_klinik')) { function arr_dokter_klinik($kode_klinik = '') { global $db; $where = ($kode_klinik == '') ? ' and a.kdpoly = '.$kode_klinik : ''; $dokter = 'SELECT distinct b.kddokter, b.namadokter, b.tgl_akhir_sip,b.kdpoly, b.kdsmf, b.kdprofesi FROM m_dokter b join m_dokter_jaga a on a.kddokter = b.kddokter WHERE b.aktif = 1 '.$where; $tmp_dokter = $db->query($dokter); $arr_dokter = $arr_dokter_ppds = []; if($tmp_dokter->numRows() > 0){ foreach($tmp_dokter->fetchAll() as $d){ $tgl_SIP = new Datetime($d['tgl_akhir_sip']); $tgl_sekarang = new Datetime(date('Y-m-d')); if($d['tgl_akhir_sip'] > '0000-00-00' || $d['tgl_akhir_sip'] > '0001-01-01'){ if($tgl_sekarang <= $tgl_SIP) { $arr_dokter[$d['kddokter']] = $d['namadokter']; } } if($d['kdprofesi'] == 0) { $arr_dokter_ppds[$d['namadokter']] = $d['namadokter']; } } } return $arr_dokter; } } // DEBUGGING HELPER if(!function_exists('dd')){ function dd($str_debug) { return '
'.print_r($str_debug).'
'; } } if(!function_exists('log_message')) { function log_message($type, $message) { global $logger; $uri = $_SERVER['REQUEST_URI']; $protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $query = $_SERVER['QUERY_STRING']; if(!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; // share internet } elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; // pass from proxy } else { $ip=$_SERVER['REMOTE_ADDR']; } if($type == 'error') { $logger->addError($message,[$_SESSION['NAMA_PEGAWAI'],$url,$query,$ip]); } else { $logger->addDebug($message,[$_SESSION['NAMA_PEGAWAI'],$url,$query,$ip]); } } } if(!function_exists('column_num')){ function column_num($d,$is_reverse = false){ $abjad = array("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", "AA","AB","AC","AD","AE","AF","AG","AH","AI","AJ","AK","AL","AM","AN","AO","AP","AQ","AR","AS","AT","AU","AV","AW","AX","AY","AZ", "BA","BB","BC","BD","BE","BF","BG","BH","BI","BJ","BK","BL","BM","BN","BO","BP","BQ","BR","BS","BT","BU","BV","BW","BX","BY","BZ", "CA","CB","CC","CD","CE","CF","CG","CH","CI","CJ","CK","CL","CM","CN","CO","CP","CQ","CR","CS","CT","CU","CV","CW","CX","CY","CZ", "DA","DB","DC","DD","DE","DF","DG","DH","DI","DJ","DK","DL","DM","DN","DO","DP","DQ","DR","DS","DT","DU","DV","DW","DX","DY","DZ", "EA","EB","EC","ED","EE","EF","EG","EH","EI","EJ","EK","EL","EM","EN","EO","EP","EQ","ER","ES","ET","EU","EV","EW","EX","EY","EZ", ); if($is_reverse) { return array_keys($abjad,$d); } else{ return $abjad[$d]; } } } /* SECURITY HELPER */ if ( ! function_exists('remove_invisible_characters')) { /** * Remove Invisible Characters * * This prevents sandwiching null characters * between ascii characters, like Java\0script. * * @param string * @param bool * @return string */ function remove_invisible_characters($str, $url_encoded = TRUE) { $non_displayables = array(); // every control character except newline (dec 10), // carriage return (dec 13) and horizontal tab (dec 09) if ($url_encoded) { $non_displayables[] = '/%0[0-8bcef]/'; // url encoded 00-08, 11, 12, 14, 15 $non_displayables[] = '/%1[0-9a-f]/'; // url encoded 16-31 } $non_displayables[] = '/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S'; // 00-08, 11, 12, 14-31, 127 do { $str = preg_replace($non_displayables, '', $str, -1, $count); } while ($count); return $str; } } if ( ! function_exists('xss_hash')) { /** * Random Hash for protecting URLs * * @return string */ function xss_hash() { mt_srand(); $xss_hash = md5(time() + mt_rand(0, 1999999999)); return $xss_hash; } } if ( ! function_exists('_validate_entities')) { /** * Validate URL entities * * Called by xss_clean() * * @param string * @return string */ function _validate_entities($str) { /* * Protect GET variables in URLs */ // 901119URL5918AMP18930PROTECT8198 $str = preg_replace('|\&([a-z\_0-9\-]+)\=([a-z\_0-9\-]+)|i', xss_hash()."\\1=\\2", $str); /* * Validate standard character entities * * Add a semicolon if missing. We do this to enable * the conversion of entities to ASCII later. * */ $str = preg_replace('#(&\#?[0-9a-z]{2,})([\x00-\x20])*;?#i', "\\1;\\2", $str); /* * Validate UTF16 two byte encoding (x00) * * Just as above, adds a semicolon if missing. * */ $str = preg_replace('#(&\#x?)([0-9A-F]+);?#i',"\\1\\2;",$str); /* * Un-Protect GET variables in URLs */ $str = str_replace(xss_hash(), '&', $str); return $str; } }