yazid138 2 năm trước cách đây
mục cha
commit
d2288af737
4 tập tin đã thay đổi với 61 bổ sung44 xóa
  1. 18 14
      controller/sanksi.controller.js
  2. 21 14
      model/sanksi.model.js
  3. 20 14
      model/sanksi2.model.js
  4. 2 2
      utils/cekData.js

+ 18 - 14
controller/sanksi.controller.js

@@ -88,16 +88,16 @@ exports.create = handleError(async (req, res) => {
 })
 
 exports.update = handleError(async (req, res) => {
-  const { no_surat, keterangan, from_date, to_date } = req.body
-  let sanksiBody = req.body.sanksi
+  const { no_sanksi, keterangan, from_date, to_date } = req.body
+  let { pelanggaran_id } = req.body
   const { sanksi_id } = req.params
   const files = req.files
   const user = req.user
 
   const isValid = validate(res, req.body, {
-    no_surat: 'string',
+    no_sanksi: 'string',
     keterangan: 'string',
-    sanksi: 'string',
+    pelanggaran_id: 'string',
     from_date: 'string',
     to_date: 'string',
   })
@@ -106,7 +106,10 @@ exports.update = handleError(async (req, res) => {
   const sanksi = await cekSatuDataSanksi(res, user, sanksi_id, { all: true })
   if (!sanksi) return
 
-  sanksiBody = JSON.parse(sanksiBody)
+  pelanggaran_id = await cekBanyakDataPelanggaran(res, pelanggaran_id)
+  if (!pelanggaran_id) return
+
+  // sanksiBody = JSON.parse(sanksiBody)
 
   // const sanksi = await sanksiModel.findOne({ laporan: laporan_id })
   // if (sanksi) {
@@ -126,15 +129,16 @@ exports.update = handleError(async (req, res) => {
   const data = await sanksiModel.updateOne(
     { _id: sanksi._id },
     {
-      perubahan_sanksi: {
-        no_surat,
-        sanksi: sanksiBody,
-        keterangan,
-        dokumen: dokumen_id,
-        masa_berlaku: {
-          from_date,
-          to_date,
-        },
+      no_sanksi,
+      pelanggaran: pelanggaran_id,
+      keterangan,
+      dokumen: dokumen_id,
+      masa_berlaku: {
+        from_date,
+        to_date,
+      },
+      $push: {
+        riwayat_sanksi: sanksi,
       },
     }
   )

+ 21 - 14
model/sanksi.model.js

@@ -117,22 +117,29 @@ module.exports = mongoose.model(
           { timestamps: true }
         ),
       },
-      perubahan_sanksi: {
-        no_surat: String,
-        user: { type: Types.ObjectId, ref: user },
-        sanksi: [{ description: String, level: Number, label: String }],
-        keterangan: String,
-        dokumen: [
+      riwayat_sanksi: [
+        new Schema(
           {
-            type: Types.ObjectId,
-            ref: dokumen,
+            no_sanksi: String,
+            laporan: { type: Types.ObjectId, unique: true, ref: laporan },
+            user: { type: Types.ObjectId, ref: user },
+            pelanggaran: [{ type: Types.ObjectId, ref: pelanggaran }],
+            keterangan: String,
+            aktif: { type: Boolean, default: true },
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+            masa_berlaku: new Schema({
+              from_date: Date,
+              to_date: Date,
+            }),
           },
-        ],
-        masa_berlaku: new Schema({
-          from_date: Date,
-          to_date: Date,
-        }),
-      },
+          { timestamps: true }
+        ),
+      ],
       perbaikan: [
         new Schema(
           {

+ 20 - 14
model/sanksi2.model.js

@@ -115,22 +115,28 @@ module.exports = mongoose.model(
           { timestamps: true }
         ),
       },
-      perubahan_sanksi: {
-        no_surat: String,
-        user: { type: Types.ObjectId, ref: user },
-        sanksi: [{ description: String, level: Number, label: String }],
-        keterangan: String,
-        dokumen: [
+      riwayat_sanksi: [
+        new Schema(
           {
-            type: Types.ObjectId,
-            ref: dokumen,
+            no_sanksi: String,
+            user: { type: Types.ObjectId, ref: user },
+            pelanggaran: [{ type: Types.ObjectId, ref: pelanggaran }],
+            keterangan: String,
+            aktif: { type: Boolean, default: true },
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+            masa_berlaku: new Schema({
+              from_date: Date,
+              to_date: Date,
+            }),
           },
-        ],
-        masa_berlaku: new Schema({
-          from_date: Date,
-          to_date: Date,
-        }),
-      },
+          { timestamps: true }
+        ),
+      ],
       perbaikan: [
         new Schema(
           {

+ 2 - 2
utils/cekData.js

@@ -151,7 +151,7 @@ exports.cekSatuDataSanksi = async (
     .populate('jawaban.cabut_sanksi.dokumen')
     .populate('rekomendasi.dokumen')
     .populate('perbaikan.dokumen')
-    .populate('perubahan_sanksi.dokumen')
+    .populate('riwayat_sanksi.dokumen')
   if (!sanksi?.laporan) {
     response.error(res, {
       message: 'sanksi_id tidak ada',
@@ -191,7 +191,7 @@ exports.cekBanyakDataSanksi = async (user, where = {}, q = {}) => {
     })
     .populate('user')
     .populate('pelanggaran')
-    .populate('perubahan_sanksi.dokumen')
+    .populate('riwayat_sanksi.dokumen')
     .select('-dokumen')
     .sort({
       createdAt: -1,