feat: Consider business hours while generating the reports (#4330)

* feat: Consider business hours while generating the reports
This commit is contained in:
Aswin Dev P.S
2022-04-08 12:48:18 +05:30
committed by GitHub
parent 57359be37e
commit d5536d65f7
19 changed files with 241 additions and 48 deletions

View File

@@ -15,6 +15,7 @@
:filter-items-list="filterItemsList"
@date-range-change="onDateRangeChange"
@filter-change="onFilterChange"
@business-hours-toggle="onBusinessHoursToggle"
/>
<div class="row">
<woot-report-stats-card
@@ -79,6 +80,7 @@ export default {
groupBy: GROUP_BY_FILTER[1],
filterItemsList: this.$t('REPORT.GROUP_BY_DAY_OPTIONS'),
selectedGroupByFilter: {},
businessHours: false,
};
},
computed: {
@@ -166,21 +168,23 @@ export default {
},
methods: {
fetchAllData() {
const { from, to, groupBy } = this;
const { from, to, groupBy, businessHours } = this;
this.$store.dispatch('fetchAccountSummary', {
from,
to,
groupBy: groupBy.period,
businessHours,
});
this.fetchChartData();
},
fetchChartData() {
const { from, to, groupBy } = this;
const { from, to, groupBy, businessHours } = this;
this.$store.dispatch('fetchAccountReport', {
metric: this.metrics[this.currentSelection].KEY,
from,
to,
groupBy: groupBy.period,
businessHours,
});
},
downloadAgentReports() {
@@ -226,6 +230,10 @@ export default {
return this.$t('REPORT.GROUP_BY_DAY_OPTIONS');
}
},
onBusinessHoursToggle(value) {
this.businessHours = value;
this.fetchAllData();
},
},
};
</script>

View File

@@ -61,6 +61,12 @@
@input="handleAgentsFilterSelection"
/>
</div>
<div class="small-12 medium-3 business-hours">
<span class="business-hours-text">{{ $t('REPORT.BUSINESS_HOURS') }}</span>
<span>
<woot-switch v-model="businessHoursSelected" />
</span>
</div>
</div>
</template>
<script>
@@ -105,6 +111,7 @@ export default {
customDateRange: [new Date(), new Date()],
currentSelectedFilter: null,
selectedAgents: [],
businessHoursSelected: false,
};
},
computed: {
@@ -153,6 +160,9 @@ export default {
filterItemsList() {
this.currentSelectedFilter = this.selectedGroupByFilter;
},
businessHoursSelected() {
this.$emit('business-hours-toggle', this.businessHoursSelected);
},
},
mounted() {
this.onDateRangeChange();

View File

@@ -145,6 +145,12 @@
@input="changeGroupByFilterSelection"
/>
</div>
<div class="small-12 medium-3 business-hours">
<span class="business-hours-text">{{ $t('REPORT.BUSINESS_HOURS') }}</span>
<span>
<woot-switch v-model="businessHoursSelected" />
</span>
</div>
</div>
</template>
<script>
@@ -188,6 +194,7 @@ export default {
dateRange: this.$t('REPORT.DATE_RANGE'),
customDateRange: [new Date(), new Date()],
currentSelectedGroupByFilter: null,
businessHoursSelected: false,
};
},
computed: {
@@ -249,6 +256,9 @@ export default {
groupByFilterItemsList() {
this.currentSelectedGroupByFilter = this.selectedGroupByFilter;
},
businessHoursSelected() {
this.$emit('business-hours-toggle', this.businessHoursSelected);
},
},
mounted() {
this.onDateRangeChange();

View File

@@ -17,6 +17,7 @@
@date-range-change="onDateRangeChange"
@filter-change="onFilterChange"
@group-by-filter-change="onGroupByFilterChange"
@business-hours-toggle="onBusinessHoursToggle"
/>
<div>
<div v-if="filterItemsList.length" class="row">
@@ -100,6 +101,7 @@ export default {
groupBy: GROUP_BY_FILTER[1],
groupByfilterItemsList: this.$t('REPORT.GROUP_BY_DAY_OPTIONS'),
selectedGroupByFilter: null,
businessHours: false,
};
},
computed: {
@@ -202,19 +204,20 @@ export default {
methods: {
fetchAllData() {
if (this.selectedFilter) {
const { from, to, groupBy } = this;
const { from, to, groupBy, businessHours } = this;
this.$store.dispatch('fetchAccountSummary', {
from,
to,
type: this.type,
id: this.selectedFilter.id,
groupBy: groupBy.period,
businessHours,
});
this.fetchChartData();
}
},
fetchChartData() {
const { from, to, groupBy } = this;
const { from, to, groupBy, businessHours } = this;
this.$store.dispatch('fetchAccountReport', {
metric: this.metrics[this.currentSelection].KEY,
from,
@@ -222,6 +225,7 @@ export default {
type: this.type,
id: this.selectedFilter.id,
groupBy: groupBy.period,
businessHours,
});
},
downloadReports() {
@@ -288,6 +292,10 @@ export default {
return this.$t('REPORT.GROUP_BY_DAY_OPTIONS');
}
},
onBusinessHoursToggle(value) {
this.businessHours = value;
this.fetchAllData();
},
},
};
</script>