From 5f8407ae4c60922057e2f88f65178773786bddb4 Mon Sep 17 00:00:00 2001 From: Vidhu Kant Sharma Date: Sun, 16 Oct 2022 12:46:41 +0530 Subject: calculating currency/other floating point values with currency.js --- src/components/tables/invoice-summary.js | 42 ++++++++++++++++---------------- 1 file changed, 21 insertions(+), 21 deletions(-) (limited to 'src/components/tables/invoice-summary.js') diff --git a/src/components/tables/invoice-summary.js b/src/components/tables/invoice-summary.js index 5899105..7018d50 100644 --- a/src/components/tables/invoice-summary.js +++ b/src/components/tables/invoice-summary.js @@ -15,47 +15,47 @@ * along with this program. If not, see . */ -import './scss/table.scss'; +import { currency } from '../../classes/item'; const InvoiceSummary = ({sum}) => { - const totalRoundedOff = Math.round(sum.Amount); - const roundedOffDiff = sum.Amount - totalRoundedOff; - - const formatter = new Intl.NumberFormat("en-US", { - maximumSignificantDigits: 2, - }) + const totalRoundedOff = currency(sum.Amount !== undefined ? Math.round(sum.Amount.value) : 0.00); + const roundedOffDiff = sum.Amount !== undefined ? sum.Amount.subtract(totalRoundedOff) : currency(0.00); return ( <>

Summary:

- - - - - {sum.Discount > 0 && + {sum.UnitPrice !== undefined && + + + + + } + {sum.Discount !== undefined && sum.Discount.value > 0 && - + } - {sum.GST > 0 && + {sum.GST !== undefined && sum.GST.value > 0 && - + } - {(isNaN(roundedOffDiff) || roundedOffDiff !== 0) && + {roundedOffDiff.intValue !== 0 && - + + + } + {sum.Amount !== undefined && + + + } - - - -
Base Total{formatter.format(sum.UnitPrice)}
Base Total{sum.UnitPrice.format()}
Total After Discount{formatter.format(sum.UnitPrice - sum.Discount)} (-{formatter.format(sum.Discount)}){sum.UnitPrice.subtract(sum.Discount).format()} (-{sum.Discount.format()})
Total After Tax{formatter.format(sum.UnitPrice - (sum.Discount > 0 ? sum.Discount : 0) + sum.GST)} (+{formatter.format(sum.GST)}){sum.UnitPrice.subtract(sum.Discount.value > 0 ? sum.Discount : currency(0)).add(sum.GST).format()} (+{sum.GST.format()})
Rounded Off{`${roundedOffDiff > 0 ? `(-) ${formatter.format(roundedOffDiff)}` : `(+) ${formatter.format(roundedOffDiff * -1)}`}`}{`${roundedOffDiff.value > 0 ? `(-) ${roundedOffDiff.format()}` : `(+) ${roundedOffDiff.multiply(-1).format()}`}`}
Grand Total{sum.Amount.subtract(roundedOffDiff).format()}
Grand Total{formatter.format(sum.Amount - (isNaN(roundedOffDiff) ? 0 : roundedOffDiff))}
-- cgit v1.2.3