From 024844d9b76c320fe07d937b7b7f5235d1a46977 Mon Sep 17 00:00:00 2001
From: Dede Fuji Abdul
Date: Tue, 2 Apr 2024 14:56:47 +0700
Subject: [PATCH] Add custom summary calculations to RGangguan_PerTanggal.vue
---
.../Gangguan/Rekap/RGangguan_PerTanggal.vue | 204 +++++++++++++++++-
1 file changed, 202 insertions(+), 2 deletions(-)
diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_PerTanggal.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_PerTanggal.vue
index cff22f2..51af73a 100755
--- a/src/components/Pages/Gangguan/Rekap/RGangguan_PerTanggal.vue
+++ b/src/components/Pages/Gangguan/Rekap/RGangguan_PerTanggal.vue
@@ -53,7 +53,7 @@
:width="120"
alignment="center"
data-field="nama_uid"
- caption="Nama UID"
+ caption="UID"
css-class="custom-table-column"
group-index="0"
v-if="isGroupBy"
@@ -296,6 +296,155 @@
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -645,7 +794,9 @@ import {
DxPaging,
DxScrolling,
DxSearchPanel,
- DxSelection
+ DxSelection,
+ DxSummary,
+ DxTotalItem
} from 'devextreme-vue/data-grid'
import { queries, requestGraphQl } from '@/utils/api/api.graphql'
import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers'
@@ -835,6 +986,55 @@ const filterData = async (params: any) => {
})
}
+let total = 0
+let total_selesai = 0
+let persen_selesai = 0
+let total_inproses = 0
+let persen_inproses = 0
+const calculateCustomSummary = (options: any) => {
+ if (options.name === 'total') {
+ if (options.summaryProcess === 'calculate') {
+ total += options.value
+ } else if (options.summaryProcess === 'finalize') {
+ options.totalValue = total
+ }
+ }
+
+ if (options.name === 'total_selesai') {
+ if (options.summaryProcess === 'calculate') {
+ total_selesai += options.value
+ } else if (options.summaryProcess === 'finalize') {
+ options.totalValue = total_selesai
+ }
+ }
+
+ if (options.name === 'total_inproses') {
+ if (options.summaryProcess === 'calculate') {
+ total_inproses += options.value
+ } else if (options.summaryProcess === 'finalize') {
+ options.totalValue = total_inproses
+ }
+ }
+
+ if (options.name === 'persen_selesai') {
+ if (options.summaryProcess === 'start') {
+ total = 0
+ total_selesai = 0
+ } else if (options.summaryProcess === 'finalize') {
+ options.totalValue = (total_selesai / total) * 100
+ }
+ }
+
+ if (options.name === 'persen_inproses') {
+ if (options.summaryProcess === 'start') {
+ total = 0
+ total_inproses = 0
+ } else if (options.summaryProcess === 'finalize') {
+ options.totalValue = (total_inproses / total) * 100
+ }
+ }
+}
+
onMounted(() => {
if (import.meta.env.DEV) {
data.value = [