Files
imexmobile/components/screen-time-ticket-browser/screen-time-ticket-browser.component.jsx
2023-05-12 11:25:17 -04:00

154 lines
5.1 KiB
JavaScript

import React, { useCallback, useEffect, useState } from "react";
import { View, Text } from "react-native";
import { connect } from "react-redux";
import { employeeGetRatesStart } from "../../redux/employee/employee.actions";
import { createStructuredSelector } from "reselect";
import {
selectCurrentEmployee,
selectRates,
selectGettingRates,
selectSignInError,
} from "../../redux/employee/employee.selectors";
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";
import { JobIdSearchSelect } from "../Selects/select-job-id";
const mapStateToProps = createStructuredSelector({
currentEmployee: selectCurrentEmployee,
loaderGettingRates: selectGettingRates,
signingError: selectSignInError,
currentBodyshop: selectBodyshop,
currentRatesNCostCenters: selectRates,
currentSelectedTimeTicketJobId: selectCurrentTimeTicketJobId,
currentSelectedTimeTicketJob: selectCurrentTimeTicketJob,
});
const mapDispatchToProps = (dispatch) => ({
employeeGetRatesStart: (employeeId) =>
dispatch(employeeGetRatesStart(employeeId)),
});
export function ScreenTimeTicketBrowser({
loaderGettingRates,
currentEmployee,
employeeGetRatesStart,
signingError,
currentBodyshop,
currentRatesNCostCenters,
currentSelectedTimeTicketJob,
currentSelectedTimeTicketJobId,
}) {
//const employeeId = currentEmployee.technician.id;
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 },
// });
// const signingErrorMsg = error ? (<ErrorDisplay errorMessage={error.message} />) : null;
// const signingErrorMsg = signingError ? (<ErrorDisplay errorMessage={signingError} />) : null;
const wrapperSetCurrentSJobState = useCallback(val => {
setCurrentSJob(val);
}, [setCurrentSJob]);
const getRates = (currentEmployee) => {
employeeGetRatesStart(currentEmployee.technician.id);
};
const createTheTimeTicketOBJ = (
currentEmployee,
currentBodyshop,
currentSCC,
currentSJob,
currentSJobId
) => {
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);
// 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 (
<View>
<Text>Time Ticket List goes here</Text>
<Button
mode="outlined"
loading={loaderGettingRates}
//onPress={() => getRates(currentEmployee)}
onPress={() =>
createTheTimeTicketOBJ(currentEmployee, currentBodyshop, currentSCC)
}
>
<Text>text here</Text>
</Button>
{/* {signingErrorMsg} */}
<JobIdSearchSelect
currentValue={currentSJobId}
//onValueSelected={setCurrentSJobId}
convertedOnly={!currentBodyshop.tt_allow_post_to_invoiced}
notExported={!currentBodyshop.tt_allow_post_to_invoiced}
/>
<JobSearchSelect
currentValue={currentSJob}
onValueSelected={setCurrentSJob}
convertedOnly={!currentBodyshop.tt_allow_post_to_invoiced}
notExported={!currentBodyshop.tt_allow_post_to_invoiced}
/>
<CostCenterSelect
currentValue={currentSCC}
currentRatesNCostCenters={currentRatesNCostCenters}
onValueSelected={setCurrentSCC}
/>
<Button
mode="outlined"
//loading={loaderClockIn}
//onPress={() => clockIn()}
>
<Text>Clock In</Text>
</Button>
</View>
);
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(ScreenTimeTicketBrowser);