|  | @@ -8,6 +8,8 @@ const {
 | 
	
		
			
				|  |  |    TEMPLATE_REMINDER,
 | 
	
		
			
				|  |  |  } = require('../utils/constanta')
 | 
	
		
			
				|  |  |  const moment = require('moment')
 | 
	
		
			
				|  |  | +const autoSaveModel = require('../model/autoSave.model')
 | 
	
		
			
				|  |  | +const { cekSatuDataSanksi, cekSatuDataLaporan } = require('../utils/cekData')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  exports.keberatan = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |    const dataSanksi = await sanksiModel
 | 
	
	
		
			
				|  | @@ -126,7 +128,7 @@ exports.reminderKeberatan = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |        if (
 | 
	
		
			
				|  |  |          e.batas_waktu.jawaban_keberatan &&
 | 
	
		
			
				|  |  |          new Date() >
 | 
	
		
			
				|  |  | -          moment(e.batas_waktu.jawaban_keberatan).add(-7, 'days').toDate() &&
 | 
	
		
			
				|  |  | +        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(
 | 
	
	
		
			
				|  | @@ -193,7 +195,7 @@ exports.reminderBanding = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |        if (
 | 
	
		
			
				|  |  |          e.batas_waktu.jawaban_banding &&
 | 
	
		
			
				|  |  |          new Date() >
 | 
	
		
			
				|  |  | -          moment(e.batas_waktu.jawaban_banding).add(-7, 'days').toDate() &&
 | 
	
		
			
				|  |  | +        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(
 | 
	
	
		
			
				|  | @@ -261,3 +263,72 @@ exports.updateStatusSanksi = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |      message: 'update status sanksi berhasil',
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +exports.save = handleError(async (req, res) => {
 | 
	
		
			
				|  |  | +  const { id } = req.params
 | 
	
		
			
				|  |  | +  const { laporan: isLaporan, sanksi: isSanksi } = req.query
 | 
	
		
			
				|  |  | +  const user = req.user
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  let autoData = null;
 | 
	
		
			
				|  |  | +  let laporan = null;
 | 
	
		
			
				|  |  | +  let sanksi = null;
 | 
	
		
			
				|  |  | +  if (isLaporan === 'true') {
 | 
	
		
			
				|  |  | +    laporan = await cekSatuDataLaporan(res, user, id, { all: true });
 | 
	
		
			
				|  |  | +    if (!laporan) return
 | 
	
		
			
				|  |  | +    autoData = await autoSaveModel.findOne({ laporan_id: laporan._id });
 | 
	
		
			
				|  |  | +  } else if (isSanksi === 'true') {
 | 
	
		
			
				|  |  | +    sanksi = await cekSatuDataSanksi(res, user, id, { all: true });
 | 
	
		
			
				|  |  | +    if (!sanksi) return
 | 
	
		
			
				|  |  | +    autoData = await autoSaveModel.findOne({ sanksi_id: sanksi._id });
 | 
	
		
			
				|  |  | +  } else {
 | 
	
		
			
				|  |  | +    return response.error(res, {
 | 
	
		
			
				|  |  | +      message: 'query harus sanksi atau laporan yg bernilai true',
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  if (autoData) {
 | 
	
		
			
				|  |  | +    if (isLaporan) {
 | 
	
		
			
				|  |  | +      await autoSaveModel.updateOne({ laporan_id: laporan._id }, { laporan: req.body })
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      await autoSaveModel.updateOne({ sanksi_id: sanksi._id }, { sanksi: req.body })
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  } else {
 | 
	
		
			
				|  |  | +    if (isLaporan) {
 | 
	
		
			
				|  |  | +      await autoSaveModel.create({ laporan_id: laporan._id, laporan: req.body })
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      await autoSaveModel.create({ sanksi_id: sanksi._id, sanksi: req.body })
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  return response.success(res, {
 | 
	
		
			
				|  |  | +    message: 'Berhasil menyimpan data auto save',
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +})
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +exports.getSave = handleError(async (req, res) => {
 | 
	
		
			
				|  |  | +  const { id } = req.params
 | 
	
		
			
				|  |  | +  const { laporan: isLaporan, sanksi: isSanksi } = req.query
 | 
	
		
			
				|  |  | +  const user = req.user
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  let data = null;
 | 
	
		
			
				|  |  | +  let laporan = null;
 | 
	
		
			
				|  |  | +  let sanksi = null;
 | 
	
		
			
				|  |  | +  if (isLaporan === 'true') {
 | 
	
		
			
				|  |  | +    laporan = await cekSatuDataLaporan(res, user, id, { all: true });
 | 
	
		
			
				|  |  | +    if (!laporan) return
 | 
	
		
			
				|  |  | +    data = (await autoSaveModel.findOne({ laporan_id: laporan._id})).laporan;
 | 
	
		
			
				|  |  | +  } else if (isSanksi === 'true') {
 | 
	
		
			
				|  |  | +    sanksi = await cekSatuDataSanksi(res, user, id, { all: true });
 | 
	
		
			
				|  |  | +    if (!sanksi) return
 | 
	
		
			
				|  |  | +    data = (await autoSaveModel.findOne({ sanksi_id: sanksi._id})).sanksi;
 | 
	
		
			
				|  |  | +  } else {
 | 
	
		
			
				|  |  | +    return response.error(res, {
 | 
	
		
			
				|  |  | +      message: 'harus terdapat query sanksi atau laporan yg bernilai true',
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  return response.success(res, {
 | 
	
		
			
				|  |  | +    message: 'Berhasil mengambil data auto save',
 | 
	
		
			
				|  |  | +    data: data
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +})
 |