aboutsummaryrefslogtreecommitdiff
path: root/src/components
diff options
context:
space:
mode:
authorMikunoNaka <bokuwakanojogahoshii@yahoo.com>2021-05-03 12:26:47 +0530
committerMikunoNaka <bokuwakanojogahoshii@yahoo.com>2021-05-03 12:26:47 +0530
commit5846185f5a6662265c5330fbed229f49efb26b89 (patch)
treeaf5ae2406218a90d4be3dc96d070fe0172afae8f /src/components
parente25e884596cf07a5dee77ba2dc841b45b14f2ac5 (diff)
added some features and many bugs to DocumentInfoForm
Diffstat (limited to 'src/components')
-rw-r--r--src/components/BillingPage.js19
-rw-r--r--src/components/Form/Document/DocumentInfoForm.js191
-rw-r--r--src/components/Form/Items/AddNewItemForm.js8
3 files changed, 61 insertions, 157 deletions
diff --git a/src/components/BillingPage.js b/src/components/BillingPage.js
index be2e299..40917e5 100644
--- a/src/components/BillingPage.js
+++ b/src/components/BillingPage.js
@@ -14,6 +14,7 @@ import RegisterItemForm from "./Form/Items/RegisterItemForm";
import RegisterPersonForm from "./Form/People/RegisterPersonForm";
+import DocumentInfoForm from "./Form/Document/DocumentInfoForm";
import MetaInfoForm from "./Form/MetaInfoForm";
import ItemsDisplay from "./Display/ItemsDisplay";
@@ -21,6 +22,7 @@ import SummaryDisplay from "./Display/SummaryDisplay";
const BillingPage = () => {
const [savedItems, getSavedItems] = useState([]);
+ const [savedPeople, getSavedPeople] = useState([]);
const [registerItemFormVisibility, setRegisterItemFormVisibility] = useState(false);
const [registerPersonFormVisibility, setRegisterPersonFormVisibility] = useState(false);
@@ -35,9 +37,21 @@ const BillingPage = () => {
})
}
+ const getRegisteredPeople = () => {
+ axios.get(`/api/people`)
+ .then((res) => {
+ getSavedPeople(res.data);
+ })
+ .catch((res) => {
+ alert("The promise returned an error idk what to do");
+ console.log(res);
+ })
+ }
+
// get data from server on startup
useEffect(() => {
getRegisteredItems();
+ getRegisteredPeople();
}, []);
// TODO: to be handled by backend
const defGSTValue = 18;
@@ -62,12 +76,15 @@ const BillingPage = () => {
{registerPersonFormVisibility &&
<RegisterPersonForm
- defGSTValue={defGSTValue}
updateItemsList={getRegisteredItems}
setVisibility={setRegisterPersonFormVisibility}
/>
}
+ <DocumentInfoForm
+ savedPeople={savedPeople}
+ />
+
<AddNewItemForm
savedItems={savedItems}
addItem={getItems}
diff --git a/src/components/Form/Document/DocumentInfoForm.js b/src/components/Form/Document/DocumentInfoForm.js
index a3f70b7..0b133c6 100644
--- a/src/components/Form/Document/DocumentInfoForm.js
+++ b/src/components/Form/Document/DocumentInfoForm.js
@@ -10,31 +10,30 @@ 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 DocumentInfoForm = (props) => {
+ const [clientName, setClientName] = useState(0);
+ /* TODO: implement a way such that the database also
+ * gives the ID of the client and all the functions
+ * are carried out from the ID because if two people
+ * with same name are added then this shit is done for
+ */
- const [itemToAdd, setItemToAdd] = useState({});
+ const selectPersonPrompt = "start typing here";
+ const registerPersonPrompt = "add new";
- const enterItemNamePrompt = "start typing here";
- const registerItemPrompt = "add new";
- const emptyItemNames = [enterItemNamePrompt, registerItemPrompt, ""];
+ // const emptyPersonNames = [enterItemNamePrompt, registerItemPrompt, ""];
// Extract the model names from savedItems
- let savedItemNames= [];
+ let savedPeopleNames = [];
if (props.savedItems !== null) {
- for (let i = 0; i < props.savedItems.length; i++) {
- savedItemNames.push(props.savedItems[i].Model);
+ for (let i = 0; i < props.savedPeople.length; i++) {
+ savedPeopleNames.push(props.savedPeople[i].Name);
}
}
// 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();
@@ -52,7 +51,9 @@ const AddNewItemForm = (props) => {
}
}
}
+ */
+ /*
const resetAllValues = () => {
setItemNameValue("");
setItemDescValue("");
@@ -62,145 +63,31 @@ const AddNewItemForm = (props) => {
setItemHSNValue(0);
setItemGSTValue(props.defGSTValue);
}
+ */
return (
- <div className={"formContainer"}>
- <form className={"threePaneForm"} onSubmit={
- (event) => {
- 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();
- }
- }>
- <div className={"widePane"}>
- <label>
- Item/Service:
- <select
- className={"selectInputBox"}
- value={itemNameValue}
- onChange={
- (event) => {
- setItemNameValue(event.target.value);
- setItemInfo(event.target.value.toLowerCase());
- }
- }>
- <option key={enterItemNamePrompt}>{enterItemNamePrompt}</option>
- {savedItemNames.map(
- (i) => {
- return <option key={i}>{i}</option>
- }
- )}
- <option key={registerItemPrompt}>{registerItemPrompt}</option>
- </select>
- </label>
-
- <label>
- Description:
- <input className={"wideInputBox"} type="text" value={itemDescValue}
- onChange={
- (event) => {
- setItemDescValue(event.target.value);
- }
- }
- />
- </label>
- </div>
-
- <div className={"widePane"}>
- <label>
- Quantity:
- <input className={"smallInputBox"} type="number" min="1" value={itemQtyValue}
- onInput={
- (event) => {
- const value = event.target.value;
- setItemQtyValue(value);
- }
- }
- required />
- </label>
-
- <label>
- Price:
- <input className={"smallInputBox"} type="number" min="1.00" step="0.001" value={itemPriceValue}
- onChange={
- (event) => {
- const value = event.target.value;
- setItemPriceValue(value);
- }
- }
- required />
- </label>
-
- <label>
- Discount:
- <input className={"smallInputBox"} type="number" min="0" step="0.001" value={itemDiscountValue}
- onChange={
- (event) => {
- const value = event.target.value;
- setItemDiscountValue(value);
- }
- }
- />
- </label>
-
- <label>
- HSN:
- <input className={"smallInputBox"} type="number" min="0" value={itemHSNValue}
- onChange={
- (event) => {
- const value = event.target.value;
- setItemHSNValue(value);
- }
- }
- required />
- </label>
-
- <label>
- GST:
- <input className={"smallInputBox"} type="number" min="0" value={itemGSTValue}
- onChange={
- (event) => {
- const value = event.target.value;
- setItemGSTValue(value);
- }
- }
- required />
- </label>
- </div>
-
- <div className={"smallPane"}>
- <input type="button"
- value="Register New Item"
- onClick={() => props.registerFormVisibility(true)}
- />
-
- <input type="button" value="Placeholder1" />
- <input type="button" value="Placeholder2" />
- <input type="submit" value="Force Add" />
-
- <input type="submit" value="add"
- disabled={
- (emptyItemNames.includes(itemNameValue)
- || itemQtyValue <= 0
- || itemPriceValue <= 0
- || itemGSTValue <= 0
- ) ? "disabled" : ""
+ <label>
+ Client Name:
+ <select
+ className={"selectInputBox"}
+ value={clientName}
+ onChange={
+ (event) => {
+ alert(event.target.value);
+ setClientName(event.target.value);
+ // setItemInfo(event.target.value.toLowerCase());
+ }
+ }>
+ <option key={selectPersonPrompt}>{selectPersonPrompt}</option>
+ {savedPeopleNames.map(
+ (i) => {
+ return <option key={i}>{i}</option>
}
- />
- </div>
- </form>
- </div>
- )
+ )}
+ <option key={registerPersonPrompt}>{registerPersonPrompt}</option>
+ </select>
+ </label>
+ );
}
-export default AddNewItemForm;
+export default DocumentInfoForm;
diff --git a/src/components/Form/Items/AddNewItemForm.js b/src/components/Form/Items/AddNewItemForm.js
index 4eaea7d..78d1437 100644
--- a/src/components/Form/Items/AddNewItemForm.js
+++ b/src/components/Form/Items/AddNewItemForm.js
@@ -181,13 +181,13 @@ const AddNewItemForm = (props) => {
<div className={"smallPane"}>
<input type="button"
- value="Register New Item"
- onClick={() => props.registerItemFormVisibility(true)}
+ value="Register New Client"
+ onClick={() => props.registerPersonFormVisibility(true)}
/>
<input type="button"
- value="Register New Person"
- onClick={() => props.registerPersonFormVisibility(true)}
+ value="Register New Item"
+ onClick={() => props.registerItemFormVisibility(true)}
/>
<input type="button" value="Placeholder1" />