add user id filter for table disposisi

This commit is contained in:
Fanrouver
2025-10-24 13:58:55 +07:00
parent 9a5f4a62b8
commit dadc783ee0

View File

@@ -1,16 +1,38 @@
<?php <?php
include("../koneksi.php"); include("../koneksi.php");
// --- 1. AMBIL VARIABEL INPUT & TENTUKAN BATASAN KHUSUS ---
$satuan_kerja_id=$_POST['satker']; $satuan_kerja_id=$_POST['satker'];
$jenis_user=$_POST['jenis']; $jenis_user=$_POST['jenis'];
// Dapatkan ID user dari AJAX/POST. PENTING: Sesuaikan jika Anda mengambil dari $_SESSION.
$id_user_login = isset($_POST['cek_data_user_id']) ? $_POST['cek_data_user_id'] : null;
if ($jenis_user=='Admin') { if ($jenis_user=='Admin') {
$disp_pros=$_POST['disp_pros']; $disp_pros=$_POST['disp_pros'];
} else { } else {
$disp_kpl=$_POST['disp_kpl']; $disp_kpl=$_POST['disp_kpl'];
$disp_sifat=strtolower($_POST['disp_sifat']); $disp_sifat=strtolower($_POST['disp_sifat']);
} }
$bln2=$_POST['bln2']; $bln2=$_POST['bln2'];
$thn2=$_POST['thn2']; $thn2=$_POST['thn2'];
// Logika Pembatasan Akses Tanggal
// GANTI 'USER_1', 'USER_2', dst. dengan ID User yang sebenarnya
$users_izin_spesifik = array('313', '314');
$tgl_mulai_izin = '2025-10-23'; // Format PostgreSQL: YYYY-MM-DD
$tgl_akhir_izin = '2025-10-29'; // Format PostgreSQL: YYYY-MM-DD
$pembatasan_user = "";
// Cek apakah user yang login termasuk dalam daftar yang dibatasi
if (in_array($id_user_login, $users_izin_spesifik)) {
// Jika termasuk, tambahkan kondisi WHERE untuk HANYA menampilkan data di rentang tanggal tersebut
// 's.tgl_diterima' diasumsikan sebagai kolom tanggal yang relevan di tabel surat
$pembatasan_user = " AND s.tgl_diterima BETWEEN '$tgl_mulai_izin' AND '$tgl_akhir_izin'";
}
if ($jenis_user=='Admin') {$nb=',COUNT(kx.kepada)';$nb1='LEFT OUTER JOIN (SELECT k3.* FROM kirim k3 WHERE k3.id IS NOT NULL) kx ON (s.id=kx.surat_id)';} else {$nb='';$nb1='';} if ($jenis_user=='Admin') {$nb=',COUNT(kx.kepada)';$nb1='LEFT OUTER JOIN (SELECT k3.* FROM kirim k3 WHERE k3.id IS NOT NULL) kx ON (s.id=kx.surat_id)';} else {$nb='';$nb1='';}
?> ?>
@@ -28,201 +50,143 @@ var cek_data_user_id = $('#cek_data_user_id').val();
<input type="hidden" id="disp_bln" value="<?php echo $bln2; ?>"> <input type="hidden" id="disp_bln" value="<?php echo $bln2; ?>">
<input type="hidden" id="disp_thn" value="<?php echo $thn2; ?>"> <input type="hidden" id="disp_thn" value="<?php echo $thn2; ?>">
<table id="tabel_data_smasuk" class="table table-striped table-condensed table-bordered" cellpadding="1"> <table id="tabel_data_smasuk"  class="table table-striped table-condensed table-bordered" cellpadding="1">
<thead>                                 <thead>
<tr>                                 <tr>
<td width="220px;">Dari</td>                                     <td width="220px;">Dari</td>
<td width="100px;">Tgl Surat</td>                                     <td width="100px;">Tgl Surat</td>
<td width="100px;">Diterima</td>                                     <td width="100px;">Diterima</td>
<td width="80px;">No Surat</td>                                     <td width="80px;">No Surat</td>
<td>Perihal</td>                                     <td>Perihal</td>
<td width="50px;">Sifat</td>                                     <td width="50px;">Sifat</td>
<td width="100px;">No Agenda</td>                                     <td width="100px;">No Agenda</td>
<td width="50px;">Tools</td>                                     <td width="50px;">Tools</td>
</tr>                                 </tr>
</thead>                                 </thead>
<tbody style="color:black">                                 <tbody  style="color:black">
<?php                                 <?php
                                                                 
