/* * OpenBills - Self hosted browser app to generate and keep track of simple invoices * Version - 0 * Licensed under the MIT license - https://opensource.org/licenses/MIT * * Copyright (c) 2021 Vidhu Kant Sharma */ import React, { useState } from "react"; import "./../Form.scss"; const AddNewItemForm = (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 [itemQtyValue, setItemQtyValue] = useState(1); const [itemHSNValue, setItemHSNValue] = useState(0); const enterItemNamePrompt = "start typing here"; const registerItemPrompt = "add new"; const emptyItemNames = [enterItemNamePrompt, registerItemPrompt, ""]; // Extract the model names from savedItems let savedItemNames= []; if (props.savedItems !== null) { for (let i = 0; i < props.savedItems.length; i++) { savedItemNames.push(props.savedItems[i].Model); } } // set description and price // when item is entered const setItemInfo = (itemName) => { for (let i = 0; i < props.savedItems.length; i++) { const mod = props.savedItems[i].Model.toLowerCase(); const desc = props.savedItems[i].Description; const price = props.savedItems[i].Price; const hsn = props.savedItems[i].HSN; const gst = props.savedItems[i].GST; if (mod === itemName) { setItemDescValue(desc); setItemPriceValue(price); setItemHSNValue(hsn); setItemGSTValue(gst); break; } else if (itemName === registerItemPrompt) { props.registerItemFormVisibility(true); } } } const resetAllValues = () => { setItemNameValue(""); setItemDescValue(""); setItemQtyValue(1); setItemPriceValue(1); setItemDiscountValue(0); setItemHSNValue(0); setItemGSTValue(props.defGSTValue); } return (
{ alert("submit") event.preventDefault(); const newInvoiceItem = { "Model": itemNameValue, "Description": itemDescValue, "Quantity": parseInt(itemQtyValue), "UnitPrice": parseFloat(itemPriceValue), "TotalPrice": parseFloat(itemPriceValue * itemQtyValue), "Discount": parseInt(itemDiscountValue), "HSN": parseInt(itemHSNValue), "GST": parseInt(itemGSTValue) }; props.addItem(newInvoiceItem); resetAllValues(); } }>
props.registerPersonFormVisibility(true)} /> props.registerItemFormVisibility(true)} />
) } export default AddNewItemForm;