Add Monalisa dispatching time gangguan queries

This commit is contained in:
Dede Fuji Abdul
2024-04-03 11:21:43 +07:00
parent 6a7621b435
commit b88e38fbb7
3 changed files with 286 additions and 101 deletions

View File

@ -93,7 +93,7 @@
data-type="number"
:caption="`${getMonthName(lastMonth)} ${lastYearMoM}`"
css-class="custom-table-column"
cell-template="formatNumber"
cell-template="formatNumberMomLastMonthLastYear"
/>
<DxColumn
:width="150"
@ -102,7 +102,7 @@
data-type="number"
:caption="`${getMonthName(currentMonth)} ${currentYear}`"
css-class="custom-table-column"
cell-template="formatNumber"
cell-template="formatNumberMomCurrentMonthCurrentYear"
/>
<DxColumn
:width="70"
@ -122,7 +122,7 @@
data-type="number"
:caption="`s.d ${getMonthName(currentMonth)} ${lastYear}`"
css-class="custom-table-column"
cell-template="formatNumber"
cell-template="formatNumberYoyCurrentMonthLastYear"
/>
<DxColumn
:width="150"
@ -131,7 +131,7 @@
data-type="number"
:caption="`s.d ${getMonthName(currentMonth)} ${currentYear}`"
css-class="custom-table-column"
cell-template="formatNumber"
cell-template="formatNumberYoyCurrentMonthCurrentYear"
/>
<DxColumn
:width="70"
@ -253,7 +253,67 @@
</DxSummary>
<template #formatNumber="{ data }">
<p class="text-right cursor-pointer">
<p class="text-right cursor-pointer" @click="setRequirements('', 0, 0)">
{{
isNumber(data.text)
? data.column.caption == '%'
? formatPercentage(data.text)
: formatNumber(data.text)
: data.text
}}
</p>
</template>
<template #formatNumberMomLastMonthLastYear="{ data }">
<p
class="text-right cursor-pointer"
@click="setRequirements('mom', lastMonth, lastYearMoM)"
>
{{
isNumber(data.text)
? data.column.caption == '%'
? formatPercentage(data.text)
: formatNumber(data.text)
: data.text
}}
</p>
</template>
<template #formatNumberMomCurrentMonthCurrentYear="{ data }">
<p
class="text-right cursor-pointer"
@click="setRequirements('mom', currentMonth, currentYear)"
>
{{
isNumber(data.text)
? data.column.caption == '%'
? formatPercentage(data.text)
: formatNumber(data.text)
: data.text
}}
</p>
</template>
<template #formatNumberYoyCurrentMonthLastYear="{ data }">
<p
class="text-right cursor-pointer"
@click="setRequirements('yoy', currentMonth, lastYear)"
>
{{
isNumber(data.text)
? data.column.caption == '%'
? formatPercentage(data.text)
: formatNumber(data.text)
: data.text
}}
</p>
</template>
<template #formatNumberYoyCurrentMonthCurrentYear="{ data }">
<p
class="text-right cursor-pointer"
@click="setRequirements('yoy', currentMonth, currentYear)"
>
{{
isNumber(data.text)
? data.column.caption == '%'
@ -265,7 +325,7 @@
</template>
<template #formatText="{ data }">
<p class="!text-left cursor-pointer">
<p class="!text-left cursor-pointer" @click="setRequirements('', 0, 0)">
{{ data.text }}
</p>
</template>
@ -748,6 +808,9 @@ const dialogDetail = ref(false)
const closedialogDetail = () => (dialogDetail.value = false)
const loadingData = ref(false)
const loadingSubData = ref(false)
const dataType = ref('')
const dataYear = ref(new Date().getFullYear())
const dataMonth = ref(new Date().getMonth())
const reportMeta = ref({
regional: { id: 0, name: 'Semua Regional' },
uid: { id: 0, name: 'Semua Unit Induk Distribusi/Wilayah' },
@ -763,6 +826,12 @@ const reportMeta = ref({
lastYear: new Date().getFullYear() - 1
})
const setRequirements = (type: string, month: number, year: number) => {
dataType.value = type
dataYear.value = year
dataMonth.value = month
}
const onExporting = (e: any) => {
if (e.format === 'pdf') {
exportToPDF(reportMeta.value, data.value)
@ -835,32 +904,30 @@ const filterData = async (params: any) => {
}
const getDetail = async () => {
const dateValue = filters.value.periode.split(' s/d ')
const selected = dataSelected.value
const 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),
posko: selected?.id_ulp ? selected?.id_ulp : 0,
idUid: selected?.id_uid ? selected?.id_uid : 0,
idUp3: selected?.id_up3 ? selected?.id_up3 : 0,
idRegu: selected?.id_regu ? selected?.id_regu : 0,
bulan: dataMonth.value,
tahun: dataYear.value,
idUlp: selected?.id_ulp ? selected?.id_ulp : 0,
namaRegional: selected?.nama_regional ? selected?.nama_regional : '',
media: selected?.media ? selected?.media : '',
isSelesai: 0,
tanggal: ''
idUid: selected?.id_uid ? selected?.id_uid : 0,
idUp3: selected?.id_up3 ? selected?.id_up3 : 0
}
loadingSubData.value = true
await requestGraphQl(queries.gangguan.rekap.gangguanAllDetail, query)
await requestGraphQl(
dataType.value == 'yoy'
? queries.monalisa.gangguan.rekap.dispatchingTimeGangguanDetailYoy
: queries.monalisa.gangguan.rekap.dispatchingTimeGangguanDetailMom,
query
)
.then((result) => {
if (result.data.data != undefined) {
dataSub.value = result.data.data.detailGangguan
if (dataType.value == 'yoy') {
dataSub.value = result.data.data.detailMonalisaDispatchingTimeGangguanYoy
} else {
dataSub.value = result.data.data.detailMonalisaDispatchingTimeGangguanMoM
}
} else {
dataSub.value = []
}
@ -882,7 +949,9 @@ const clearSelection = () => {
const showDetail = () => {
clearSelection()
dataSubSelected.value = null
getDetail()
if (dataType.value == 'yoy' || dataType.value == 'mom') {
getDetail()
}
}
const onDataSelectionChanged = ({ selectedRowsData }: any) => {
if (selectedRowsData[0] != undefined) {