diff --git a/client/src/pages/time-tickets/time-tickets.container.jsx b/client/src/pages/time-tickets/time-tickets.container.jsx index 0c1bc69c4..6c41a2657 100644 --- a/client/src/pages/time-tickets/time-tickets.container.jsx +++ b/client/src/pages/time-tickets/time-tickets.container.jsx @@ -1,103 +1,110 @@ -import {useQuery} from "@apollo/client"; -import {Col, Row, Space} from "antd"; -import dayjs from "../../utils/day"; -import React, {useEffect} from "react"; -import {useTranslation} from "react-i18next"; -import {connect} from "react-redux"; -import {useSearchParams} from "react-router-dom"; -import {createStructuredSelector} from "reselect"; -import AlertComponent from "../../components/alert/alert.component"; -import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; -import TimeTicketsDatesSelector - from "../../components/ticket-tickets-dates-selector/time-tickets-dates-selector.component"; -import TimeTicketList from "../../components/time-ticket-list/time-ticket-list.component"; -import TimeTicketsPayrollTable from "../../components/time-tickets-payroll-table/time-tickets-payroll-table.component"; -import TimeTicketsSummaryEmployees - from "../../components/time-tickets-summary-employees/time-tickets-summary-employees.component"; -import {QUERY_TIME_TICKETS_IN_RANGE} from "../../graphql/timetickets.queries"; -import TimeTicketsAttendanceTable - from "../../components/time-tickets-attendance-table/time-tickets-attendance-table.component"; -import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; -import TimeTicketsCommit from "../../components/time-tickets-commit/time-tickets-commit.component"; -import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; +import { useQuery } from '@apollo/client'; +import { Col, Row, Space } from 'antd'; +import dayjs from '../../utils/day'; +import React, { useEffect } from 'react'; +import { useTranslation } from 'react-i18next'; +import { connect } from 'react-redux'; +import { useSearchParams } from 'react-router-dom'; +import { createStructuredSelector } from 'reselect'; +import AlertComponent from '../../components/alert/alert.component'; +import RbacWrapper from '../../components/rbac-wrapper/rbac-wrapper.component'; +import TimeTicketsDatesSelector from '../../components/ticket-tickets-dates-selector/time-tickets-dates-selector.component'; +import TimeTicketList from '../../components/time-ticket-list/time-ticket-list.component'; +import TimeTicketsPayrollTable from '../../components/time-tickets-payroll-table/time-tickets-payroll-table.component'; +import TimeTicketsSummaryEmployees from '../../components/time-tickets-summary-employees/time-tickets-summary-employees.component'; +import { QUERY_TIME_TICKETS_IN_RANGE } from '../../graphql/timetickets.queries'; +import TimeTicketsAttendanceTable from '../../components/time-tickets-attendance-table/time-tickets-attendance-table.component'; +import { setBreadcrumbs, setSelectedHeader } from '../../redux/application/application.actions'; +import TimeTicketsCommit from '../../components/time-tickets-commit/time-tickets-commit.component'; +import FeatureWrapperComponent from '../../components/feature-wrapper/feature-wrapper.component'; import InstanceRenderManager from '../../utils/instanceRenderMgr'; +import { useSplitTreatments } from '@splitsoftware/splitio-react'; +import { selectBodyshop } from '../../redux/user/user.selectors'; -const mapStateToProps = createStructuredSelector({}); - -const mapDispatchToProps = (dispatch) => ({ - setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), - setSelectedHeader: (key) => dispatch(setSelectedHeader(key)), +const mapStateToProps = createStructuredSelector({ + bodyshop:selectBodyshop }); -export function TimeTicketsContainer({ - bodyshop, - setBreadcrumbs, - setSelectedHeader, - }) { - const {t} = useTranslation(); - const [searchParams] = useSearchParams(); - const {start, end} = Object.fromEntries(searchParams); +const mapDispatchToProps = (dispatch) => ({ + setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), + setSelectedHeader: (key) => dispatch(setSelectedHeader(key)), +}); - const startDate = start - ? dayjs(start) - : dayjs().startOf("week").subtract(7, "day"); - const endDate = end ? dayjs(end) : dayjs().endOf("week"); +export function TimeTicketsContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) { + const { + treatments: { Enhanced_Payroll }, + } = useSplitTreatments({ + attributes: {}, + names: ['Enhanced_Payroll'], + splitKey: bodyshop.imexshopid, + }); + const { t } = useTranslation(); + const [searchParams] = useSearchParams(); + const { start, end } = Object.fromEntries(searchParams); - const {loading, error, data} = useQuery(QUERY_TIME_TICKETS_IN_RANGE, { - variables: { - start: startDate, - end: endDate, - }, - fetchPolicy: "network-only", - nextFetchPolicy: "network-only", + const startDate = start ? dayjs(start) : dayjs().startOf('week').subtract(7, 'day'); + const endDate = end ? dayjs(end) : dayjs().endOf('week'); + + const { loading, error, data } = useQuery(QUERY_TIME_TICKETS_IN_RANGE, { + variables: { + start: startDate, + end: endDate, + }, + fetchPolicy: 'network-only', + nextFetchPolicy: 'network-only', + }); + + useEffect(() => { + document.title = t('titles.timetickets', { + app: InstanceRenderManager({ + imex: '$t(titles.imexonline)', + rome: '$t(titles.romeonline)', + promanager: '$t(titles.promanager)', + }), }); + setSelectedHeader('timetickets'); + setBreadcrumbs([ + { + link: '/manage/timetickets', + label: t('titles.bc.timetickets'), + }, + ]); + }, [t, setBreadcrumbs, setSelectedHeader]); - useEffect(() => { - document.title = t("titles.timetickets",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} ); - setSelectedHeader("timetickets"); - setBreadcrumbs([ - { - link: "/manage/timetickets", - label: t("titles.bc.timetickets"), - }, - ]); - }, [t, setBreadcrumbs, setSelectedHeader]); + if (error) return ; - if (error) return ; - - return ( - - - - - - - - - - - } - /> - - - - - - - - ); + return ( + + + + + + + + {Enhanced_Payroll.treatment === 'on' && ( + + )} + + + } + /> + + + + + + + + ); } -export default connect( - mapStateToProps, - mapDispatchToProps -)(TimeTicketsContainer); +export default connect(mapStateToProps, mapDispatchToProps)(TimeTicketsContainer);