Added employee name to the employee field

This commit is contained in:
jfrye122
2023-05-08 17:19:59 -04:00
parent 79b6decff0
commit 9fc2d4c67c
4 changed files with 104 additions and 19 deletions

View File

@@ -1,11 +1,54 @@
import React from "react";
import { View, Text } from "react-native";
export default function ScreenTimeTicketBrowser() {
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";
const mapStateToProps = createStructuredSelector({
currentEmployee: selectCurrentEmployee,
theRates: selectRates,
loaderGettingRates: selectGettingRates,
signingError: selectSignInError,
});
const mapDispatchToProps = (dispatch) => ({
employeeGetRatesStart: (employeeId) =>
dispatch(employeeGetRatesStart({employeeId})),
});
export function ScreenTimeTicketBrowser({
loaderGettingRates,
currentEmployee,
employeeGetRatesStart,
signingError
}) {
const getRates = (currentEmployee) => {
employeeGetRatesStart(currentEmployee.technician.id);
};
return (
<View>
<Text>Time Ticket List goes here</Text>
<Button
mode="outlined"
loading={loaderGettingRates}
onPress={getRates}
>
<Text>text here</Text>
</Button>
{signingError && <Text>signingError</Text>}
</View>
);
}
export default connect(mapStateToProps, mapDispatchToProps)(ScreenTimeTicketBrowser);

View File

@@ -16,8 +16,9 @@ import DateTimePickerModal from "react-native-modal-datetime-picker";
const mapStateToProps = createStructuredSelector({
currentEmployee: selectCurrentEmployee,
});
const mapDispatchToProps = (dispatch) => ({})
export function TimeTicketCreate() {
export function TimeTicketCreate({currentEmployee}) {
const [isDatePickerVisible, setDatePickerVisibility] = useState(false);
const [date2, setDate2] = useState(new Date());
@@ -47,7 +48,7 @@ export function TimeTicketCreate() {
initialValues={{
jobid: "",
ticketdate: date2.toLocaleDateString(),
employee: "",
employee: currentEmployee.technician.first_name,
costcenter: "",
productivehours: "",
actualhours: "",
@@ -139,7 +140,7 @@ export function TimeTicketCreate() {
);
}
export default connect(null, null)(TimeTicketCreate);
export default connect(mapStateToProps, null)(TimeTicketCreate);
const localStyles = StyleSheet.create({
content: {

View File

@@ -3,11 +3,16 @@ import {
employeeSignInStart,
employeeSignInSuccess,
employeeSignInFailure,
employeeGetRatesStart,
employeeGetRatesSuccess,
employeeGetRatesFailure
} from "./employee.actions";
import { all, call, put, select, takeLatest } from "redux-saga/effects";
import { logImEXEvent } from "../../firebase/firebase.analytics";
import { selectBodyshop } from "../user/user.selectors";
import axios from "axios";
import { client } from "../../graphql/client";
export function* onSignInEmployeeStart() {
yield takeLatest(
@@ -17,9 +22,9 @@ export function* onSignInEmployeeStart() {
}
export function* signInWithEmployeeId({ payload: { employeeId, pin } }) {
try {
logImEXEvent("redux_sign_in_employee_attempt");
logImEXEvent("redux_sign_in_employee_attempt");
//console.loging
console.log("Saga", employeeId, pin, pin);
// console.log("Saga", employeeId, pin, pin);
const bodyshop = yield select(selectBodyshop);
const response = yield call(axios.post, "/tech/login", {
shopid: bodyshop.id,
@@ -38,6 +43,34 @@ export function* signInWithEmployeeId({ payload: { employeeId, pin } }) {
}
}
export function* employeeSagas() {
yield all([call(onSignInEmployeeStart)]);
export function* onEmployeeGetRatesStart() {
yield takeLatest(
EmployeeActionTypes.EMPLOYEE_GET_RATES_START,
getRatesWithEmployeeId
);
}
export function* getRatesWithEmployeeId({ payload }) {
try {
const response = yield client.query({ query: QUERY_EMPLOYEE_BY_ID,
variables: {
id: payload.id,
}
});
logImEXEvent("redux_employee_get_rates_attempt", payload);
const { valid, technician, error } = response.data;
if (valid) {
yield put(employeeGetRatesSuccess(technician));
} else {
yield put(employeeGetRatesFailure(error));
}
} catch (error) {
yield put(employeeGetRatesFailure(error));
console.log("Error while getting employee rates.", error);
Sentry.Native.captureException(error);
}
}
export function* employeeSagas() {
yield all([call(onSignInEmployeeStart), call(employeeGetRatesSuccess)]);
}

View File

@@ -3,14 +3,22 @@ import { createSelector } from "reselect";
const selectEmployee = (state) => state.employee;
export const selectCurrentEmployee = createSelector(
[selectEmployee],
(employee) => employee.currentEmployee
);
[selectEmployee],
(employee) => employee.currentEmployee
);
export const selectSigningIn = createSelector(
[selectEmployee],
(employee) => employee.signingIn
);
export const selectSignInError = createSelector(
[selectEmployee],
(employee) => employee.error
);
[selectEmployee],
(employee) => employee.signingIn
);
export const selectSignInError = createSelector(
[selectEmployee],
(employee) => employee.error
);
export const selectRates = createSelector(
[selectEmployee],
(employee) => employee.currentEmployee.rates
);
export const selectGettingRates = createSelector(
[selectEmployee],
(employee) => employee.gettingRates
);