Added employee name to the employee field
This commit is contained in:
@@ -1,11 +1,54 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { View, Text } from "react-native";
|
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 (
|
return (
|
||||||
<View>
|
<View>
|
||||||
<Text>Time Ticket List goes here</Text>
|
<Text>Time Ticket List goes here</Text>
|
||||||
|
<Button
|
||||||
|
mode="outlined"
|
||||||
|
loading={loaderGettingRates}
|
||||||
|
onPress={getRates}
|
||||||
|
>
|
||||||
|
<Text>text here</Text>
|
||||||
|
</Button>
|
||||||
|
{signingError && <Text>signingError</Text>}
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export default connect(mapStateToProps, mapDispatchToProps)(ScreenTimeTicketBrowser);
|
||||||
@@ -16,8 +16,9 @@ import DateTimePickerModal from "react-native-modal-datetime-picker";
|
|||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
currentEmployee: selectCurrentEmployee,
|
currentEmployee: selectCurrentEmployee,
|
||||||
});
|
});
|
||||||
|
const mapDispatchToProps = (dispatch) => ({})
|
||||||
|
|
||||||
export function TimeTicketCreate() {
|
export function TimeTicketCreate({currentEmployee}) {
|
||||||
const [isDatePickerVisible, setDatePickerVisibility] = useState(false);
|
const [isDatePickerVisible, setDatePickerVisibility] = useState(false);
|
||||||
const [date2, setDate2] = useState(new Date());
|
const [date2, setDate2] = useState(new Date());
|
||||||
|
|
||||||
@@ -47,7 +48,7 @@ export function TimeTicketCreate() {
|
|||||||
initialValues={{
|
initialValues={{
|
||||||
jobid: "",
|
jobid: "",
|
||||||
ticketdate: date2.toLocaleDateString(),
|
ticketdate: date2.toLocaleDateString(),
|
||||||
employee: "",
|
employee: currentEmployee.technician.first_name,
|
||||||
costcenter: "",
|
costcenter: "",
|
||||||
productivehours: "",
|
productivehours: "",
|
||||||
actualhours: "",
|
actualhours: "",
|
||||||
@@ -139,7 +140,7 @@ export function TimeTicketCreate() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default connect(null, null)(TimeTicketCreate);
|
export default connect(mapStateToProps, null)(TimeTicketCreate);
|
||||||
|
|
||||||
const localStyles = StyleSheet.create({
|
const localStyles = StyleSheet.create({
|
||||||
content: {
|
content: {
|
||||||
|
|||||||
@@ -3,11 +3,16 @@ import {
|
|||||||
employeeSignInStart,
|
employeeSignInStart,
|
||||||
employeeSignInSuccess,
|
employeeSignInSuccess,
|
||||||
employeeSignInFailure,
|
employeeSignInFailure,
|
||||||
|
employeeGetRatesStart,
|
||||||
|
employeeGetRatesSuccess,
|
||||||
|
employeeGetRatesFailure
|
||||||
|
|
||||||
} from "./employee.actions";
|
} from "./employee.actions";
|
||||||
import { all, call, put, select, takeLatest } from "redux-saga/effects";
|
import { all, call, put, select, takeLatest } from "redux-saga/effects";
|
||||||
import { logImEXEvent } from "../../firebase/firebase.analytics";
|
import { logImEXEvent } from "../../firebase/firebase.analytics";
|
||||||
import { selectBodyshop } from "../user/user.selectors";
|
import { selectBodyshop } from "../user/user.selectors";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
|
import { client } from "../../graphql/client";
|
||||||
|
|
||||||
export function* onSignInEmployeeStart() {
|
export function* onSignInEmployeeStart() {
|
||||||
yield takeLatest(
|
yield takeLatest(
|
||||||
@@ -17,9 +22,9 @@ export function* onSignInEmployeeStart() {
|
|||||||
}
|
}
|
||||||
export function* signInWithEmployeeId({ payload: { employeeId, pin } }) {
|
export function* signInWithEmployeeId({ payload: { employeeId, pin } }) {
|
||||||
try {
|
try {
|
||||||
logImEXEvent("redux_sign_in_employee_attempt");
|
logImEXEvent("redux_sign_in_employee_attempt");
|
||||||
//console.loging
|
//console.loging
|
||||||
console.log("Saga", employeeId, pin, pin);
|
// console.log("Saga", employeeId, pin, pin);
|
||||||
const bodyshop = yield select(selectBodyshop);
|
const bodyshop = yield select(selectBodyshop);
|
||||||
const response = yield call(axios.post, "/tech/login", {
|
const response = yield call(axios.post, "/tech/login", {
|
||||||
shopid: bodyshop.id,
|
shopid: bodyshop.id,
|
||||||
@@ -38,6 +43,34 @@ export function* signInWithEmployeeId({ payload: { employeeId, pin } }) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function* employeeSagas() {
|
export function* onEmployeeGetRatesStart() {
|
||||||
yield all([call(onSignInEmployeeStart)]);
|
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)]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,22 @@ import { createSelector } from "reselect";
|
|||||||
const selectEmployee = (state) => state.employee;
|
const selectEmployee = (state) => state.employee;
|
||||||
|
|
||||||
export const selectCurrentEmployee = createSelector(
|
export const selectCurrentEmployee = createSelector(
|
||||||
[selectEmployee],
|
[selectEmployee],
|
||||||
(employee) => employee.currentEmployee
|
(employee) => employee.currentEmployee
|
||||||
);
|
);
|
||||||
export const selectSigningIn = createSelector(
|
export const selectSigningIn = createSelector(
|
||||||
[selectEmployee],
|
[selectEmployee],
|
||||||
(employee) => employee.signingIn
|
(employee) => employee.signingIn
|
||||||
);
|
);
|
||||||
export const selectSignInError = createSelector(
|
export const selectSignInError = createSelector(
|
||||||
[selectEmployee],
|
[selectEmployee],
|
||||||
(employee) => employee.error
|
(employee) => employee.error
|
||||||
);
|
);
|
||||||
|
export const selectRates = createSelector(
|
||||||
|
[selectEmployee],
|
||||||
|
(employee) => employee.currentEmployee.rates
|
||||||
|
);
|
||||||
|
export const selectGettingRates = createSelector(
|
||||||
|
[selectEmployee],
|
||||||
|
(employee) => employee.gettingRates
|
||||||
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user