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
include("../koneksi.php");
// --- 1. AMBIL VARIABEL INPUT & TENTUKAN BATASAN KHUSUS ---
$satuan_kerja_id=$_POST['satker'];
$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') {
$disp_pros=$_POST['disp_pros'];
} else {
$disp_kpl=$_POST['disp_kpl'];
$disp_sifat=strtolower($_POST['disp_sifat']);
$disp_sifat=strtolower($_POST['disp_sifat']);
}
$bln2=$_POST['bln2'];
$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='';}
?>
@@ -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_thn" value="<?php echo $thn2; ?>">
<table id="tabel_data_smasuk" class="table table-striped table-condensed table-bordered" cellpadding="1">
<thead>
<tr>
<td width="220px;">Dari</td>
<td width="100px;">Tgl Surat</td>
<td width="100px;">Diterima</td>
<td width="80px;">No Surat</td>
<td>Perihal</td>
<td width="50px;">Sifat</td>
<td width="100px;">No Agenda</td>
<td width="50px;">Tools</td>
</tr>
</thead>
<tbody style="color:black">
<?php
/* ====== terbaRU
<table id="tabel_data_smasuk"  class="table table-striped table-condensed table-bordered" cellpadding="1">
                                <thead>
                                <tr>
                                    <td width="220px;">Dari</td>
                                    <td width="100px;">Tgl Surat</td>
                                    <td width="100px;">Diterima</td>
                                    <td width="80px;">No Surat</td>
                                    <td>Perihal</td>
                                    <td width="50px;">Sifat</td>
                                    <td width="100px;">No Agenda</td>
                                    <td width="50px;">Tools</td>
                                </tr>
                                </thead>
                                <tbody  style="color:black">
                                <?php
                                                                 
/* * 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),
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 kode FROM kode WHERE id=s.kode_id),
s.tgl_surat_masuk,s.tgl_diterima,
MAX(k.tgl_input),COUNT(kx.kepada)
FROM surat s
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)
LEFT OUTER JOIN (SELECT k3.* FROM kirim k3 WHERE
".($jenis_user == 'Admin' ? "k3.id IS NOT NULL" : " k3.satuan_kerja_tujuan='$satuan_kerja_id'")."
) kx ON (s.id=kx.surat_id)
LEFT OUTER JOIN arsip a ON (a.surat_id=s.id)
WHERE k.satuan_kerja_tujuan='$satuan_kerja_id' AND a.id IS NULL
AND s.jenis_disposisi_id='1'
".($thn2 == '' ? "" : "AND EXTRACT(YEAR FROM DATE(s.tgl_diterima))='$thn2'")."
".($bln2 == '0' ? "" : "AND EXTRACT(MONTH FROM DATE(s.tgl_diterima))='$bln2'")."
".($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' ? "" : "
".($disp_kpl == 'ALL' ? "" : "
".($disp_kpl == 'UNTUK DIARAHKAN' ? "AND LEFT(k.isi,1) != ('#')" : "AND LEFT(k.isi,1) = ('#')")."
")."
")."
                                        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 kode FROM kode WHERE id=s.kode_id),
                                        s.tgl_surat_masuk,s.tgl_diterima,
                                        MAX(k.tgl_input)".$nb."
                                        FROM surat s
                                        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)
                                        ".$nb1."
                                        LEFT OUTER JOIN arsip a ON (a.surat_id=s.id)
                                        WHERE k.satuan_kerja_tujuan='$satuan_kerja_id' AND a.id IS NULL
                                        AND s.jenis_disposisi_id='1'
                                        ".($thn2 == '' ? "" : "AND EXTRACT(YEAR FROM DATE(s.tgl_diterima))='$thn2'")."
                                        ".($bln2 == '0' ? "" : "AND EXTRACT(MONTH FROM DATE(s.tgl_diterima))='$bln2'")."
                                        ".($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' ? "" : "
                                             ".($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
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,
(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),
s.tgl_surat_masuk,s.tgl_diterima
".($jenis_user == 'Admin' ? "
".($disp_pros == 'ALL' ? "" : "
".($disp_pros == 'BELUM PROSES' ? "
HAVING COUNT(kx.kepada)=0
" : "
HAVING COUNT(kx.kepada)>0
")."
")."
" : "")."
                                        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 kode FROM kode WHERE id=s.kode_id),
                                        s.tgl_surat_masuk,s.tgl_diterima
                                            ".($jenis_user == 'Admin' ? "
                                            ".($disp_pros == 'ALL' ? "" : "
                                                ".($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
                                        ")."                                        
                                        ");
".($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[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,
(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),
s.tgl_surat_masuk,s.tgl_diterima,
MAX(k.tgl_input)".$nb."
FROM surat s
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)
".$nb1."
LEFT OUTER JOIN arsip a ON (a.surat_id=s.id)
WHERE k.satuan_kerja_tujuan='$satuan_kerja_id' AND a.id IS NULL
AND s.jenis_disposisi_id='1'
".($thn2 == '' ? "" : "AND EXTRACT(YEAR FROM DATE(s.tgl_diterima))='$thn2'")."
".($bln2 == '0' ? "" : "AND EXTRACT(MONTH FROM DATE(s.tgl_diterima))='$bln2'")."
".($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' ? "" : "
".($disp_kpl == 'ALL' ? "" : "
".($disp_kpl == 'UNTUK DIARAHKAN' ? "AND LEFT(k.isi,1) != ('#')" : "AND LEFT(k.isi,1) = ('#')")."
")."
")."
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.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 kode FROM kode WHERE id=s.kode_id),
s.tgl_surat_masuk,s.tgl_diterima
".($jenis_user == 'Admin' ? "
".($disp_pros == 'ALL' ? "" : "
".($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>
                                    ?>
                                >
                                    <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 (isset($r['jam_diterima']) && 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'])).(isset($r['jam_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 $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.'/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>
<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(){
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>
            </script>