From c62c3fa9389619c32c9babf99ebb85d01685ef70 Mon Sep 17 00:00:00 2001 From: swtmply Date: Fri, 14 Apr 2023 00:40:50 +0800 Subject: [PATCH] IO-2240 total for productive hours in summary --- ...scoreboard-timetickets.stats.component.jsx | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/client/src/components/scoreboard-timetickets/scoreboard-timetickets.stats.component.jsx b/client/src/components/scoreboard-timetickets/scoreboard-timetickets.stats.component.jsx index 0b1b9b6bf..3a25d4957 100644 --- a/client/src/components/scoreboard-timetickets/scoreboard-timetickets.stats.component.jsx +++ b/client/src/components/scoreboard-timetickets/scoreboard-timetickets.stats.component.jsx @@ -1,5 +1,5 @@ import { Card, Col, Row, Statistic, Table, Typography } from "antd"; -import React from "react"; +import React, { useMemo } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; @@ -62,7 +62,7 @@ export function ScoreboardTicketsStats({ data, bodyshop }) { key: "efficiencyoverperiod", render: (text, record) => `${( - (record.totalOverPeriod / (record.actualTotalOverPeriod || .1)) * + (record.totalOverPeriod / (record.actualTotalOverPeriod || 0.1)) * 100 ).toFixed(1)} %`, }, @@ -74,6 +74,23 @@ export function ScoreboardTicketsStats({ data, bodyshop }) { }) : []; + const totalEffieciencyOverPeriod = useMemo( + () => + Object.keys(data?.employees ?? []) + .map((key) => { + return { employee_number: key, ...data.employees[key] }; + }) + .map((e) => + ( + (e.totalOverPeriod / (e.actualTotalOverPeriod || 0.1)) * + 100 + ).toFixed(1) + ) + .reduce((acc, prev) => acc + Number(prev), 0) + .toFixed(1), + [data] + ); + return ( @@ -113,6 +130,12 @@ export function ScoreboardTicketsStats({ data, bodyshop }) { value={data.totalOverPeriod} /> + + + {t("scoreboard.labels.calendarperiod")} @@ -121,7 +144,7 @@ export function ScoreboardTicketsStats({ data, bodyshop }) {