diff --git a/apps/web-app/app/components/chart/KitchenChecks.client.vue b/apps/web-app/app/components/chart/KitchenChecks.client.vue index 1e7221ad..cd99166c 100644 --- a/apps/web-app/app/components/chart/KitchenChecks.client.vue +++ b/apps/web-app/app/components/chart/KitchenChecks.client.vue @@ -59,10 +59,11 @@ type DataRecord = { commonAverageCheck: number } -const { period, range, values } = defineProps<{ +const { period, range, values, metrics } = defineProps<{ period: Period range: Range - values: { date: string, checks: number, averageCheck: number, commonAverageCheck: number }[] + values: { date: string, checks: number, averageCheck: number }[] + metrics: { date: string, checks: number, averageCheck: number, total: number, averageTotal: number }[] }>() const cardRef = useTemplateRef('cardRef') @@ -81,12 +82,13 @@ watch([() => period, () => range, () => values], () => { data.value = dates.map((date) => { const dateStr = format(date, 'yyyy-MM-dd') const value = values.find((d) => d.date.startsWith(dateStr)) + const metric = metrics.find((d) => d.date.startsWith(dateStr)) return { date, checks: value?.checks ?? 0, averageCheck: value?.averageCheck ?? 0, - commonAverageCheck: value?.commonAverageCheck ?? 0, + commonAverageCheck: metric?.averageCheck ?? 0, } }) }, { immediate: true }) diff --git a/apps/web-app/app/components/chart/KitchenRevenue.client.vue b/apps/web-app/app/components/chart/KitchenRevenue.client.vue index 3abbd96a..670d4f03 100644 --- a/apps/web-app/app/components/chart/KitchenRevenue.client.vue +++ b/apps/web-app/app/components/chart/KitchenRevenue.client.vue @@ -60,10 +60,11 @@ type DataRecord = { commonTotal: number } -const { period, range, values } = defineProps<{ +const { period, range, values, metrics } = defineProps<{ period: Period range: Range - values: { date: string, total: number, checks: number, averageCheck: number, commonTotal: number }[] + values: { date: string, total: number, checks: number, averageCheck: number }[] + metrics: { date: string, checks: number, averageCheck: number, total: number, averageTotal: number }[] }>() const cardRef = useTemplateRef('cardRef') @@ -82,13 +83,14 @@ watch([() => period, () => range, () => values], () => { data.value = dates.map((date) => { const dateStr = format(date, 'yyyy-MM-dd') const value = values.find((d) => d.date.startsWith(dateStr)) + const metric = metrics.find((d) => d.date.startsWith(dateStr)) return { date, total: value?.total ?? 0, checks: value?.checks ?? 0, averageCheck: value?.averageCheck ?? 0, - commonTotal: value?.commonTotal ?? 0, + commonTotal: metric?.averageTotal ?? 0, } }) }, { immediate: true }) diff --git a/apps/web-app/app/pages/kitchen/[id]/finance.vue b/apps/web-app/app/pages/kitchen/[id]/finance.vue index 072ec350..70e1da72 100644 --- a/apps/web-app/app/pages/kitchen/[id]/finance.vue +++ b/apps/web-app/app/pages/kitchen/[id]/finance.vue @@ -7,13 +7,15 @@ @@ -24,11 +26,12 @@ import { sub } from 'date-fns' const { params } = useRoute('kitchen-id') -const { data } = useFetch(`/api/kitchen/id/${params.id}/revenue`) +const { data: revenues } = useFetch(`/api/kitchen/id/${params.id}/revenue`) +const { data: metrics } = useFetch('/api/network/metrics') const today = new Date() const range = shallowRef({ - start: sub(today, { days: 14 - 1 }), + start: sub(today, { days: 30 - 1 }), end: today, }) const period = ref('daily') diff --git a/apps/web-app/server/api/kitchen/revenue/iiko-daily.post.ts b/apps/web-app/server/api/kitchen/revenue/iiko-daily.post.ts index a04b1414..b45a09a5 100644 --- a/apps/web-app/server/api/kitchen/revenue/iiko-daily.post.ts +++ b/apps/web-app/server/api/kitchen/revenue/iiko-daily.post.ts @@ -121,7 +121,7 @@ async function parseFileAndUpdateData(file: MultiPartData) { }) } - const parsedKitchens: { name: string, total: number, checks: number, averageCheck: number, commonAverageCheck: number, commonTotal: number }[] = [] + const parsedKitchens: { name: string, total: number, checks: number, averageCheck: number }[] = [] for (const row of dataRows) { const name = row[indexOfName] @@ -139,22 +139,15 @@ async function parseFileAndUpdateData(file: MultiPartData) { total, checks, averageCheck, - commonAverageCheck: 0, - commonTotal: 0, }) } // Update common data - const commonAverageCheck = Math.round(parsedKitchens.reduce((acc, curr) => acc + curr.averageCheck, 0) / parsedKitchens.length) - const commonTotal = Math.round(parsedKitchens.reduce((acc, curr) => acc + curr.total, 0) / parsedKitchens.length) + const averageCheck = Math.round(parsedKitchens.reduce((acc, curr) => acc + curr.averageCheck, 0) / parsedKitchens.length) + const averageTotal = Math.round(parsedKitchens.reduce((acc, curr) => acc + curr.total, 0) / parsedKitchens.length) const checks = Math.round(parsedKitchens.reduce((acc, curr) => acc + curr.checks, 0)) const total = Math.round(parsedKitchens.reduce((acc, curr) => acc + curr.total, 0)) - for (const kitchen of parsedKitchens) { - kitchen.commonAverageCheck = commonAverageCheck - kitchen.commonTotal = commonTotal - } - // Create or update metrics const metrics = await repository.network.listMetrics() const existingMetrics = metrics.find((metric) => metric.date === dateOnly) @@ -163,15 +156,15 @@ async function parseFileAndUpdateData(file: MultiPartData) { date: dateOnly, checks, total, - averageCheck: commonAverageCheck, - averageTotal: commonTotal, + averageCheck, + averageTotal, }) } else { await repository.network.updateMetrics(existingMetrics.id, { checks, total, - averageCheck: commonAverageCheck, - averageTotal: commonTotal, + averageCheck, + averageTotal, }) } @@ -192,16 +185,12 @@ async function parseFileAndUpdateData(file: MultiPartData) { total: kitchen.total, checks: kitchen.checks, averageCheck: kitchen.averageCheck, - commonAverageCheck: kitchen.commonAverageCheck, - commonTotal: kitchen.commonTotal, }) } else { await repository.kitchen.updateRevenue(revenue.id, { total: kitchen.total, checks: kitchen.checks, averageCheck: kitchen.averageCheck, - commonAverageCheck: kitchen.commonAverageCheck, - commonTotal: kitchen.commonTotal, }) } diff --git a/apps/web-app/server/api/network/metrics/index.get.ts b/apps/web-app/server/api/network/metrics/index.get.ts new file mode 100644 index 00000000..a3be6765 --- /dev/null +++ b/apps/web-app/server/api/network/metrics/index.get.ts @@ -0,0 +1,5 @@ +import { repository } from '@roll-stack/database' + +export default defineEventHandler(async () => { + return repository.network.listMetrics() +}) diff --git a/packages/database/src/tables.ts b/packages/database/src/tables.ts index 1f7c5d53..d39dfa34 100644 --- a/packages/database/src/tables.ts +++ b/packages/database/src/tables.ts @@ -83,7 +83,6 @@ export const partners = pgTable('partners', { surname: varchar('surname').notNull().default(''), avatarUrl: varchar('avatar_url'), city: varchar('city'), - legal: varchar('legal'), legalEntityId: cuid2('legal_entity_id').references(() => partnerLegalEntities.id), })