Files
simrs-jatim/include/function.php
2024-04-19 14:04:41 +07:00

2296 lines
64 KiB
PHP

<?php
ini_set('date.timezone','Asia/Jakarta');
$path = realpath(dirname(__FILE__));
if (!function_exists('makeDir')) {
function makeDir($new_path, $mode) {
return is_dir($new_path) || mkdir($new_path, $mode, true);
}
}
require_once (_DOCROOT_.'vendor/autoload.php');
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Handler\FirePHPHandler;
// create a log channel
$logger = new Logger('simrs');
$daily_log = date('d-m-Y').'.log';
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$logdir = 'C:/Users/Public/simrs-logs/';
} else {
$logdir = $_SERVER['DOCUMENT_ROOT'].'/logs/';
}
$year_dir = makeDir($logdir.'activity/'.date('Y'),0777);
$month_dir = makeDir($logdir.'activity/'.date('Y').'/'.date('m'),0777);
$dir_log = $logdir.'activity/'.date('Y').'/'.date('m').'/'.$daily_log;
$logger->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", '<p class="full">');
$arr_replace = array("\n", '<p style="text-align:justify">');
$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<strlen($format);$x++){
$f = substr($format, $x, 1);
if($f == 'd') $str_date .= $day;
elseif($f == 'D') $str_date .= $d;
elseif($f == 'M') $str_date .= $m;
elseif($f == 'Y') $str_date .= $y;
elseif($f == 'H') $str_date .= $h;
elseif($f == 'i') $str_date .= $i;
else $str_date .= $f;
}
return $str_date;
}
}
if(!function_exists('get_icd')) {
function get_icd() {
return [10=>'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 = '<select name="'.$name.'"'.$extra.$multiple.">\n";
foreach ($options as $key => $val)
{
$key = (string) $key;
if (is_array($val) && ! empty($val))
{
$form .= '<optgroup label="'.$key.'">'."\n";
foreach ($val as $optgroup_key => $optgroup_val)
{
$sel = (in_array($optgroup_key, $selected)) ? ' selected="selected"' : '';
$form .= '<option value="'.$optgroup_key.'"'.$sel.'>'.(string) $optgroup_val."</option>\n";
}
$form .= '</optgroup>'."\n";
}
else
{
$val = ($callback != '') ? $callback($val) : $val;
$sel = (in_array($key, $selected)) ? ' selected="selected"' : '';
$form .= '<option value="'.$key.'"'.$sel.'>'.(string) $val."</option>\n";
}
}
$form .= '</select>';
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 .= '<optgroup label="'.$key.'">'."\n";
foreach ($val as $optgroup_key => $optgroup_val)
{
$sel = (in_array($optgroup_key, $selected)) ? ' selected="selected"' : '';
$form .= '<option value="'.$optgroup_key.'"'.$sel.'>'.(string) $optgroup_val."</option>\n";
}
$form .= '</optgroup>'."\n";
}
else
{
$sel = (in_array($key, $selected)) ? ' checked="checked"' : '';
$id = preg_replace("/[ ]/", '', $val);
$val = ($callback != '') ? $callback($val) : $val;
$form .= '<div class="'.$wrapper_class.'">';
$form .= '<input type="radio" name="'.$name.'" id="'.$extra.'_'.$id.'" class="form-check-input" '.$sel.' value="'.$val.'">
<label class="form-check-label" for="'.$extra.'_'.$id.'">
'.$val.'
</label>';
$form .= '</div>';
}
}
return $form;
}
}
if ( ! function_exists('form_input'))
{
function form_input($name = '', $value = '', $extra = '')
{
$form = '<input type="text" name="'.$name.'" value="'.$value.'" '.$extra.'>';
return $form;
}
}
if ( ! function_exists('form_number'))
{
function form_number($name = '', $value = '', $extra = '')
{
$form = '<input type="number" name="'.$name.'" value="'.$value.'" '.$extra.'>';
return $form;
}
}
if ( ! function_exists('form_textarea'))
{
function form_textarea($name = '', $value = '', $extra = '')
{
$form = '<textarea name="'.$name.'" '.$extra.'>'.$value.'</textarea>';
return $form;
}
}
if ( ! function_exists('form_file'))
{
function form_file($name = '', $value = '', $extra = '')
{
$form = '<input type="file" name="'.$name.'" value="'.$value.'" '.$extra.'>';
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 .= '<optgroup label="'.$key.'">'."\n";
foreach ($val as $optgroup_key => $optgroup_val)
{
$sel = (in_array($optgroup_key, $selected)) ? ' selected="selected"' : '';
$form .= '<option value="'.$optgroup_key.'"'.$sel.'>'.(string) $optgroup_val."</option>\n";
}
$form .= '</optgroup>'."\n";
}
else
{
$sel = (in_array($val, $selected)) ? ' checked="checked"' : '';
$id = preg_replace("/[ ]/", '', $val);
$form .= '<div class="'.$wrapper_class .'">';
$form .= '<input type="checkbox" name="'.$name.'" id="'.$extra.'_'.$id.'" class="form-check-input" '.$sel.' value="'.$val.'">
<label class="form-check-label" for="'.$extra.'_'.$id.'">
'.$val.'
</label>';
$form .= '</div>';
}
}
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) ? '<img src="'.$image_path.'"><br>'.$args['header'] : '<img src="'.$image_path.'">';
$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['table_list2'] = array_key_exists('table_list2', $args) ? $args['table_list2'] : '-->';
$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 ; $i<count($param['get']['columns']) ; $i++ )
{
// $logger->addInfo("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 ; $i<count($param['get']['columns']) ; $i++ )
{
if ( isset($param['get']['columns'][$i]['searchable']) && $param['get']['columns'][$i]['searchable'] == "true" && $param['get']['columns'][$i]['search']['value'] != '' )
{
$sWhere = ($sWhere == "") ? "WHERE " : $sWhere." AND ";
if(preg_match("/tgl/", $param['get']['columns'][$i]['name'])) {
$sWhere .= $param['get']['columns'][$i]['name']."::varchar(16) ILIKE '%".$param['get']['columns'][$i]['search']['value']."%' ";
}
else {
$sWhere .= $param['get']['columns'][$i]['name']." ILIKE '%".$param['get']['columns'][$i]['search']['value']."%' ";
}
}
}
// filter manual
if ($param["filter"] != ""){
$sWhere .= ($sWhere == "") ? "WHERE " : " AND ";
$sWhere .= $param["filter"];
}
else {
// $fields = $this->db->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 = '<span class="'.$column_value.'" style="font-size:12pt;"></span>';
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) ? '<span class="label label-success">Ya</span>' : '<span class="label label-danger">Tidak</span>';
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 = '<input type="hidden" id="status_login" name="status_login" value="'.$status_login.'">';
$hidden_form .= '<input type="hidden" id="kddokter" value="'.$data['kddokter'].'">';
$hidden_form .= '<input type="hidden" id="status_sistem" value="'.$status_sistem.'">';
$hidden_form .= '<input type="hidden" id="status_tindakan" value="'.$status_tindakan.'">';
$hidden_form .= '<input type="hidden" id="urlfinger" value="'.base64_encode(_BASE_.'flexcode/model.php?action=user_login&user_kode='.$data['kddokter']).'">';
if($status_login == 'dokter') {
$_SESSION['KDDOKTER'] = $data['kddokter'];
}
if($KDUNIT == 14){
// $hidden_form .= '<input type="hidden" id="subdepo" value="'.$subdepo.'">';
}
return "<font color='green'> USERNAME Valid</font>".$hidden_form;
}else{
return "<font color='red'> USERNAME Tidak Valid</font>";
}
}
}
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 '<pre>'.print_r($str_debug).'</pre>';
}
}
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;
}
}