import { DeleteFilled } from "@ant-design/icons"; import { Button, Form, Input, InputNumber, Select, Space, Statistic, } from "antd"; import React from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { selectBodyshop } from "../../redux/user/user.selectors"; import DmsCdkMakes from "../dms-cdk-makes/dms-cdk-makes.component"; import CurrencyInput from "../form-items-formatted/currency-form-item.component"; import LayoutFormRow from "../layout-form-row/layout-form-row.component"; import Dinero from "dinero.js"; import { determineDmsType } from "../../pages/dms/dms.container"; import DmsCdkMakesRefetch from "../dms-cdk-makes/dms-cdk-makes.refetch.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, }); const mapDispatchToProps = (dispatch) => ({ //setUserLanguage: language => dispatch(setUserLanguage(language)) }); export default connect(mapStateToProps, mapDispatchToProps)(DmsPostForm); export function DmsPostForm({ bodyshop, socket, job }) { const [form] = Form.useForm(); const { t } = useTranslation(); const handlePayerSelect = (value, index) => { form.setFieldsValue({ payers: form.getFieldValue("payers").map((payer, mapIndex) => { if (index !== mapIndex) return payer; const cdkPayer = bodyshop.cdk_configuration.payers && bodyshop.cdk_configuration.payers.find((i) => i.name === value); if (!cdkPayer) return payer; return { ...cdkPayer, dms_acctnumber: cdkPayer.dms_acctnumber, controlnumber: job && job[cdkPayer.control_type], }; }), }); }; const handleFinish = (values) => { socket.emit(`${determineDmsType(bodyshop)}-export-job`, { jobid: job.id, txEnvelope: values, }); }; return (
{(fields, { add, remove }) => { return (
{fields.map((field, index) => ( {() => { const payers = form.getFieldValue("payers"); const row = payers && payers[index]; const cdkPayer = bodyshop.cdk_configuration.payers && bodyshop.cdk_configuration.payers.find( (i) => i && row && i.name === row.name ); return (
{cdkPayer && t(`jobs.fields.${cdkPayer.control_type}`)}
); }}
{ remove(field.name); }} />
))}
); }}
{() => { //Perform Calculation to determine discrepancy. let totalAllocated = Dinero(); const payers = form.getFieldValue("payers"); payers && payers.forEach((payer) => { totalAllocated = totalAllocated.add( Dinero({ amount: Math.round((payer?.amount || 0) * 100) }) ); }); const discrep = Dinero(job.job_totals.totals.total_repairs).subtract( totalAllocated ); return ( ); }}
); }