IO-902 ICBC ETf Translator
This commit is contained in:
@@ -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({
|
||||
<Modal
|
||||
visible={visible}
|
||||
width="70%"
|
||||
title={t("labels.labels.findermodal")}
|
||||
title={t("payments.labels.findermodal")}
|
||||
onCancel={() => toggleModalVisible()}
|
||||
onOk={() => toggleModalVisible()}
|
||||
destroyOnClose
|
||||
@@ -91,7 +81,6 @@ export function ContractsFindModalContainer({
|
||||
<Button onClick={() => form.submit()} type="primary" loading={loading}>
|
||||
{t("general.labels.search")}
|
||||
</Button>
|
||||
{JSON.stringify(data)}
|
||||
</Form>
|
||||
</Modal>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user