From 1f8575140497eb2382f32d3ccb2e8fc578a186cf Mon Sep 17 00:00:00 2001 From: jfrye122 Date: Thu, 11 May 2023 15:09:56 -0400 Subject: [PATCH] updated costcenterselector --- components/Selects/select-cost-center.jsx | 45 +++++----- .../screen-time-ticket-browser.component.jsx | 89 +++++++++++++++---- .../screen-time-ticket-create.component.jsx | 22 +---- 3 files changed, 103 insertions(+), 53 deletions(-) diff --git a/components/Selects/select-cost-center.jsx b/components/Selects/select-cost-center.jsx index d11d82e..1925d85 100644 --- a/components/Selects/select-cost-center.jsx +++ b/components/Selects/select-cost-center.jsx @@ -5,12 +5,9 @@ import { Dropdown } from "react-native-element-dropdown"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; -import { - selectCurrentTimeTicketJob, - selectCurrentTimeTicketJobId, - } from "../../redux/app/app.selectors"; import { selectBodyshop } from "../../redux/user/user.selectors"; import { QUERY_EMPLOYEE_BY_ID } from "../../graphql/employees.queries"; +import { useEffect } from "react"; const data = [ { label: "Item 1", value: "1" }, @@ -26,20 +23,27 @@ const data = [ // const mapDispatchToProps = {}; -export function SelectCostCenter(props) { +export function CostCenterSelect(props) { + const currentRatesNCostCenters = props.currentRatesNCostCenters; + const [value, setValue] = useState(null); + const [isFocus, setIsFocus] = useState(false); + const [costCenters, setCostCenters] = useState([]); - const [selectorData, setSelectorData] = useState([]); - const [value, setValue] = useState(null); - const [isFocus, setIsFocus] = useState(false); - - -// const { loading, error, data } = useQuery(QUERY_EMPLOYEE_BY_ID, { -// variables: { id: technician.id,}, -// fetchPolicy: "network-only", -// nextFetchPolicy: "network-only", -// } -// ); + useEffect(() => { + if (typeof currentRatesNCostCenters !== "undefined") { + var count = Object.keys(currentRatesNCostCenters).length; + let selectDataArray = []; + for (let i = 0; i < count; i++) { + selectDataArray.push({ + value: currentRatesNCostCenters[i].cost_center, + label: currentRatesNCostCenters[i].cost_center, + rate: currentRatesNCostCenters[i].rate, + }); + } + setCostCenters(selectDataArray); + } + }, [currentRatesNCostCenters]); return ( @@ -49,18 +53,19 @@ export function SelectCostCenter(props) { selectedTextStyle={styles.selectedTextStyle} inputSearchStyle={styles.inputSearchStyle} iconStyle={styles.iconStyle} - data={props.selectorData} + data={costCenters} search maxHeight={300} labelField="label" valueField="value" placeholder={!isFocus ? "Select Cost Center" : "..."} searchPlaceholder="Search..." - value={value} + value={props.currentValue?.value} onFocus={() => setIsFocus(true)} onBlur={() => setIsFocus(false)} onChange={(item) => { - setValue(item.value); + props.onValueSelected(item); + //setValue(item.value); setIsFocus(false); }} /> @@ -68,7 +73,7 @@ export function SelectCostCenter(props) { ); } -export default connect(null, null)(SelectCostCenter); +export default connect(null, null)(CostCenterSelect); const styles = StyleSheet.create({ container: { 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 188bfde..b80e2f2 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 from "react"; +import React, { useEffect, useState } from "react"; import { View, Text } from "react-native"; import { connect } from "react-redux"; @@ -15,13 +15,22 @@ import { Button } from "react-native-paper"; //temp import { useQuery } from "@apollo/client"; import ErrorDisplay from "../error-display/error-display.component"; - +import { selectBodyshop } from "../../redux/user/user.selectors"; +import { JobSearchSelect } from "../Selects/select-job-name"; +import { CostCenterSelect } from "../Selects/select-cost-center"; +import { + selectCurrentTimeTicketJob, + selectCurrentTimeTicketJobId, +} from "../../redux/timetickets/timetickets.selectors"; const mapStateToProps = createStructuredSelector({ currentEmployee: selectCurrentEmployee, - theRates: selectRates, loaderGettingRates: selectGettingRates, signingError: selectSignInError, + currentBodyshop: selectBodyshop, + currentRatesNCostCenters: selectRates, + currentSelectedTimeTicketJobId: selectCurrentTimeTicketJobId, + currentSelectedTimeTicketJob: selectCurrentTimeTicketJob, }); const mapDispatchToProps = (dispatch) => ({ @@ -33,33 +42,83 @@ export function ScreenTimeTicketBrowser({ loaderGettingRates, currentEmployee, employeeGetRatesStart, - signingError + signingError, + currentBodyshop, + currentRatesNCostCenters, + currentSelectedTimeTicketJob, + currentSelectedTimeTicketJobId, }) { -const employeeId = currentEmployee.technician.id; + //const employeeId = currentEmployee.technician.id; + const [currentCC, setCurrentCC] = useState(null); // const { error, data } = useQuery(QUERY_EMPLOYEE_BY_ID, { // variables: { id: currentEmployee.technician.id }, // }); // const signingErrorMsg = error ? () : null; - // const signingErrorMsg = signingError ? () : null; + // const signingErrorMsg = signingError ? () : null; const getRates = (currentEmployee) => { employeeGetRatesStart(currentEmployee.technician.id); }; - + const createTheTimeTicketOBJ = ( + currentEmployee, + currentBodyshop, + currentCC + ) => { + console.log("currentCC", currentCC.value); + console.log("bodyshopid", currentBodyshop.id); + console.log("employeeid", currentEmployee.technician.id); + console.log(currentBodyshop); + // const temp = { + // timeTicketInput: [ + // { + // bodyshopid: currentBodyshop?.id, + // employeeid: currentEmployee?.technician?.id, + // date: "2023-05-11", //moment(theTime).format("YYYY-MM-DD"), + // //clockon: moment(theTime), + // jobid: "temp",//values.jobid, + // cost_center: "temp",//values.cost_center, + // ciecacode: currentBodyshop?.cdk_dealerid || currentBodyshop?.pbs_serialnumber + // ? values.cost_center + // : Object.keys(currentBodyshop.md_responsibility_centers.defaults.costs).find((key) => { + // return (currentBodyshop.md_responsibility_centers.defaults.costs[key] === "temp");//values.cost_center); + // }), + // flat_rate: currentEmployee.technician.flat_rate, + // rate: 1, + // }, + // ], + // }; + // console.log(temp); + //employeeGetRatesStart(currentEmployee.technician.id); + }; return ( Time Ticket List goes here - {/* {signingErrorMsg} */} + mode="outlined" + loading={loaderGettingRates} + //onPress={() => getRates(currentEmployee)} + onPress={() => + createTheTimeTicketOBJ(currentEmployee, currentBodyshop, currentCC) + } + > + text here + + {/* {signingErrorMsg} */} + + ); } -export default connect(mapStateToProps, mapDispatchToProps)(ScreenTimeTicketBrowser); \ No newline at end of file +export default connect( + mapStateToProps, + mapDispatchToProps +)(ScreenTimeTicketBrowser); diff --git a/components/time-ticket/screen-time-ticket-create.component.jsx b/components/time-ticket/screen-time-ticket-create.component.jsx index a9ca0e4..1a45364 100644 --- a/components/time-ticket/screen-time-ticket-create.component.jsx +++ b/components/time-ticket/screen-time-ticket-create.component.jsx @@ -5,7 +5,7 @@ import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { Button, Dialog, TextInput } from "react-native-paper"; -import { SelectCostCenter } from "../Selects/select-cost-center"; +import { CostCenterSelect } from "../Selects/select-cost-center"; import { JobSearchSelect } from "../Selects/select-job-name"; import DateTimePickerModal from "react-native-modal-datetime-picker"; import { @@ -31,7 +31,8 @@ export function TimeTicketCreate({ const [isDatePickerVisible, setDatePickerVisibility] = useState(false); const [date2, setDate2] = useState(new Date()); - const [costCenters, setCostCenters] = useState([]); + + const [currentCC, setCurrentCC] = useState(null); const showDatePicker = () => { setDatePickerVisibility(true); @@ -49,20 +50,6 @@ export function TimeTicketCreate({ //TODO update with start call for create time ticket }; - useEffect(() => { - if (typeof currentRatesNCostCenters !== 'undefined') { - var count = Object.keys(currentRatesNCostCenters).length; - let selectDataArray = []; - for (let i = 0; i < count; i++) { - selectDataArray.push({ - value: currentRatesNCostCenters[i].cost_center, - label: currentRatesNCostCenters[i].cost_center, - }); - } - setCostCenters(selectDataArray); - } - }, []); - return ( @@ -106,8 +93,7 @@ export function TimeTicketCreate({ label={"Employee"} /> - - +