query($query_ruang)->fetchAll(); $myquery = "SELECT distinct a.nomr, b.nama, b.alamat, b.jeniskelamin, b.tgllahir, b.parent_nomr, c.statusbayar, e.nama as carabayar, c.noruang, d.nama as ruang, c.nott, a.nobill, (select sum(tarifrs * qty) from t_billranap where nobill = a.nobill and t_billranap.status <> 'BATAL') as tottarifrs, (select sum(discount) from t_bayarranap where nobill = a.nobill) as discount, (select sum(coalesce(costsharing_pelayanan,0)+coalesce(costsharing_anastesi,0)+coalesce(costsharing_sarana,0)) as total from t_billranap where nobill = a.nobill and t_billranap.status <> 'BATAL') as totcostsharing, (select sum(deposit) from t_deposit where t_deposit.nobill::integer = a.nobill and t_deposit.st_batal is null group by nobill) as deposit, c.masukrs, d.kelas, c.keluarrs, c.tgl_pindah, d.idx_ruang,t.uraian_tarif FROM t_billranap a JOIN m_pasien b ON a.nomr = b.nomr JOIN t_admission c ON a.IDXDAFTAR = c.id_admission JOIN m_ruang d ON c.noruang = d.no JOIN m_carabayar e ON c.statusbayar = e.KODE JOIN t_bayarranap f ON a.idxbill = f.idxbill LEFT JOIN m_tarif_rs t on a.kodetarif = t.kode_tarif WHERE a.IDXDAFTAR = '" . $idx_daftar . "' and a.NOBILL = '" . $nobill . "' and a.STATUS != 'BATAL'"; $get = $db->query($myquery); $all_userdata = $get->fetchAll(); $userdata = $all_userdata[0]; ?>
add(new DateInterval('P2D')); $selisih = $tgl_pulang->diff($tgl_masuk); $jumlah_hari_rawat = $selisih->format("%a"); if ($jumlah_hari_rawat == 0) { $jumlah_hari_rawat = 1; } $total_hari_rawat = 0; if ($userdata['tgl_pindah'] != '') { $query_ruang = "SELECT *,r.nama||' '||r.kelas as nama_ruang,r.idx_ruang,r.kelas,rh.tgl_pindah as tanggal_pindah from t_admission_ruanghist rh join m_ruang r on r.no = rh.no_ruang_asal WHERE rh.tgl_batal is null and idx_admission = " . $id_admission . " ORDER BY id_ruanghist"; $tmp_ruang = $db->query($query_ruang); $sudah_plus_satu = false; $jml_ruang = $tmp_ruang->numRows(); if ($tmp_ruang->numRows() > 0) { $i = 1; $js_tarif_data = array(); $arr_lama_ruang_pindah = []; foreach ($tmp_ruang->fetchAll() as $row) { $cut_off = '2023-01-31'; $tarif_akomodasi = "SELECT *,(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,pengguna from m_tarif_rs join m_tarifpengguna on m_tarif_rs.kode_tarif = m_tarifpengguna.kode_tarif join m_tarifkelas on m_tarif_rs.kelas_tarif = m_tarifkelas.kelas where (kelompok_tarif in('PERAWATAN') or kelompok_tarif in('AKOMODASI')) and (m_tarif_rs.kelas_tarif like '" . trim($row['idx_ruang']) . "%' or m_tarif_rs.kelas_tarif like 'REGULER%') and m_tarif_rs.aktif = 1"; $tmp_tarif = $db->query($tarif_akomodasi); if ($tmp_tarif->numRows() > 0) { $arr_tarif = array(); foreach ($tmp_tarif->fetchAll() as $ds) { $arr_tarif[$ds['kode_tarif'] . '|' . $ds['id_tarif']] = $ds['kode_tarif'] . ' - ' . $ds['uraian_tarif'] . ' - ' . $ds['kelas'] . ' (Rp. ' . format_uang($ds['jumlah']) . ')'; $js_tarif_data[$ds['kode_tarif']] = $ds['jumlah']; } } if ($row['tanggal_pindah'] != NULL && datetime_to_date_en($row['tanggal_pindah']) != '0000-00-00') { $d1 = new DateTime($row['tgl_awal']); $d2 = new DateTime($row['tanggal_pindah']); $jam = explode(':', datetime_to_time($row['tanggal_pindah'])); $diff = $d2->diff($d1); $jml_hari = (datetime_to_date_en($row['tgl_awal']) != datetime_to_date_en($row['tanggal_pindah'])) ? 1 : $diff->format('%a'); $jml_hari2 = ($diff->format('%a') == 0) ? 1 : $diff->format('%a'); $lama = 0; if ($d1->format('Y-m-d') == $d2->format('Y-m-d')) { // jika tanggal pindah sama dengan tanggal masuk dan tidak ada ruang pindah $lama += ($tmp_ruang->numRows() <= 1 || $diff->format('%h') >= 6) ? 1 : 0; // jika vip maka tanggal pindah pada hari yang sama plus satu if (preg_match("/VIP/", $row['kelas']) && $lama == 0) { $lama += 1; $sudah_plus_satu = true; } $arr_lama_ruang_pindah[$i] = $diff->format('%h'); } elseif ($d1->format('Y-m-d') != $d2->format('Y-m-d')) { if ($i == 1) { // jika record pertama $lama = round(abs(strtotime($d2->format('Y-m-d')) - strtotime($d1->format('Y-m-d'))) / 86400); // cek jam pindah if ($jam[0] >= 12) { $lama += 1; $sudah_plus_satu = true; } $arr_lama_ruang_pindah[$i] = $jam[0]; } else { // record selanjutnya if ($sudah_plus_satu == true) { $lama = round(abs(strtotime($d2->format('Y-m-d')) - strtotime($d1->format('Y-m-d'))) / 86400); $arr_lama_ruang_pindah[$i] = $jam[0]; } else { // $jam_awal = explode(":", datetime_to_time($row['tgl_awal'])); // if($diff->format('%h') > 6){ // $lama += 1; // } // var_dump($lama); // if($jml_hari2 + $lama > ($jml_hari2+1)) { // $lama = $jml_hari2 + 1; // } // else { $lama = $jml_hari2 + $lama; // } // var_dump($lama); if ($sudah_plus_satu == false && $arr_lama_ruang_pindah[$i - 1] != 0 && $arr_lama_ruang_pindah[$i - 1] > 6 && $d1->format('H') < 12) { $lama += 1; $sudah_plus_satu = true; } $arr_lama_ruang_pindah[$i] = $jam[0]; } // log_message('error','sudah_plus_satu = '.$sudah_plus_satu.' | Lama dirawat sejak tgl '.$row['tgl_awal'].' s/d '.$row['tanggal_pindah'].' = '.$lama.' / '.$jml_hari2); } } // jika tidak terjadi perpindahan, set tanggal pulang = hari ini if ($row['no_ruang_asal'] == $row['no_ruang_pindah']) { $d3 = new DateTime($tgl_request_krs); $diff2 = $d3->diff($d1); $lama2 = $diff2->format('%a'); if ($d1->format('Y-m-d') == $d3->format('Y-m-d')) { $lama2 += 1; } $lama_split = ''; echo ''; } else { if ($diff->format('%h') <= 3 && $i == 1 && $jml_hari2 == 0) { continue; } $lama_split = ''; if (empty($row['tanggal_pindah']) || $row['tanggal_pindah'] >= $cut_off) { $d1 = new DateTime($row['tgl_awal']); $d2 = new DateTime($cut_off); $diff = $d2->diff($d1); $lama_split = $diff->days + 1; } echo ''; if (empty($row['tanggal_pindah']) || $row['tanggal_pindah'] >= '2023-01-31') { $d1 = new DateTime($cut_off); $d2 = new DateTime($row['tanggal_pindah']); $diff = $d2->diff($d1); $lama_split = $diff->days + 1; $i = $i + 1; echo ''; } } } else { $d1 = new DateTime(datetime_to_date_en($row['tgl_awal'])); $currdate = new DateTime($tgl_request_krs . " " . date('H:i:s')); $diff = $currdate->diff($d1); $jam = explode(':', datetime_to_time($row['tgl_awal'])); $jam_pulang = explode(":", datetime_to_time($tgl_request_krs . " " . date('H:i:s'))); if ($jam_pulang[0] != 0 && $jam_pulang[0] < 12) { $lama = $diff->format('%a'); } else { $lama = $diff->format('%a'); } if (($sudah_plus_satu == false && ($i < $jml_ruang)) || ($sudah_plus_satu == false && $i == $jml_ruang && $jml_ruang == 2)) { $lama += 1; $sudah_plus_satu = true; if (($total_hari_rawat + $lama) > $jumlah_hari_rawat) { $lama--; } } $lama_split = ''; if (empty($row['tanggal_pindah']) || $row['tanggal_pindah'] >= $cut_off) { if ($row['tgl_awal'] <= $cut_off && empty($row['tanggal_pindah'])) { $d11 = $d1; $d22 = new DateTime($cut_off); $currdate = new DateTime($tgl_request_krs . " " . date('H:i:s')); $diff_split = $d22->diff($d11); $lama_split = $diff_split->days + 1; } } echo ''; if (empty($row['tanggal_pindah']) || $row['tanggal_pindah'] >= $cut_off) { if ($row['tgl_awal'] <= $cut_off && empty($row['tanggal_pindah'])) { $d11 = new DateTime($cut_off); // $d22 = $currdate = new DateTime($tgl_request_krs . " " . date('H:i:s')); $diff_split = $currdate->diff($d11); $lama_split = $diff_split->days; echo ''; } } } $total_hari_rawat += $lama; $i++; } } } else { $d1 = new DateTime($userdata['masukrs']); $currdate = new DateTime($tgl_request_krs); $d2 = new DateTime($tgl_request_krs); $d2->add(new DateInterval('P1D')); $diff = $d2->diff($d1); $lama = $diff->format('%a'); // if($d1->format('Y-m-d') == $currdate->format('Y-m-d')) // { $lama += 1; // } $tarif_akomodasi = "SELECT *,(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,pengguna from m_tarif_rs join m_tarifpengguna on m_tarif_rs.kode_tarif = m_tarifpengguna.kode_tarif join m_tarifkelas on m_tarif_rs.kelas_tarif = m_tarifkelas.kelas where (kelompok_tarif in('PERAWATAN') or kelompok_tarif in('AKOMODASI')) and (m_tarif_rs.kelas_tarif like '" . trim($userdata['idx_ruang']) . "%' or m_tarif_rs.kelas_tarif like 'REGULER%') and m_tarif_rs.aktif = 1"; $tmp_tarif = $db->query($tarif_akomodasi); if ($tmp_tarif->numRows() > 0) { $arr_tarif = array(); foreach ($tmp_tarif->fetchAll() as $ds) { $arr_tarif[$ds['kode_tarif'] . '|' . $ds['id_tarif']] = $ds['kode_tarif'] . ' - ' . $ds['uraian_tarif'] . ' - ' . $ds['kelas'] . ' (Rp. ' . format_uang($ds['jumlah']) . ')'; $js_tarif_data[$ds['kode_tarif']] = $ds['jumlah']; } } $tgl_masuk = date('Y-m-d', strtotime($userdata['masukrs'])); $tgl_pindah = ''; $lama_split = ''; $cut_off = '2023-01-31'; if ($tgl_masuk <= '2023-01-31' && empty($tgl_pindah)) { $d11 = $d1; $d22 = new DateTime($cut_off); $currdate = new DateTime($tgl_request_krs . " " . date('H:i:s')); $diff_split = $d22->diff($d11); $lama_split = $diff_split->days + 1; } $i = 1; echo ''; if ($tgl_masuk <= '2023-01-31' && empty($tgl_pindah)) { $d11 = new DateTime($cut_off); // $d22 = ; $currdate = new DateTime($tgl_request_krs . " " . date('H:i:s')); $diff_split = $currdate->diff($d11); $lama_split = $diff_split->days + 1; $i = $i + 1; echo ''; } $total_hari_rawat += $lama; } ?>
No Nama Ruang Tanggal Masuk Tanggal Keluar Jumlah Hari Jumlah Hari Split Tarif Jumlah Akomodasi
111' . $i . ' ' . $row['nama_ruang'] . ' ' . $d1->format('d-m-Y') . ' ' . $d3->format('d-m-Y H:i:s') . ' ' . $lama2 . ' ' . $lama_split . ' ' . form_dropdown('kode_tarif[' . $i . ']', $arr_tarif, '', 'class="form-control tarif_ako" id="tarif_ako-' . $i . '" style="width:100%"') . '
2222' . $i . ' ' . $row['nama_ruang'] . ' ' . $d1->format('d-m-Y') . ' ' . $d2->format('d-m-Y H:i:s') . ' ' . $lama . ' ' . (!empty($lama_split) ? $lama_split : $lama) . ' ' . form_dropdown('kode_tarif[' . $i . ']', $arr_tarif, '', 'class="form-control tarif_ako" id="tarif_ako-' . $i . '" style="width:100%"') . '
2222 2222' . $i . ' ' . $row['nama_ruang'] . ' ' . $d1->format('d-m-Y') . ' ' . $d2->format('d-m-Y H:i:s') . ' ' . $lama . ' ' . (!empty($lama_split) ? $lama_split : $lama) . ' ' . form_dropdown('kode_tarif[' . $i . ']', $arr_tarif, '', 'class="form-control tarif_ako" id="tarif_ako-' . $i . '" style="width:100%"') . '
3333333' . $i . ' ' . $row['nama_ruang'] . ' ' . $d1->format('d-m-Y') . ' ' . $currdate->format('d-m-Y') . ' ' . $lama . ' ' . (!empty($lama_split) ? $lama_split : $lama) . ' ' . form_dropdown('kode_tarif[' . $i . ']', $arr_tarif, '', 'class="form-control tarif_ako" id="tarif_ako-' . $i . '" style="width:100%"') . '
3333333' . $i . ' ' . $row['nama_ruang'] . ' ' . $d1->format('d-m-Y') . ' ' . $currdate->format('d-m-Y') . ' ' . $lama . ' ' . (!empty($lama_split) ? $lama_split : $lama) . ' ' . form_dropdown('kode_tarif[' . $i . ']', $arr_tarif, '', 'class="form-control tarif_ako" id="tarif_ako-' . $i . '" style="width:100%"') . '
444444' . $i . ' ' . $userdata['ruang'] . ' ' . $d1->format('d-m-Y') . ' ' . $currdate->format('d-m-Y') . ' ' . $lama . ' ' . (!empty($lama_split) ? $lama_split : $lama) . ' ' . form_dropdown('kode_tarif[' . $i . ']', $arr_tarif, '', 'class="form-control tarif_ako" id="tarif_ako-' . $i . '" style="width:100%"') . '
444444 xxxx' . $i . ' ' . $userdata['ruang'] . ' ' . $d1->format('d-m-Y') . ' ' . $currdate->format('d-m-Y') . ' ' . $lama . ' ' . (!empty($lama_split) ? $lama_split : $lama) . ' ' . form_dropdown('kode_tarif[' . $i . ']', $arr_tarif, '', 'class="form-control tarif_ako" id="tarif_ako-' . $i . '" style="width:100%"') . '
" class="mask-date-default datepicker-default form-control" readonly>
// //
'; } ?>