+
-
+
{t("timetickets.fields.cost_center")}
@@ -40,12 +40,23 @@ export function LaborAllocationsTable({ joblines, timetickets, bodyshop }) {
{t("jobs.labels.hrs_claimed")}
+
+ {t("jobs.labels.difference")}
+
{totals.map((t, idx) => (
- {t.cost_center}
- {t.total}
- {t.claimed}
+ {t.cost_center}
+ {t.total.toFixed(2)}
+ {t.claimed.toFixed(2)}
+
+ 0 ? "green" : "red",
+ }}>
+ {(t.total - t.claimed).toFixed(2)}
+
+
))}
diff --git a/client/src/graphql/invoices.queries.js b/client/src/graphql/invoices.queries.js
index f6cb7c443..f1bd0d12d 100644
--- a/client/src/graphql/invoices.queries.js
+++ b/client/src/graphql/invoices.queries.js
@@ -49,6 +49,9 @@ export const QUERY_INVOICES_BY_JOBID = gql`
total
invoice_number
date
+ federal_tax_rate
+ state_tax_rate
+ local_tax_rate
invoicelines {
actual_price
quantity
@@ -56,6 +59,7 @@ export const QUERY_INVOICES_BY_JOBID = gql`
cost_center
id
line_desc
+ applicable_taxes
}
}
}
diff --git a/client/src/pages/invoice-detail/invoice-detail.page.component.jsx b/client/src/pages/invoice-detail/invoice-detail.page.component.jsx
deleted file mode 100644
index 6a3885aba..000000000
--- a/client/src/pages/invoice-detail/invoice-detail.page.component.jsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import React from "react";
-
-export default function InvoiceDetailPageComponent() {
- return
Invoice Detail Page Component
;
-}
diff --git a/client/src/pages/invoice-detail/invoice-detail.page.container.jsx b/client/src/pages/invoice-detail/invoice-detail.page.container.jsx
deleted file mode 100644
index 966c4441e..000000000
--- a/client/src/pages/invoice-detail/invoice-detail.page.container.jsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import React from "react";
-import { useParams } from "react-router-dom";
-import InvoiceDetailPageComponent from "./invoice-detail.page.component";
-import { useQuery } from "@apollo/react-hooks";
-import { QUERY_INVOICE_BY_PK } from "../../graphql/invoices.queries";
-import AlertComponent from "../../components/alert/alert.component";
-import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component";
-import { Form } from "antd";
-
-export default function InvoiceDetailPageContainer() {
- const { invoiceId } = useParams();
- const [form] = Form.useForm();
-
- const { loading, error, data } = useQuery(QUERY_INVOICE_BY_PK, {
- variables: { invoiceid: invoiceId },
- skip: !!!invoiceId,
- });
-
- if (loading) return
;
- if (error) return
;
-
- return (
-
- );
-}
diff --git a/client/src/pages/jobs-detail/jobs-detail.page.component.jsx b/client/src/pages/jobs-detail/jobs-detail.page.component.jsx
index 5bd58cd38..039d0b697 100644
--- a/client/src/pages/jobs-detail/jobs-detail.page.component.jsx
+++ b/client/src/pages/jobs-detail/jobs-detail.page.component.jsx
@@ -1,28 +1,16 @@
-import Icon, {
- BarsOutlined,
- CalendarFilled,
- DollarCircleOutlined,
- FileImageFilled,
- ToolFilled,
-} from "@ant-design/icons";
+import Icon, { BarsOutlined, CalendarFilled, DollarCircleOutlined, FileImageFilled, ToolFilled } from "@ant-design/icons";
import { Form, notification, Tabs } from "antd";
import moment from "moment";
+import queryString from "query-string";
import React, { lazy, Suspense } from "react";
import { useTranslation } from "react-i18next";
-import {
- FaHardHat,
- FaHistory,
- FaInfo,
- FaRegStickyNote,
- FaShieldAlt,
-} from "react-icons/fa";
-import { useHistory, useLocation } from "react-router-dom";
-import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component";
-import queryString from "query-string";
+import { FaHardHat, FaHistory, FaInfo, FaRegStickyNote, FaShieldAlt } from "react-icons/fa";
import { connect } from "react-redux";
+import { useHistory, useLocation } from "react-router-dom";
import { createStructuredSelector } from "reselect";
-import { selectBodyshop } from "../../redux/user/user.selectors";
import { CalculateJob } from "../../components/job-totals-table/job-totals.utility";
+import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component";
+import { selectBodyshop } from "../../redux/user/user.selectors";
const JobsLinesContainer = lazy(() =>
import("../../components/job-detail-lines/job-lines.container")
@@ -127,14 +115,6 @@ export function JobsDetailPage({
fallback={
}>
-
-