Pārlūkot izejas kodu

laporan get by pembina

yazid138 3 gadi atpakaļ
vecāks
revīzija
c4c371f8b9
3 mainītis faili ar 44 papildinājumiem un 8 dzēšanām
  1. 37 1
      controller/laporan.controller.js
  2. 1 0
      routes/v1/laporan/index.js
  3. 6 7
      utils/cekData.js

+ 37 - 1
controller/laporan.controller.js

@@ -8,7 +8,11 @@ const { validate } = require('../utils/validation')
 const { notifWA } = require('../utils/notifFunction')
 const { addManyDokumen } = require('../utils/dokumenFunction')
 const userModel = require('../model/user.model')
-const { cekSatuDataLaporan, cekBanyakDataLaporan } = require('../utils/cekData')
+const {
+  cekSatuDataLaporan,
+  cekBanyakDataLaporan,
+  cekBanyakDataSanksi,
+} = require('../utils/cekData')
 const { TEMPLATE_LAPORAN } = require('../utils/constanta')
 const logModel = require('../model/log.model')
 const kontakModel = require('../model/kontak.model')
@@ -432,3 +436,35 @@ exports.jumlahLaporan = handleError(async (req, res) => {
     data: laporan,
   })
 })
+
+exports.laporanByPembina = handleError(async (req, res) => {
+  const { idPembina } = req.params
+  const user = req.user
+
+  const [laporan, sanksi] = await Promise.all([
+    (async () => {
+      const laporan = await cekBanyakDataLaporan(user, {
+        'pt.pembina.id': idPembina,
+        all: true,
+      })
+      if (!laporan) return
+      return laporan
+    })(),
+    (async () => {
+      const sanksi = await cekBanyakDataSanksi(
+        user,
+        { all: true },
+        {
+          ['pt.pembina.id']: idPembina,
+        }
+      )
+      if (!sanksi) return
+      return sanksi
+    })(),
+  ])
+
+  return response.success(res, {
+    message: 'berhasil get laporan by pembina',
+    data: [...laporan, ...sanksi],
+  })
+})

+ 1 - 0
routes/v1/laporan/index.js

@@ -4,6 +4,7 @@ const handleDokumen = require('../../../utils/handleDokumen')
 
 router.get('/', laporan.getAll)
 router.get('/jumlah', laporan.jumlahLaporan)
+router.get('/byPembina/:idPembina', laporan.laporanByPembina)
 router.get('/:id', laporan.getOne)
 router.post('/create', handleDokumen.array('dokumen'), laporan.create)
 router.put('/update/:id', laporan.update)

+ 6 - 7
utils/cekData.js

@@ -113,8 +113,8 @@ exports.cekSatuDataSanksi = async (
   const w = { aktif: where.aktif || true }
   switch (user.role.id) {
     case 2020:
-      if (!where.banding) w.role_data = 'dikti'
-
+      if (where.all) w.role_asal = 'dikti'
+      else if (!where.banding) w.role_data = 'dikti'
       break
     case 2021:
       w.role_data = 'lldikti'
@@ -151,13 +151,12 @@ exports.cekSatuDataSanksi = async (
   return sanksi
 }
 
-exports.cekBanyakDataSanksi = async (user, where = { banding: false }) => {
-  const w = {}
+exports.cekBanyakDataSanksi = async (user, where = {}, q = {}) => {
+  const w = { ...q }
   switch (user.role.id) {
     case 2020:
-      if (!where.banding) {
-        w.role_data = 'dikti'
-      }
+      if (where.all) w.role_asal = 'dikti'
+      else if (!where.banding) w.role_data = 'dikti'
       break
     case 2021:
       w['role_data'] = 'lldikti'