import {useQuery} from "@apollo/client"; import React, {useEffect} from "react"; import {useTranslation} from "react-i18next"; import {connect} from "react-redux"; import {createStructuredSelector} from "reselect"; import AccountingReceivablesTable from "../../components/accounting-receivables-table/accounting-receivables-table.component"; import AlertComponent from "../../components/alert/alert.component"; import {QUERY_JOBS_FOR_EXPORT} from "../../graphql/accounting.queries"; import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions"; import {selectBodyshop} from "../../redux/user/user.selectors"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import {checkPartnerStatus} from "../../components/partner-ping/partner-ping.component"; import {selectPartnerVersion} from "../../redux/application/application.selectors"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, partnerVersion: selectPartnerVersion, }); const mapDispatchToProps = (dispatch) => ({ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), setSelectedHeader: (key) => dispatch(setSelectedHeader(key)), }); export function AccountingReceivablesContainer({ bodyshop, setBreadcrumbs, setSelectedHeader, partnerVersion, }) { const {t} = useTranslation(); useEffect(() => { document.title = t("titles.accounting-receivables"); setSelectedHeader("receivables"); setBreadcrumbs([ { link: "/manage/accounting/receivables", label: t("titles.bc.accounting-receivables"), }, ]); checkPartnerStatus(bodyshop, true); }, [t, setBreadcrumbs, setSelectedHeader, bodyshop]); const {loading, error, data, refetch} = useQuery(QUERY_JOBS_FOR_EXPORT, { variables: { invoicedStatus: bodyshop.md_ro_statuses.default_invoiced || "Invoiced*", }, fetchPolicy: "network-only", nextFetchPolicy: "network-only", }); if (error) return ; const noPath = !partnerVersion?.qbpath && !( bodyshop && (bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber || bodyshop.accountingconfig.qbo) ); return (
{noPath && ( )}
); } export default connect( mapStateToProps, mapDispatchToProps )(AccountingReceivablesContainer);