|
|
@@ -20,6 +20,7 @@ exports.laporan = handleError(async (req, res) => {
|
|
|
laporanTahun,
|
|
|
bulan,
|
|
|
tahun,
|
|
|
+ listJadwal,
|
|
|
} = req.query
|
|
|
if (jumlahLaporan == 'true') {
|
|
|
const delegasi = await cekBanyakDataLaporan(user, { delegasi: true })
|
|
|
@@ -115,8 +116,7 @@ exports.laporan = handleError(async (req, res) => {
|
|
|
)
|
|
|
} else if (laporanTahun == 'true') {
|
|
|
const temp = new Date()
|
|
|
- let date = {}
|
|
|
- date = {
|
|
|
+ let date = {
|
|
|
$expr: {
|
|
|
$eq: [{ $year: '$createdAt' }, parseInt(tahun) || temp.getFullYear()],
|
|
|
},
|
|
|
@@ -141,6 +141,49 @@ exports.laporan = handleError(async (req, res) => {
|
|
|
)
|
|
|
}
|
|
|
|
|
|
+ if (listJadwal == 'true') {
|
|
|
+ if ((tahun && bulan) || bulan) {
|
|
|
+ const temp = new Date()
|
|
|
+ let date = {
|
|
|
+ $expr: {
|
|
|
+ $and: [
|
|
|
+ { $eq: [{ $month: '$jadwal.dari_tanggal' }, parseInt(bulan)] },
|
|
|
+ {
|
|
|
+ $eq: [
|
|
|
+ { $year: '$jadwal.dari_tanggal' },
|
|
|
+ parseInt(tahun) || temp.getFullYear(),
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ }
|
|
|
+
|
|
|
+ data.list_jadwal = await dataLaporanAggregate(
|
|
|
+ user,
|
|
|
+ {
|
|
|
+ ...date,
|
|
|
+ jadwal: {
|
|
|
+ $ne: null,
|
|
|
+ $exists: true,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ _id: {
|
|
|
+ bulan: {
|
|
|
+ $month: '$jadwal.dari_tanggal',
|
|
|
+ },
|
|
|
+ tahun: {
|
|
|
+ $year: '$jadwal.dari_tanggal',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ jadwal: {
|
|
|
+ $push: '$jadwal',
|
|
|
+ },
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return response.success(res, {
|
|
|
message: 'Berhasil menganalisis data',
|
|
|
data,
|