query("SELECT a.nobill,a.nomr,a.idxdaftar,b.kdpoly as kode_tempat,c.nama,c.alamat,c.notelp,d.nama as tempat_layanan,1 as st_rajal,dok.namadokter as dpjp,0 as st_aps,b.keluarpoly as keluarrs,sk.keterangan as keterangan_pulang from t_billrajal a JOIN t_pendaftaran b on a.idxdaftar = b.idxdaftar join m_pasien c on a.nomr = c.nomr join m_ruang d on b.kdpoly = d.no left join m_dokter dok on b.kddokter = dok.kddokter left join m_statuskeluar sk on sk.status = b.status where a.nobill = '$nobill' and a.status <> 'BATAL' UNION SELECT a.nobill,a.nomr,a.idxdaftar,a.kdpoly as kode_tempat,c.nama,c.alamat,c.notelp,d.nama as tempat_layanan,1 as st_rajal,dok.namadokter as dpjp,1 as st_aps,null as keluarrs,null as keterangan_pulang from t_billrajal a JOIN t_pendaftaran_aps b on a.idxdaftar = b.idxdaftar join m_pasien_aps c on a.nomr = c.nomr left join m_ruang d on b.kdpoly = d.no left join m_dokter dok on b.kddokter = dok.kddokter where a.nobill = '$nobill' and a.status <> 'BATAL' and a.aps = 1 UNION SELECT a.nobill,a.nomr,a.idxdaftar,b.noruang as kode_tempat,c.nama,c.alamat,c.notelp,d.nama as tempat_layanan,0 as st_rajal, dok.namadokter as dpjp,0 as st_aps,b.keluarrs,sk.keterangan as keterangan_pulang from t_billranap a JOIN t_admission b on a.idxdaftar = b.id_admission join m_pasien c on a.nomr = c.nomr join m_ruang d on b.noruang = d.no left join m_dokter dok on b.dokter_penanggungjawab = dok.kddokter left join t_resumepulang rp on rp.idadmission = b.id_admission left join m_statuskeluar sk on rp.statuspulang = sk.status where a.nobill = '$nobill' and b.keluarrs is null and a.status <> 'BATAL' "); if($tmp_identitas->numRows() > 0) { $data_pasien = $tmp_identitas->fetchFirst(); $db_igd = $db->query("SELECT no,nama FROM m_ruang where kelompok = 'IGD' and st_aktif = 1"); $arr_igd = $arr_nama_igd = []; foreach($db_igd->fetchAll() as $igd) { $arr_igd[] = $igd['no']; $arr_nama_igd[$igd['no']] = $igd['nama']; } if($data_pasien['keterangan_pulang'] != null && in_array($data_pasien['kode_tempat'],$arr_igd)) { echo json_encode(['message'=>'No Billing sudah ditutup dengan status '.$data_pasien['keterangan_pulang'],'type'=>'error']); exit; } echo json_encode($data_pasien); exit; } else { echo json_encode(['message'=>'No Billing tidak ditemukan','type'=>'error']); exit; } } else { echo json_encode(['message'=>'No Billing tidak ditemukan','type'=>'error']); exit; } } if($page == 'cari_nonreg') { $nobill = preg_replace("/\./", '', $_REQUEST['input']['nobill']); $tmp_identitas = $db->query("SELECT a.nobill,a.no_nonreg as nomr,a.idx_nonreg as idxdaftar,a.ruang as kode_tempat,c.nama,c.alamat,c.no_telepon as notelp,d.nama as tempat_layanan,'nonreg' as st_rajal,dok.namadokter as dpjp,0 as st_aps from t_billnonreg a join m_nonreg c on a.idx_nonreg = c.idx_nonreg join m_ruang d on a.ruang = d.no left join m_dokter dok on a.kddokter = dok.kddokter where a.nobill = '$nobill' and a.status <> 'BATAL' "); if($tmp_identitas->numRows() > 0) { $data_pasien = $tmp_identitas->fetchFirst(); echo json_encode($data_pasien); exit; } else { echo json_encode(['message'=>'No Billing tidak ditemukan','type'=>'error']); exit; } } else if($page == 'cari_tarif') { $kode_tarif = $_REQUEST['kode_tarif']; $tmp_tarif = $db->query("SELECT id_tarif,kode_tarif,uraian_tarif,jumlah,(select nilai from m_tarifdetil where komponen like '%SARANA%' and kode_tarif = m_tarif_rs.kode_tarif) as jasa_sarana,(select nilai from m_tarifdetil where komponen like '%LAYANAN%' and kode_tarif = m_tarif_rs.kode_tarif) as jasa_pelayanan,(select nilai from m_tarifdetil where komponen like '%ANASTESI%' and kode_tarif = m_tarif_rs.kode_tarif) as jasa_anastesi,st_paket from m_tarif_rs where kode_tarif = '$kode_tarif'"); if($tmp_tarif->numRows() > 0) { $data_tarif = $tmp_tarif->fetchFirst(); $tmp_dokter = $db->query("SELECT * FROM m_dokter and aktif = 1"); $arr_dokter = $arr_dokter_anastesi = []; 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) { if(trim($d['kdsmf']) == 'ANESTHESI') { $arr_dokter_anastesi[$d['kddokter']] = $d['namadokter']; } // else { $arr_dokter[$d['kdsmf']][$d['kddokter']] = $d['namadokter']; // } } } } } $format_dpjp = false; if($data_tarif['jasa_pelayanan'] > 0) { $format_dpjp = '
'.form_dropdown('dpjp_pelayanan',$arr_dokter,'','class="form-control dpjp_tarif"').'
'; if($data_tarif['jasa_anastesi'] > 0) { $format_dpjp .= '
'.form_dropdown('dpjp_anastesi',$arr_dokter_anastesi,'','class="form-control dpjp_tarif"').'
'; } } echo json_encode(['tarif'=>$data_tarif,'dpjp'=>$format_dpjp]); exit; } else { echo json_encode(['message'=>'Kode Tarif tidak ditemukan','type'=>'error']); exit; } } else if($page == 'load_kode_tarif') { $kode_tarif = $_REQUEST['kode']; if(strlen($kode_tarif) >= 2) { $tmp_tarif = $db->query("SELECT id_tarif,kode_tarif,uraian_tarif,jumlah,(select nilai from m_tarifdetil where komponen like '%SARANA%' and kode_tarif = m_tarif_rs.kode_tarif) as jasa_sarana,(select nilai from m_tarifdetil where komponen like '%LAYANAN%' and kode_tarif = m_tarif_rs.kode_tarif) as jasa_pelayanan,(select nilai from m_tarifdetil where komponen like '%ANASTESI%' and kode_tarif = m_tarif_rs.kode_tarif) as jasa_anastesi,st_paket from m_tarif_rs where (kode_tarif ilike '%{$kode_tarif}%' or uraian_tarif ilike '%{$kode_tarif}%') and is_not_hidden = 1 limit 200"); if($tmp_tarif->numRows() > 0) { $data_tarif = $tmp_tarif->fetchAll(); $tmp_dokter = $db->query("SELECT * FROM m_dokter where aktif = 1"); $arr_dokter = $arr_dokter_anastesi = [''=>'Pilih Dokter DPJP']; 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) { if(trim($d['kdsmf']) == 'ANESTHESI') { $arr_dokter_anastesi[$d['kddokter']] = $d['namadokter']; } // else { $arr_dokter[$d['kdsmf']][$d['kddokter']] = $d['namadokter']; // } } } } } $format_dpjp = false; foreach($data_tarif as $row) { if($row['jasa_pelayanan'] > 0) { $format_dpjp = '
'.form_dropdown('dpjp_pelayanan',$arr_dokter,'','class="form-control dpjp_tarif" id="dpjp_pelayanan"').'
'; if($row['jasa_anastesi'] > 0) { $format_dpjp .= '
'.form_dropdown('dpjp_anastesi',$arr_dokter_anastesi,'','class="form-control dpjp_tarif" id="dpjp_anastesi"').'
'; } } $row['text'] = $row['kode_tarif'].' - '.$row['uraian_tarif']; $option[] = (object) array_merge($row,['dpjp'=>$format_dpjp]); } echo json_encode($option); exit; } else { echo json_encode([['text'=>'Kode tarif tidak ditemukan']]); exit; } } else { echo json_encode([['text'=>'Kode tarif terlalu pendek']]); exit; } } else if($page == 'cari_form_tarif') { $kode_tarif = $_REQUEST['kode_tarif']; $tmp_tarif = $db->query("SELECT id_tarif,kode_tarif,uraian_tarif,jumlah,(select nilai from m_tarifdetil where komponen like '%SARANA%' and kode_tarif = m_tarif_rs.kode_tarif) as jasa_sarana,(select nilai from m_tarifdetil where komponen like '%LAYANAN%' and kode_tarif = m_tarif_rs.kode_tarif) as jasa_pelayanan,(select nilai from m_tarifdetil where komponen like '%ANASTESI%' and kode_tarif = m_tarif_rs.kode_tarif) as jasa_anastesi,st_paket from m_tarif_rs where kode_tarif = '$kode_tarif'"); if($tmp_tarif->numRows() > 0) { $data_tarif = $tmp_tarif->fetchFirst(); echo json_encode(['tarif'=>$data_tarif]); exit; } else { echo json_encode(['message'=>'Kode Tarif tidak ditemukan','type'=>'error']); exit; } } else if($page == 'add_item') { $id_tarif = $_REQUEST['id_tarif']; $kode_tarif = $_REQUEST['kode_tarif']; $uraian_tarif = $_REQUEST['uraian_tarif']; $jumlah = $_REQUEST['jumlah_tagihan']; $jasa_sarana = $_REQUEST['jasa_sarana']; $jasa_pelayanan = $_REQUEST['jasa_pelayanan']; $jasa_anastesi = $_REQUEST['jasa_anastesi']; $tempat_layanan = (array_key_exists('tempat_layanan_tarif', $_REQUEST)) ? $_REQUEST['tempat_layanan_tarif'] : $_SESSION['KDUNIT']; if(preg_match("/-/", $kode_tarif)) { list($kode_tarif,$uraian_tarif) = explode(" - ", $kode_tarif); } $tarif = preg_replace("/\./", "", $jumlah); $no = $_REQUEST['noitem']; $button_rem = ''; $input_hidden = ' '; if($jasa_pelayanan > 0) { $input_hidden .= ' '; } if($jasa_anastesi > 0) { $input_hidden .= ' '; } $format = ''.$no.''.$kode_tarif.''.$uraian_tarif.''.$jumlah.$input_hidden.''.$button_rem.''; echo json_encode(['kode_tarif'=>$kode_tarif,'rowitem'=>$format]); exit; } else if($page == 'billing') { $db->query('DELETE from tmp_cartbayar_detil where idxbayar in (select idxbayar from tmp_cartbayar where IP = \''.getRealIpAddr().'\')'); $db->query('DELETE from tmp_cartbayar where IP = \''.getRealIpAddr().'\''); $idxdaftar = $_REQUEST['idxdaftar']; $tempat = $_REQUEST['tempat']; $st_aps = ($_REQUEST['st_aps'] == '') ? 0 : $_REQUEST['st_aps']; $st_rajal = $_REQUEST['st_rajal']; $identitas = $_REQUEST['input']; $detil = $_REQUEST['detil']; $dpjp = $_REQUEST['dpjp']; if($st_rajal == 1) { $tmp_carabayar = $db->query("SELECT kdcarabayar from t_pendaftaran where idxdaftar = $idxdaftar"); $carabayar = $tmp_carabayar->fetchFirst()['kdcarabayar']; } else { $tmp_carabayar = $db->query("SELECT statusbayar from t_admission where id_admission = $idxdaftar"); $carabayar = $tmp_carabayar->fetchFirst()['statusbayar']; } $arr_error = []; $unit = $petugas = ''; foreach($detil as $kd => $data) { $petugas = $data['petugas']; $kddokter = 0; $i = 0; if(is_array($dpjp) && array_key_exists($kd, $dpjp)) { foreach($dpjp[$kd] as $key => $val) { if($i == 0) { $kddokter = $val['kddokter']; } $i++; } } $jasa_pelayanan = ($data['jasa_pelayanan'] != '') ? $data['jasa_pelayanan'] : 0; $jasa_sarana = ($data['jasa_sarana'] != '') ? $data['jasa_sarana'] : 0; // $unit = ($_SESSION['KDUNIT']) ? $_SESSION['KDUNIT'] : $_REQUEST['unit']; $unit = (array_key_exists('unit', $data) && $data['unit'] != '') ? $data['unit'] : $_REQUEST['unit']; $tarif = str_replace(",",".",$data['tarif']); if(preg_match("/OBT/i", $data['kode_tarif'])){ $jasa_sarana = bulat_puluhan($jasa_sarana,true); $tarif = bulat_puluhan($tarif,true); } $save = "INSERT into tmp_cartbayar ".bind_sql([ 'kodetarif' => $data['kode_tarif'], 'ip' => getRealIpAddr(), 'id' => $data['id_tarif'], 'qty' => ['value'=>1,'type'=>'number'], 'poly' => ['value'=>0,'type'=>'number'], 'unit' => ['value'=>$unit,'type'=>'number'], 'tarif' => ['value'=>$tarif,'type'=>'number'], 'discount'=>['value'=>0,'type'=>'number'], 'tottarif' => ['value'=>$tarif,'type'=>'number'], 'jasa_sarana' => ['value'=>$jasa_sarana,'type'=>'number'], 'jasa_pelayanan' => ['value'=>$jasa_pelayanan,'type'=>'number'], 'jasa_anastesi' => ['value'=>0,'type'=>'number'], 'jenis' => '', 'kddokter'=>['value'=>$kddokter,'type'=>'number']] ); if(_DBTYPE_ == 'mysqli') { $result_tmp = execute($save); $idxbayar = $result_tmp->insertid; } else { $result_tmp = execute($save." RETURNING idxbayar"); $idxbayar = $result_tmp->fetchFirst()['idxbayar']; } if(is_array($dpjp) && array_key_exists($kd, $dpjp)) { foreach($dpjp[$kd] as $key => $data_detil) { if(array_key_exists('kddokter', $data_detil)) { $input = []; $input['idxbayar'] = $idxbayar; $input['kode_tarif'] = $data['kode_tarif']; $input = array_merge($input, $data_detil); $detil = "INSERT INTO tmp_cartbayar_detil ".bind_sql($input); execute($detil); } } } if(!$result_tmp) { $arr_error[] = $kd; } } $last_nonota = null; if(!empty($detil) && empty($arr_error)) { $billing_sys = ($st_rajal == 1) ? 'irja' : 'irna'; $new_bill = new Billing($billing_sys,$identitas['nomr'],$idxdaftar,date("Y-m-d"),0,0,$carabayar,$tempat,$st_aps,$unit,$petugas); $last_nonota = $new_bill->simpanBill(); } if($last_nonota != null) { $msg = 'Tagihan telah berhasil disimpan'; $type = 'success'; } else { $msg = 'Tagihan gagal disimpan'; $type = 'error'; } echo json_encode(['message'=>$msg, 'type'=>$type, 'nonota' => $last_nonota]); exit; } else if($page == 'billing_nonreg') { $db->query('DELETE from tmp_cartbayar_detil where idxbayar in (select idxbayar from tmp_cartbayar where IP = \''.getRealIpAddr().'\')'); $db->query('DELETE from tmp_cartbayar where IP = \''.getRealIpAddr().'\''); $idxdaftar = $_REQUEST['idxdaftar']; $tempat = $_REQUEST['tempat']; $st_aps = ($_REQUEST['st_aps'] == '') ? 0 : $_REQUEST['st_aps']; $st_rajal = $_REQUEST['st_rajal']; $identitas = $_REQUEST['input']; $detil = $_REQUEST['detil']; $dpjp = $_REQUEST['dpjp']; $tanggal = (null !== $_REQUEST['tanggal'] ) ? $_REQUEST['tanggal'] : date('Y-m-d'); $tempat_layanan = ($_REQUEST['unit'] != '') ? $_REQUEST['unit'] : null; $carabayar = $_REQUEST['jenis_bayar']; $arr_error = []; $unit = $petugas = ''; foreach($detil as $kd => $data) { $petugas = $data['petugas']; $kddokter = 0; $i = 0; if(is_array($dpjp) && array_key_exists($kd, $dpjp)) { foreach($dpjp[$kd] as $key => $val) { if($i == 0) { $kddokter = $val['kddokter']; } $i++; } } $jasa_pelayanan = ($data['jasa_pelayanan'] != '') ? $data['jasa_pelayanan'] : 0; $jasa_sarana = ($data['jasa_sarana'] != '') ? $data['jasa_sarana'] : 0; $tarif = str_replace(",",".",$data['tarif']); $save = "INSERT into tmp_cartbayar ".bind_sql([ 'kodetarif' => $data['kode_tarif'], 'ip' => getRealIpAddr(), 'id' => $data['id_tarif'], 'qty' => ['value'=>1,'type'=>'number'], 'poly' => ['value'=>$tempat,'type'=>'number'], 'unit' => ['value'=>$tempat_layanan,'type'=>'number'], 'tarif' => ['value'=>$tarif,'type'=>'number'], 'discount'=>['value'=>0,'type'=>'number'], 'tottarif' => ['value'=>$tarif,'type'=>'number'], 'jasa_sarana' => ['value'=>$jasa_sarana,'type'=>'number'], 'jasa_pelayanan' => ['value'=>$jasa_pelayanan,'type'=>'number'], 'jasa_anastesi' => ['value'=>0,'type'=>'number'], 'jenis' => '', 'kddokter'=>['value'=>$kddokter,'type'=>'number']] ); if(_DBTYPE_ == 'mysqli') { $result_tmp = execute($save); $idxbayar = $result_tmp->insertid; } else { $result_tmp = execute($save." RETURNING idxbayar"); $idxbayar = $result_tmp->fetchFirst()['idxbayar']; } if(is_array($dpjp) && array_key_exists($kd, $dpjp)) { foreach($dpjp[$kd] as $key => $data_detil) { if(array_key_exists('kddokter', $data_detil)) { $input = []; $input['idxbayar'] = $idxbayar; $input['kode_tarif'] = $data['kode_tarif']; $input = array_merge($input, $data_detil); $detil = "INSERT INTO tmp_cartbayar_detil ".bind_sql($input); execute($detil); } } } if(!$result_tmp) { $arr_error[] = $kd; } } $last_nonota = null; if(!empty($detil) && empty($arr_error)) { $new_bill = new Billing('nonregister',$identitas['nomr'],$idxdaftar,$tanggal,0,0,$carabayar,$tempat,0,$tempat_layanan,$petugas); $last_nonota = $new_bill->simpanBill(); } if($last_nonota != null) { $msg = 'Tagihan telah berhasil disimpan'; $type = 'success'; } else { $msg = 'Tagihan gagal disimpan'; $type = 'error'; } echo json_encode(['message'=>$msg, 'type'=>$type, 'nonota' => $last_nonota]); exit; } ?>