yazid138 преди 2 години
родител
ревизия
bdffef1280
променени са 6 файла, в които са добавени 46 реда и са изтрити 3 реда
  1. 4 0
      controller/pelanggaran.controller.js
  2. 10 1
      controller/sanksi.controller.js
  3. 1 0
      controller/sanksi/perbaikan.controller.js
  4. 14 0
      model/sanksi.model.js
  5. 14 0
      model/sanksi2.model.js
  6. 3 2
      utils/cekData.js

+ 4 - 0
controller/pelanggaran.controller.js

@@ -29,12 +29,16 @@ exports.public = handleError(async (req, res) => {
 })
 
 exports.sanksi = handleError(async (req, res) => {
+  const { down } = req.query
   const user = req.user
   const w = {}
   if (user.role.id === 2021) {
     w.level_sanksi = 1
   } else {
     w.level_sanksi = { $nin: [0, 1] }
+    if (down === 'true') {
+      w.level_sanksi = 1
+    }
   }
   let data = await pelanggaranModel.find(w)
   data = [

+ 10 - 1
controller/sanksi.controller.js

@@ -173,8 +173,11 @@ exports.getAll = handleError(async (req, res) => {
     perbaikan,
     aktif,
     delegasi,
+    naikSanksi,
+    turunSanksi,
   } = req.query
   const where = {}
+  const q = {}
   if (aktif && aktif === 'false') {
     where.aktif = false
   }
@@ -206,7 +209,13 @@ exports.getAll = handleError(async (req, res) => {
   if (delegasi === 'true') {
     where.delegasi = true
   }
-  const data = await cekBanyakDataSanksi(user, where)
+  if (naikSanksi === 'true') {
+    q.level_sanksi = { $in: [1, 2] }
+  }
+  if (turunSanksi === 'true') {
+    q.level_sanksi = { $in: [2, 3] }
+  }
+  const data = await cekBanyakDataSanksi(user, where, q)
   return response.success(res, {
     message: 'Berhasil ambil data Sanksi',
     data,

+ 1 - 0
controller/sanksi/perbaikan.controller.js

@@ -36,6 +36,7 @@ exports.add = handleError(async (req, res) => {
     {
       laporan: sanksi.laporan._id,
       _id: sanksi._id,
+      aktif: true,
       ['pengajuan.banding']: { $exists: true, $ne: null },
       // ['pengajuan.cabut_sanksi']: {
       //   $exists: false,

+ 14 - 0
model/sanksi.model.js

@@ -137,6 +137,20 @@ module.exports = mongoose.model(
               from_date: Date,
               to_date: Date,
             }),
+            perbaikan: [
+              new Schema(
+                {
+                  keterangan: String,
+                  dokumen: [
+                    {
+                      type: Types.ObjectId,
+                      ref: dokumen,
+                    },
+                  ],
+                },
+                { timestamps: true }
+              ),
+            ],
           },
           { timestamps: true }
         ),

+ 14 - 0
model/sanksi2.model.js

@@ -134,6 +134,20 @@ module.exports = mongoose.model(
               from_date: Date,
               to_date: Date,
             }),
+            perbaikan: [
+              new Schema(
+                {
+                  keterangan: String,
+                  dokumen: [
+                    {
+                      type: Types.ObjectId,
+                      ref: dokumen,
+                    },
+                  ],
+                },
+                { timestamps: true }
+              ),
+            ],
           },
           { timestamps: true }
         ),

+ 3 - 2
utils/cekData.js

@@ -152,6 +152,7 @@ exports.cekSatuDataSanksi = async (
     .populate('rekomendasi.dokumen')
     .populate('perbaikan.dokumen')
     .populate('riwayat_sanksi.dokumen')
+    .populate('riwayat_sanksi.perbaikan.dokumen')
   if (!sanksi?.laporan) {
     response.error(res, {
       message: 'sanksi_id tidak ada',
@@ -190,13 +191,13 @@ exports.cekBanyakDataSanksi = async (user, where = {}, q = {}) => {
       populate: ['pelanggaran'],
     })
     .populate('user')
-    .populate('pelanggaran')
+    .populate({ path: 'pelanggaran', match: w })
     .populate('riwayat_sanksi.dokumen')
     .select('-dokumen')
     .sort({
       createdAt: -1,
     })
-  data = data.filter((e) => e.laporan !== null)
+  data = data.filter((e) => e.laporan !== null && e.pelanggaran.length)
   return data
 }