|  | @@ -5,11 +5,11 @@ const sanksiModel = require('../model/sanksi.model')
 | 
	
		
			
				|  |  |  const laporanModel = require('../model/laporan.model')
 | 
	
		
			
				|  |  |  const backupModel = require('../model/backup.model')
 | 
	
		
			
				|  |  |  const fs = require('fs')
 | 
	
		
			
				|  |  | -const mime = require('mime')
 | 
	
		
			
				|  |  |  const {
 | 
	
		
			
				|  |  |    TEMPLATE_KEBERATAN,
 | 
	
		
			
				|  |  |    TEMPLATE_BANDING,
 | 
	
		
			
				|  |  |    TEMPLATE_REMINDER,
 | 
	
		
			
				|  |  | +  TEMPLATE_REMINDER2,
 | 
	
		
			
				|  |  |  } = require('../utils/constanta')
 | 
	
		
			
				|  |  |  const moment = require('moment')
 | 
	
		
			
				|  |  |  const autoSaveModel = require('../model/autoSave.model')
 | 
	
	
		
			
				|  | @@ -21,7 +21,7 @@ exports.keberatan = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |    const dataSanksi = await sanksiModel
 | 
	
		
			
				|  |  |      .find({
 | 
	
		
			
				|  |  |        'tanggal_akhir_keberatan': {
 | 
	
		
			
				|  |  | -        $lt: new Date().toISOString(),
 | 
	
		
			
				|  |  | +        $lt: moment().add(-1, 'day').toISOString(),
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  |        'is_pengajuan_keberatan': {
 | 
	
		
			
				|  |  |          $exists: false,
 | 
	
	
		
			
				|  | @@ -43,27 +43,11 @@ exports.keberatan = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    Promise.all(
 | 
	
		
			
				|  |  |      dataSanksi.map(
 | 
	
		
			
				|  |  | -      async (sanksi) => await sanksiModel.findByIdAndUpdate(sanksi._id, {
 | 
	
		
			
				|  |  | -        is_pengajuan_keberatan: false,
 | 
	
		
			
				|  |  | -        last_step: "Dokumen Perbaikan"
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -      //       await notifWA(TEMPLATE_KEBERATAN, [
 | 
	
		
			
				|  |  | -      //         {
 | 
	
		
			
				|  |  | -      //           key: '1',
 | 
	
		
			
				|  |  | -      //           value: 'nama_pt',
 | 
	
		
			
				|  |  | -      //           value_text: sanksi.laporan.pt.nama,
 | 
	
		
			
				|  |  | -      //         },
 | 
	
		
			
				|  |  | -      //         {
 | 
	
		
			
				|  |  | -      //           key: '2',
 | 
	
		
			
				|  |  | -      //           value: 'pemberi_sanksi',
 | 
	
		
			
				|  |  | -      //           value_text: sanksi.user.lembaga.nama,
 | 
	
		
			
				|  |  | -      //         },
 | 
	
		
			
				|  |  | -      //         {
 | 
	
		
			
				|  |  | -      //           key: '3',
 | 
	
		
			
				|  |  | -      //           value: 'no_laporan',
 | 
	
		
			
				|  |  | -      //           value_text: sanksi.laporan.no_laporan,
 | 
	
		
			
				|  |  | -      //         },
 | 
	
		
			
				|  |  | -      // ])
 | 
	
		
			
				|  |  | +      async (sanksi) =>
 | 
	
		
			
				|  |  | +        await sanksiModel.findByIdAndUpdate(sanksi._id, {
 | 
	
		
			
				|  |  | +          is_pengajuan_keberatan: false,
 | 
	
		
			
				|  |  | +          last_step: "Dokumen Perbaikan"
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  |      )
 | 
	
		
			
				|  |  |    )
 | 
	
		
			
				|  |  |    return response.success(res, {
 | 
	
	
		
			
				|  | @@ -75,7 +59,7 @@ exports.banding = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |    const dataSanksi = await sanksiModel
 | 
	
		
			
				|  |  |      .find({
 | 
	
		
			
				|  |  |        'tanggal_akhir_banding': {
 | 
	
		
			
				|  |  | -        $lt: new Date().toISOString(),
 | 
	
		
			
				|  |  | +        $lt: moment().add(-1, 'day').toISOString(),
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  |        'is_pengajuan_banding': {
 | 
	
		
			
				|  |  |          $exists: false,
 | 
	
	
		
			
				|  | @@ -423,4 +407,40 @@ exports.getBackup = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |      message: 'berhasil mengambil data backup',
 | 
	
		
			
				|  |  |      data: data.dokumen
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  | +})
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +exports.berakhirSanksi = handleError(async (req, res) => {
 | 
	
		
			
				|  |  | +  const sanksi = await sanksiModel.find().populate('laporan')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  await Promise.all(sanksi.map(async e => {
 | 
	
		
			
				|  |  | +    const dayLeft = e.masa_berlaku.to_date && moment(e.masa_berlaku.from_date).add(6, 'month').diff(
 | 
	
		
			
				|  |  | +      new Date(),
 | 
	
		
			
				|  |  | +      'days')
 | 
	
		
			
				|  |  | +    if (dayLeft < 7 &&
 | 
	
		
			
				|  |  | +      dayLeft > 0 &&
 | 
	
		
			
				|  |  | +      e.masa_berlaku &&
 | 
	
		
			
				|  |  | +      moment(e.masa_berlaku).add(-7, 'day') < moment()
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +      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.`,
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      ])
 | 
	
		
			
				|  |  | +  }))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  return response.success(res, {
 | 
	
		
			
				|  |  | +    message: 'Notifikasi berhasil terkirim',
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  |  })
 |