Kaynağa Gözat

add rekomendasi

yazid138 3 yıl önce
ebeveyn
işleme
8358468040

+ 1 - 3
controller/laporan/evaluasi.controller.js

@@ -1,13 +1,11 @@
 const laporanModel = require('../../model/laporan.model')
-const logModel = require('../../model/log.model')
 const handleError = require('../../utils/handleError')
 const response = require('../../utils/responseHandler')
 const { validate } = require('../../utils/validation')
 const { addManyDokumen } = require('../../utils/dokumenFunction')
 const { cekSatuDataLaporan } = require('../../utils/cekData')
 const pemantauanModel = require('../../model/pemantauan.model')
-const ip = require('ip')
-const osValue = require('../../utils/osValue')
+
 
 exports.add = handleError(async (req, res) => {
   const user = req.user

+ 60 - 0
controller/rekomendasi.controller.js

@@ -0,0 +1,60 @@
+const handleError = require('../utils/handleError')
+const response = require('../utils/responseHandler')
+const { addManyDokumen } = require('../utils/dokumenFunction')
+const { cekSatuDataSanksi } = require('../utils/cekData')
+const pemantauanModel = require('../model/pemantauan.model')
+const sanksiModel = require('../model/sanksi.model')
+
+exports.createRekomendasi = handleError(async (req, res) => {
+  const user = req.user
+  const { id } = req.params
+
+  const sanksi = await cekSatuDataSanksi(res, user, id, { delegasi: true })
+  if (!sanksi) return
+
+  const files = req.files
+  if (!files.length) {
+    return response.error(res, {
+      message: 'dokumen harus ada',
+    })
+  }
+  const dokumen = await addManyDokumen(files)
+  const dokumen_id = dokumen.map((e) => e._id)
+
+  const data = await sanksiModel.findOneAndUpdate(
+    {
+      _id: sanksi._id,
+    },
+    {
+      $push: {
+        rekomendasi: {
+          dokumen: dokumen_id,
+        },
+      },
+    },
+    {
+      new: true,
+    }
+  )
+
+  let for_public = true
+  if (sanksi.rekomendasi.length > 0) {
+    for_public = false
+  }
+
+  await pemantauanModel.create({
+    laporan: sanksi.laporan._id,
+    user: user._id,
+    action: 'ADD REKOMENDASI',
+    pt_id: sanksi.laporan.pt.id,
+    keterangan: 'Melakukan rekomendasi delegasi',
+    dokumen: dokumen_id,
+    for_pt: false,
+    for_public,
+  })
+
+  return response.success(res, {
+    message: 'Berhasil tambah rekomendasi delegasi',
+    data,
+  })
+})

+ 13 - 0
model/sanksi.model.js

@@ -120,6 +120,19 @@ module.exports = mongoose.model(
           { timestamps: true }
         ),
       ],
+      rekomendasi: [
+        new Schema(
+          {
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+      ],
     },
     { timestamps: true }
   ),

+ 13 - 0
model/sanksi2.model.js

@@ -118,6 +118,19 @@ module.exports = mongoose.model(
           { timestamps: true }
         ),
       ],
+      rekomendasi: [
+        new Schema(
+          {
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+      ],
     },
     { timestamps: true }
   ),

+ 1 - 0
routes/v1/index.js

@@ -23,5 +23,6 @@ router.use('/graph', require('./graph.routes'))
 router.use('/log', require('./log.routes'))
 router.use('/auto', verify, require('./auto.routes'))
 router.use('/pengunjung', require('./pengunjung.routes'))
+router.use('/rekomendasi', auth, require('./rekomendasi.routes'))
 
 module.exports = router

+ 13 - 0
routes/v1/rekomendasi.routes.js

@@ -0,0 +1,13 @@
+const router = require('express').Router()
+const rekomendasi = require('../../controller/rekomendasi.controller')
+const handleDokumen = require('../../utils/handleDokumen')
+const roleId = require('../../middleware/role')
+
+router.post(
+  '/add/:id',
+  roleId([2020, 2021, 2023]),
+  handleDokumen.array('dokumen'),
+  rekomendasi.createRekomendasi
+)
+
+module.exports = router

+ 3 - 4
utils/cekData.js

@@ -122,8 +122,7 @@ exports.cekSatuDataSanksi = async (
       else if (where.delegasi) {
         w.role_data = 'lldikti'
         w.role_asal = 'dikti'
-      }
-      else if (!where.banding) w.role_data = 'dikti'
+      } else if (!where.banding) w.role_data = 'dikti'
       break
     case 2021:
       w.role_data = 'lldikti'
@@ -149,6 +148,7 @@ exports.cekSatuDataSanksi = async (
     .populate('jawaban.banding.dokumen')
     .populate('pengajuan.cabut_sanksi.dokumen')
     .populate('jawaban.cabut_sanksi.dokumen')
+    .populate('rekomendasi.dokumen')
     .populate('perbaikan.dokumen')
   if (!sanksi?.laporan) {
     response.error(res, {
@@ -169,8 +169,7 @@ exports.cekBanyakDataSanksi = async (user, where = {}, q = {}) => {
       else if (where.delegasi) {
         w.role_data = 'lldikti'
         w.role_asal = 'dikti'
-      }
-      else if (!where.banding) w.role_data = 'dikti'
+      } else if (!where.banding) w.role_data = 'dikti'
       break
     case 2021:
       w['role_data'] = 'lldikti'