import { Button, DatePicker, Form, Input, Statistic, Switch, Upload, } from "antd"; import React, { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import CurrencyInput from "../form-items-formatted/currency-form-item.component"; import JobSearchSelect from "../job-search-select/job-search-select.component"; import VendorSearchSelect from "../vendor-search-select/vendor-search-select.component"; import InvoiceFormLines from "./invoice-form.lines.component"; import "./invoice-form.styles.scss"; import { CalculateInvoiceTotal } from "./invoice-form.totals.utility"; export default function InvoiceFormComponent({ form, roAutoCompleteOptions, vendorAutoCompleteOptions, lineData, responsibilityCenters, loadLines, invoiceEdit, }) { const { t } = useTranslation(); const [discount, setDiscount] = useState(0); const handleVendorSelect = (props, opt) => { setDiscount(opt.discount); }; //TODO: Test this further. Required to set discount when viewing an invoice. useEffect(() => { if (form.getFieldValue("vendorid") && vendorAutoCompleteOptions) { const vendorId = form.getFieldValue("vendorid"); const matchingVendors = vendorAutoCompleteOptions.filter( (v) => v.id === vendorId ); if (matchingVendors.length === 1) { setDiscount(matchingVendors[0].discount); } } if (form.getFieldValue("jobid")) { loadLines({ variables: { id: form.getFieldValue("jobid") } }); } }, [form, setDiscount, vendorAutoCompleteOptions, loadLines]); return (