From 35a44621c25b06471ae5b29bbdfb35fdcf652cf1 Mon Sep 17 00:00:00 2001 From: MikunoNaka Date: Fri, 25 Jun 2021 15:27:58 +0530 Subject: Changed the way all the values are calculated for stability --- src/components/Form/Items/AddNewItemForm.tsx | 49 ++++++++++++++-------------- 1 file changed, 24 insertions(+), 25 deletions(-) (limited to 'src/components/Form/Items/AddNewItemForm.tsx') diff --git a/src/components/Form/Items/AddNewItemForm.tsx b/src/components/Form/Items/AddNewItemForm.tsx index ae64b06..e51ecfc 100644 --- a/src/components/Form/Items/AddNewItemForm.tsx +++ b/src/components/Form/Items/AddNewItemForm.tsx @@ -22,15 +22,15 @@ const AddNewItemForm: React.FC = (props) => { const [itemNameValue, setItemNameValue] = useState(""); const [itemDescValue, setItemDescValue] = useState(""); const [itemPriceValue, setItemPriceValue] = useState(0.00); - const [itemDiscountValue, setItemDiscountValue] = useState(0.00); - const [itemGSTValue, setItemGSTValue] = useState(props.defGSTValue); + const [itemDiscountPercentage, setItemDiscountPercentage] = useState(0.00); + const [itemGSTPercentage, setItemGSTValue] = useState(props.defGSTValue); const [itemQTYValue, setItemQTYValue] = useState(1); const [itemHSNValue, setItemHSNValue] = useState(0); // to be handled by DocumentInfo // check if client is in same state // and apply cgst+sgst or igst accordingly - // const inState: boolean = true; + const inState: boolean = true; const enterItemNamePrompt: string = "start typing here"; const registerItemPrompt: string = "add new"; @@ -57,7 +57,7 @@ const AddNewItemForm: React.FC = (props) => { setItemDescValue(""); setItemQTYValue(1); setItemPriceValue(1); - setItemDiscountValue(0); + setItemDiscountPercentage(0); setItemHSNValue(0); setItemGSTValue(props.defGSTValue); } @@ -68,28 +68,27 @@ const AddNewItemForm: React.FC = (props) => { (event) => { event.preventDefault(); - // TODO: maybe move calculation of GST and Discount here + const discountValue: number = (itemDiscountPercentage / 100) * itemPriceValue; + const totalGSTValue: number = (itemGSTPercentage / 100) * (itemQTYValue); const newInvoiceItem: Item = { - Model: itemNameValue, - Description: itemDescValue, - Quantity: itemQTYValue, - UnitPrice: itemPriceValue, - TotalValue: (itemPriceValue * itemQTYValue), - Discount: itemDiscountValue, - HSN: itemHSNValue, - TotalGST: itemGSTValue, + Model: itemNameValue, + Description: itemDescValue, + Quantity: itemQTYValue, + UnitPrice: itemPriceValue, + TotalValue: itemPriceValue * itemQTYValue, + Discount: itemDiscountPercentage, + DiscountValue: discountValue, + HSN: itemHSNValue, + TotalGST: itemGSTPercentage, + TotalGSTValue: totalGSTValue, // this also checks if igst applies or not - // TODO: fix this - SGST: 0, - CGST: 0, - IGST: 0 - // sgst: inState ? parseInt(itemGSTValue) / 2 : "", - // cgst: inState ? parseInt(itemGSTValue) / 2 : "", - // igst: inState ? "" : parseInt(itemGSTValue) + SGST: inState && totalGSTValue / 2, + CGST: inState && totalGSTValue / 2, + IGST: inState || totalGSTValue } - props.addItem(newInvoiceItem); + props.addItem(newInvoiceItem); resetAllValues(); } }> @@ -144,10 +143,10 @@ const AddNewItemForm: React.FC = (props) => { @@ -164,7 +163,7 @@ const AddNewItemForm: React.FC = (props) => {