From 13cf27f43b88a1dce69f91bde9d4b4f6eb7c0208 Mon Sep 17 00:00:00 2001 From: kur0nek-o Date: Tue, 9 Apr 2024 17:19:26 +0700 Subject: [PATCH] fix: report in gangguan and keluhan --- src/report/Gangguan/Rekap/RGangguan_KTI.ts | 14 ----- .../Gangguan/Rekap/RGangguan_PerRegu.ts | 62 ++++++++++++++----- .../Gangguan/Rekap/RGangguan_PerTanggal.ts | 62 ++++++++++++++----- .../Keluhan/Rekap/RKeluhan_PerFungsiBidang.ts | 62 ++++++++++++++----- .../Rekap/RKeluhan_PerKelompokKeluhan.ts | 62 ++++++++++++++----- 5 files changed, 188 insertions(+), 74 deletions(-) diff --git a/src/report/Gangguan/Rekap/RGangguan_KTI.ts b/src/report/Gangguan/Rekap/RGangguan_KTI.ts index 081a963..eb98519 100644 --- a/src/report/Gangguan/Rekap/RGangguan_KTI.ts +++ b/src/report/Gangguan/Rekap/RGangguan_KTI.ts @@ -1,22 +1,8 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' -import { - Document, - AlignmentType, - Packer, - Paragraph, - Table, - TableCell, - TableRow, - VerticalAlign, - TextRun, - WidthType, - PageOrientation -} from 'docx' import { saveAs } from 'file-saver' import { jsPDF } from 'jspdf' import autoTable from 'jspdf-autotable' import { Workbook } from 'exceljs' -import { formatWaktu } from '@/components/Form/FiltersType/reference' import { setHeaderStyle } from '@/report/utils/xlsx' import { formatNumber } from '@/utils/numbers' import { exportDetailToWord, exportToWord } from './doc/RGangguan_KTI_DOC' diff --git a/src/report/Gangguan/Rekap/RGangguan_PerRegu.ts b/src/report/Gangguan/Rekap/RGangguan_PerRegu.ts index f7569b8..85994ac 100644 --- a/src/report/Gangguan/Rekap/RGangguan_PerRegu.ts +++ b/src/report/Gangguan/Rekap/RGangguan_PerRegu.ts @@ -14,23 +14,55 @@ const reportName = 'Rekapitulasi Gangguan Per Regu' const fontSize = 5 const detailFontSize = 3 -const groupingData = (data: any) => { - const groupedData: any = {} +const groupingData = (data: any, reportMeta: any) => { + if (reportMeta.up3.id != 0 || reportMeta.posko.id != 0) { + const groupedData: any = {} - data.forEach((item: any) => { - const { nama_uid } = item + data.forEach((item: any) => { + const { nama_posko } = item - if (!groupedData[nama_uid]) { - groupedData[nama_uid] = [] + if (!groupedData[nama_posko]) { + groupedData[nama_posko] = [] + } + + groupedData[nama_posko].push(item) + }) + + return groupedData + } else { + if (reportMeta.uid.id == 0) { + const groupedData: any = {} + + data.forEach((item: any) => { + const { nama_uid } = item + + if (!groupedData[nama_uid]) { + groupedData[nama_uid] = [] + } + + groupedData[nama_uid].push(item) + }) + + return groupedData + } else { + const groupedData: any = {} + + data.forEach((item: any) => { + const { nama_up3 } = item + + if (!groupedData[nama_up3]) { + groupedData[nama_up3] = [] + } + + groupedData[nama_up3].push(item) + }) + + return groupedData } - - groupedData[nama_uid].push(item) - }) - - return groupedData + } } -const formatData = (rawData: any, groupBy: boolean) => { +const formatData = (rawData: any, groupBy: boolean, reportMeta: any) => { const formattedData: any = [] const grandTotal: any = { total_laporan: 0, @@ -51,7 +83,7 @@ const formatData = (rawData: any, groupBy: boolean) => { } if (groupBy) { - const data = groupingData(rawData) + const data = groupingData(rawData, reportMeta) for (const nama_uid in data) { const total: any = { @@ -301,7 +333,7 @@ const exportToPDF = (reportMeta: any, rawData: any, preview: boolean = false) => const date = new Date().getDate() const month = new Date().toLocaleString('id-ID', { month: 'long' }) const year = new Date().getFullYear() - const data = formatData(rawData, reportMeta.groupBy) + const data = formatData(rawData, reportMeta.groupBy, reportMeta) const meta = formatMetaData(reportMeta) const doc = new jsPDF({ orientation: 'landscape' @@ -759,7 +791,7 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => { const exportToDOCX = (reportMeta: any, rawData: any) => { exportToWord( reportMeta, - formatData(rawData, reportMeta.groupBy), + formatData(rawData, reportMeta.groupBy, reportMeta), `Laporan ${reportName}`, formatMetaData(reportMeta) ) diff --git a/src/report/Gangguan/Rekap/RGangguan_PerTanggal.ts b/src/report/Gangguan/Rekap/RGangguan_PerTanggal.ts index e002e98..e403b8e 100644 --- a/src/report/Gangguan/Rekap/RGangguan_PerTanggal.ts +++ b/src/report/Gangguan/Rekap/RGangguan_PerTanggal.ts @@ -25,23 +25,55 @@ const reportName = 'Rekapitulasi Gangguan Per Tanggal' const fontSize = 5 const detailFontSize = 3 -const groupingData = (data: any) => { - const groupedData: any = {} +const groupingData = (data: any, reportMeta: any) => { + if (reportMeta.up3.id != 0 || reportMeta.posko.id != 0) { + const groupedData: any = {} - data.forEach((item: any) => { - const { nama_uid } = item + data.forEach((item: any) => { + const { nama_posko } = item - if (!groupedData[nama_uid]) { - groupedData[nama_uid] = [] + if (!groupedData[nama_posko]) { + groupedData[nama_posko] = [] + } + + groupedData[nama_posko].push(item) + }) + + return groupedData + } else { + if (reportMeta.uid.id == 0) { + const groupedData: any = {} + + data.forEach((item: any) => { + const { nama_uid } = item + + if (!groupedData[nama_uid]) { + groupedData[nama_uid] = [] + } + + groupedData[nama_uid].push(item) + }) + + return groupedData + } else { + const groupedData: any = {} + + data.forEach((item: any) => { + const { nama_up3 } = item + + if (!groupedData[nama_up3]) { + groupedData[nama_up3] = [] + } + + groupedData[nama_up3].push(item) + }) + + return groupedData } - - groupedData[nama_uid].push(item) - }) - - return groupedData + } } -const formatData = (rawData: any, groupBy: boolean) => { +const formatData = (rawData: any, groupBy: boolean, reportMeta: any) => { const formattedData: any = [] const grandTotal: any = { total_laporan: 0, @@ -62,7 +94,7 @@ const formatData = (rawData: any, groupBy: boolean) => { } if (groupBy) { - const data = groupingData(rawData) + const data = groupingData(rawData, reportMeta) for (const nama_uid in data) { const total: any = { @@ -310,7 +342,7 @@ const exportToPDF = (reportMeta: any, rawData: any, preview: boolean = false) => const date = new Date().getDate() const month = new Date().toLocaleString('id-ID', { month: 'long' }) const year = new Date().getFullYear() - const data = formatData(rawData, reportMeta.groupBy) + const data = formatData(rawData, reportMeta.groupBy, reportMeta) const meta = formatMetaData(reportMeta) const doc = new jsPDF({ orientation: 'landscape' @@ -762,7 +794,7 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => { const exportToDOCX = (reportMeta: any, rawData: any) => { exportToWord( reportMeta, - formatData(rawData, reportMeta.groupBy), + formatData(rawData, reportMeta.groupBy, reportMeta), `Laporan ${reportName}`, formatMetaData(reportMeta) ) diff --git a/src/report/Keluhan/Rekap/RKeluhan_PerFungsiBidang.ts b/src/report/Keluhan/Rekap/RKeluhan_PerFungsiBidang.ts index 337de83..571ece2 100644 --- a/src/report/Keluhan/Rekap/RKeluhan_PerFungsiBidang.ts +++ b/src/report/Keluhan/Rekap/RKeluhan_PerFungsiBidang.ts @@ -25,23 +25,55 @@ const reportName = 'Rekapitulasi Keluhan Per Fungsi Bidang' const fontSize = 5 const detailFontSize = 3 -const groupingData = (data: any) => { - const groupedData: any = {} +const groupingData = (data: any, reportMeta: any) => { + if (reportMeta.up3.id != 0 || reportMeta.ulp.id != 0) { + const groupedData: any = {} - data.forEach((item: any) => { - const { nama_uid } = item + data.forEach((item: any) => { + const { nama_ulp } = item - if (!groupedData[nama_uid]) { - groupedData[nama_uid] = [] + if (!groupedData[nama_ulp]) { + groupedData[nama_ulp] = [] + } + + groupedData[nama_ulp].push(item) + }) + + return groupedData + } else { + if (reportMeta.uid.id == 0) { + const groupedData: any = {} + + data.forEach((item: any) => { + const { nama_uid } = item + + if (!groupedData[nama_uid]) { + groupedData[nama_uid] = [] + } + + groupedData[nama_uid].push(item) + }) + + return groupedData + } else { + const groupedData: any = {} + + data.forEach((item: any) => { + const { nama_up3 } = item + + if (!groupedData[nama_up3]) { + groupedData[nama_up3] = [] + } + + groupedData[nama_up3].push(item) + }) + + return groupedData } - - groupedData[nama_uid].push(item) - }) - - return groupedData + } } -const formatData = (rawData: any, groupBy: boolean) => { +const formatData = (rawData: any, groupBy: boolean, reportMeta: any) => { const formattedData: any = [] const grandTotal: any = { total_laporan: 0, @@ -62,7 +94,7 @@ const formatData = (rawData: any, groupBy: boolean) => { } if (groupBy) { - const data = groupingData(rawData) + const data = groupingData(rawData, reportMeta) for (const nama_uid in data) { const total: any = { @@ -310,7 +342,7 @@ const exportToPDF = (reportMeta: any, rawData: any, preview: boolean = false) => const date = new Date().getDate() const month = new Date().toLocaleString('id-ID', { month: 'long' }) const year = new Date().getFullYear() - const data = formatData(rawData, reportMeta.groupBy) + const data = formatData(rawData, reportMeta.groupBy, reportMeta) const meta = formatMetaData(reportMeta) const doc = new jsPDF({ orientation: 'landscape' @@ -765,7 +797,7 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => { const exportToDOCX = (reportMeta: any, rawData: any) => { const meta = formatMetaData(reportMeta) - exportToWord(reportMeta, meta, formatData(rawData, reportMeta.groupBy), reportName) + exportToWord(reportMeta, meta, formatData(rawData, reportMeta.groupBy, reportMeta), reportName) } const exportDetailToDOCX = (reportMeta: any, rawData: any) => { diff --git a/src/report/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.ts b/src/report/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.ts index c996017..2d52d4c 100644 --- a/src/report/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.ts +++ b/src/report/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.ts @@ -25,23 +25,55 @@ const reportName = 'Rekapitulasi Keluhan Per Kelompok Keluhan' const fontSize = 5 const detailFontSize = 3 -const groupingData = (data: any) => { - const groupedData: any = {} +const groupingData = (data: any, reportMeta: any) => { + if (reportMeta.up3.id != 0 || reportMeta.ulp.id != 0) { + const groupedData: any = {} - data.forEach((item: any) => { - const { nama_uid } = item + data.forEach((item: any) => { + const { nama_ulp } = item - if (!groupedData[nama_uid]) { - groupedData[nama_uid] = [] + if (!groupedData[nama_ulp]) { + groupedData[nama_ulp] = [] + } + + groupedData[nama_ulp].push(item) + }) + + return groupedData + } else { + if (reportMeta.uid.id == 0) { + const groupedData: any = {} + + data.forEach((item: any) => { + const { nama_uid } = item + + if (!groupedData[nama_uid]) { + groupedData[nama_uid] = [] + } + + groupedData[nama_uid].push(item) + }) + + return groupedData + } else { + const groupedData: any = {} + + data.forEach((item: any) => { + const { nama_up3 } = item + + if (!groupedData[nama_up3]) { + groupedData[nama_up3] = [] + } + + groupedData[nama_up3].push(item) + }) + + return groupedData } - - groupedData[nama_uid].push(item) - }) - - return groupedData + } } -const formatData = (rawData: any, groupBy: boolean) => { +const formatData = (rawData: any, groupBy: boolean, reportMeta: any) => { const formattedData: any = [] const grandTotal: any = { total_laporan: 0, @@ -62,7 +94,7 @@ const formatData = (rawData: any, groupBy: boolean) => { } if (groupBy) { - const data = groupingData(rawData) + const data = groupingData(rawData, reportMeta) for (const nama_uid in data) { const total: any = { @@ -310,7 +342,7 @@ const exportToPDF = (reportMeta: any, rawData: any, preview: boolean = false) => const date = new Date().getDate() const month = new Date().toLocaleString('id-ID', { month: 'long' }) const year = new Date().getFullYear() - const data = formatData(rawData, reportMeta.groupBy) + const data = formatData(rawData, reportMeta.groupBy, reportMeta) const meta = formatMetaData(reportMeta) const doc = new jsPDF({ orientation: 'landscape' @@ -765,7 +797,7 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => { const exportToDOCX = (reportMeta: any, rawData: any) => { const meta = formatMetaData(reportMeta) - exportToWord(reportMeta, meta, formatData(rawData, reportMeta.groupBy), reportName) + exportToWord(reportMeta, meta, formatData(rawData, reportMeta.groupBy, reportMeta), reportName) } const exportDetailToDOCX = (reportMeta: any, rawData: any) => {