+
+
+
{" "}
+
+ {
+ e.preventDefault();
+ }}
+ />
+
)}
+ scroll={{ x: "50%", y: "40rem" }}
expandedRowRender={rowExpander}
pagination={{ position: "top", defaultPageSize: 25 }}
columns={columns}
diff --git a/client/src/components/job-detail-cards/job-detail-cards.component.jsx b/client/src/components/job-detail-cards/job-detail-cards.component.jsx
index b00f73d94..eb401d1ac 100644
--- a/client/src/components/job-detail-cards/job-detail-cards.component.jsx
+++ b/client/src/components/job-detail-cards/job-detail-cards.component.jsx
@@ -2,7 +2,7 @@ import {
EditFilled,
FileImageFilled,
PrinterFilled,
- ShoppingFilled,
+ ShoppingFilled
} from "@ant-design/icons";
import { useQuery } from "@apollo/react-hooks";
import { Button, PageHeader, Tag } from "antd";
diff --git a/client/src/components/job-invoices-total/job-invoices-total.component.jsx b/client/src/components/job-invoices-total/job-invoices-total.component.jsx
index b280dffd9..3476031db 100644
--- a/client/src/components/job-invoices-total/job-invoices-total.component.jsx
+++ b/client/src/components/job-invoices-total/job-invoices-total.component.jsx
@@ -1,12 +1,17 @@
-import React from "react";
-import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component";
-import { Statistic, Descriptions } from "antd";
-import { useTranslation } from "react-i18next";
+import { Statistic } from "antd";
import Dinero from "dinero.js";
-
+import React from "react";
+import { useTranslation } from "react-i18next";
+import AlertComponent from "../alert/alert.component";
+import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component";
+import "./job-invoices-total.styles.scss";
export default function JobInvoiceTotals({ loading, invoices, jobTotals }) {
const { t } = useTranslation();
if (loading) return
;
+ if (!!!jobTotals)
+ return (
+
+ );
const totals = JSON.parse(jobTotals);
let invoiceTotals = Dinero({ amount: 0 });
@@ -24,44 +29,26 @@ export default function JobInvoiceTotals({ loading, invoices, jobTotals }) {
const discrepancy = Dinero(totals.parts.parts.total).subtract(invoiceTotals);
return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
);
}
diff --git a/client/src/components/job-invoices-total/job-invoices-total.styles.scss b/client/src/components/job-invoices-total/job-invoices-total.styles.scss
new file mode 100644
index 000000000..d777e83da
--- /dev/null
+++ b/client/src/components/job-invoices-total/job-invoices-total.styles.scss
@@ -0,0 +1,7 @@
+.job-invoices-totals-container {
+ margin: 0rem 2rem;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-evenly;
+ flex-wrap: wrap;
+}
diff --git a/client/src/components/job-totals-table/job-totals-table.component.jsx b/client/src/components/job-totals-table/job-totals-table.component.jsx
index ba262560d..bde7fbf45 100644
--- a/client/src/components/job-totals-table/job-totals-table.component.jsx
+++ b/client/src/components/job-totals-table/job-totals-table.component.jsx
@@ -1,12 +1,12 @@
-import { Col, Descriptions, Row, Statistic } from "antd";
+import { Statistic } from "antd";
import React, { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";
import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component";
-import { CalculateJob } from "./job-totals.utility";
import "./job-totals-table.styles.scss";
+import { CalculateJob } from "./job-totals.utility";
const mapStateToProps = createStructuredSelector({
//currentUser: selectCurrentUser
diff --git a/client/src/components/jobs-detail-financial/jobs-detail-financial.component.jsx b/client/src/components/jobs-detail-financial/jobs-detail-financial.component.jsx
index 6027a644c..39777ba71 100644
--- a/client/src/components/jobs-detail-financial/jobs-detail-financial.component.jsx
+++ b/client/src/components/jobs-detail-financial/jobs-detail-financial.component.jsx
@@ -1,9 +1,9 @@
-import { Col, Divider, Form, Input, InputNumber, Row } from "antd";
+import { Col, Form, Input, Row } from "antd";
import React from "react";
import { useTranslation } from "react-i18next";
+import CurrencyInput from "../form-items-formatted/currency-form-item.component";
import JobTotalsTable from "../job-totals-table/job-totals-table.component";
import FormRow from "../layout-form-row/layout-form-row.component";
-import CurrencyInput from "../form-items-formatted/currency-form-item.component";
export default function JobsDetailFinancials({ job }) {
const { t } = useTranslation();
diff --git a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx
index d6623b366..fb875a8e7 100644
--- a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx
+++ b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx
@@ -6,18 +6,19 @@ import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { Link, useHistory } from "react-router-dom";
import { createStructuredSelector } from "reselect";
+import { setModalContext } from "../../redux/modals/modals.actions";
import { selectBodyshop } from "../../redux/user/user.selectors";
import AddToProduction from "./jobs-detail-header-actions.addtoproduction.util";
-import DuplicateJob from "./jobs-detail-header-actions.duplicate.util";
-import { setModalContext } from "../../redux/modals/modals.actions";
import JobsDetaiLheaderCsi from "./jobs-detail-header-actions.csi.component";
+import DuplicateJob from "./jobs-detail-header-actions.duplicate.util";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
});
const mapDispatchToProps = (dispatch) => ({
- //setUserLanguage: language => dispatch(setUserLanguage(language))
+ setScheduleContext: (context) =>
+ dispatch(setModalContext({ context: context, modal: "schedule" })),
setInvoiceEnterContext: (context) =>
dispatch(setModalContext({ context: context, modal: "invoiceEnter" })),
});
@@ -26,35 +27,47 @@ export function JobsDetailHeaderActions({
job,
bodyshop,
refetch,
+ setScheduleContext,
setInvoiceEnterContext,
}) {
const { t } = useTranslation();
const client = useApolloClient();
const history = useHistory();
const statusmenu = (
-