diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index 0af751568..9a4dc22d0 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -26538,6 +26538,27 @@ + + findermodal + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + insurance false diff --git a/client/src/components/ca-bc-etf-table-modal/ca-bc-etf-table-modal.container.jsx b/client/src/components/ca-bc-etf-table-modal/ca-bc-etf-table-modal.container.jsx index fb18791bf..ae7f45665 100644 --- a/client/src/components/ca-bc-etf-table-modal/ca-bc-etf-table-modal.container.jsx +++ b/client/src/components/ca-bc-etf-table-modal/ca-bc-etf-table-modal.container.jsx @@ -1,18 +1,16 @@ -import { useLazyQuery } from "@apollo/client"; import { Button, Form, Modal } from "antd"; -import React, { useEffect } from "react"; +import React, { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { logImEXEvent } from "../../firebase/firebase.utils"; -import { FIND_JOBS_BY_CLAIM } from "../../graphql/jobs.queries"; import { toggleModalVisible } from "../../redux/modals/modals.actions"; import { selectCaBcEtfTableConvert } from "../../redux/modals/modals.selectors"; -import { selectBodyshop } from "../../redux/user/user.selectors"; +import { GenerateDocument } from "../../utils/RenderTemplate"; +import { TemplateList } from "../../utils/TemplateConstants"; import CaBcEtfTableModalComponent from "./ca-bc-etf-table.modal.component"; const mapStateToProps = createStructuredSelector({ - bodyshop: selectBodyshop, caBcEtfTableModal: selectCaBcEtfTableConvert, }); @@ -24,45 +22,37 @@ const mapDispatchToProps = (dispatch) => ({ export function ContractsFindModalContainer({ caBcEtfTableModal, toggleModalVisible, - - bodyshop, }) { const { t } = useTranslation(); const { visible } = caBcEtfTableModal; - + const [loading, setLoading] = useState(false); const [form] = Form.useForm(); - - // const [updateJobLines] = useMutation(UPDATE_JOB_LINE); - const [callSearch, { loading,// error, - data }] = useLazyQuery( - FIND_JOBS_BY_CLAIM - ); + const EtfTemplate = TemplateList("special").ca_bc_etf_table; const handleFinish = async (values) => { logImEXEvent("ca_bc_etf_table_parse"); - + setLoading(true); const claimNumbers = []; values.table.split("\n").forEach((row, idx, arr) => { - if (idx !== 0 && idx !== arr.length - 1) { - //Skip first row as it is header. Skip last row as it is totals. - const { 1: claim, 2: shortclaim } = row.split("\t"); - if (!claim || !shortclaim) return; - const trimmedShortClaim = shortclaim.trim(); - const trimmedClaim = claim.trim(); - - const beginning = trimmedShortClaim?.slice(0, -1); //Get everything except the last char - const last = trimmedShortClaim?.slice(-1); //Get the last digit - const alpha = trimmedClaim?.slice(-1); - - const fullClaim = `${beginning}-${last}-${alpha}`; - if (fullClaim.length > 5) claimNumbers.push(fullClaim); - } + const { 1: claim, 2: shortclaim } = row.split("\t"); + if (!claim || !shortclaim) return; + const trimmedShortClaim = shortclaim.trim(); + // const trimmedClaim = claim.trim(); + claimNumbers.push(trimmedShortClaim); }); - console.log(`claimNumbers`, claimNumbers); - - callSearch({ variables: { claimNumbers } }); + await GenerateDocument( + { + name: EtfTemplate.key, + variables: { + claimNumbers, + }, + }, + {}, + "p" + ); + setLoading(false); }; useEffect(() => { @@ -75,7 +65,7 @@ export function ContractsFindModalContainer({ toggleModalVisible()} onOk={() => toggleModalVisible()} destroyOnClose @@ -91,7 +81,6 @@ export function ContractsFindModalContainer({ - {JSON.stringify(data)} ); diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js index 72f8f6c00..a357f64b6 100644 --- a/client/src/graphql/jobs.queries.js +++ b/client/src/graphql/jobs.queries.js @@ -1526,9 +1526,10 @@ export const QUERY_JOB_CHECKLISTS = gql` `; export const FIND_JOBS_BY_CLAIM = gql` - query FIND_JOBS_BY_CLAIM($claimNumbers: [String!]!) { - jobs(where: { clm_no: { _in: $claimNumbers } }) { + query FIND_JOBS_BY_CLAIM($claimNumbers: String!) { + jobs(where: { clm_no: { _similar: $claimNumbers } }) { id + clm_no ro_number actual_completion ownr_fn diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index ad73f095f..7bfe14cbd 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -1587,6 +1587,7 @@ "customer": "Customer", "edit": "Edit Payment", "electronicpayment": "Use Electronic Payment Processing?", + "findermodal": "ICBC Payment Finder", "insurance": "Insurance", "new": "New Payment", "signup": "Please contact support to sign up for electronic payments.", diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 9db847d65..df220789d 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -1587,6 +1587,7 @@ "customer": "", "edit": "", "electronicpayment": "", + "findermodal": "", "insurance": "", "new": "", "signup": "", diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index 0c6fdb681..a2fee774b 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -1587,6 +1587,7 @@ "customer": "", "edit": "", "electronicpayment": "", + "findermodal": "", "insurance": "", "new": "", "signup": "", diff --git a/client/src/utils/TemplateConstants.js b/client/src/utils/TemplateConstants.js index a4be6abcf..80ddbf6f5 100644 --- a/client/src/utils/TemplateConstants.js +++ b/client/src/utils/TemplateConstants.js @@ -686,5 +686,17 @@ export const TemplateList = (type, context) => { }, } : {}), + ...(!type || type === "special" + ? { + ca_bc_etf_table: { + title: i18n.t("printcenter.payments.ca_bc_etf_table"), + description: "Est Detail", + subject: i18n.t("printcenter.payments.ca_bc_etf_table"), + key: "ca_bc_etf_table", + disabled: false, + }, + + } + : {}), }; };