381 lines
19 KiB
PHP
381 lines
19 KiB
PHP
<?php
|
|
include('../koneksi.php');
|
|
|
|
$key = isset($_POST['key']) ? $_POST['key'] : 'gagal';
|
|
|
|
switch ($key) {
|
|
case 'verif_kirim':
|
|
$surat_id = $_POST['surat_id'];
|
|
$satuan_kerja_id = $_POST['satuan_kerja_id'];
|
|
|
|
$query = "SELECT
|
|
(SELECT COUNT(*) FROM kirim k
|
|
INNER JOIN surat s ON k.surat_id = s.id
|
|
LEFT JOIN teruskan t ON k.id = t.kirim_id_untuk
|
|
WHERE k.kepada IS NOT NULL AND k.surat_id = $surat_id
|
|
AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput = $satuan_kerja_id) AS kpd,
|
|
(SELECT COUNT(*) FROM scan k
|
|
INNER JOIN surat s ON k.surat_id = s.id
|
|
WHERE k.surat_id = $surat_id AND LOWER(k.file) LIKE '%jpg'
|
|
AND k.file NOT IN ('')) AS tj,
|
|
(SELECT COUNT(*) FROM scan k
|
|
INNER JOIN surat s ON k.surat_id = s.id
|
|
WHERE k.surat_id = $surat_id AND LOWER(k.file) NOT LIKE '%jpg'
|
|
AND k.file NOT IN ('')) AS tm
|
|
";
|
|
|
|
$result = pg_query($koneksi, $query);
|
|
$row = pg_fetch_assoc($result);
|
|
$response = array(
|
|
'tj' => $row['tj'],
|
|
'tm' => $row['tm'],
|
|
'kpd' => $row['kpd']
|
|
);
|
|
|
|
echo json_encode($response);
|
|
// echo $row['tj'] . '$%^' . $row['tm'] . '$%^' . $row['kpd'];
|
|
break;
|
|
|
|
case 'delete_kepada_tl':
|
|
$id = $_POST['id'];
|
|
$surat_id = $_POST['surat_id'];
|
|
$jabatan_pegawai_id = $_POST['jabatan_pegawai_id'];
|
|
|
|
pg_query($koneksi, "DELETE FROM teruskan WHERE kirim_id_untuk = $id");
|
|
pg_query($koneksi, "DELETE FROM kirim WHERE id = '$id'");
|
|
|
|
pg_query($koneksi, "UPDATE kirim SET isi = NULL
|
|
WHERE id = (
|
|
SELECT MIN(k.id)
|
|
FROM kirim k
|
|
INNER JOIN surat s ON k.surat_id = s.id
|
|
INNER JOIN data_user u ON u.satuan_kerja_id = k.satuan_kerja_penginput
|
|
WHERE k.kepada IS NOT NULL AND k.surat_id = $surat_id
|
|
AND u.jabatan_pegawai_id = $jabatan_pegawai_id
|
|
AND k.satuan_kerja_tujuan IS NULL
|
|
)
|
|
");
|
|
break;
|
|
|
|
case 'delete_kepada_kr':
|
|
$kirim_id = $_POST['id'];
|
|
$result = pg_query($koneksi, "SELECT surat_id, isi FROM kirim WHERE id = $kirim_id");
|
|
$row = pg_fetch_assoc($result);
|
|
$surat_id = $row['surat_id'];
|
|
$isi = $row['isi'];
|
|
|
|
if ($isi == 'SM') {
|
|
pg_query($koneksi, "DELETE FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id = $surat_id AND id = $kirim_id)");
|
|
pg_query($koneksi, "DELETE FROM kirim WHERE surat_id = $surat_id AND id = $kirim_id");
|
|
} else {
|
|
pg_query($koneksi, "DELETE FROM scan_komen WHERE komen_id IN (SELECT komen_id FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id = $surat_id AND id >= $kirim_id))");
|
|
pg_query($koneksi, "DELETE FROM komen WHERE surat_id = $surat_id AND id IN (SELECT komen_id FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id = $surat_id AND id >= $kirim_id))");
|
|
pg_query($koneksi, "DELETE FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id = $surat_id AND id >= $kirim_id)");
|
|
|
|
$satuan_kerja_id = $_POST['satuan_kerja_id'];
|
|
$result = pg_query($koneksi, "SELECT MIN(k.id) AS kirimidmn
|
|
FROM kirim k
|
|
INNER JOIN surat s ON k.surat_id = s.id
|
|
LEFT JOIN teruskan t ON k.id = t.kirim_id_untuk
|
|
WHERE k.kepada IS NOT NULL AND k.surat_id = $surat_id
|
|
AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput = $satuan_kerja_id
|
|
");
|
|
$row = pg_fetch_assoc($result);
|
|
$kirimidmn = $row['kirimidmn'];
|
|
|
|
pg_query($koneksi, "DELETE FROM kirim WHERE surat_id = $surat_id AND id = $kirimidmn");
|
|
pg_query($koneksi, "DELETE FROM kirim WHERE surat_id = $surat_id AND satuan_kerja_penginput <> $satuan_kerja_id");
|
|
|
|
$result = pg_query($koneksi, "SELECT MIN(k.id) AS kirimid
|
|
FROM kirim k
|
|
INNER JOIN surat s ON k.surat_id = s.id
|
|
LEFT JOIN teruskan t ON k.id = t.kirim_id_untuk
|
|
WHERE k.kepada IS NOT NULL AND k.surat_id = $surat_id
|
|
AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput = $satuan_kerja_id
|
|
");
|
|
$row = pg_fetch_assoc($result);
|
|
$kirimid = $row['kirimid'];
|
|
|
|
pg_query($koneksi, "UPDATE kirim SET isi = NULL, dis_baca = NULL, proses_tu = NULL, tgl_diterima = NULL WHERE id = $kirimid");
|
|
}
|
|
break;
|
|
case 'simpan_kirim':
|
|
$surat_id = $_POST['surat_id'];
|
|
$satuan_kerja_id = $_POST['satuan_kerja_id'];
|
|
$perihal = $_POST['perihal'];
|
|
$no_reg = $_POST['no_register'];
|
|
$jns_naskah = $_POST['jns_naskah'];
|
|
$sif_naskah = $_POST['sif_naskah'];
|
|
$kd_surat = $_POST['kd_surat'];
|
|
$penandatangan_id = $_POST['penandatangan_id'];
|
|
|
|
// Check if the surat exists
|
|
$query = "SELECT id FROM surat WHERE id=$1";
|
|
$result = pg_query_params($koneksi, $query, array($surat_id));
|
|
|
|
if (pg_num_rows($result) > 0) {
|
|
// Update surat if it exists
|
|
$update_query = "UPDATE surat SET perihal=$1 WHERE id=$2";
|
|
pg_query_params($koneksi, $update_query, array($perihal, $surat_id));
|
|
} else {
|
|
// Insert new surat if it does not exist
|
|
$setNo_register = pg_query($koneksi, "SELECT
|
|
CONCAT(
|
|
TO_CHAR(CURRENT_DATE, 'YYMMDD'),
|
|
LPAD(
|
|
CAST(
|
|
COALESCE(
|
|
MAX(CAST(RIGHT(no_register, 3) AS NUMERIC)) + 1,
|
|
1
|
|
) AS TEXT
|
|
),
|
|
3,
|
|
'0'
|
|
)
|
|
) AS new_no_register
|
|
FROM surat
|
|
WHERE LEFT(no_register, 6) = TO_CHAR(CURRENT_DATE, 'YYMMDD');
|
|
");
|
|
$no_register = pg_fetch_array($setNo_register);
|
|
$insert_query = "INSERT INTO surat (satuan_kerja_id, perihal, tgl_surat_keluar, jenis_surat_id, jenis_disposisi_id, no_register, sifat_surat_id, kode_id, pengesahan,penandatangan_id)
|
|
VALUES ($1, $2, NOW(), $3, 3, $4, $5, $6, 1,$7)";
|
|
pg_query_params($koneksi, $insert_query, array($satuan_kerja_id, $perihal, $jns_naskah, $no_register['new_no_register'], $sif_naskah, $kd_surat, $penandatangan_id));
|
|
}
|
|
|
|
// Retrieve the latest surat id
|
|
$select_query = "SELECT id,no_register FROM surat WHERE satuan_kerja_id=$1 AND no_register=$2 AND perihal=$3 ORDER BY id DESC LIMIT 1";
|
|
$result = pg_query_params($koneksi, $select_query, array($satuan_kerja_id, $no_register['new_no_register'], $perihal));
|
|
|
|
if ($row = pg_fetch_array($result)) {
|
|
echo json_encode(['no_surat' => $row['id'], 'no_register' => $row['no_register']]);
|
|
} else {
|
|
echo json_encode(['no_surat' => $surat_id, 'no_register' => $no_reg]);;
|
|
}
|
|
break;
|
|
|
|
case 'simpan_kepada_tl':
|
|
$surat_id = $_POST['surat_id'];
|
|
$kepada = $_POST['kepada'];
|
|
$satuan_kerja_penginput = $_POST['satuan_kerja_penginput'];
|
|
|
|
$cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id='$surat_id' AND kepada='$kepada' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL");
|
|
$row_satker = pg_fetch_row($cek_satker);
|
|
|
|
if ($row_satker[0] == 0) {
|
|
$cdata = pg_query($koneksi, "SELECT COUNT(*) FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL");
|
|
$rcdata = pg_fetch_array($cdata);
|
|
$jdata = $rcdata[0];
|
|
|
|
if ($jdata == 0) {
|
|
$inp = pg_query($koneksi, "INSERT INTO kirim (surat_id, kepada, tgl_input, jam_input, satuan_kerja_penginput) VALUES ('$surat_id', '$kepada', NOW(), NOW(), '$satuan_kerja_penginput')");
|
|
} else {
|
|
$inp = pg_query($koneksi, "INSERT INTO kirim (surat_id, kepada, tgl_input, jam_input, satuan_kerja_penginput, isi) VALUES ('$surat_id', '$kepada', NOW(), NOW(), '$satuan_kerja_penginput', 'SM')");
|
|
}
|
|
}
|
|
echo json_encode(['icon' => 'success', 'message' => 'Kirim Tujuan sudah Ditambahkan']);
|
|
break;
|
|
case 'simpan_kepada_kr':
|
|
$surat_id = (int)$_POST['surat_id'];
|
|
$kepada = (int)$_POST['kepada'];
|
|
$satuan_kerja_penginput = (int)$_POST['satuan_kerja_penginput'];
|
|
|
|
// Cek apakah sudah ada kirim untuk surat_id, kepada, dan satuan_kerja_penginput yang sama
|
|
$cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id=$surat_id AND kepada=$kepada AND satuan_kerja_penginput=$satuan_kerja_penginput AND satuan_kerja_tujuan IS NULL");
|
|
$row_satker = pg_fetch_row($cek_satker);
|
|
|
|
if (empty($row_satker)) {
|
|
// Menggabungkan penghitungan jdata dan jdata1 menjadi satu kueri
|
|
$cdata = pg_query(
|
|
$koneksi,
|
|
"SELECT
|
|
(SELECT COUNT(*) FROM kirim WHERE surat_id=$surat_id AND satuan_kerja_penginput=$satuan_kerja_penginput AND kepada=$kepada) AS jdata,
|
|
(SELECT COUNT(*) FROM kirim WHERE surat_id=$surat_id AND satuan_kerja_penginput=$satuan_kerja_penginput AND isi='SM') AS jdata1"
|
|
);
|
|
$rcdata = pg_fetch_assoc($cdata);
|
|
$jdata = $rcdata['jdata'];
|
|
$jdata1 = $rcdata['jdata1'];
|
|
|
|
// Memilih kueri INSERT yang sesuai berdasarkan kondisi jdata dan jdata1
|
|
if ($jdata == 0 && $jdata1 == 0) {
|
|
$query = "INSERT INTO kirim (surat_id, kepada, tgl_input, jam_input, satuan_kerja_penginput)
|
|
VALUES ($surat_id, $kepada, NOW(), NOW(), $satuan_kerja_penginput)";
|
|
pg_query($koneksi, $query);
|
|
} else {
|
|
// $query = "INSERT INTO kirim (surat_id, kepada, tgl_input, jam_input, satuan_kerja_penginput, isi)
|
|
// VALUES ($surat_id, $kepada, NOW(), NOW(), $satuan_kerja_penginput, 'SM')";
|
|
}
|
|
}
|
|
break;
|
|
case 'jumlah_kepada':
|
|
$surat_id = $_POST['surat_id'];
|
|
$satuan_kerja_id = $_POST['satuan_kerja_id'];
|
|
$k = pg_query($koneksi, "SELECT COUNT(*)
|
|
FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id)
|
|
LEFT OUTER JOIN teruskan t ON (k.id=t.kirim_id_untuk)
|
|
WHERE k.kepada IS NOT NULL AND k.surat_id=$surat_id AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput=$satuan_kerja_id");
|
|
while ($rk = pg_fetch_array($k)) {
|
|
echo $rk[0];
|
|
}
|
|
break;
|
|
case 'jumlah_jpg':
|
|
$surat_id = $_POST['surat_id'];
|
|
$k = pg_query($koneksi, "SELECT COUNT(*)
|
|
FROM scan k INNER JOIN surat s ON (k.surat_id=s.id)
|
|
WHERE k.surat_id=$surat_id AND LOWER(file) NOT IN ('%.jpg', '%.jpeg', '%.png') AND k.file NOT IN ('')
|
|
");
|
|
while ($rk = pg_fetch_array($k)) {
|
|
echo $rk[0];
|
|
}
|
|
break;
|
|
case 'jumlah_nonjpg':
|
|
$surat_id = $_POST['surat_id'];
|
|
$k = pg_query($koneksi, "SELECT COUNT(*)
|
|
FROM scan k INNER JOIN surat s ON (k.surat_id=s.id)
|
|
WHERE k.surat_id='$surat_id' AND LOWER(k.file) NOT LIKE '%.jpg' AND k.file NOT IN ('')");
|
|
while ($rk = pg_fetch_array($k)) {
|
|
echo $rk[0];
|
|
}
|
|
break;
|
|
case 'hapus_kirim':
|
|
$id = $_POST['id'];
|
|
$surat = pg_query($koneksi, "SELECT tgl_kirim FROM surat WHERE id = $id");
|
|
$result = pg_fetch_array($surat);
|
|
|
|
if (!empty($result['tgl_kirim'])) {
|
|
echo json_encode(['icon' => 'error', 'message' => 'Surat sudah terkirim, <br>tidak boleh dihapus...!!']);
|
|
} else {
|
|
pg_query($koneksi, "UPDATE surat SET tahun='batal' WHERE id=$id");
|
|
echo json_encode(['icon' => 'success', 'message' => 'Data berhasil dihapus...!!']);
|
|
}
|
|
|
|
break;
|
|
case 'start_kirim':
|
|
$id = $_POST['id'];
|
|
$satuan_kerja_id = $_POST['satuan_kerja_id'];
|
|
|
|
// Query untuk mendapatkan data kirim yang memenuhi kondisi
|
|
$result = pg_query($koneksi, "SELECT id, kepada FROM kirim WHERE surat_id='$id' AND satuan_kerja_penginput=$satuan_kerja_id AND satuan_kerja_tujuan IS NULL AND lama IS NULL");
|
|
|
|
if (!$result) {
|
|
// Jika query pertama gagal
|
|
$error_message = pg_last_error($koneksi);
|
|
echo "Error: Query failed. " . $error_message;
|
|
} else {
|
|
while ($r = pg_fetch_array($result)) {
|
|
$kirim_id = $r['id'];
|
|
$kepada = $r['kepada'];
|
|
|
|
// Query untuk mendapatkan satuan_kerja_tujuan dari data_user
|
|
$result_sat = pg_query($koneksi, "SELECT satuan_kerja_id FROM data_user WHERE jabatan_pegawai_id='$kepada'");
|
|
if (!$result_sat) {
|
|
// Jika query kedua gagal
|
|
$error_message = pg_last_error($koneksi);
|
|
echo "Error: Query failed. " . $error_message;
|
|
} else {
|
|
$r_sat = pg_fetch_array($result_sat);
|
|
$satuan_kerja_tujuan = $r_sat['satuan_kerja_id'];
|
|
|
|
// Update kirim dengan satuan_kerja_tujuan dan waktu lama
|
|
$update_kirim = pg_query($koneksi, "UPDATE kirim SET satuan_kerja_tujuan='$satuan_kerja_tujuan', lama=NOW() WHERE id='$kirim_id'");
|
|
if (!$update_kirim) {
|
|
// Jika query update gagal
|
|
$error_message = pg_last_error($koneksi);
|
|
echo "Error: Query failed. " . $error_message;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Update surat dengan tgl_kirim saat semua kirim berhasil diupdate
|
|
$update_surat = pg_query($koneksi, "UPDATE surat SET tgl_kirim=NOW(), stts_kendali=0 WHERE id='$id'");
|
|
if (!$update_surat) {
|
|
// Jika query update surat gagal
|
|
$error_message = pg_last_error($koneksi);
|
|
echo "Error: Query failed. " . $error_message;
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 'kirim_semua':
|
|
$userpeg = pg_query($koneksi, "SELECT DISTINCT j.id,
|
|
SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',1),
|
|
CAST(SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',2) AS INTEGER)
|
|
FROM data_user k
|
|
INNER JOIN jabatan_pegawai j ON (j.id=k.jabatan_pegawai_id)
|
|
INNER JOIN satuan_kerja s ON (s.id=k.satuan_kerja_id) WHERE LOWER(j.nama) NOT LIKE '%akun lama%' AND k.aktif='t'
|
|
ORDER BY SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',1) ASC,
|
|
CAST(SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',2) AS INTEGER) ASC
|
|
");
|
|
while (($rows = pg_fetch_array($userpeg)) !== FALSE) {
|
|
$kpd = $rows[0];
|
|
$surat_id = $_POST['surat_id'];
|
|
$kepada = $kpd;
|
|
$satuan_kerja_penginput = $_POST['satuan_kerja_penginput'];
|
|
$cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id='$surat_id' AND kepada='$kepada' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL");
|
|
$row_satker = pg_fetch_row($cek_satker);
|
|
if ($row_satker[0] > 0) {
|
|
} else {
|
|
$cdata = pg_query($koneksi, "SELECT COUNT(*) FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL");
|
|
while ($rcdata = pg_fetch_array($cdata)) {
|
|
$jdata = $rcdata[0];
|
|
}
|
|
if ($jdata == 0) {
|
|
$inp = pg_query($koneksi, "INSERT INTO kirim (surat_id, kepada, tgl_input, jam_input, satuan_kerja_penginput)
|
|
VALUES ('$surat_id', '$kepada', NOW(), NOW(), '$satuan_kerja_penginput')");
|
|
} else {
|
|
$inp = pg_query($koneksi, "INSERT INTO kirim (surat_id, kepada, tgl_input, jam_input, satuan_kerja_penginput, isi)
|
|
VALUES ('$surat_id', '$kepada', NOW(), NOW(), '$satuan_kerja_penginput', 'SM')");
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'clear_kepada':
|
|
$surat_id = $_POST['surat_id'];
|
|
$satuan_kerja_penginput = $_POST['satuan_kerja_penginput'];
|
|
pg_query($koneksi, "DELETE FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput'");
|
|
break;
|
|
case 'cek_no_surat':
|
|
$no_surat = $_POST['no_surat'];
|
|
$satuan_kerja_id = $_POST['satuan_kerja_id'];
|
|
$cek = pg_query($koneksi, "SELECT no_surat FROM surat WHERE no_surat='$no_surat' AND jenis_surat_id=3 AND jenis_disposisi_id=3 AND satuan_kerja_id=$satuan_kerja_id AND tahun IS NULL");
|
|
while ($rcek = pg_fetch_array($cek)) {
|
|
$hsl = $rcek[0];
|
|
}
|
|
echo $hsl;
|
|
break;
|
|
// case 'pengajuan_ulang':
|
|
// $surat_id = $_POST['surat_id'];
|
|
// var_dump($surat_id);
|
|
// pg_query($koneksi, "UPDATE surat SET stts_kendali =98 WHERE id=$surat_id ");
|
|
// break;
|
|
case 'selesai_kepada_tl':
|
|
$surat_id = $_POST['surat_id'];
|
|
$kepada = $_POST['kepada'];
|
|
$satuan_kerja_penginput = $_POST['satuan_kerja_penginput'];
|
|
|
|
foreach ($kepada as $kpd) {
|
|
$cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id='$surat_id' AND kepada='$kpd' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL");
|
|
$row_satker = pg_fetch_row($cek_satker);
|
|
// var_dump($kpd);
|
|
// die();
|
|
if ($row_satker[0] == 0) {
|
|
$cdata = pg_query($koneksi, "SELECT COUNT(*) FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL");
|
|
$rcdata = pg_fetch_array($cdata);
|
|
$jdata = $rcdata[0];
|
|
|
|
if ($jdata == 0) {
|
|
$inp = pg_query($koneksi, "INSERT INTO kirim (surat_id, kepada, tgl_input, jam_input, satuan_kerja_penginput) VALUES ('$surat_id', '$kpd', NOW(), NOW(), '$satuan_kerja_penginput')");
|
|
} else {
|
|
$inp = pg_query($koneksi, "INSERT INTO kirim (surat_id, kepada, tgl_input, jam_input, satuan_kerja_penginput, isi) VALUES ('$surat_id', '$kpd', NOW(), NOW(), '$satuan_kerja_penginput', 'SM')");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
echo json_encode(['icon' => 'success', 'message' => 'Kirim Tujuan sudah Ditambahkan']);
|
|
break;
|
|
break;
|
|
case "gagal":
|
|
echo 'gagaaaaaal';
|
|
break;
|
|
}
|