yazid138 преди 3 години
родител
ревизия
5bd1a31e5b
променени са 3 файла, в които са добавени 129 реда и са изтрити 1 реда
  1. 3 1
      model/laporan.model.js
  2. 125 0
      model/sanksi2.model.js
  3. 1 0
      utils/cekData.js

+ 3 - 1
model/laporan.model.js

@@ -3,6 +3,8 @@ const { Schema, Types } = mongoose
 const user = require('./user.model')
 const dokumen = require('./dokumen.model')
 const pelanggaran = require('./pelanggaran.model')
+const sanksi = require('./sanksi2.model')
+
 
 module.exports = mongoose.model(
   'Laporan',
@@ -10,7 +12,7 @@ module.exports = mongoose.model(
     {
       no_laporan: { type: String, unique: true },
       user: { type: Types.ObjectId, ref: user },
-      sanksi: { type: Types.ObjectId },
+      sanksi: { type: Types.ObjectId, ref: sanksi },
       pt: Object,
       keterangan: String,
       pelanggaran: [{ type: Types.ObjectId, ref: pelanggaran }],

+ 125 - 0
model/sanksi2.model.js

@@ -0,0 +1,125 @@
+const mongoose = require('mongoose')
+const { Schema, Types } = mongoose
+const dokumen = require('./dokumen.model')
+const user = require('./user.model')
+const pelanggaran = require('./pelanggaran.model')
+
+module.exports = mongoose.model(
+  'Sanksi2',
+  new Schema(
+    {
+      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,
+      }),
+      batas_waktu: {
+        keberatan: Date,
+        jawaban_keberatan: Date,
+        banding: Date,
+        jawaban_banding: Date,
+      },
+      jawaban: {
+        keberatan: new Schema(
+          {
+            status: String,
+            keterangan: String,
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+        banding: new Schema(
+          {
+            status: String,
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+        cabut_sanksi: new Schema(
+          {
+            status: String,
+            keterangan: String,
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+      },
+      pengajuan: {
+        keberatan: new Schema(
+          {
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+        banding: new Schema(
+          {
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+        cabut_sanksi: new Schema(
+          {
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+      },
+      perbaikan: [
+        new Schema(
+          {
+            keterangan: String,
+            dokumen: [
+              {
+                type: Types.ObjectId,
+                ref: dokumen,
+              },
+            ],
+          },
+          { timestamps: true }
+        ),
+      ],
+    },
+    { timestamps: true }
+  ),
+  'sanksi'
+)

+ 1 - 0
utils/cekData.js

@@ -98,6 +98,7 @@ exports.cekBanyakDataLaporan = async (user, where = { delegasi: false }) => {
   const data = await laporanModel
     .find(w)
     .populate('user')
+    .populate({ path: 'sanksi', populate: ['pelanggaran'] })
     .select(w.select || ' -pelanggaran -aktif -dokumen')
     .limit(w.limit)
     .sort({