{"version":3,"sources":["webpack:///./src/views/Report/ComparisonCard.vue?e397","webpack:///./src/views/Report/ComparisonCard.vue","webpack:///./src/views/Report/ComparisonCard.vue?7116","webpack:///./src/views/Report/ComparisonCard.vue?7ee8","webpack:///./src/views/Report/Reports.vue?1f92","webpack:///./src/views/Report/Reports.vue","webpack:///./src/views/Report/Reports.vue?ea81","webpack:///./src/views/Report/Reports.vue?84c5"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","loading","_t","_v","_s","_f","model","value","unit","class","isPositive","_e","comparisonPercentage","comparisonValue","$t","previousPeriodFrom","previousPeriodTo","staticRenderFns","default","components","StExplanation","component","on","applyFilter","callback","$$v","filter","expression","reportModel","duration","scopedSlots","_u","key","fn","proxy","revenue","currency","billable","staticStyle","timeRevenueChartOptions","chartOptions","series","byCustomerChartOptions","byProjectChartOptions","byTagChartOptions","registerHooks","fromJS","timeframe","ThisMonth","customerPieData","loadData","get","generateByCustomer","generateByProject","generateByTags","userSettings","CanViewRates","noRates","length","data","chart","type","labels","map","_","label","colors","tooltip","y","formatter","legend","seriesName","opts","substring","responsive","breakpoint","options","width","position","tagsPieData","getDonutChatOptions","projectPieData","name","timeFrameModel","entry","hours","height","plotOptions","bar","endingShapes","columnWidth","stroke","dataLabels","enabled","displayTimeChartDaily","$options","filters","formatDate","date","formatMonth","xaxis","yaxis","title","text","toString","formatNumber","opposite","canViewRates","splice","ComparisonCard","SlideIn","TimeEntryFilterComponent"],"mappings":"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","file":"js/chunk-4b349f44.b414c3ba.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-card relative\"},[_c('st-loading',{attrs:{\"absolute\":true,\"loading\":_vm.loading}}),_c('div',{staticClass:\"report-card-header\"},[_vm._t(\"header\",function(){return [_vm._v(\"HEADER\")]})],2),_c('div',{staticClass:\"report-card-subheader\"},[_vm._t(\"subheader\",function(){return [_vm._v(\"SUBHEADER\")]})],2),_c('div',{staticClass:\"report-card-body\"},[_c('div',{staticClass:\"report-card-value\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.model.value))+\" \"+_vm._s(_vm.unit))]),_c('div',{staticClass:\"report-card-comparison\"},[_c('div',{staticClass:\"flex flex-wrap gap-y-4 items-center\"},[_c('i',{staticClass:\"far mr-4\",class:{ 'text-green-500 fa-chart-line': _vm.model.isPositive, 'text-red-500 fa-chart-line-down': !_vm.model.isPositive }}),_c('div',{class:{ 'text-green-500': _vm.model.isPositive, 'text-red-500': !_vm.model.isPositive }},[(_vm.model.isPositive)?_c('span',[_vm._v(\"+\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm._f(\"formatNumber\")(_vm.model.comparisonPercentage))+\" % \"),(_vm.unit != '%')?_c('span',[_vm._v(\" (\"),(_vm.model.isPositive)?_c('span',[_vm._v(\"+\")]):_vm._e(),_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.model.comparisonValue))+\" \"+_vm._s(_vm.unit)+\") \")]):_vm._e()]),_c('div',{staticClass:\"text-gray-500 ml-2 flex\"},[_c('span',{staticClass:\"mr-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('vs. Vorperiode'))+\" \")]),_c('st-explanation',[_vm._v(_vm._s(_vm._f(\"formatDate\")(_vm.model.previousPeriodFrom))+\" - \"+_vm._s(_vm._f(\"formatDate\")(_vm.model.previousPeriodTo)))])],1)])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { ReportComparisonViewModel } from '@/services/api/nswag/stapiclient_generated';\nimport StExplanation from '@/components/basic/StExplanation.vue';\n\n@Component({\n components: { StExplanation },\n})\nexport default class ComparisonCard extends Vue {\n @Prop() model!: ReportComparisonViewModel;\n @Prop({ default: false }) loading!: boolean;\n @Prop({ default: '€' }) unit!: string;\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComparisonCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComparisonCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ComparisonCard.vue?vue&type=template&id=21c24fcb&\"\nimport script from \"./ComparisonCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./ComparisonCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"st-list-page\"},[_c('div',{staticClass:\"page-header\"},[_c('div',[_c('h1',[_vm._v(_vm._s(_vm.$t('Berichte')))]),_c('div',{staticClass:\"page-subheading\"},[_vm._v(_vm._s(_vm.$t('Zeiten auf einen Blick')))])])]),_c('div',{staticClass:\"st-list-container\"},[_c('div',{staticClass:\"st-list-header\"},[_c('div',{staticClass:\"w-1/2 flex font-bold items-center ml-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('Filter'))+\" \")])]),_c('div',{staticClass:\"st-list-subheader flex flex-col\"},[_c('div',[_c('time-entry-filter-component',{on:{\"applyFilter\":_vm.applyFilter},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1)]),_c('div',{staticClass:\"relative\"},[_c('div',{staticClass:\"grid lg:grid-cols-3 md:grid-cols-1 gap-4\"},[_c('comparison-card',{attrs:{\"model\":_vm.reportModel.duration,\"loading\":_vm.loading,\"unit\":'h'},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._v(_vm._s(_vm.$t('Stunden')))]},proxy:true},{key:\"subheader\",fn:function(){return [_vm._v(_vm._s(_vm.$t('Erfasste Stunden')))]},proxy:true}])}),(_vm.canViewRates)?_c('comparison-card',{attrs:{\"model\":_vm.reportModel.revenue,\"loading\":_vm.loading,\"unit\":_vm.currency},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._v(_vm._s(_vm.$t('Umsatz')))]},proxy:true},{key:\"subheader\",fn:function(){return [_vm._v(_vm._s(_vm.$t('Umsatz abrechenbarer Stunden')))]},proxy:true}],null,false,2151745516)}):_vm._e(),_c('comparison-card',{attrs:{\"model\":_vm.reportModel.billable,\"loading\":_vm.loading,\"unit\":'%'},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_vm._v(_vm._s(_vm.$t('Verrechenbar')))]},proxy:true},{key:\"subheader\",fn:function(){return [_vm._v(_vm._s(_vm.$t('Anteil verrechenbarer Stunden')))]},proxy:true}])})],1),_c('div',{staticClass:\"grid grid-cols-1 gap-4 mt-4 overflow-y-auto\"},[_c('div',{staticClass:\"report-card relative\",staticStyle:{\"min-height\":\"350px\",\"min-width\":\"768px\"}},[_c('st-loading',{attrs:{\"absolute\":true,\"loading\":_vm.loading}}),(_vm.canViewRates)?_c('div',{staticClass:\"report-card-header\"},[_vm._v(_vm._s(_vm.$t('Zeit und Umsatz')))]):_c('div',{staticClass:\"report-card-header\"},[_vm._v(_vm._s(_vm.$t('Zeiten')))]),_c('div',{staticClass:\"report-card-body\"},[(!_vm.loading)?_c('apexchart',{attrs:{\"height\":\"350\",\"options\":_vm.timeRevenueChartOptions.chartOptions,\"series\":_vm.timeRevenueChartOptions.series}}):_vm._e()],1)],1)]),_c('div',{staticClass:\"grid lg:grid-cols-2 md:grid-cols-1 gap-4 mt-4\"},[_c('div',{staticClass:\"report-card relative\",staticStyle:{\"min-height\":\"350px\"}},[_c('st-loading',{attrs:{\"absolute\":true,\"loading\":_vm.loading}}),_c('div',{staticClass:\"report-card-header\"},[_vm._v(_vm._s(_vm.$t('Zeiten nach Kunde')))]),_c('div',{staticClass:\"report-card-body\"},[(!_vm.loading)?_c('apexchart',{attrs:{\"height\":\"350\",\"options\":_vm.byCustomerChartOptions.chartOptions,\"series\":_vm.byCustomerChartOptions.series}}):_vm._e()],1)],1),_c('div',{staticClass:\"report-card relative\",staticStyle:{\"min-height\":\"350px\"}},[_c('st-loading',{attrs:{\"absolute\":true,\"loading\":_vm.loading}}),_c('div',{staticClass:\"report-card-header\"},[_vm._v(_vm._s(_vm.$t('Zeiten nach Projekt')))]),_c('div',{staticClass:\"report-card-body\"},[(!_vm.loading)?_c('apexchart',{attrs:{\"height\":\"350\",\"options\":_vm.byProjectChartOptions.chartOptions,\"series\":_vm.byProjectChartOptions.series}}):_vm._e()],1)],1)]),(_vm.hasTagData)?_c('div',{staticClass:\"grid lg:grid-cols-2 md:grid-cols-1 gap-4 mt-4\"},[_c('div',{staticClass:\"report-card relative\",staticStyle:{\"min-height\":\"350px\"}},[_c('st-loading',{attrs:{\"absolute\":true,\"loading\":_vm.loading}}),_c('div',{staticClass:\"report-card-header\"},[_vm._v(_vm._s(_vm.$t('Zeiten nach Kategorie')))]),_c('div',{staticClass:\"report-card-body\"},[(!_vm.loading)?_c('apexchart',{attrs:{\"height\":\"350\",\"options\":_vm.byTagChartOptions.chartOptions,\"series\":_vm.byTagChartOptions.series}}):_vm._e()],1)],1)]):_vm._e()]),_c('div',{staticClass:\"report-card mt-4\"},[_c('i',{staticClass:\"far fa-info-circle\"}),_vm._v(\" \"+_vm._s(_vm.$t('Wir freuen uns über Erweiterungsvorschläge und -wünsche für diese Seite über die Supportfunktion oder per E-Mail an'))+\" \"),_c('a',{attrs:{\"href\":\"mailto:mail@spiketime.de\"}},[_vm._v(\"mail@spiketime.de\")])])]),_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport { TimeEntryFilter, ReportViewModel, PieChartPoint, TimeEntryFilterTimeFrame } from '@/services/api/nswag/stapiclient_generated';\nimport { stReportApi } from '@/services/st-api';\nimport TimeEntryFilterComponent from '@/components/timeentry-filter/TimeEntryFilterComponent.vue';\nimport SlideIn from '@/components/basic/SlideIn.vue';\nimport ComparisonCard from '@/views/Report/ComparisonCard.vue';\nimport {UserStore} from '@/store/user-module';\nimport {roundToTwo} from '@/utlitities/helper';\n\nComponent.registerHooks(['beforeRouteUpdate']);\n\n@Component({\n components: { ComparisonCard, SlideIn, TimeEntryFilterComponent },\n})\nexport default class Reports extends Vue {\n private filter: TimeEntryFilter = TimeEntryFilter.fromJS({\n timeframe: TimeEntryFilterTimeFrame.ThisMonth,\n });\n private loading = true;\n\n byTagChartOptions = {};\n byCustomerChartOptions = {};\n byProjectChartOptions = {};\n\n public reportModel: ReportViewModel = ReportViewModel.fromJS({ duration: {}, revenue: {}, billable: {}, customerPieData: {} });\n\n async applyFilter() {\n await this.loadData();\n }\n\n async loadData() {\n this.loading = true;\n this.reportModel = await stReportApi.get(this.filter);\n\n await this.generateByCustomer();\n await this.generateByProject();\n await this.generateByTags();\n this.loading = false;\n }\n\n get canViewRates() {\n return UserStore.userSettings.CanViewRates && !UserStore.userSettings.noRates;\n }\n\n get currency(){\n return UserStore.userSettings.currency;\n }\n\n get hasTagData(){\n return (this.byTagChartOptions as any)?.series?.length\n }\n\n private getDonutChatOptions(data: PieChartPoint[] | undefined) {\n return {\n chart: {\n type: 'donut'\n },\n labels: data!.map((_) => _.label),\n colors: ['#2980B9', '#5CB85C', '#5BC0DE', '#F0AD4E', '#D9534F', '#428BCA', '#B57C20', '#4AC499', '#A6D9E2', '#C44AB2', '#4AC45C', '#E2AFA6', '#D38678', '#C44A75'],\n tooltip: {\n y: {\n formatter: (value: number) => roundToTwo(value) + ' h'\n }\n },\n legend: {\n formatter: (seriesName: any, opts: any) => {\n return seriesName.length > 35 ? seriesName.substring(0,35) + '...' : seriesName;\n }\n },\n responsive: [\n {\n breakpoint: 480,\n options: {\n chart: {\n width: 200,\n },\n legend: {\n position: 'bottom',\n },\n },\n },\n ],\n };\n }\n\n async generateByTags() {\n this.byTagChartOptions = {\n series: this.reportModel.tagsPieData!.map((_) => _.value),\n chartOptions: this.getDonutChatOptions(this.reportModel.tagsPieData),\n };\n\n (this.byTagChartOptions as any).chartOptions.labels = this.reportModel.tagsPieData!.map((_) => _.label);\n }\n\n async generateByCustomer() {\n this.byCustomerChartOptions = {\n series: this.reportModel.customerPieData!.map((_) => _.value),\n chartOptions: this.getDonutChatOptions(this.reportModel.customerPieData),\n };\n\n (this.byCustomerChartOptions as any).chartOptions.labels = this.reportModel.customerPieData!.map((_) => _.label);\n }\n\n async generateByProject() {\n this.byProjectChartOptions = {\n series: this.reportModel.projectPieData!.map((_) => _.value),\n chartOptions: this.getDonutChatOptions(this.reportModel.projectPieData),\n };\n }\n\n get timeRevenueChartOptions() {\n let data = {\n series: [\n {\n name: 'Stunden',\n type: 'bar',\n data: this.reportModel?.timeFrameModel?.map((entry) => entry.hours),\n },\n {\n name: 'Umsatz',\n type: 'line',\n data: this.reportModel?.timeFrameModel?.map((entry) => entry.revenue),\n },\n ],\n chartOptions: {\n chart: {\n height: 350\n },\n colors: ['#2980b9', '#5cb85c'],\n plotOptions: {\n bar: {\n endingShapes: 'round',\n columnWidth: '50px',\n },\n },\n stroke: {\n width: [0, 3],\n },\n dataLabels: {\n enabled: false,\n },\n labels: this.reportModel?.timeFrameModel?.map((entry) => {\n if (this.reportModel?.displayTimeChartDaily) {\n return this.$options.filters?.formatDate(entry.date);\n } else {\n return this.$options.filters?.formatMonth(entry.date);\n }\n }),\n xaxis: {\n type: 'string',\n },\n yaxis: [\n {\n title: {\n text: this.$t('Stunden').toString(),\n },\n labels: {\n formatter: (value: any) => {\n return this.$options.filters?.formatNumber(value);\n },\n },\n },\n {\n title: {\n text: this.$t('Umsatz').toString(),\n },\n opposite: true,\n labels: {\n formatter: (value: any) => {\n return this.$options.filters?.formatNumber(value);\n },\n },\n },\n ],\n },\n };\n\n if (!this.canViewRates) {\n data.series.splice(1, 1);\n data.chartOptions.yaxis.splice(1, 1);\n data.chartOptions.colors.splice(1, 1);\n (data.chartOptions.chart as any).type = 'bar';\n }\n\n return data;\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reports.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reports.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Reports.vue?vue&type=template&id=d3f20d00&\"\nimport script from \"./Reports.vue?vue&type=script&lang=ts&\"\nexport * from \"./Reports.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}