yazid138 3 жил өмнө
parent
commit
c5eba787f9

+ 19 - 0
controller/graph.controller.js

@@ -4,6 +4,7 @@ const response = require('../utils/responseHandler')
 const {
   cekBanyakDataLaporan,
   dataLaporanAggregate,
+  cekBanyakDataSanksi,
 } = require('../utils/cekData')
 const laporanModel = require('../model/laporan.model')
 const moment = require('moment')
@@ -373,3 +374,21 @@ exports.excel = handleError(async (req, res) => {
   )
   return res.end(Buffer.from(buffer))
 })
+
+exports.laporanSelesai = handleError(async (req, res) => {
+  const user = req.user
+
+  laporan = await cekBanyakDataLaporan(user, { aktif: false })
+  sanksi = await cekBanyakDataSanksi(user, { aktif: false })
+  const data = {
+    laporan,
+    sanksi,
+    jumlah_selesai: sanksi.length,
+    jumlah_ditutup: laporan.length,
+  }
+
+  return response.success(res, {
+    message: 'Berhasil menganalisis data',
+    data,
+  })
+})

+ 5 - 5
controller/laporan.controller.js

@@ -363,11 +363,11 @@ exports.update = handleError(async (req, res) => {
     }`
     alasan = keterangan2
     data.alasan_delegasi = keterangan2
-    if (laporan.jadwal) {
-      await laporanModel.findByIdAndUpdate(laporan._id, {
-        $unset: { jadwal: 1 },
-      })
-    }
+    // if (laporan.jadwal) {
+    //   await laporanModel.findByIdAndUpdate(laporan._id, {
+    //     $unset: { jadwal: 1 },
+    //   })
+    // }
   }
   if (aktif) {
     data.aktif = aktif === 'true'

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

@@ -42,6 +42,7 @@ exports.add = handleError(async (req, res) => {
     {
       $push: {
         evaluasi: {
+          dari: user._id,
           judul,
           tanggal,
           dokumen: dokumen_id,

+ 11 - 0
controller/pelanggaran.controller.js

@@ -27,3 +27,14 @@ exports.public = handleError(async (req, res) => {
     data,
   })
 })
+
+exports.sanksi = handleError(async (req, res) => {
+  const user = req.user
+  const w = {} 
+  if(user.role.id === 2021) {w.level_sanksi = 1} else {w.level_sanksi = {$nin: [0, 1] }}
+  const data = await pelanggaranModel.find(w).distinct('sanksi')
+  return response.success(res, {
+    message: 'Berhasil ambil data Pelanggaran',
+    data,
+  })
+})

+ 1 - 1
controller/sanksi/cabutSanksi.controller.js

@@ -84,7 +84,7 @@ exports.createJawaban = handleError(async (req, res) => {
       ['pengajuan.cabut_sanksi']: { $exists: true, $ne: null },
     },
     {
-      aktif: false,
+      aktif: status === 'Diterima' ? false : true,
       ['jawaban.cabut_sanksi']: {
         status,
         keterangan,

+ 1 - 0
model/laporan.model.js

@@ -42,6 +42,7 @@ module.exports = mongoose.model(
       evaluasi: [
         new Schema(
           {
+            dari: { type: Types.ObjectId, ref: user },
             judul: String,
             tanggal: Date,
             dokumen: [

+ 6 - 0
routes/v1/graph.routes.js

@@ -4,6 +4,12 @@ const auth = require('../../middleware/verifyToken')
 const roleId = require('../../middleware/role')
 
 router.get('/', auth, roleId([2020, 2021, 2023]), graph.laporan)
+router.get(
+  '/laporanSelesai',
+  auth,
+  roleId([2020, 2021, 2023]),
+  graph.laporanSelesai
+)
 router.get('/:token/:nama_file', auth, roleId([2020, 2021, 2023]), graph.excel)
 
 module.exports = router

+ 2 - 0
routes/v1/pelanggaran.routes.js

@@ -1,7 +1,9 @@
 const router = require('express').Router()
 const pelanggaran = require('../../controller/pelanggaran.controller')
 const roleId = require('../../middleware/role')
+const auth = require('../../middleware/verifyToken')
 
 router.get('/', roleId([2020, 2021, 2023]), pelanggaran.getAll)
+router.get('/sanksi', auth,roleId([2020, 2021, 2023]), pelanggaran.sanksi)
 
 module.exports = router

+ 3 - 2
utils/cekData.js

@@ -37,7 +37,8 @@ exports.cekSatuDataLaporan = async (
     .populate({ path: 'user', populate: 'foto' })
     .populate({ path: 'pelanggaran', select: 'pelanggaran' })
     .populate('dokumen')
-    .populate('evaluasi.dokumen')
+    .populate({path: 'evaluasi', populate: ['user', 'dokumen']})
+    // .populate('evaluasi.user')
   if (!laporan) {
     response.error(res, {
       message: 'laporan_id tidak ada',
@@ -150,7 +151,7 @@ exports.cekBanyakDataSanksi = async (user, where = { banding: false }) => {
     .find({ aktif: where.aktif || true, ...where })
     .populate({
       path: 'laporan',
-      select: 'pt',
+      select: 'pt no_laporan',
       match: w,
     })
     .populate('user')