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 '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%"') . '
';
} 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 '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%"') . '
';
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 '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%"') . '
';
}
}
} 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 '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%"') . '
';
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 '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%"') . '
';
}
}
}
$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 '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%"') . '
';
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 '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%"') . '
';
}
$total_hari_rawat += $lama;
}
?>