|  | @@ -2,23 +2,17 @@ const handleError = require('../../utils/handleError')
 | 
	
		
			
				|  |  |  const sanksiModel = require('../../model/sanksi.model')
 | 
	
		
			
				|  |  |  const { addManyDokumen } = require('../../utils/dokumenFunction')
 | 
	
		
			
				|  |  |  const { validate } = require('../../utils/validation')
 | 
	
		
			
				|  |  | -const { cekSatuDataSanksi, cekSatuDataLaporan } = require('../../utils/cekData')
 | 
	
		
			
				|  |  | +const { cekSatuDataSanksi } = require('../../utils/cekData')
 | 
	
		
			
				|  |  |  const response = require('../../utils/responseHandler')
 | 
	
		
			
				|  |  | -const hariKerja = require('../../utils/hariKerja')
 | 
	
		
			
				|  |  | +const { hariKerja } = require('../../utils/hariKerja')
 | 
	
		
			
				|  |  |  const pemantauanModel = require('../../model/pemantauan.model')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  exports.create = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |    const user = req.user
 | 
	
		
			
				|  |  | -  const { laporan_id, sanksi_id } = req.query
 | 
	
		
			
				|  |  | -  if (!laporan_id || !sanksi_id) {
 | 
	
		
			
				|  |  | -    return response.error(res, {
 | 
	
		
			
				|  |  | -      message: 'query laporan_id atau sanksi_id harus ada',
 | 
	
		
			
				|  |  | -    })
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +  const { sanksi_id } = req.params
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  const laporan = await cekSatuDataLaporan(res, user, laporan_id)
 | 
	
		
			
				|  |  |    const sanksi = await cekSatuDataSanksi(res, user, sanksi_id)
 | 
	
		
			
				|  |  | -  if (!laporan || !sanksi) return
 | 
	
		
			
				|  |  | +  if (!sanksi) return
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const files = req.files
 | 
	
		
			
				|  |  |    if (!files?.length) {
 | 
	
	
		
			
				|  | @@ -31,7 +25,7 @@ exports.create = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const data = await sanksiModel.findOneAndUpdate(
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -      laporan: laporan._id,
 | 
	
		
			
				|  |  | +      laporan: sanksi.laporan._id,
 | 
	
		
			
				|  |  |        _id: sanksi._id,
 | 
	
		
			
				|  |  |        ['pengajuan.banding']: { $exists: false, $eq: null },
 | 
	
		
			
				|  |  |        ['jawaban.keberatan']: { $exists: true, $ne: null },
 | 
	
	
		
			
				|  | @@ -49,9 +43,9 @@ exports.create = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    await pemantauanModel.create({
 | 
	
		
			
				|  |  | -    laporan: laporan._id,
 | 
	
		
			
				|  |  | +    laporan: sanksi.laporan._id,
 | 
	
		
			
				|  |  |      sanksi: sanksi._id,
 | 
	
		
			
				|  |  | -    pt_id: laporan.pt.id,
 | 
	
		
			
				|  |  | +    pt_id: sanksi.laporan.pt.id,
 | 
	
		
			
				|  |  |      user: user._id,
 | 
	
		
			
				|  |  |      keterangan: 'Mengajukan Banding',
 | 
	
		
			
				|  |  |      dokumen: dokumen_id,
 | 
	
	
		
			
				|  | @@ -64,42 +58,35 @@ exports.create = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  exports.createJawaban = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |    const user = req.user
 | 
	
		
			
				|  |  | -  const { laporan_id, sanksi_id } = req.query
 | 
	
		
			
				|  |  | -  if (!laporan_id || !sanksi_id) {
 | 
	
		
			
				|  |  | -    return response.error(res, {
 | 
	
		
			
				|  |  | -      message: 'query laporan_id atau sanksi_id harus ada',
 | 
	
		
			
				|  |  | -    })
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +  const { sanksi_id } = req.params
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  const laporan = await cekSatuDataLaporan(res, user, laporan_id)
 | 
	
		
			
				|  |  | -  const sanksi = await cekSatuDataSanksi(res, user, sanksi_id)
 | 
	
		
			
				|  |  | -  if (!laporan || !sanksi) return
 | 
	
		
			
				|  |  | +  const sanksi = await cekSatuDataSanksi(res, user, sanksi_id, {
 | 
	
		
			
				|  |  | +    banding: true,
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  if (!sanksi) return
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const isValid = validate(res, req.body, {
 | 
	
		
			
				|  |  |      status: 'string',
 | 
	
		
			
				|  |  | -    keterangan: 'string',
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  |    if (!isValid) return
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const files = req.files
 | 
	
		
			
				|  |  | -  if (!files?.length) {
 | 
	
		
			
				|  |  | -    return response.error(res, {
 | 
	
		
			
				|  |  | -      message: 'dokumen harus ada',
 | 
	
		
			
				|  |  | -    })
 | 
	
		
			
				|  |  | +  let dokumen_id = []
 | 
	
		
			
				|  |  | +  if (files?.length) {
 | 
	
		
			
				|  |  | +    const dokumen = await addManyDokumen(files)
 | 
	
		
			
				|  |  | +    dokumen_id = dokumen.map((e) => e._id)
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  const dokumen = await addManyDokumen(files)
 | 
	
		
			
				|  |  | -  const dokumen_id = dokumen.map((e) => e._id)
 | 
	
		
			
				|  |  | -  const { status, keterangan } = req.body
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  const { status } = req.body
 | 
	
		
			
				|  |  |    const data = await sanksiModel.findOneAndUpdate(
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -      laporan: laporan._id,
 | 
	
		
			
				|  |  | +      laporan: sanksi.laporan._id,
 | 
	
		
			
				|  |  |        _id: sanksi._id,
 | 
	
		
			
				|  |  |        ['pengajuan.banding']: { $exists: true, $ne: null },
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |        ['jawaban.banding']: {
 | 
	
		
			
				|  |  |          status,
 | 
	
		
			
				|  |  | -        keterangan,
 | 
	
		
			
				|  |  |          dokumen: dokumen_id,
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -110,9 +97,9 @@ exports.createJawaban = handleError(async (req, res) => {
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    await pemantauanModel.create({
 | 
	
		
			
				|  |  | -    laporan: laporan._id,
 | 
	
		
			
				|  |  | +    laporan: sanksi.laporan._id,
 | 
	
		
			
				|  |  |      sanksi: sanksi._id,
 | 
	
		
			
				|  |  | -    pt_id: laporan.pt.id,
 | 
	
		
			
				|  |  | +    pt_id: sanksi.laporan.pt.id,
 | 
	
		
			
				|  |  |      user: user._id,
 | 
	
		
			
				|  |  |      keterangan: 'Menjawab Pengajuan Banding',
 | 
	
		
			
				|  |  |      dokumen: dokumen_id,
 |