yazid138 2 rokov pred
rodič
commit
66f44b6677

+ 47 - 46
controller/auto.controller.js

@@ -131,16 +131,11 @@ exports.reminderKeberatan = handleError(async (req, res) => {
     .populate('laporan')
   const notif = await Promise.all(
     dataSanksi.map(async (e) => {
-      if (
-        e.batas_waktu.jawaban_keberatan &&
-        new Date() >
-        moment(e.batas_waktu.jawaban_keberatan).add(-7, 'days').toDate() &&
-        new Date() < e.batas_waktu.jawaban_keberatan
-      ) {
-        const dayLeft = moment(e.batas_waktu.jawaban_keberatan).diff(
-          new Date(),
-          'days'
-        )
+      const dayLeft = moment(e.batas_waktu.jawaban_keberatan).diff(
+        new Date(),
+        'days'
+      )
+      if (dayLeft > 0 && dayLeft < 7) {
         try {
           await notifWA(TEMPLATE_REMINDER, [
             {
@@ -198,16 +193,11 @@ exports.reminderBanding = handleError(async (req, res) => {
     .populate('laporan')
   const notif = await Promise.all(
     dataSanksi.map(async (e) => {
-      if (
-        e.batas_waktu.jawaban_banding &&
-        new Date() >
-        moment(e.batas_waktu.jawaban_banding).add(-7, 'days').toDate() &&
-        new Date() < e.batas_waktu.jawaban_banding
-      ) {
-        const dayLeft = moment(e.batas_waktu.jawaban_banding).diff(
-          new Date(),
-          'days'
-        )
+      const dayLeft = moment(e.batas_waktu.jawaban_banding).diff(
+        new Date(),
+        'days'
+      )
+      if (dayLeft > 0 && dayLeft < 7) {
         try {
           await notifWA(TEMPLATE_REMINDER, [
             {
@@ -410,37 +400,48 @@ exports.getBackup = handleError(async (req, res) => {
 })
 
 exports.berakhirSanksi = handleError(async (req, res) => {
-  const sanksi = await sanksiModel.find().populate('laporan')
+  const sanksi = await sanksiModel.find({'masa_berlaku.to_date': {
+      $ne: null,
+      $exists: true
+    }}).populate('laporan')
+  let count = 0;
 
   await Promise.all(sanksi.map(async e => {
-    const dayLeft = e.masa_berlaku.to_date && moment(e.masa_berlaku.from_date).add(6, 'month').diff(
+    const dayLeft = moment(e.masa_berlaku.to_date).diff(
       new Date(),
-      'days')
-    if (dayLeft < 7 &&
-      dayLeft > 0 &&
-      e.masa_berlaku &&
-      moment(e.masa_berlaku).add(-7, 'day') < moment()
+      'days'
     )
-      await notifWA(TEMPLATE_REMINDER2, [
-        {
-          key: '1',
-          value: 'no_sanksi',
-          value_text: `nomor sanksi ${e.no_sanksi}`,
-        },
-        {
-          key: '2',
-          value: 'nama_pt',
-          value_text: `${e.laporan.pt.nama}`,
-        },
-        {
-          key: '3',
-          value: 'keterangan',
-          value_text: `habis masa berlaku sanksi tersisa ${dayLeft} hari lagi.`,
-        }
-      ])
+    if (dayLeft > 0 && dayLeft < 7) {
+      try {
+        await notifWA(TEMPLATE_REMINDER2, [
+          {
+            key: '1',
+            value: 'no_sanksi',
+            value_text: `nomor sanksi ${e.no_sanksi}`
+          },
+          {
+            key: '2',
+            value: 'nama_pt',
+            value_text: `${e.laporan.pt.nama}`
+          },
+          {
+            key: '3',
+            value: 'keterangan',
+            value_text: `habis masa berlaku sanksi tersisa ${dayLeft} hari lagi.`
+          }
+        ])
+        count++;
+      } catch (error) {
+        return response.error(res, {
+          message: 'Notifikasi gagal terkirim',
+          error: error.message,
+        })
+      }
+    }
   }))
-
+  let message = 'Notifikasi berhasil terkirim'
+  if (count === 0) message = 'tidak ada notifikasi yg dikirim'
   return response.success(res, {
-    message: 'Notifikasi berhasil terkirim',
+    message,
   })
 })

+ 1 - 0
model/sanksi.model.js

@@ -213,6 +213,7 @@ module.exports = mongoose.model(
           { timestamps: true }
         ),
       ],
+      bypass_cabut_sanksi: Boolean,
     },
     { timestamps: true }
   ),

+ 1 - 0
model/sanksi2.model.js

@@ -210,6 +210,7 @@ module.exports = mongoose.model(
           { timestamps: true }
         ),
       ],
+      bypass_cabut_sanksi: Boolean,
     },
     { timestamps: true }
   ),