diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel
index b78241ce0..dd3aa0873 100644
--- a/bodyshop_translations.babel
+++ b/bodyshop_translations.babel
@@ -7530,6 +7530,27 @@
+
+ find
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
printcontract
false
@@ -8621,6 +8642,27 @@
+
+ findcontract
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
noteconvertedfrom
false
@@ -8684,6 +8726,27 @@
+
+ time
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
vehicle
false
diff --git a/client/src/components/contracts-find-modal/contracts-find-modal.component.jsx b/client/src/components/contracts-find-modal/contracts-find-modal.component.jsx
new file mode 100644
index 000000000..d20f98fcc
--- /dev/null
+++ b/client/src/components/contracts-find-modal/contracts-find-modal.component.jsx
@@ -0,0 +1,37 @@
+import { Form, Input } from "antd";
+import React from "react";
+import { useTranslation } from "react-i18next";
+import { connect } from "react-redux";
+import { createStructuredSelector } from "reselect";
+import { selectBodyshop } from "../../redux/user/user.selectors";
+import FormDateTimePicker from "../form-date-time-picker/form-date-time-picker.component";
+
+const mapStateToProps = createStructuredSelector({
+ bodyshop: selectBodyshop,
+});
+
+export default connect(mapStateToProps, null)(PartsReceiveModalComponent);
+
+export function PartsReceiveModalComponent({ bodyshop, form }) {
+ const { t } = useTranslation();
+
+ return (
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/client/src/components/contracts-find-modal/contracts-find-modal.container.jsx b/client/src/components/contracts-find-modal/contracts-find-modal.container.jsx
new file mode 100644
index 000000000..31daf4a4e
--- /dev/null
+++ b/client/src/components/contracts-find-modal/contracts-find-modal.container.jsx
@@ -0,0 +1,169 @@
+import { useLazyQuery } from "@apollo/client";
+import { Button, Form, Modal, Table } from "antd";
+import React, { useEffect } from "react";
+import { useTranslation } from "react-i18next";
+import { connect } from "react-redux";
+import { Link } from "react-router-dom";
+import { createStructuredSelector } from "reselect";
+import { logImEXEvent } from "../../firebase/firebase.utils";
+import { FIND_CONTRACT } from "../../graphql/cccontracts.queries";
+import { toggleModalVisible } from "../../redux/modals/modals.actions";
+import { selectContractFinder } from "../../redux/modals/modals.selectors";
+import { selectBodyshop } from "../../redux/user/user.selectors";
+import { DateTimeFormatter } from "../../utils/DateFormatter";
+import ContractsFindModalComponent from "./contracts-find-modal.component";
+import AlertComponent from "../alert/alert.component";
+
+const mapStateToProps = createStructuredSelector({
+ bodyshop: selectBodyshop,
+ contractFinderModal: selectContractFinder,
+});
+
+const mapDispatchToProps = (dispatch) => ({
+ toggleModalVisible: () => dispatch(toggleModalVisible("contractFinder")),
+});
+
+export function ContractsFindModalContainer({
+ contractFinderModal,
+ toggleModalVisible,
+
+ bodyshop,
+}) {
+ const { t } = useTranslation();
+
+ const { visible } = contractFinderModal;
+
+ const [form] = Form.useForm();
+
+ // const [updateJobLines] = useMutation(UPDATE_JOB_LINE);
+ const [callSearch, { loading, error, data }] = useLazyQuery(FIND_CONTRACT);
+ const handleFinish = async (values) => {
+ logImEXEvent("contract_finder_search");
+
+ //Execute contract find
+
+ callSearch({
+ variables: {
+ fleet:
+ (values.fleet && values.fleet !== "" && values.fleet) || undefined,
+ time: values.time,
+ },
+ });
+ };
+
+ useEffect(() => {
+ if (visible) {
+ form.resetFields();
+ }
+ }, [visible, form]);
+
+ return (
+ toggleModalVisible()}
+ onOk={() => toggleModalVisible()}
+ destroyOnClose
+ forceRender
+ >
+