|  | @@ -0,0 +1,60 @@
 | 
	
		
			
				|  |  | +const handleError = require('../utils/handleError')
 | 
	
		
			
				|  |  | +const response = require('../utils/responseHandler')
 | 
	
		
			
				|  |  | +const { addManyDokumen } = require('../utils/dokumenFunction')
 | 
	
		
			
				|  |  | +const { cekSatuDataSanksi } = require('../utils/cekData')
 | 
	
		
			
				|  |  | +const pemantauanModel = require('../model/pemantauan.model')
 | 
	
		
			
				|  |  | +const sanksiModel = require('../model/sanksi.model')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +exports.createRekomendasi = handleError(async (req, res) => {
 | 
	
		
			
				|  |  | +  const user = req.user
 | 
	
		
			
				|  |  | +  const { id } = req.params
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  const sanksi = await cekSatuDataSanksi(res, user, id, { delegasi: true })
 | 
	
		
			
				|  |  | +  if (!sanksi) return
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  const files = req.files
 | 
	
		
			
				|  |  | +  if (!files.length) {
 | 
	
		
			
				|  |  | +    return response.error(res, {
 | 
	
		
			
				|  |  | +      message: 'dokumen harus ada',
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  const dokumen = await addManyDokumen(files)
 | 
	
		
			
				|  |  | +  const dokumen_id = dokumen.map((e) => e._id)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  const data = await sanksiModel.findOneAndUpdate(
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      _id: sanksi._id,
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      $push: {
 | 
	
		
			
				|  |  | +        rekomendasi: {
 | 
	
		
			
				|  |  | +          dokumen: dokumen_id,
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +      new: true,
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  let for_public = true
 | 
	
		
			
				|  |  | +  if (sanksi.rekomendasi.length > 0) {
 | 
	
		
			
				|  |  | +    for_public = false
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  await pemantauanModel.create({
 | 
	
		
			
				|  |  | +    laporan: sanksi.laporan._id,
 | 
	
		
			
				|  |  | +    user: user._id,
 | 
	
		
			
				|  |  | +    action: 'ADD REKOMENDASI',
 | 
	
		
			
				|  |  | +    pt_id: sanksi.laporan.pt.id,
 | 
	
		
			
				|  |  | +    keterangan: 'Melakukan rekomendasi delegasi',
 | 
	
		
			
				|  |  | +    dokumen: dokumen_id,
 | 
	
		
			
				|  |  | +    for_pt: false,
 | 
	
		
			
				|  |  | +    for_public,
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  return response.success(res, {
 | 
	
		
			
				|  |  | +    message: 'Berhasil tambah rekomendasi delegasi',
 | 
	
		
			
				|  |  | +    data,
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +})
 |