diff --git a/client/src/components/invoice-form/invoice-form.component.jsx b/client/src/components/invoice-form/invoice-form.component.jsx index d9cd4cb3e..041d385df 100644 --- a/client/src/components/invoice-form/invoice-form.component.jsx +++ b/client/src/components/invoice-form/invoice-form.component.jsx @@ -172,15 +172,21 @@ export default function InvoiceFormComponent({ {() => { - const totals = CalculateInvoiceTotal( - form.getFieldsValue([ - "invoicelines", - "total", - "federal_tax_rate", - "state_tax_rate", - "local_tax_rate", - ]) - ); + const values = form.getFieldsValue([ + "invoicelines", + "total", + "federal_tax_rate", + "state_tax_rate", + "local_tax_rate", + ]); + let totals; + console.log("values", values); + if ( + !!values.total && + !!values.invoicelines && + values.invoicelines.length > 0 + ) + totals = CalculateInvoiceTotal(values); if (!!totals) return (
diff --git a/client/src/components/invoice-form/invoice-form.totals.utility.js b/client/src/components/invoice-form/invoice-form.totals.utility.js index b8f74e623..15c6d1091 100644 --- a/client/src/components/invoice-form/invoice-form.totals.utility.js +++ b/client/src/components/invoice-form/invoice-form.totals.utility.js @@ -3,13 +3,13 @@ import Dinero from "dinero.js"; export const CalculateInvoiceTotal = (invoice) => { const { total, + invoicelines, federal_tax_rate, local_tax_rate, state_tax_rate, } = invoice; //TODO Determine why this recalculates so many times. - console.log("Calculating invoice total..."); let subtotal = Dinero({ amount: 0 }); let federalTax = Dinero({ amount: 0 }); let stateTax = Dinero({ amount: 0 }); @@ -33,7 +33,7 @@ export const CalculateInvoiceTotal = (invoice) => { } }); - const invoiceTotal = Dinero({ amount: total * 100 || 0 }); + const invoiceTotal = Dinero({ amount: (parseFloat(total) || 0) * 100 }); const enteredTotal = subtotal.add(federalTax).add(stateTax).add(localTax); const discrepancy = enteredTotal.subtract(invoiceTotal);