yazid138 2 yıl önce
ebeveyn
işleme
ee3fdcfbe0
2 değiştirilmiş dosya ile 23 ekleme ve 24 silme
  1. 21 22
      controller/sanksi.controller.js
  2. 2 2
      utils/hariKerja.js

+ 21 - 22
controller/sanksi.controller.js

@@ -29,8 +29,6 @@ exports.create = handleError(async (req, res) => {
     no_sanksi: 'string',
     keterangan: 'string',
     pelanggaran_id: 'string',
-    from_date: 'string',
-    to_date: 'string',
     tanggal_terima_sanksi: 'string',
     tanggal_akhir_keberatan: 'string'
   })
@@ -77,11 +75,14 @@ exports.create = handleError(async (req, res) => {
 
   const dokumen = await addManyDokumen(files)
   const dokumen_id = dokumen.map((e) => e._id)
-  const autoSave = await autoSaveModel.findOne({ laporan_id: laporan._id})
+  const autoSave = await autoSaveModel.findOne({ laporan_id: laporan._id })
   if (autoSave?.laporan?.PenetapanSanksi)
     await laporanModel.findByIdAndUpdate(laporan._id, {
-      berita_acara: autoSave.laporan.PenetapanSanksi,
+      berita_acara: autoSave.laporan.PenetapanSanksi
     })
+  const batas_waktu = from_date ? {
+    keberatan: hariKerja(10, from_date)
+  } : null
   const data = await sanksiModel.create({
     no_sanksi,
     laporan: laporan._id,
@@ -98,9 +99,7 @@ exports.create = handleError(async (req, res) => {
       from_date,
       to_date
     },
-    batas_waktu: {
-      keberatan: hariKerja(10)
-    }
+    batas_waktu
   })
   await laporanModel.findByIdAndUpdate(laporan._id, {
     sanksi: data._id
@@ -114,7 +113,7 @@ exports.create = handleError(async (req, res) => {
     user: user._id,
     keterangan: 'Melakukan penetapan Sanksi',
     dokumen: dokumen_id,
-    berita_acara: dokumenBeritaAcara_id,
+    berita_acara: dokumenBeritaAcara_id
   })
 
   return response.success(res, {
@@ -124,9 +123,9 @@ exports.create = handleError(async (req, res) => {
 })
 
 exports.updatePDDIKTI = handleError(async (req, res) => {
-  const {sanksi_id} = req.params
+  const { sanksi_id } = req.params
   const user = req.user
-  const sanksi = await sanksiModel.findOne({_id: sanksi_id}).populate('pelanggaran').populate('laporan')
+  const sanksi = await sanksiModel.findOne({ _id: sanksi_id }).populate('pelanggaran').populate('laporan')
   try {
     await axios.post(
       `https://api.kemdikbud.go.id:8243/pddikti/1.2/pt/${sanksi.laporan.pt.kode}/sanksi`,
@@ -137,14 +136,14 @@ exports.updatePDDIKTI = handleError(async (req, res) => {
         idJenisSanksi: Math.max(...sanksi.pelanggaran.map(e => e.level_sanksi)),
         alasan: 'Penetapan sanksi'
       }, {
-        'Content-Type': 'application/json',
+        'Content-Type': 'application/json'
       })
     await logModel.create({
       user: user._id,
       aktivitas: `Server berhasil mengirimkan data Ke API PDDIKTI untuk update Status PT ${sanksi.laporan.pt.nama}`
     })
     return response.success(res, {
-      message: 'Berhasil mengirim data ke PDDIKTI',
+      message: 'Berhasil mengirim data ke PDDIKTI'
     })
   } catch (e) {
     await Promise.all([
@@ -160,7 +159,7 @@ exports.updatePDDIKTI = handleError(async (req, res) => {
       }), pemantauanModel.deleteOne({
         laporan: sanksi.laporan._id,
         sanksi: sanksi._id,
-        action: 'CREATE SANKSI',
+        action: 'CREATE SANKSI'
       })
     ])
     return response.error(res, {
@@ -262,9 +261,9 @@ exports.updatePt = handleError(async (req, res) => {
   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 }
+    is_pengajuan_keberatan: { type: 'string', optional: true },
+    is_pengajuan_banding: { type: 'string', optional: true },
+    is_dokumen_perbaikan: { type: 'string', optional: true }
   })
   if (!isValid) return
 
@@ -273,18 +272,18 @@ exports.updatePt = handleError(async (req, res) => {
 
   let keterangan = ''
   let last_step = ''
-  if (is_pengajuan_keberatan == true) {
+  if (is_pengajuan_keberatan == 'true') {
     last_step = 'Permohonan Keberatan'
     keterangan = 'Menerima Pengajuan Keberatan'
-  } else if (is_pengajuan_keberatan == false) {
+  } else if (is_pengajuan_keberatan == 'false') {
     keterangan = 'Membatalkan Pengajuan Keberatan'
     last_step = 'Dokumen Perbaikan'
   }
 
-  if (is_pengajuan_banding == true) {
+  if (is_pengajuan_banding == 'true') {
     last_step = 'Permohonan Banding'
     keterangan = 'Menerima Pengajuan Banding'
-  } else if (is_pengajuan_banding == false) {
+  } else if (is_pengajuan_banding == 'false') {
     keterangan = 'Membatalkan Pengajuan Banding'
     last_step = 'Dokumen Perbaikan'
   }
@@ -298,13 +297,13 @@ exports.updatePt = handleError(async (req, res) => {
     keterangan
   })
 
-  if (is_dokumen_perbaikan == true) {
+  if (is_dokumen_perbaikan == 'true') {
     last_step = 'Dokumen Perbaikan'
   }
 
   await sanksiModel.updateOne(
     { _id: sanksi._id },
-    { is_pengajuan_keberatan, is_pengajuan_banding, last_step }
+    { is_pengajuan_keberatan: is_pengajuan_keberatan == 'true' , is_pengajuan_banding: is_pengajuan_banding == 'true', last_step }
   )
 
   return response.success(res, {

+ 2 - 2
utils/hariKerja.js

@@ -1,5 +1,5 @@
-exports.hariKerja = (n) => {
-  const today = new Date();
+exports.hariKerja = (n, fromDate = null) => {
+  const today = fromDate ? new Date(fromDate) : new Date()
   let dayCount = 0;
 
   while (dayCount < n) {