|
|
@@ -14,10 +14,10 @@ const {
|
|
|
const laporanModel = require('../model/laporan.model')
|
|
|
|
|
|
exports.create = handleError(async (req, res) => {
|
|
|
- const { no_sanksi, keterangan, from_date, to_date } = req.body
|
|
|
+ const { no_sanksi, keterangan, from_date, to_date, tanggal_terima_sanksi, tanggal_akhir_keberatan } = req.body
|
|
|
let { pelanggaran_id } = req.body
|
|
|
const { laporan_id } = req.params
|
|
|
- const files = req.files
|
|
|
+ const { dokumen: files, berita_acara, dokumen_terima_sanksi } = req.files
|
|
|
const user = req.user
|
|
|
|
|
|
const isValid = validate(res, req.body, {
|
|
|
@@ -26,6 +26,8 @@ exports.create = handleError(async (req, res) => {
|
|
|
pelanggaran_id: 'string',
|
|
|
from_date: 'string',
|
|
|
to_date: 'string',
|
|
|
+ tanggal_terima_sanksi: 'string',
|
|
|
+ tanggal_akhir_keberatan: 'string',
|
|
|
})
|
|
|
if (!isValid) return
|
|
|
|
|
|
@@ -44,11 +46,21 @@ exports.create = handleError(async (req, res) => {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
- if (!files.length) {
|
|
|
+ if (!files) {
|
|
|
return response.error(res, {
|
|
|
message: 'dokumen harus ada',
|
|
|
})
|
|
|
}
|
|
|
+ let dokumenBeritaAcara_id = null
|
|
|
+ if (berita_acara) {
|
|
|
+ const dokumenBeritaAcara = await addManyDokumen(berita_acara)
|
|
|
+ dokumenBeritaAcara_id = dokumenBeritaAcara[0]
|
|
|
+ }
|
|
|
+ let dokumenTerimaSanksi_id = []
|
|
|
+ if (dokumen_terima_sanksi) {
|
|
|
+ const dokumenTerimaSanksi = await addManyDokumen(dokumen_terima_sanksi)
|
|
|
+ dokumenTerimaSanksi_id = dokumenTerimaSanksi.map((e) => e._id)
|
|
|
+ }
|
|
|
|
|
|
const dokumen = await addManyDokumen(files)
|
|
|
const dokumen_id = dokumen.map((e) => e._id)
|
|
|
@@ -59,6 +71,10 @@ exports.create = handleError(async (req, res) => {
|
|
|
pelanggaran: pelanggaran_id,
|
|
|
keterangan,
|
|
|
dokumen: dokumen_id,
|
|
|
+ berita_acara: dokumenBeritaAcara_id,
|
|
|
+ tanggal_terima_sanksi,
|
|
|
+ dokumen_terima_sanksi: dokumenTerimaSanksi_id,
|
|
|
+ tanggal_akhir_keberatan,
|
|
|
masa_berlaku: {
|
|
|
from_date,
|
|
|
to_date,
|
|
|
@@ -163,6 +179,62 @@ exports.update = handleError(async (req, res) => {
|
|
|
})
|
|
|
})
|
|
|
|
|
|
+exports.updatePt = handleError(async (req, res) => {
|
|
|
+ const { is_pengajuan_keberatan, is_pengajuan_banding, is_dokumen_perbaikan } = req.body
|
|
|
+ const { sanksi_id } = req.params
|
|
|
+ const user = req.user
|
|
|
+
|
|
|
+ const isValid = validate(res, req.body, {
|
|
|
+ is_pengajuan_keberatan: { type: 'boolean', optional: true },
|
|
|
+ is_pengajuan_banding: { type: 'boolean', optional: true },
|
|
|
+ is_dokumen_perbaikan: { type: 'boolean', optional: true },
|
|
|
+ })
|
|
|
+ if (!isValid) return
|
|
|
+
|
|
|
+ const sanksi = await cekSatuDataSanksi(res, user, sanksi_id)
|
|
|
+ if (!sanksi) return
|
|
|
+
|
|
|
+ let keterangan = '';
|
|
|
+ let last_step = '';
|
|
|
+ if (is_pengajuan_keberatan == true) {
|
|
|
+ last_step = 'Permohonan Keberatan'
|
|
|
+ keterangan = 'Menerima Pengajuan Keberatan';
|
|
|
+ } else if (is_pengajuan_keberatan == false) {
|
|
|
+ keterangan = 'Membatalkan Pengajuan Keberatan';
|
|
|
+ last_step = 'Dokumen Perbaikan';
|
|
|
+ }
|
|
|
+
|
|
|
+ if (is_pengajuan_banding == true) {
|
|
|
+ last_step = 'Permohonan Banding'
|
|
|
+ keterangan = 'Menerima Pengajuan Banding';
|
|
|
+ } else if (is_pengajuan_banding == false) {
|
|
|
+ keterangan = 'Membatalkan Pengajuan Banding';
|
|
|
+ last_step = 'Dokumen Perbaikan';
|
|
|
+ }
|
|
|
+
|
|
|
+ await pemantauanModel.create({
|
|
|
+ laporan: sanksi.laporan._id,
|
|
|
+ sanksi: sanksi._id,
|
|
|
+ action: 'UPDATE SANKSI',
|
|
|
+ pt_id: sanksi.laporan.pt.id,
|
|
|
+ user: user._id,
|
|
|
+ keterangan,
|
|
|
+ })
|
|
|
+
|
|
|
+ if (is_dokumen_perbaikan == true) {
|
|
|
+ last_step = 'Dokumen Perbaikan';
|
|
|
+ }
|
|
|
+
|
|
|
+ await sanksiModel.updateOne(
|
|
|
+ { _id: sanksi._id },
|
|
|
+ { is_pengajuan_keberatan, is_pengajuan_banding, last_step }
|
|
|
+ );
|
|
|
+
|
|
|
+ return response.success(res, {
|
|
|
+ message: 'Berhasil merubah Sanksi',
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
exports.getAll = handleError(async (req, res) => {
|
|
|
const user = req.user
|
|
|
const {
|
|
|
@@ -175,20 +247,26 @@ exports.getAll = handleError(async (req, res) => {
|
|
|
delegasi,
|
|
|
naikSanksi,
|
|
|
turunSanksi,
|
|
|
+ pengajuan_keberatan
|
|
|
} = req.query
|
|
|
const where = {}
|
|
|
const q = {}
|
|
|
if (aktif && aktif === 'false') {
|
|
|
where.aktif = false
|
|
|
}
|
|
|
+ if (pengajuan_keberatan === 'true') {
|
|
|
+ where.is_pengajuan_keberatan = true;
|
|
|
+ }
|
|
|
if (keberatan === 'true') {
|
|
|
where['pengajuan.keberatan'] = { $exists: true, $ne: null }
|
|
|
+ where.is_pengajuan_keberatan = true
|
|
|
if (jawaban === 'true') {
|
|
|
where['jawaban.keberatan'] = { $exists: true, $ne: null }
|
|
|
}
|
|
|
}
|
|
|
if (banding === 'true') {
|
|
|
where.banding = true
|
|
|
+ where.is_pengajuan_banding = true
|
|
|
where['pengajuan.keberatan'] = { $exists: true, $ne: null }
|
|
|
where['jawaban.keberatan'] = { $exists: true, $ne: null }
|
|
|
where['pengajuan.banding'] = { $exists: true, $ne: null }
|
|
|
@@ -204,7 +282,7 @@ exports.getAll = handleError(async (req, res) => {
|
|
|
}
|
|
|
}
|
|
|
if (perbaikan === 'true') {
|
|
|
- where['jawaban.banding'] = { $exists: true, $ne: null }
|
|
|
+ where.$or = [{ 'jawaban.banding': { $exists: true, $ne: null } }, { is_pengajuan_keberatan: false }, { is_pengajuan_banding: false }]
|
|
|
}
|
|
|
if (delegasi === 'true') {
|
|
|
where.delegasi = true
|