| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- const auth = require('../../middleware/verifyToken')
 
- const checkData = require('../../middleware/checkData')
 
- const laporanModel = require('../../model/laporan.model')
 
- const response = require('../../utils/responseHandler')
 
- const { validation } = require('../../middleware/validation')
 
- const forRole = require('../../middleware/role')
 
- const { PTB_DIKTI, PTB_LLDIKTI, PENJADWALAN, ADD_JADWAL } = require('../../utils/constanta')
 
- const uploadFile = require('../../middleware/uploadFile')
 
- const pemantauanModel = require('../../model/pemantauan.model')
 
- exports.create = [
 
-   auth,
 
-   forRole([PTB_DIKTI, PTB_LLDIKTI]),
 
-   checkData((req) => req.params.laporan_id, (id) => laporanModel.findById({ _id: id }), 'laporan'),
 
-   uploadFile.array('dokumen'),
 
-   validation((req) => req.body, {
 
-     judul: 'string',
 
-     dari_tanggal: { type: 'date', convert: true },
 
-     sampai_tanggal: { type: 'date', convert: true },
 
-     warna: 'string'
 
-   }),
 
-   async (req, res) => {
 
-     const { judul, dari_tanggal, sampai_tanggal, warna } = req.body
 
-     const { laporan } = req.data
 
-     const user = req.user
 
-     try {
 
-       const data = {
 
-         flag: PENJADWALAN,
 
-         jadwal: {
 
-           judul,
 
-           dari_tanggal,
 
-           sampai_tanggal,
 
-           warna
 
-         }
 
-       }
 
-       if (!laporan.step.includes(PENJADWALAN)) data.$push = { step: PENJADWALAN }
 
-       await laporanModel.findOneAndUpdate({ _id: laporan._id }, data)
 
-       let for_public = true
 
-       if (laporan.evaluasi.length > 0) for_public = false
 
-       await pemantauanModel.create({
 
-         laporan: laporan._id,
 
-         user: user._id,
 
-         action: ADD_JADWAL,
 
-         pt_id: laporan.pt.id,
 
-         keterangan: 'Membuat Jadwal Pemeriksaan',
 
-         jadwal: {
 
-           dari_tanggal,
 
-           sampai_tanggal
 
-         },
 
-         for_public
 
-       })
 
-     } catch (e) {
 
-       return response.error(res, {
 
-         message: e.message,
 
-         code: 500
 
-       })
 
-     }
 
-     return response.success(res, {
 
-       message: 'Berhasil membuat jadwal pemeriksaan',
 
-       code: 201
 
-     })
 
-   }
 
- ]
 
 
  |