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 = ".$_REQUEST['idxb']." 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 = '2024-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 '| '.$i.' |
'.$row['nama_ruang'].' |
'.$d1->format('d-m-Y').' |
'.$d3->format('d-m-Y H:i:s').' |
'.$lama2.' |
'.(!empty($lama_split) ? $lama_split : 0).' |
'.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= '';
$tgl_pindah = $d2->format('d-m-Y H:i:s');
if ($row['tgl_awal'] <= $cut_off && $row['tgl_pindah'] >= $cut_off){
$d1 = new DateTime($row['tgl_awal']);
$d22 = new DateTime($cut_off);
$diff = $d22->diff($d1);
$lama_split = $diff->days + 1;
if ($cut_off == $d2->format('Y-m-d')){
$lama_split = $lama_split - 1;
}
$tgl_pindah = date('d-m-Y', strtotime($cut_off));
}
echo '| '.$i.' |
'.$row['nama_ruang'].' |
'.$d1->format('d-m-Y').' |
'.$tgl_pindah.' |
'.$lama.' |
'.(!empty($lama_split) ? $lama_split : 0).' |
'.form_dropdown('kode_tarif['.$i.']',$arr_tarif,'','class="form-control tarif_ako" id="tarif_ako-'.$i.'" style="width:100%"').' |
|
';
//kondisi 1
if($row['tgl_awal'] <= $cut_off && $row['tgl_pindah'] >= $cut_off){
$d1 = new DateTime($cut_off);
$d22 = new DateTime($row['tgl_pindah']);
$diff = $d22->diff($d1);
$lama_split = $diff->days + 1;
$i = $i + 1;
//$d1->format('d-m-Y')
echo '| '.$i.' |
'.$row['nama_ruang'].' |
'.date('d-m-Y', strtotime($cut_off)).' |
'.$d2->format('d-m-Y H:i:s').' |
'.$lama.' |
'.(!empty($lama_split) ? $lama_split : 0).' |
'.form_dropdown('kode_tarif['.$i.']',$arr_tarif,'','class="form-control tarif_ako" id="tarif_ako-'.$i.'" style="width:100%"').' |
|
';
}
//kondisi 2
if($row['tgl_awal'] <= $cut_off && empty($row['tgl_pindah'])){
$currdate = new DateTime(date('Y-m-d'));
$d1 = new DateTime($cut_off);
$d22 = new DateTime(date('Y-m-d'));
$diff = $d22->diff($d1);
$lama_split = $diff->days + 1;
//$d1->format('d-m-Y')
echo '| '.$i.' |
'.$row['nama_ruang'].' |
'.date('d-m-Y', strtotime($cut_off)).' |
'.$d2->format('d-m-Y H:i:s').' |
'.$lama.' |
'.(!empty($lama_split) ? $lama_split : 0).' |
'.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 = '';
$tgl_pindah = $currdate->format('d-m-Y');
if($row['tgl_awal'] <= $cut_off && ($row['tgl_pindah'] >= $cut_off || empty($row['tgl_pindah']))){
if ($row['tgl_awal'] <= $cut_off && empty($row['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;
if (empty($row['tgl_pindah'])){
$lama_split = $lama_split - 1;
}
$tgl_pindah = date('d-m-Y', strtotime($cut_off));
}
}
echo '| '.$i.' |
'.$row['nama_ruang'].' |
'.$d1->format('d-m-Y').' |
'.$tgl_pindah.' |
'.$lama.' |
'.(!empty($lama_split) ? $lama_split : 0).' |
'.form_dropdown('kode_tarif['.$i.']',$arr_tarif,'','class="form-control tarif_ako" id="tarif_ako-'.$i.'" style="width:100%"').' |
|
';
//kondisi 1
if($row['tgl_awal'] <= $cut_off && $row['tgl_pindah'] >= $cut_off){
$d11 = new DateTime($cut_off);
$currdate = new DateTime($tgl_request_krs." ".date('H:i:s'));
$diff_split = $currdate->diff($d11);
$lama_split = $diff_split->days;
$i = $i + 11;
//$d1->format('d-m-Y')
echo '| '.$i.' |
'.$row['nama_ruang'].' |
'.date('d-m-Y', strtotime($cut_off)).' |
'.$currdate->format('d-m-Y').' |
'.$lama.' |
'.(!empty($lama_split) ? $lama_split : 0).' |
'.form_dropdown('kode_tarif['.$i.']',$arr_tarif,'','class="form-control tarif_ako" id="tarif_ako-'.$i.'" style="width:100%"').' |
|
';
}
//kondisi 2
if($row['tgl_awal'] <= $cut_off && empty($row['tgl_pindah'])){
$d11 = new DateTime($cut_off);
// $currdate = $currdate->format('Y-m-d');
$diff_split = $currdate->diff($d11);
$lama_split = $diff_split->days;
$i = $i + 11;
//$d1->format('d-m-Y')
echo '| '.$i.' |
'.$row['nama_ruang'].' |
'.date('d-m-Y', strtotime($cut_off)).' |
'.$currdate->format('d-m-Y').' |
'.$lama.' |
'.(!empty($lama_split) ? $lama_split : 0).' |
'.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 = '2024-01-31';
$tgl_pindah = $currdate->format('d-m-Y');
if ($tgl_masuk <= '2024-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;
$tgl_pindah = date('d-m-Y', strtotime($cut_off));
}
$i = 1;
echo '| ' . $i . ' |
' . $userdata['ruang'] . ' |
' . $d1->format('d-m-Y') . ' |
' . $tgl_pindah . ' |
' . $lama . ' |
' . (!empty($lama_split) ? $lama_split : 0) . ' |
' . form_dropdown('kode_tarif[' . $i . ']', $arr_tarif, '', 'class="form-control tarif_ako" id="tarif_ako-' . $i . '" style="width:100%"') . ' |
|
';
//kondisi 1
if ($tgl_masuk <= '2024-01-31' && empty($tgl_pindah)) {
$d11 = new DateTime($cut_off);
$currdate = new DateTime($tgl_request_krs . " " . date('H:i:s'));
$diff_split = $currdate->diff($d11);
$lama_split = $diff_split->days + 1;
$i = $i + 1;
//$d1->format('d-m-Y')
echo '| ' . $i . ' |
' . $userdata['ruang'] . ' |
' . date('d-m-Y', strtotime($cut_off)) . ' |
' . $currdate->format('d-m-Y') . ' |
' . $lama . ' |
' . (!empty($lama_split) ? $lama_split : 0) . ' |
' . form_dropdown('kode_tarif[' . $i . ']', $arr_tarif, '', 'class="form-control tarif_ako" id="tarif_ako-' . $i . '" style="width:100%"') . ' |
|
';
}
$total_hari_rawat += $lama;
}
?>