diff --git a/components/Selects/select-job-id.jsx b/components/Selects/select-job-id.jsx
new file mode 100644
index 0000000..49f54cd
--- /dev/null
+++ b/components/Selects/select-job-id.jsx
@@ -0,0 +1,188 @@
+import { useLazyQuery } from "@apollo/client";
+import React, { forwardRef, useState, useEffect } from "react";
+import { useTranslation } from "react-i18next";
+import _ from "lodash";
+
+import {
+ SEARCH_JOBS_BY_ID_FOR_AUTOCOMPLETE,
+ SEARCH_JOBS_FOR_AUTOCOMPLETE,
+} from "../../graphql/jobs.queries";
+import { StyleSheet, Text, View } from "react-native";
+import { Dropdown } from "react-native-element-dropdown";
+import { connect } from "react-redux";
+import { OwnerNameDisplayFunction } from "../owner-name-display/owner-name-display.component";
+
+///This Component is for testing select. This is not for prod. Justin
+
+export function JobIdSearchSelect(
+ convertedOnly = false,
+ notInvoiced = false,
+ notExported = true,
+ clm_no = false,
+ onValueSelected,
+ currentValue,
+ ...restProps
+) {
+ const { t } = useTranslation();
+ const [theOptions, setTheOptions] = useState([]);
+
+ const [selectorData, setSelectorData] = useState([]);
+ const [selectedvalue, setSelectedValue] = useState(null);
+ const [isFocus, setIsFocus] = useState(false);
+
+ const [callIdSearch, { loading: idLoading, error: idError, data: idData }] =
+ useLazyQuery(SEARCH_JOBS_BY_ID_FOR_AUTOCOMPLETE);
+
+
+ const [callSearch, { loading, error, data }] = useLazyQuery(
+ SEARCH_JOBS_FOR_AUTOCOMPLETE,
+ {}
+ );
+ const executeSearch = (v) => {
+ console.log("executeSearchWithV:", v);
+ if (v && v !== "") callSearch(v);
+ };
+ const debouncedExecuteSearch = _.debounce(executeSearch, 500);
+
+ const handleSearch = (value) => {
+ console.log("handleSearchWithValue:", value);
+ debouncedExecuteSearch({
+ variables: {
+ search: value,
+ ...(convertedOnly || notExported
+ ? {
+ ...(convertedOnly ? { isConverted: true } : {}),
+ ...(notExported ? { notExported: true } : {}),
+ ...(notInvoiced ? { notInvoiced: true } : {}),
+ }
+ : {}),
+ },
+ });
+ };
+
+ useEffect(() => {
+ console.log("useEfectDependentOn: restProps.value, callIdSearch", restProps);
+ if (restProps.value) {
+ console.log("restPropsValue:", restProps.value);
+ callIdSearch({ variables: { id: restProps.value } });
+ }
+ }, [restProps.value, callIdSearch]);
+
+ useEffect(() => {
+ console.log("useEfectDependentOn: [data, idData]");
+
+ console.log("idDataValue:", (idData && idData.jobs_by_pk ? [idData.jobs_by_pk] : []));
+ console.log("dataValue:", (data && data.search_jobs ? data.search_jobs : []));
+ setTheOptions(
+ _.uniqBy(
+ [
+ ...(idData && idData.jobs_by_pk ? [idData.jobs_by_pk] : []),
+ ...(data && data.search_jobs ? data.search_jobs : []),
+ ],
+ "id"
+ )
+ );
+ }, [data, idData]);
+
+ useEffect(() => {
+ console.log("useEfectDependentOn: [theOptions]");
+ var count = Object.keys(theOptions).length;
+ let selectDataArray = [];
+ for (let i = 0; i < count; i++) {
+ // let o = theOptions[i];
+ selectDataArray.push({
+ value: theOptions[i].id,
+ label: theOptions[i].ro_number,
+
+ // `${clm_no && o.clm_no ? `${o.clm_no} | ` : ""}${
+ // o.ro_number || t("general.labels.na")
+ // } | ${OwnerNameDisplayFunction(o)} | ${o.v_model_yr || ""} ${o.v_make_desc || ""} ${
+ // o.v_model_desc || ""
+ // }`,
+
+ });
+ }
+ setSelectorData(selectDataArray);
+ }, [theOptions]);
+
+
+ return (
+
+ setIsFocus(true)}
+ onBlur={() => setIsFocus(false)}
+ onChange={(item) => {
+ console.log("onChangefired!!!!");
+ console.log("itemSelected", item);
+ setSelectedValue(item.value);
+ // onValueSelected(item);
+ //console.log(item);
+ // setSelectedValue(item.value);
+ // if (onValueSelected) onValueSelected(item.value);
+ setIsFocus(false);
+ }}
+ onChangeText={(search) => {
+ console.log("onChangeTextFired!!!!");
+ handleSearch(search);
+ }}
+ />
+ {/* {theOptions ? console.log(theOptions): null} */}
+
+ );
+}
+
+export default connect(null, null)(JobIdSearchSelect);
+
+const styles = StyleSheet.create({
+ container: {
+ padding: 16,
+ justifyContent: "center",
+ alignContent: "center",
+ },
+ dropdown: {
+ height: 50,
+ borderColor: "gray",
+ borderWidth: 0.5,
+ borderRadius: 8,
+ paddingHorizontal: 8,
+ },
+ icon: {
+ marginRight: 5,
+ },
+ label: {
+ position: "absolute",
+ backgroundColor: "white",
+ left: 22,
+ top: 8,
+ zIndex: 999,
+ paddingHorizontal: 8,
+ fontSize: 14,
+ },
+ placeholderStyle: {
+ fontSize: 16,
+ },
+ selectedTextStyle: {
+ fontSize: 16,
+ },
+ iconStyle: {
+ width: 20,
+ height: 20,
+ },
+ inputSearchStyle: {
+ height: 40,
+ fontSize: 16,
+ },
+});
diff --git a/components/screen-time-ticket-browser/screen-time-ticket-browser.component.jsx b/components/screen-time-ticket-browser/screen-time-ticket-browser.component.jsx
index b80e2f2..66e232b 100644
--- a/components/screen-time-ticket-browser/screen-time-ticket-browser.component.jsx
+++ b/components/screen-time-ticket-browser/screen-time-ticket-browser.component.jsx
@@ -1,4 +1,4 @@
-import React, { useEffect, useState } from "react";
+import React, { useCallback, useEffect, useState } from "react";
import { View, Text } from "react-native";
import { connect } from "react-redux";
@@ -22,6 +22,7 @@ import {
selectCurrentTimeTicketJob,
selectCurrentTimeTicketJobId,
} from "../../redux/timetickets/timetickets.selectors";
+import { JobIdSearchSelect } from "../Selects/select-job-id";
const mapStateToProps = createStructuredSelector({
currentEmployee: selectCurrentEmployee,
@@ -49,7 +50,9 @@ export function ScreenTimeTicketBrowser({
currentSelectedTimeTicketJobId,
}) {
//const employeeId = currentEmployee.technician.id;
- const [currentCC, setCurrentCC] = useState(null);
+ const [currentSCC, setCurrentSCC] = useState(null);
+ const [currentSJob, setCurrentSJob] = useState(null);
+ const [currentSJobId, setCurrentSJobId] = useState(null);
// const { error, data } = useQuery(QUERY_EMPLOYEE_BY_ID, {
// variables: { id: currentEmployee.technician.id },
@@ -57,15 +60,24 @@ export function ScreenTimeTicketBrowser({
// const signingErrorMsg = error ? () : null;
// const signingErrorMsg = signingError ? () : null;
+ const wrapperSetCurrentSJobState = useCallback(val => {
+ setCurrentSJob(val);
+ }, [setCurrentSJob]);
+
+
const getRates = (currentEmployee) => {
employeeGetRatesStart(currentEmployee.technician.id);
};
const createTheTimeTicketOBJ = (
currentEmployee,
currentBodyshop,
- currentCC
+ currentSCC,
+ currentSJob,
+ currentSJobId
) => {
- console.log("currentCC", currentCC.value);
+ console.log("currentSCC", currentSCC.value);
+ console.log("currentSJob", currentSJob.value);
+ console.log("currentSJobId", currentSJobId.value);
console.log("bodyshopid", currentBodyshop.id);
console.log("employeeid", currentEmployee.technician.id);
console.log(currentBodyshop);
@@ -99,21 +111,38 @@ export function ScreenTimeTicketBrowser({
loading={loaderGettingRates}
//onPress={() => getRates(currentEmployee)}
onPress={() =>
- createTheTimeTicketOBJ(currentEmployee, currentBodyshop, currentCC)
+ createTheTimeTicketOBJ(currentEmployee, currentBodyshop, currentSCC)
}
>
text here
{/* {signingErrorMsg} */}
+
+
+
);
}
diff --git a/components/time-ticket/screen-time-ticket-create.component.jsx b/components/time-ticket/screen-time-ticket-create.component.jsx
index 1a45364..50e629c 100644
--- a/components/time-ticket/screen-time-ticket-create.component.jsx
+++ b/components/time-ticket/screen-time-ticket-create.component.jsx
@@ -13,6 +13,7 @@ import {
selectRates,
} from "../../redux/employee/employee.selectors";
import { selectBodyshop } from "../../redux/user/user.selectors";
+import { useCallback } from "react";
//TODO add props needed for call
const mapStateToProps = createStructuredSelector({
@@ -32,7 +33,12 @@ export function TimeTicketCreate({
const [isDatePickerVisible, setDatePickerVisibility] = useState(false);
const [date2, setDate2] = useState(new Date());
- const [currentCC, setCurrentCC] = useState(null);
+ const [currentSCC, setCurrentSCC] = useState(null);
+ const [currentSJob, setCurrentSJob] = useState(null);
+
+ const wrapperSetCurrentSJobState = useCallback(val => {
+ setCurrentSJob(val);
+ }, [setCurrentSJob]);
const showDatePicker = () => {
setDatePickerVisibility(true);
@@ -93,7 +99,7 @@ export function TimeTicketCreate({
label={"Employee"}
/>
-
+