diff options
author | MikunoNaka <bokuwakanojogahoshii@yahoo.com> | 2021-06-10 08:03:19 +0530 |
---|---|---|
committer | MikunoNaka <bokuwakanojogahoshii@yahoo.com> | 2021-06-10 08:03:19 +0530 |
commit | 33c10cfa027d769c1d02a54bad766f431b1196ee (patch) | |
tree | bb487bcecf9944250c5a94267295ec917e087529 /src/components | |
parent | 86e800430360ac3af422faf1f6f7317aea9b1a19 (diff) |
added sgst, cgst, igst support instead of GST as a whole
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/Display/DisplayItem.js | 6 | ||||
-rw-r--r-- | src/components/Display/ItemsDisplay.js | 7 | ||||
-rw-r--r-- | src/components/Display/SummaryDisplay.js | 7 | ||||
-rw-r--r-- | src/components/Form/Items/AddNewItemForm.js | 35 | ||||
-rw-r--r-- | src/components/Form/Items/RegisterItemForm.js | 3 |
5 files changed, 36 insertions, 22 deletions
diff --git a/src/components/Display/DisplayItem.js b/src/components/Display/DisplayItem.js index 04a7d8b..02693ab 100644 --- a/src/components/Display/DisplayItem.js +++ b/src/components/Display/DisplayItem.js @@ -20,7 +20,11 @@ const DisplayItem = (props) => { <td className={item.Description === "" ? "leftAlign disabledBorder" : "leftAlign"}>{item.Description}</td> <td>{item.Quantity}</td> <td className={item.Discount === 0 ? "disabledBorder" : ""}>{item.Discount}</td> - <td className={item.GST === props.defGSTValue ? "" : "warningBorder"}>{item.GST}</td> + + <td className={item.cgst === "" ? "disabledBorder" : (props.defGSTValue / 2 ? "" : "warningBorder")}>{item.sgst}</td> + <td className={item.sgst === "" ? "disabledBorder" : (props.defGSTValue / 2 ? "" : "warningBorder")}>{item.cgst}</td> + <td className={item.igst === "" ? "disabledBorder" : (item.igst === props.defGSTValue ? "" : "warningBorder")}>{item.igst}</td> + <td>{item.HSN}</td> <td>{item.TotalPrice}</td> </tr> diff --git a/src/components/Display/ItemsDisplay.js b/src/components/Display/ItemsDisplay.js index 7afc341..0b2fbf0 100644 --- a/src/components/Display/ItemsDisplay.js +++ b/src/components/Display/ItemsDisplay.js @@ -13,6 +13,7 @@ import {SummaryDisplayTR} from "./SummaryDisplay"; const ItemsDisplay = (props) => { const items = props.items; + // TODO: remove mutability let itemNumber = 0; // TODO: Add HSN Support @@ -26,7 +27,9 @@ const ItemsDisplay = (props) => { <th className={"leftAlign"}>Description</th> <th>Quantity(NOS)</th> <th>Discount(%)</th> - <th>GST(%)</th> + <th>sgst(%)</th> + <th>cgst(%)</th> + <th>igst(%)</th> <th>HSN</th> <th>Price</th> </tr> @@ -35,7 +38,7 @@ const ItemsDisplay = (props) => { (item) => { itemNumber++ return ( - <DisplayItem itemNumber={itemNumber} item={item} defGSTValue={props.defGSTValue}/> + <DisplayItem key={itemNumber} itemNumber={itemNumber} item={item} defGSTValue={props.defGSTValue}/> ); } )} diff --git a/src/components/Display/SummaryDisplay.js b/src/components/Display/SummaryDisplay.js index 9b1ca6b..1bcc713 100644 --- a/src/components/Display/SummaryDisplay.js +++ b/src/components/Display/SummaryDisplay.js @@ -28,6 +28,7 @@ const getBasicSummary = (items) => { ); } +// TODO: remove mutability from this function const getFullSummary = (items) => { let totalRawPrice = 0; let totalDiscount = 0; // to be subtracted from totalRawPrice @@ -39,7 +40,9 @@ const getFullSummary = (items) => { totalRawPrice += itemTotalPrice; totalDiscount += itemDiscount; - totalTax += (i.GST / 100) * (itemTotalPrice - itemDiscount); + totalTax += i.igst === "" + ? ((i.sgst + i.cgst) / 100) * (itemTotalPrice - itemDiscount) + : (i.igst / 100) * (itemTotalPrice - itemDiscount); return null; }) @@ -72,6 +75,8 @@ export const SummaryDisplayTR = (props) => { <td className={"disabledBorder"}></td> <td className={"disabledBorder"}></td> <td className={"disabledBorder"}></td> + <td className={"disabledBorder"}></td> + <td className={"disabledBorder"}></td> <td>{summary.TotalRawPrice}</td> </tr> ); diff --git a/src/components/Form/Items/AddNewItemForm.js b/src/components/Form/Items/AddNewItemForm.js index de524c7..a4710f9 100644 --- a/src/components/Form/Items/AddNewItemForm.js +++ b/src/components/Form/Items/AddNewItemForm.js @@ -18,6 +18,11 @@ const AddNewItemForm = (props) => { 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 = true; + const enterItemNamePrompt = "start typing here"; const registerItemPrompt = "add new"; const emptyItemNames = [enterItemNamePrompt, registerItemPrompt, ""]; @@ -31,16 +36,10 @@ const AddNewItemForm = (props) => { } // check the item name value and do stuff accordingly - const setItemInfo = (itemName) => { - props.savedItems.some( - (i) => { - itemName === i.Model.toLowerCase() - ? applyItemInfo(i) - : itemName === registerItemPrompt && props.registerItemFormVisibility(true) - return null; - } - ) - } + const setItemInfo = (itemName) => + (props.savedItems === null || itemName === registerItemPrompt) + ? props.registerItemFormVisibility(true) + : props.savedItems.some((i) => itemName === i.Model.toLowerCase() && applyItemInfo(i)) const resetAllValues = () => { setItemNameValue(""); @@ -56,7 +55,6 @@ const AddNewItemForm = (props) => { <div className={"formContainer"}> <form className={"threePaneForm"} onSubmit={ (event) => { - alert("submit") event.preventDefault(); const newInvoiceItem = { "Model": itemNameValue, @@ -66,8 +64,13 @@ const AddNewItemForm = (props) => { "TotalPrice": parseFloat(itemPriceValue * itemQtyValue), "Discount": parseInt(itemDiscountValue), "HSN": parseInt(itemHSNValue), - "GST": parseInt(itemGSTValue) + + // this also checks if igst applies or not + "sgst": inState ? parseInt(itemGSTValue) / 2 : "", + "cgst": inState ? parseInt(itemGSTValue) / 2 : "", + "igst": inState ? "" : parseInt(itemGSTValue) }; + console.log(newInvoiceItem); props.addItem(newInvoiceItem); resetAllValues(); } @@ -83,12 +86,10 @@ const AddNewItemForm = (props) => { setItemNameValue(event.target.value); setItemInfo(event.target.value.toLowerCase()); } - }> + }> <option key={enterItemNamePrompt}>{enterItemNamePrompt}</option> - {props.savedItems === null || props.savedItems.map( - (i) => { - return <option key={i.Model}>{i.Model}</option> - } + {props.savedItems !== null && props.savedItems.map( + (i) => <option key={i.Model}>{i.Model}</option> )} <option key={registerItemPrompt}>{registerItemPrompt}</option> </select> diff --git a/src/components/Form/Items/RegisterItemForm.js b/src/components/Form/Items/RegisterItemForm.js index b57db9f..6ad4c1f 100644 --- a/src/components/Form/Items/RegisterItemForm.js +++ b/src/components/Form/Items/RegisterItemForm.js @@ -45,11 +45,12 @@ const RegisterItemForm = (props) => { .then((res) => { console.log(res); props.setVisibility(false); + props.updateItemsList(); }) .catch((err) => { console.log(err); + alert("Something went wrong, please check the log by opening the console.") }); - props.updateItemsList(); } |