From eccc992cfae1b64fd5d968610bdefe163029f963 Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Thu, 16 Jan 2025 18:28:54 -0800 Subject: [PATCH] IO-2951 RO Guard Labor Warning Signed-off-by: Allan Carr --- .../labor-allocations-table.component.jsx | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/client/src/components/labor-allocations-table/labor-allocations-table.component.jsx b/client/src/components/labor-allocations-table/labor-allocations-table.component.jsx index 57be0b072..1a6b16a7d 100644 --- a/client/src/components/labor-allocations-table/labor-allocations-table.component.jsx +++ b/client/src/components/labor-allocations-table/labor-allocations-table.component.jsx @@ -1,6 +1,5 @@ import { EditFilled } from "@ant-design/icons"; import { Alert, Card, Col, Row, Space, Table, Typography } from "antd"; -import _ from "lodash"; import React, { useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; @@ -9,11 +8,11 @@ import { selectTechnician } from "../../redux/tech/tech.selectors"; import { selectBodyshop } from "../../redux/user/user.selectors"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; import { alphaSort } from "../../utils/sorters"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; import LaborAllocationsAdjustmentEdit from "../labor-allocations-adjustment-edit/labor-allocations-adjustment-edit.component"; +import UpsellComponent, { upsellEnum } from "../upsell/upsell.component"; import "./labor-allocations-table.styles.scss"; import { CalculateAllocationsTotals } from "./labor-allocations-table.utility"; -import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; -import UpsellComponent, { upsellEnum } from "../upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, technician: selectTechnician @@ -65,6 +64,7 @@ export function LaborAllocationsTable({ key: "total", sorter: (a, b) => a.total - b.total, sortOrder: state.sortedInfo.columnKey === "total" && state.sortedInfo.order, + align: "right", render: (text, record) => record.total.toFixed(1) }, { @@ -73,6 +73,7 @@ export function LaborAllocationsTable({ key: "hrs_claimed", sorter: (a, b) => a.claimed - b.claimed, sortOrder: state.sortedInfo.columnKey === "claimed" && state.sortedInfo.order, + align: "right", render: (text, record) => record.claimed && record.claimed.toFixed(1) }, { @@ -81,6 +82,7 @@ export function LaborAllocationsTable({ key: "adjustments", sorter: (a, b) => a.adjustments - b.adjustments, sortOrder: state.sortedInfo.columnKey === "adjustments" && state.sortedInfo.order, + align: "right", render: (text, record) => ( {record.adjustments.toFixed(1)} @@ -100,17 +102,17 @@ export function LaborAllocationsTable({ { title: t("jobs.labels.difference"), dataIndex: "difference", - key: "difference", sorter: (a, b) => a.difference - b.difference, sortOrder: state.sortedInfo.columnKey === "difference" && state.sortedInfo.order, + align: "right", render: (text, record) => ( = 0 ? "green" : "red" + color: record.difference.toFixed(1) >= 0 ? "green" : "red" }} > - {_.round(record.difference, 1)} + {(Math.abs(record.difference) < 0.05 ? 0 : record.difference).toFixed(1)} ) } @@ -129,7 +131,6 @@ export function LaborAllocationsTable({ ellipsis: true, render: (text, record) => `${record.op_code_desc || ""}${record.alt_partm ? ` ${record.alt_partm}` : ""}` }, - { title: t("joblines.fields.act_price"), dataIndex: "act_price", @@ -187,7 +188,7 @@ export function LaborAllocationsTable({ { hrs_total: 0, hrs_claimed: 0, adjustments: 0, difference: 0 } ); - if (summary.difference !== 0 && typeof warningCallback === "function") { + if (Math.abs(summary.difference.toFixed(1)) !== 0 && typeof warningCallback === "function") { warningCallback({ key: "labor", warning: t("jobs.labels.outstandinghours") }); } @@ -217,19 +218,21 @@ export function LaborAllocationsTable({ summary={() => ( - {t("general.labels.totals")} + + {t("general.labels.totals")} + - {summary.hrs_total.toFixed(1)} - {summary.hrs_claimed.toFixed(1)} - {summary.adjustments.toFixed(1)} - + {summary.hrs_total.toFixed(1)} + {summary.hrs_claimed.toFixed(1)} + {summary.adjustments.toFixed(1)} + = 0 ? "green" : "red" + color: summary.difference.toFixed(1) >= 0 ? "green" : "red" }} > - {summary.difference.toFixed(1)} + {(Math.abs(summary.difference) < 0.05 ? 0 : summary.difference).toFixed(1)} @@ -261,11 +264,10 @@ export function LaborAllocationsTable({ )} - {showWarning && summary.difference !== 0 && ( + {showWarning && Math.abs(summary.difference.toFixed(1)) !== 0 && ( )} ); } - export default connect(mapStateToProps, null)(LaborAllocationsTable);