/* ====== terbaRU /* * Query PostgreSQL
* Penambahan variabel $pembatasan_user di klausa WHERE
*/
$data=pg_query("SELECT s.surat_dari,s.no_surat,s.perihal,(SELECT j.jenis FROM jenis_disposisi j WHERE j.id=s.jenis_disposisi_id), $data=pg_query("SELECT s.surat_dari,s.no_surat,s.perihal,(SELECT j.jenis FROM jenis_disposisi j WHERE j.id=s.jenis_disposisi_id),
s.no_agenda,s.sm_baca,s.id,                                         s.no_agenda,s.sm_baca,s.id,
(SELECT f.sifat FROM sifat_surat f WHERE f.id=s.sifat_surat_id),s.tgl_surat_masuk,s.tgl_diterima,                                         (SELECT f.sifat FROM sifat_surat f WHERE f.id=s.sifat_surat_id),s.tgl_surat_masuk,s.tgl_diterima,
(SELECT kode FROM kode WHERE id=s.kode_id),                                         (SELECT kode FROM kode WHERE id=s.kode_id),
s.tgl_surat_masuk,s.tgl_diterima,                                         s.tgl_surat_masuk,s.tgl_diterima,
MAX(k.tgl_input),COUNT(kx.kepada)                                         MAX(k.tgl_input)".$nb."
FROM surat s                                         FROM surat s
LEFT OUTER JOIN (SELECT k3.* FROM kirim k3 LEFT OUTER JOIN surat s3 ON (s3.id=k3.surat_id)                                         LEFT OUTER JOIN (SELECT k3.* FROM kirim k3 LEFT OUTER JOIN surat s3 ON (s3.id=k3.surat_id)
WHERE s3.jenis_disposisi_id=1) k ON (s.id=k.surat_id)                                         WHERE s3.jenis_disposisi_id=1) k ON (s.id=k.surat_id)
LEFT OUTER JOIN (SELECT k3.* FROM kirim k3 WHERE                                         ".$nb1."
".($jenis_user == 'Admin' ? "k3.id IS NOT NULL" : " k3.satuan_kerja_tujuan='$satuan_kerja_id'")."                                         LEFT OUTER JOIN arsip a ON (a.surat_id=s.id)
) kx ON (s.id=kx.surat_id)                                         WHERE k.satuan_kerja_tujuan='$satuan_kerja_id' AND a.id IS NULL
LEFT OUTER JOIN arsip a ON (a.surat_id=s.id)                                         AND s.jenis_disposisi_id='1'
WHERE k.satuan_kerja_tujuan='$satuan_kerja_id' AND a.id IS NULL                                         ".($thn2 == '' ? "" : "AND EXTRACT(YEAR FROM DATE(s.tgl_diterima))='$thn2'")."
AND s.jenis_disposisi_id='1'                                         ".($bln2 == '0' ? "" : "AND EXTRACT(MONTH FROM DATE(s.tgl_diterima))='$bln2'")."
".($thn2 == '' ? "" : "AND EXTRACT(YEAR FROM DATE(s.tgl_diterima))='$thn2'")."                                         ".($jenis_user == 'Admin' ? "" : "
".($bln2 == '0' ? "" : "AND EXTRACT(MONTH FROM DATE(s.tgl_diterima))='$bln2'")."                                             ".($disp_sifat == 'all' ? "" : " AND (SELECT LOWER(f.sifat) FROM sifat_surat f WHERE f.id=s.sifat_surat_id)='$disp_sifat'")."
".($jenis_user == 'Admin' ? "" : "                                         ")."
".($disp_sifat == 'all' ? "" : " AND (SELECT LOWER(f.sifat) FROM sifat_surat f WHERE f.id=s.sifat_surat_id)='$disp_sifat'")."                                         ".($jenis_user == 'Admin' ? "" : " AND k.dis_baca IS NULL AND k.kepada IS NOT NULL")."
")."                                         ".($jenis_user == 'Admin' ? "" : "
".($jenis_user == 'Admin' ? "" : " AND k.dis_baca IS NULL AND k.kepada IS NOT NULL")."                                              ".($disp_kpl == 'ALL' ? "" : "
".($jenis_user == 'Admin' ? "" : "                                                 ".($disp_kpl == 'UNTUK DIARAHKAN' ? "AND LEFT(k.isi,1) != ('#')" : "AND LEFT(k.isi,1) = ('#')")."
".($disp_kpl == 'ALL' ? "" : "                                              ")."
".($disp_kpl == 'UNTUK DIARAHKAN' ? "AND LEFT(k.isi,1) != ('#')" : "AND LEFT(k.isi,1) = ('#')")."                                             ")."
")."
")." // --- SISIPAN VARIABEL PEMBATASAN USER ID & TANGGAL ---
".$pembatasan_user."
// ----------------------------------------------------
GROUP BY GROUP BY
s.surat_dari,s.no_surat,s.perihal,(SELECT j.jenis FROM jenis_disposisi j WHERE j.id=s.jenis_disposisi_id), s.surat_dari,s.no_surat,s.perihal,(SELECT j.jenis FROM jenis_disposisi j WHERE j.id=s.jenis_disposisi_id),
s.no_agenda,s.sm_baca,s.id,                                         s.no_agenda,s.sm_baca,s.id,
(SELECT f.sifat FROM sifat_surat f WHERE f.id=s.sifat_surat_id),s.tgl_surat_masuk,s.tgl_diterima,                                         (SELECT f.sifat FROM sifat_surat f WHERE f.id=s.sifat_surat_id),s.tgl_surat_masuk,s.tgl_diterima,
(SELECT kode FROM kode WHERE id=s.kode_id),                                         (SELECT kode FROM kode WHERE id=s.kode_id),
s.tgl_surat_masuk,s.tgl_diterima                                         s.tgl_surat_masuk,s.tgl_diterima
".($jenis_user == 'Admin' ? "                                             ".($jenis_user == 'Admin' ? "
".($disp_pros == 'ALL' ? "" : "                                             ".($disp_pros == 'ALL' ? "" : "
".($disp_pros == 'BELUM PROSES' ? "                                                 ".($disp_pros == 'BELUM PROSES' ? "
HAVING COUNT(kx.kepada)=0                                                         HAVING COUNT(kx.kepada)=0
" : "                                                     " : "
HAVING COUNT(kx.kepada)>0                                                         HAVING COUNT(kx.kepada)>0
")."                                                     ")."
")."                                                 ")."
" : "")."                                             " : "")."
                                           
".($jenis_user == 'Admin' ? "ORDER BY s.id DESC" : "                                         ".($jenis_user == 'Admin' ? "ORDER BY s.id DESC" : "
ORDER BY MAX(k.tgl_input) ASC                                             ORDER BY MAX(k.tgl_input) ASC
")."                                         ")."                                        
");                                         ");
*/
                                    while($r=pg_fetch_array($data)) {
                                   
   
                                ?>
                                <tr
                                    <?php
                                        if ($jenis_user=='Admin') {
                                            if ($r[14]==0) {
                                                echo "style='color:red;'";
                                            } else {}
                                        } else {
                                            if (strtolower($r[7])=='amat segera') {
                                                echo "style='color:red;'";
                                            } else {}
                                        }
                                    ?>
$data=pg_query("SELECT s.surat_dari,s.no_surat,s.perihal,(SELECT j.jenis FROM jenis_disposisi j WHERE j.id=s.jenis_disposisi_id),                                 >
s.no_agenda,s.sm_baca,s.id,                                     <td style="word-wrap: break-word;min-width: 160px;max-width: 160px;font-family:'InterSB'" class="kiri"><?php echo $r['surat_dari']; ?></td>
(SELECT f.sifat FROM sifat_surat f WHERE f.id=s.sifat_surat_id),s.tgl_surat_masuk,s.tgl_diterima,                                     <td align="center"><?php if ($r['tgl_surat_masuk']==null) {} else {echo date('d-m-Y',strtotime($r['tgl_surat_masuk']));} ?></td>
(SELECT kode FROM kode WHERE id=s.kode_id),                                     <td align="center"><?php if (isset($r['jam_diterima']) && date('H:i',strtotime($r['jam_diterima']))=='07:00') {
s.tgl_surat_masuk,s.tgl_diterima,                                     echo date('d-m-Y',strtotime($r['tgl_diterima']));
MAX(k.tgl_input)".$nb."                                     } else {
FROM surat s                                     echo date('d-m-Y',strtotime($r['tgl_diterima'])).(isset($r['jam_diterima']) ? ' '.date('H:i',strtotime($r['jam_diterima'])) : '');
LEFT OUTER JOIN (SELECT k3.* FROM kirim k3 LEFT OUTER JOIN surat s3 ON (s3.id=k3.surat_id)                                     } ?></td>
WHERE s3.jenis_disposisi_id=1) k ON (s.id=k.surat_id)                                     <td width="110px;"><?php echo $r['no_surat']; ?></td>
".$nb1."                                     <td style="word-wrap: break-word;min-width: 160px;max-width: 160px;"><?php echo $r['perihal']; ?></td>
LEFT OUTER JOIN arsip a ON (a.surat_id=s.id)                                     <td width="50px;"><?php echo $r[7]; ?></td>
WHERE k.satuan_kerja_tujuan='$satuan_kerja_id' AND a.id IS NULL                                     <td width="80px;" style="font-family:'InterSB'"><?php
AND s.jenis_disposisi_id='1'                                     $no_pinjam=(int) substr($r['no_agenda'],0,5);
".($thn2 == '' ? "" : "AND EXTRACT(YEAR FROM DATE(s.tgl_diterima))='$thn2'")."                                     $no_agenda=sprintf("%05s",$no_pinjam);
".($bln2 == '0' ? "" : "AND EXTRACT(MONTH FROM DATE(s.tgl_diterima))='$bln2'")."                                     echo $r[10].'/'.$no_agenda.'/102.7/'.date('Y',strtotime($r['tgl_diterima']));
".($jenis_user == 'Admin' ? "" : "                                     ?></td>
".($disp_sifat == 'all' ? "" : " AND (SELECT LOWER(f.sifat) FROM sifat_surat f WHERE f.id=s.sifat_surat_id)='$disp_sifat'")."                                     <td class="kanan" align="center">
")."                                     <?php if ($jenis_user=='Admin') { ?>
".($jenis_user == 'Admin' ? "" : " AND k.dis_baca IS NULL AND k.kepada IS NOT NULL")."                                     <button type="button" name="edit_disposisi" style="height:22px;"class="btn btn-primary btn-xs edit_disposisi" id="<?php echo $r['id'];?>" data-content="Edit" rel="popover" data-placement="top" data-trigger="hover"
".($jenis_user == 'Admin' ? "" : "                                         >
".($disp_kpl == 'ALL' ? "" : "                                         <i class="fa fa-pencil"></i>
".($disp_kpl == 'UNTUK DIARAHKAN' ? "AND LEFT(k.isi,1) != ('#')" : "AND LEFT(k.isi,1) = ('#')")."                                     </button>
")."                                     <?php } ?>
")."                                     <button type="button" name="proses_disposisi" style="height:22px;"class="btn btn-success btn-xs proses_disposisi" id="<?php echo $r['id'];?>" data-content="Proses Disposisi" rel="popover" data-placement="top" data-trigger="hover"
                                        >
GROUP BY                                         <i class="fa fa-arrow-right"></i>
s.surat_dari,s.no_surat,s.perihal,(SELECT j.jenis FROM jenis_disposisi j WHERE j.id=s.jenis_disposisi_id),                                     </button>
s.no_agenda,s.sm_baca,s.id,                                     </td>
(SELECT f.sifat FROM sifat_surat f WHERE f.id=s.sifat_surat_id),s.tgl_surat_masuk,s.tgl_diterima,                                 </tr>
(SELECT kode FROM kode WHERE id=s.kode_id),                                 <?php
s.tgl_surat_masuk,s.tgl_diterima                                     }
".($jenis_user == 'Admin' ? "                                 ?>
".($disp_pros == 'ALL' ? "" : "                                 </tbody>
".($disp_pros == 'BELUM PROSES' ? "
HAVING COUNT(kx.kepada)=0
" : "
HAVING COUNT(kx.kepada)>0
")."
")."
" : "")."
".($jenis_user == 'Admin' ? "ORDER BY s.id DESC" : "
ORDER BY MAX(k.tgl_input) ASC
")."
");
while($r=pg_fetch_array($data)) {
?>
<tr
<?php
/* if ($jenis_user=='Admin') {
if ($r[13]==NULL) {
echo "style='color:red;'";
} else {}
} else {
if (strtolower($r[7])=='amat segera') {
echo "style='color:red;'";
} else {}
}*/
if ($jenis_user=='Admin') {
if ($r[14]==0) {
echo "style='color:red;'";
} else {}
} else {
if (strtolower($r[7])=='amat segera') {
echo "style='color:red;'";
} else {}
}
?>
>
<td style="word-wrap: break-word;min-width: 160px;max-width: 160px;font-family:'InterSB'" class="kiri"><?php echo $r['surat_dari']; ?></td>
<td align="center"><?php if ($r['tgl_surat_masuk']==null) {} else {echo date('d-m-Y',strtotime($r['tgl_surat_masuk']));} ?></td>
<td align="center"><?php if (date('H:i',strtotime($r['jam_diterima']))=='07:00') {
echo date('d-m-Y',strtotime($r['tgl_diterima']));
} else {
echo date('d-m-Y',strtotime($r['tgl_diterima'])).' '.date('H:i',strtotime($r['jam_diterima']));
} ?></td>
<td width="110px;"><?php echo $r['no_surat']; ?></td>
<td style="word-wrap: break-word;min-width: 160px;max-width: 160px;"><?php echo $r['perihal']; ?></td>
<!--<td width="50px;"><?php echo current(explode(' ',$r[3])); ?></td>-->
<td width="50px;"><?php echo $r[7]; ?></td>
<td width="80px;" style="font-family:'InterSB'"><?php
$no_pinjam=(int) substr($r['no_agenda'],0,5);
$no_agenda=sprintf("%05s",$no_pinjam);
/* echo $r[10].'/'.$no_agenda.'/302/'.date('Y',strtotime($r['tgl_diterima'])); */
echo $r[10].'/'.$no_agenda.'/102.7/'.date('Y',strtotime($r['tgl_diterima']));
?></td>
<td class="kanan" align="center">
<?php if ($jenis_user=='Admin') { ?>
<button type="button" name="edit_disposisi" style="height:22px;"class="btn btn-primary btn-xs edit_disposisi" id="<?php echo $r['id'];?>" data-content="Edit" rel="popover" data-placement="top" data-trigger="hover"
>
<i class="fa fa-pencil"></i>
</button>
<?php } ?>
<button type="button" name="proses_disposisi" style="height:22px;"class="btn btn-success btn-xs proses_disposisi" id="<?php echo $r['id'];?>" data-content="Proses Disposisi" rel="popover" data-placement="top" data-trigger="hover"
>
<i class="fa fa-arrow-right"></i>
</button>
</td>
</tr>
<?php
}
?>
</tbody>
</table> </table>
<script type="text/javascript"> <script type="text/javascript">
                    $("#tabel_data_smasuk").on('click','.proses_disposisi',function(){
                        var id = $(this).attr('id');
                        var jenis = $('#jenis').val();
                        var cek_satker = $('#cek_satker').val();
                        var disp_bln = $('#disp_bln').val();
                        var disp_thn = $('#disp_thn').val();
                        $.post('app/disposisi/arahan/main.php',{surat_id : id, jenis:jenis, cek_data_user_id:cek_data_user_id, cek_satker:cek_satker, disp_bln:disp_bln, disp_thn:disp_thn},function(html){$("#main_tag").html(html);});
                    });
                    $("#tabel_data_smasuk").on('click','.edit_disposisi',function(){
                        var id = $(this).attr('id');
                        var jenis = $('#jenis').val();
                        $.post('app/smasuk/main.php',{surat_id : id, jenis:jenis},function(html){$("#main_tag").html(html);});
                    });  
$("#tabel_data_smasuk").on('click','.proses_disposisi',function(){             </script>
var id = $(this).attr('id');
var jenis = $('#jenis').val();
var cek_satker = $('#cek_satker').val();
var disp_bln = $('#disp_bln').val();
var disp_thn = $('#disp_thn').val();
$.post('app/disposisi/arahan/main.php',{surat_id : id, jenis:jenis, cek_data_user_id:cek_data_user_id, cek_satker:cek_satker, disp_bln:disp_bln, disp_thn:disp_thn},function(html){$("#main_tag").html(html);});
});
$("#tabel_data_smasuk").on('click','.edit_disposisi',function(){
var id = $(this).attr('id');
var jenis = $('#jenis').val();
$.post('app/smasuk/main.php',{surat_id : id, jenis:jenis},function(html){$("#main_tag").html(html);});
});
</script>