|  |  |  | @@ -3,6 +3,7 @@ | 
		
	
		
			
				|  |  |  |  |     <h1 class="text-xl font-medium md:text-2xl text-dark">Laporan Pengaduan Total</h1> | 
		
	
		
			
				|  |  |  |  |   </div> | 
		
	
		
			
				|  |  |  |  |   <DxDataGrid | 
		
	
		
			
				|  |  |  |  |     @cell-click="onCellClicked" | 
		
	
		
			
				|  |  |  |  |     ref="dataGridRef" | 
		
	
		
			
				|  |  |  |  |     :allow-column-reordering="true" | 
		
	
		
			
				|  |  |  |  |     class="max-h-[calc(100vh-140px)] mb-10" | 
		
	
	
		
			
				
					
					|  |  |  | @@ -18,8 +19,9 @@ | 
		
	
		
			
				|  |  |  |  |     column-resizing-mode="widget" | 
		
	
		
			
				|  |  |  |  |     :word-wrap-enabled="true" | 
		
	
		
			
				|  |  |  |  |     :data-source="data" | 
		
	
		
			
				|  |  |  |  |     v-if="loadingData == false" | 
		
	
		
			
				|  |  |  |  |   > | 
		
	
		
			
				|  |  |  |  |     <DxGrouping expand-mode="rowClick" :auto-expand-all="false" /> | 
		
	
		
			
				|  |  |  |  |     <DxGrouping :auto-expand-all="false" /> | 
		
	
		
			
				|  |  |  |  |     <DxSelection mode="single" /> | 
		
	
		
			
				|  |  |  |  |     <DxPaging :enabled="false" /> | 
		
	
		
			
				|  |  |  |  |     <DxScrolling column-rendering-mode="virtual" mode="virtual" /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -39,37 +41,19 @@ | 
		
	
		
			
				|  |  |  |  |       caption="Nama Unit" | 
		
	
		
			
				|  |  |  |  |       css-class="custom-table-column" | 
		
	
		
			
				|  |  |  |  |       cell-template="formatText" | 
		
	
		
			
				|  |  |  |  |       name="namaULP" | 
		
	
		
			
				|  |  |  |  |     /> | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     <DxColumn | 
		
	
		
			
				|  |  |  |  |       v-if="grouping.length > 0" | 
		
	
		
			
				|  |  |  |  |       v-for="(group, index) in grouping" | 
		
	
		
			
				|  |  |  |  |       :width="150" | 
		
	
		
			
				|  |  |  |  |       alignment="center" | 
		
	
		
			
				|  |  |  |  |       :min-width="170" | 
		
	
		
			
				|  |  |  |  |       data-type="text" | 
		
	
		
			
				|  |  |  |  |       data-field="" | 
		
	
		
			
				|  |  |  |  |       caption="Semua Unit" | 
		
	
		
			
				|  |  |  |  |       :data-field="group.data" | 
		
	
		
			
				|  |  |  |  |       :caption="group.caption" | 
		
	
		
			
				|  |  |  |  |       css-class="custom-table-column" | 
		
	
		
			
				|  |  |  |  |       :group-index="0" | 
		
	
		
			
				|  |  |  |  |     /> | 
		
	
		
			
				|  |  |  |  |     <DxColumn | 
		
	
		
			
				|  |  |  |  |       alignment="center" | 
		
	
		
			
				|  |  |  |  |       :min-width="170" | 
		
	
		
			
				|  |  |  |  |       data-type="text" | 
		
	
		
			
				|  |  |  |  |       data-field="id_uid" | 
		
	
		
			
				|  |  |  |  |       caption="UID" | 
		
	
		
			
				|  |  |  |  |       css-class="custom-table-column" | 
		
	
		
			
				|  |  |  |  |       :group-index="1" | 
		
	
		
			
				|  |  |  |  |       name="namaUID" | 
		
	
		
			
				|  |  |  |  |       :calculate-group-value="(rowData: any) => rowData.nama_uid" | 
		
	
		
			
				|  |  |  |  |     /> | 
		
	
		
			
				|  |  |  |  |     <DxColumn | 
		
	
		
			
				|  |  |  |  |       alignment="center" | 
		
	
		
			
				|  |  |  |  |       :min-width="170" | 
		
	
		
			
				|  |  |  |  |       data-type="text" | 
		
	
		
			
				|  |  |  |  |       data-field="id_up3" | 
		
	
		
			
				|  |  |  |  |       caption="UP3" | 
		
	
		
			
				|  |  |  |  |       css-class="custom-table-column" | 
		
	
		
			
				|  |  |  |  |       :group-index="1" | 
		
	
		
			
				|  |  |  |  |       name="namaUID" | 
		
	
		
			
				|  |  |  |  |       :calculate-group-value="(rowData: any) => rowData.nama_up3" | 
		
	
		
			
				|  |  |  |  |       cell-template="formatText" | 
		
	
		
			
				|  |  |  |  |       :group-index="index" | 
		
	
		
			
				|  |  |  |  |     /> | 
		
	
		
			
				|  |  |  |  |     <DxColumn alignment="center" caption="Total Petugas" css-class="custom-table-column"> | 
		
	
		
			
				|  |  |  |  |       <DxColumn | 
		
	
	
		
			
				
					
					|  |  |  | @@ -349,12 +333,13 @@ | 
		
	
		
			
				|  |  |  |  |       </p> | 
		
	
		
			
				|  |  |  |  |     </template> | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     <DxSummary> | 
		
	
		
			
				|  |  |  |  |     <DxSummary :calculate-custom-summary="calculateCustomSummary"> | 
		
	
		
			
				|  |  |  |  |       <DxGroupItem | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="total_petugas" | 
		
	
		
			
				|  |  |  |  |         summary-type="sum" | 
		
	
		
			
				|  |  |  |  |         name="total_petugas" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatNumber(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -362,7 +347,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="anomali_pln_mobile_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="sum" | 
		
	
		
			
				|  |  |  |  |         name="anomali_pln_mobile_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatNumber(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -370,7 +356,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="anomali_pln_mobile_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="sum" | 
		
	
		
			
				|  |  |  |  |         name="anomali_pln_mobile_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatNumber(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -378,7 +365,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="anomali_cc123_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="sum" | 
		
	
		
			
				|  |  |  |  |         name="anomali_cc123_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatNumber(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -386,7 +374,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="anomali_cc123_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="sum" | 
		
	
		
			
				|  |  |  |  |         name="anomali_cc123_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatNumber(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -394,7 +383,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="total_anomali_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="sum" | 
		
	
		
			
				|  |  |  |  |         name="total_anomali_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatNumber(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -402,7 +392,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="total_anomali_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="sum" | 
		
	
		
			
				|  |  |  |  |         name="total_anomali_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatNumber(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -410,7 +401,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="persen_anomali_pln_mobile_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="avg" | 
		
	
		
			
				|  |  |  |  |         name="persen_anomali_pln_mobile_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatPercentage(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -418,7 +410,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="persen_anomali_pln_mobile_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="avg" | 
		
	
		
			
				|  |  |  |  |         name="persen_anomali_pln_mobile_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatPercentage(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -426,7 +419,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="persen_anomali_cc123_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="avg" | 
		
	
		
			
				|  |  |  |  |         name="persen_anomali_cc123_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatPercentage(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -434,7 +428,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="persen_anomali_cc123_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="avg" | 
		
	
		
			
				|  |  |  |  |         name="persen_anomali_cc123_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatPercentage(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -442,7 +437,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="persen_anomali_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="avg" | 
		
	
		
			
				|  |  |  |  |         name="persen_anomali_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatPercentage(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -450,7 +446,8 @@ | 
		
	
		
			
				|  |  |  |  |         :show-in-group-footer="false" | 
		
	
		
			
				|  |  |  |  |         :align-by-column="true" | 
		
	
		
			
				|  |  |  |  |         column="persen_anomali_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="avg" | 
		
	
		
			
				|  |  |  |  |         name="persen_anomali_non_marking" | 
		
	
		
			
				|  |  |  |  |         summary-type="custom" | 
		
	
		
			
				|  |  |  |  |         css-class="!text-right" | 
		
	
		
			
				|  |  |  |  |         :customize-text="(e: any) => formatPercentage(e.value)" | 
		
	
		
			
				|  |  |  |  |       /> | 
		
	
	
		
			
				
					
					|  |  |  | @@ -494,6 +491,7 @@ import { | 
		
	
		
			
				|  |  |  |  |   exportToXLSX, | 
		
	
		
			
				|  |  |  |  |   exportToDOCX | 
		
	
		
			
				|  |  |  |  | } from '@/report/Anomali/Gangguan/Anomali_LAPPGP_LPT' | 
		
	
		
			
				|  |  |  |  | import { getDataRowGroup } from '@/utils/helper' | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | const position = { of: '#data' } | 
		
	
		
			
				|  |  |  |  | const showIndicator = ref(true) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -501,7 +499,12 @@ const shading = ref(true) | 
		
	
		
			
				|  |  |  |  | const showPane = ref(true) | 
		
	
		
			
				|  |  |  |  | const props = defineProps({ | 
		
	
		
			
				|  |  |  |  |   data: Array as () => any[], | 
		
	
		
			
				|  |  |  |  |   filters: Object as () => any | 
		
	
		
			
				|  |  |  |  |   filters: Object as () => any, | 
		
	
		
			
				|  |  |  |  |   grouping: { | 
		
	
		
			
				|  |  |  |  |     type: Array as () => any[], | 
		
	
		
			
				|  |  |  |  |     default: [] | 
		
	
		
			
				|  |  |  |  |   }, | 
		
	
		
			
				|  |  |  |  |   loadingData: Boolean | 
		
	
		
			
				|  |  |  |  | }) | 
		
	
		
			
				|  |  |  |  | const emit = defineEmits(['update:dataSub', 'update:loadingSubData', 'update:marking']) | 
		
	
		
			
				|  |  |  |  | const filters = ref<any>(computed(() => props.filters)) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -517,10 +520,14 @@ const parameterRequest = ref<any>({ | 
		
	
		
			
				|  |  |  |  |   media: null, | 
		
	
		
			
				|  |  |  |  |   marking: null | 
		
	
		
			
				|  |  |  |  | }) | 
		
	
		
			
				|  |  |  |  | const groupDialog = ref(false) | 
		
	
		
			
				|  |  |  |  | const groupData = ref<any>(null) | 
		
	
		
			
				|  |  |  |  | const groupIndex = ref(0) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | const setParameterRequest = (data: any) => { | 
		
	
		
			
				|  |  |  |  |   parameterRequest.value = data | 
		
	
		
			
				|  |  |  |  |   const parameter = parameterRequest.value | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (parameter.media != null && parameter.marking != null) { | 
		
	
		
			
				|  |  |  |  |     emit('update:marking', parameter.marking) | 
		
	
		
			
				|  |  |  |  |     agreeToShowDialog.value = true | 
		
	
	
		
			
				
					
					|  |  |  | @@ -529,32 +536,253 @@ const setParameterRequest = (data: any) => { | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | const onCellClicked = (e: any) => { | 
		
	
		
			
				|  |  |  |  |   if (e.rowType == 'group') { | 
		
	
		
			
				|  |  |  |  |     groupDialog.value = true | 
		
	
		
			
				|  |  |  |  |     groupIndex.value = e.row.groupIndex | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     if (e.column.dataField == 'anomali_pln_mobile_marking') { | 
		
	
		
			
				|  |  |  |  |       setParameterRequest({ media: 'PLN Mobile', marking: 1 }) | 
		
	
		
			
				|  |  |  |  |     } else if (e.column.dataField == 'anomali_pln_mobile_non_marking') { | 
		
	
		
			
				|  |  |  |  |       setParameterRequest({ media: 'PLN Mobile', marking: 2 }) | 
		
	
		
			
				|  |  |  |  |     } else if (e.column.dataField == 'anomali_cc123_marking') { | 
		
	
		
			
				|  |  |  |  |       setParameterRequest({ media: 'Call PLN 123', marking: 1 }) | 
		
	
		
			
				|  |  |  |  |     } else if (e.column.dataField == 'anomali_cc123_non_marking') { | 
		
	
		
			
				|  |  |  |  |       setParameterRequest({ media: 'Call PLN 123', marking: 2 }) | 
		
	
		
			
				|  |  |  |  |     } else if (e.column.dataField == 'total_anomali_marking') { | 
		
	
		
			
				|  |  |  |  |       setParameterRequest({ media: '', marking: 1 }) | 
		
	
		
			
				|  |  |  |  |     } else if (e.column.dataField == 'total_anomali_non_marking') { | 
		
	
		
			
				|  |  |  |  |       setParameterRequest({ media: '', marking: 2 }) | 
		
	
		
			
				|  |  |  |  |     } else { | 
		
	
		
			
				|  |  |  |  |       setParameterRequest({ media: null, marking: null }) | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     groupData.value = getDataRowGroup(e.data) | 
		
	
		
			
				|  |  |  |  |     showDetail() | 
		
	
		
			
				|  |  |  |  |   } else { | 
		
	
		
			
				|  |  |  |  |     groupDialog.value = false | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | const resetData = () => { | 
		
	
		
			
				|  |  |  |  |   dataSub.value = [] | 
		
	
		
			
				|  |  |  |  |   dataSubSelected.value = null | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | let total_petugas = 0 | 
		
	
		
			
				|  |  |  |  | let anomali_pln_mobile_marking = 0 | 
		
	
		
			
				|  |  |  |  | let anomali_pln_mobile_non_marking = 0 | 
		
	
		
			
				|  |  |  |  | let anomali_cc123_marking = 0 | 
		
	
		
			
				|  |  |  |  | let anomali_cc123_non_marking = 0 | 
		
	
		
			
				|  |  |  |  | let total_anomali_marking = 0 | 
		
	
		
			
				|  |  |  |  | let total_anomali_non_marking = 0 | 
		
	
		
			
				|  |  |  |  | let persen_anomali_pln_mobile_marking = 0 | 
		
	
		
			
				|  |  |  |  | let persen_anomali_pln_mobile_non_marking = 0 | 
		
	
		
			
				|  |  |  |  | let persen_anomali_cc123_marking = 0 | 
		
	
		
			
				|  |  |  |  | let persen_anomali_cc123_non_marking = 0 | 
		
	
		
			
				|  |  |  |  | let persen_anomali_marking = 0 | 
		
	
		
			
				|  |  |  |  | let persen_anomali_non_marking = 0 | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | const calculateCustomSummary = (options: any) => { | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'total_petugas') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'calculate') { | 
		
	
		
			
				|  |  |  |  |       total_petugas += options.value | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = total_petugas | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'anomali_pln_mobile_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'calculate') { | 
		
	
		
			
				|  |  |  |  |       anomali_pln_mobile_marking += options.value | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = anomali_pln_mobile_marking | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'anomali_pln_mobile_non_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'calculate') { | 
		
	
		
			
				|  |  |  |  |       anomali_pln_mobile_non_marking += options.value | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = anomali_pln_mobile_non_marking | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'anomali_cc123_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'calculate') { | 
		
	
		
			
				|  |  |  |  |       anomali_cc123_marking += options.value | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = anomali_cc123_marking | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'anomali_cc123_non_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'calculate') { | 
		
	
		
			
				|  |  |  |  |       anomali_cc123_non_marking += options.value | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = anomali_cc123_non_marking | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'total_anomali_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'start') { | 
		
	
		
			
				|  |  |  |  |       anomali_pln_mobile_marking = 0 | 
		
	
		
			
				|  |  |  |  |       anomali_cc123_marking = 0 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = anomali_pln_mobile_marking + anomali_cc123_marking | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'total_anomali_non_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'start') { | 
		
	
		
			
				|  |  |  |  |       anomali_pln_mobile_non_marking = 0 | 
		
	
		
			
				|  |  |  |  |       anomali_cc123_non_marking = 0 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = anomali_pln_mobile_non_marking + anomali_cc123_non_marking | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'persen_anomali_pln_mobile_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'start') { | 
		
	
		
			
				|  |  |  |  |       anomali_pln_mobile_marking = 0 | 
		
	
		
			
				|  |  |  |  |       total_petugas = 0 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'calculate') { | 
		
	
		
			
				|  |  |  |  |       persen_anomali_pln_mobile_marking = | 
		
	
		
			
				|  |  |  |  |         !isFinite(anomali_pln_mobile_marking / total_petugas) || anomali_pln_mobile_marking == 0 | 
		
	
		
			
				|  |  |  |  |           ? 0 | 
		
	
		
			
				|  |  |  |  |           : (anomali_pln_mobile_marking / total_petugas) * 100 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = | 
		
	
		
			
				|  |  |  |  |         !isFinite(anomali_pln_mobile_marking / total_petugas) || anomali_pln_mobile_marking == 0 | 
		
	
		
			
				|  |  |  |  |           ? 0 | 
		
	
		
			
				|  |  |  |  |           : (anomali_pln_mobile_marking / total_petugas) * 100 | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'persen_anomali_pln_mobile_non_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'start') { | 
		
	
		
			
				|  |  |  |  |       anomali_pln_mobile_non_marking = 0 | 
		
	
		
			
				|  |  |  |  |       total_petugas = 0 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'calculate') { | 
		
	
		
			
				|  |  |  |  |       persen_anomali_pln_mobile_non_marking = | 
		
	
		
			
				|  |  |  |  |         !isFinite(anomali_pln_mobile_non_marking / total_petugas) || | 
		
	
		
			
				|  |  |  |  |         anomali_pln_mobile_non_marking == 0 | 
		
	
		
			
				|  |  |  |  |           ? 0 | 
		
	
		
			
				|  |  |  |  |           : (anomali_pln_mobile_non_marking / total_petugas) * 100 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = | 
		
	
		
			
				|  |  |  |  |         !isFinite(anomali_pln_mobile_non_marking / total_petugas) || | 
		
	
		
			
				|  |  |  |  |         anomali_pln_mobile_non_marking == 0 | 
		
	
		
			
				|  |  |  |  |           ? 0 | 
		
	
		
			
				|  |  |  |  |           : (anomali_pln_mobile_non_marking / total_petugas) * 100 | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'persen_anomali_cc123_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'start') { | 
		
	
		
			
				|  |  |  |  |       anomali_cc123_marking = 0 | 
		
	
		
			
				|  |  |  |  |       total_petugas = 0 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'calculate') { | 
		
	
		
			
				|  |  |  |  |       persen_anomali_cc123_marking = | 
		
	
		
			
				|  |  |  |  |         !isFinite(anomali_cc123_marking / total_petugas) || anomali_cc123_marking == 0 | 
		
	
		
			
				|  |  |  |  |           ? 0 | 
		
	
		
			
				|  |  |  |  |           : (anomali_cc123_marking / total_petugas) * 100 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = | 
		
	
		
			
				|  |  |  |  |         !isFinite(anomali_cc123_marking / total_petugas) || anomali_cc123_marking == 0 | 
		
	
		
			
				|  |  |  |  |           ? 0 | 
		
	
		
			
				|  |  |  |  |           : (anomali_cc123_marking / total_petugas) * 100 | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'persen_anomali_cc123_non_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'start') { | 
		
	
		
			
				|  |  |  |  |       anomali_cc123_non_marking = 0 | 
		
	
		
			
				|  |  |  |  |       total_petugas = 0 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'calculate') { | 
		
	
		
			
				|  |  |  |  |       persen_anomali_cc123_non_marking = | 
		
	
		
			
				|  |  |  |  |         !isFinite(anomali_cc123_non_marking / total_petugas) || anomali_cc123_non_marking == 0 | 
		
	
		
			
				|  |  |  |  |           ? 0 | 
		
	
		
			
				|  |  |  |  |           : (anomali_cc123_non_marking / total_petugas) * 100 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = | 
		
	
		
			
				|  |  |  |  |         !isFinite(anomali_cc123_non_marking / total_petugas) || anomali_cc123_non_marking == 0 | 
		
	
		
			
				|  |  |  |  |           ? 0 | 
		
	
		
			
				|  |  |  |  |           : (anomali_cc123_non_marking / total_petugas) * 100 | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'persen_anomali_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'start') { | 
		
	
		
			
				|  |  |  |  |       persen_anomali_pln_mobile_marking = 0 | 
		
	
		
			
				|  |  |  |  |       persen_anomali_cc123_marking = 0 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = persen_anomali_pln_mobile_marking + persen_anomali_cc123_marking | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (options.name === 'persen_anomali_non_marking') { | 
		
	
		
			
				|  |  |  |  |     if (options.summaryProcess === 'start') { | 
		
	
		
			
				|  |  |  |  |       persen_anomali_cc123_non_marking = 0 | 
		
	
		
			
				|  |  |  |  |       persen_anomali_pln_mobile_non_marking = 0 | 
		
	
		
			
				|  |  |  |  |     } else if (options.summaryProcess === 'finalize') { | 
		
	
		
			
				|  |  |  |  |       options.totalValue = persen_anomali_pln_mobile_non_marking + persen_anomali_cc123_non_marking | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  | const getDetail = async () => { | 
		
	
		
			
				|  |  |  |  |   resetData() | 
		
	
		
			
				|  |  |  |  |   const { jenisLaporan } = filters.value | 
		
	
		
			
				|  |  |  |  |   const dateValue = filters.value.periode.split(' s/d ') | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   const selected = dataSelected.value | 
		
	
		
			
				|  |  |  |  |   const query = { | 
		
	
		
			
				|  |  |  |  |   let query = { | 
		
	
		
			
				|  |  |  |  |     dateFrom: dateValue[0] | 
		
	
		
			
				|  |  |  |  |       ? dateValue[0].split('-').reverse().join('-') | 
		
	
		
			
				|  |  |  |  |       : new Date().toISOString().slice(0, 10), | 
		
	
		
			
				|  |  |  |  |     dateTo: dateValue[1] | 
		
	
		
			
				|  |  |  |  |       ? dateValue[1].split('-').reverse().join('-') | 
		
	
		
			
				|  |  |  |  |       : new Date().toISOString().slice(0, 10), | 
		
	
		
			
				|  |  |  |  |     idUlp: selected?.id_ulp ? selected?.id_ulp : 0, | 
		
	
		
			
				|  |  |  |  |     idUid: selected?.id_uid ? selected?.id_uid : 0, | 
		
	
		
			
				|  |  |  |  |     idUp3: selected?.id_up3 ? selected?.id_up3 : 0, | 
		
	
		
			
				|  |  |  |  |     namaRegional: selected?.nama_regional ? selected?.nama_regional : '', | 
		
	
		
			
				|  |  |  |  |     idUlp: 0, | 
		
	
		
			
				|  |  |  |  |     idUid: 0, | 
		
	
		
			
				|  |  |  |  |     idUp3: 0, | 
		
	
		
			
				|  |  |  |  |     namaRegional: '', | 
		
	
		
			
				|  |  |  |  |     media: parameterRequest.value?.media, | 
		
	
		
			
				|  |  |  |  |     isMarking: parameterRequest.value?.marking | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   if (groupDialog.value) { | 
		
	
		
			
				|  |  |  |  |     if (props.grouping[groupIndex.value].data == 'nama_uid') { | 
		
	
		
			
				|  |  |  |  |       query = { | 
		
	
		
			
				|  |  |  |  |         ...query, | 
		
	
		
			
				|  |  |  |  |         idUid: groupData.value?.id_uid ? groupData.value?.id_uid : 0, | 
		
	
		
			
				|  |  |  |  |         namaRegional: groupData.value?.nama_regional ? groupData.value?.nama_regional : '' | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |     } else if (props.grouping[groupIndex.value].data == 'nama_up3') { | 
		
	
		
			
				|  |  |  |  |       query = { | 
		
	
		
			
				|  |  |  |  |         ...query, | 
		
	
		
			
				|  |  |  |  |         idUid: groupData.value?.id_uid ? groupData.value?.id_uid : 0, | 
		
	
		
			
				|  |  |  |  |         idUp3: groupData.value?.id_up3 ? groupData.value?.id_up3 : 0, | 
		
	
		
			
				|  |  |  |  |         namaRegional: groupData.value?.nama_regional ? groupData.value?.nama_regional : '' | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } else { | 
		
	
		
			
				|  |  |  |  |     query = { | 
		
	
		
			
				|  |  |  |  |       dateFrom: dateValue[0] | 
		
	
		
			
				|  |  |  |  |         ? dateValue[0].split('-').reverse().join('-') | 
		
	
		
			
				|  |  |  |  |         : new Date().toISOString().slice(0, 10), | 
		
	
		
			
				|  |  |  |  |       dateTo: dateValue[1] | 
		
	
		
			
				|  |  |  |  |         ? dateValue[1].split('-').reverse().join('-') | 
		
	
		
			
				|  |  |  |  |         : new Date().toISOString().slice(0, 10), | 
		
	
		
			
				|  |  |  |  |       idUlp: selected?.id_ulp ? selected?.id_ulp : 0, | 
		
	
		
			
				|  |  |  |  |       idUid: selected?.id_uid ? selected?.id_uid : 0, | 
		
	
		
			
				|  |  |  |  |       idUp3: selected?.id_up3 ? selected?.id_up3 : 0, | 
		
	
		
			
				|  |  |  |  |       namaRegional: selected?.nama_regional ? selected?.nama_regional : '', | 
		
	
		
			
				|  |  |  |  |       media: parameterRequest.value?.media, | 
		
	
		
			
				|  |  |  |  |       isMarking: parameterRequest.value?.marking | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |   loadingSubData.value = true | 
		
	
		
			
				|  |  |  |  |   emit('update:loadingSubData', loadingSubData.value) | 
		
	
		
			
				|  |  |  |  |   await requestGraphQl( | 
		
	
	
		
			
				
					
					|  |  |  |   |