UNPKG

restaurantt

Version:

This package contains a backend of what would be the logic of a restaurant software

687 lines (478 loc) 19.8 kB
# Restaurant This package contains a backend of what would be the logic of a restaurant software ## Requirements ### Restaurant staff requirements * Manage the number of tables in the restaurant * Manage the categories of each dish * Manage dishes and their ingredients * Manage system users * Manage restaurant charges * Select table for the customer * Manage customer orders ### Requirements of the customer * Consult the dishes * View list of dishes that the customer has selected * Place orders ## Usage ```Javascript const { DataBill } = require("./data/DataBill"); const { DataCategory } = require("./data/DataCategory"); const { DataCustomer } = require("./data/DataCustomer"); const { DataDish } = require("./data/DataDish"); const { DataOrder } = require("./data/DataOrder"); const { DataTable } = require("./data/DataTable"); const { DataTableCustomer } = require("./data/DataTableCustomer"); const { DataUser } = require("./data/DataUser"); const { DishIngredients } = require("./DishIngredients/dishes"); const { DTOCategory } = require("./DTO/DTOCategory"); const { DTOCustomer } = require("./DTO/DTOCustomer"); const { DTODish } = require("./DTO/DTODish"); const { DTOOrder } = require("./DTO/DTOOrder"); const { DTOUser } = require("./DTO/DTOUser"); const { HashPassword } = require("./Hash_Login/hashPassword"); const { LoginUser } = require("./Hash_Login/LoginUser"); const { Order } = require("./Orders/order"); #region USERS let usermaintenance=async()=> { async function registerUser() { for (let i = 1; i < 10; i++) { let dtouser = new DTOUser(); dtouser.IDCardU=`11111111111${i}` ; dtouser.NamesUserU=`User${i}`; dtouser.CityU=`City${i}`; dtouser.TypeUserU="Administrator" ; dtouser.PasswordUserU=`Password${i}`; const passh = HashPassword.hashPassword(dtouser.PasswordUserU); dtouser.PasswordUserU = passh.hash; dtouser.HashhU = passh.salt; let registeruser = await DataUser.registerUser(dtouser); if (registeruser===-1) { throw new Error("User already exists"); } console.log("The user registered successfully"); } } await registerUser(); async function updateNameCityTypeUser() { let typeuser = "Cashier"; if (typeuser != "Administrator" && typeuser != "Waiter" && typeuser != "Chef" && typeuser != "Cashier") { throw new Error("The user can only be of the type Administrator,Waiter,Chef and Cashier"); } let updateNameCityUser = await DataUser.updateNameCityTypeUser("111111111111", "NameUpdated", "CityUpdated", typeuser); if (updateNameCityUser === -1) { throw new Error("User no exists"); } console.log("The user updated successfully"); } await updateNameCityTypeUser(); async function updateUserNamePassword() { const passh = HashPassword.hashPassword("PasswordUpdated"); let hashpassword = passh.hash; let salt = passh.salt; let updatePasswordUser = await DataUser.updatePasswordUser("111111111111",hashpassword, salt); if (updatePasswordUser===-1) { throw new Error("The user does not exists"); } console.log("The password was updated successfully"); } await updateUserNamePassword(); let deleteUser = await DataUser.deleteUser("111111111117"); if (deleteUser===-1) { throw new Error("The user does not exists"); } console.log("The user was deleted successfully"); let autenticationuser=async()=> { let loginuser = await LoginUser.loginUser('111111111111','PasswordUpdated') console.log(loginuser); let getuserlogin = await LoginUser.getUserLogin() console.log(getuserlogin); let logout = await LoginUser.logoutUser() console.log(logout); } autenticationuser().then() let getUser = await DataUser.getUser('111111111111') console.log(getUser); let getUsers = await DataUser.getUsers() console.log(getUsers); let getSearchUsers = await DataUser.getSearchUsers( "","","","Cash","CityU" ) console.log(getSearchUsers); } usermaintenance().then() #endregion #region CUSTOMER let customermaintenace=async()=> { async function registerCustomer() { for (let i = 1; i < 20; i++) { let dtocust = new DTOCustomer(); dtocust.NamesC=`Customer${i}`; dtocust.LastNameC=`LastNameCustomer${i}`; dtocust.PhoneNumberC=`1111111111${i}` ; let registerCustomer = await DataCustomer.registerCustomer(dtocust); console.log("The customer registered successfully"); } } await registerCustomer(); async function updateCustomer() { let dtocust = new DTOCustomer(); dtocust.IDCustomer=1; dtocust.NamesC=`NameUpdated`; dtocust.LastNameC=`LastNameCustomer`; dtocust.PhoneNumberC=`11111111111` ; let updateCustomer = await DataCustomer.updateCustomer(dtocust); if (updateCustomer === -1) { throw new Error("Customer no exists"); } console.log("The customer updated successfully"); } await updateCustomer(); let getCustomer = await DataCustomer.getCustomer(1) console.log(getCustomer); let getCustomers = await DataCustomer.getCustomers() console.log(getCustomers); let getSearchCustomers = await DataCustomer.getSearchCustomers( 0,5,"","","","NamesC" ) console.log(getSearchCustomers); } customermaintenace().then() #endregion #region CATEGORY let categorymaintenance=async()=> { async function registerCategory() { for (let i = 1; i < 10; i++) { let dtocat = new DTOCategory(); dtocat.NameC=`Category${i}`; dtocat.DescriptionC=`Description${i}`; let registerCategory = await DataCategory.registerCategory(dtocat); console.log("The category registered successfully"); } } await registerCategory(); async function updateCategory() { let dtocat = new DTOCategory(); dtocat.IDCategory=9; dtocat.NameC=`CategoryUpdate`; dtocat.DescriptionC=`DescriptionUpdate`; let updateCategory = await DataCategory.updateCategory(dtocat); if (updateCategory === -1) { throw new Error("Category no exists"); } console.log("The category updated successfully"); } await updateCategory(); let getCategory = await DataCategory.getCategory(1) console.log(getCategory); let getSearchCategories = await DataCategory.getSearchCategories( 0,5,"","idcategory" ) console.log(getSearchCategories); } categorymaintenance().then() #endregion #region DISHES let dishesmaintenace=async()=> { #region REGISTER let registerIngredient1=DishIngredients.registerIngredient("Ingredient1",20,2); if (registerIngredient1===-1) { throw new Error("The name ingredient already exist in the list") } console.log(registerIngredient1); let registerIngredient2=DishIngredients.registerIngredient("Ingredient2",20,1); if (registerIngredient2===-1) { throw new Error("The name ingredient already exist in the list") } console.log(registerIngredient2); // let removeIngredient=DishIngredients.removeIngredient("Ingredient2"); // if (removeIngredient===-1) { // throw new Error("The name ingredient not exist in the list") // } // console.log(removeIngredient); let registerIngredient3=DishIngredients.registerIngredient("Ingredient3",21,1); if (registerIngredient3===-1) { throw new Error("The name ingredient already exist in the list") } console.log(registerIngredient3); let getArrayIngredients=DishIngredients.getArrayIngredients(); console.log(getArrayIngredients); // let clearArrayIngredients=DishIngredients.clearArrayIngredients(); // console.log(clearArrayIngredients); // let getArrayIngredients2=DishIngredients.getArrayIngredients(); // console.log(getArrayIngredients2); let calculateCostDish=DishIngredients.calculateCostDish(); if (calculateCostDish===-1) { throw new Error("The ingredient lists is empty") } console.log(calculateCostDish); let dtodishes=new DTODish(); dtodishes.NameD="NameDish5"; dtodishes.Category.IDCategory=4; dtodishes.DescriptionD="Description4"; dtodishes.ImgD="UrlImg"; dtodishes.CostD=calculateCostDish; dtodishes.PriceD=50;//this is the price that is indicated once knowing the cost dtodishes.QuantityAD=0; let registerDish=await DataDish.registerDish(dtodishes,getArrayIngredients); if (registerDish===-1) { throw new Error("Category no exists") } console.log(registerDish); #endregion #region MAINTENACE let dtodishes=new DTODish(); dtodishes.IDDishh=3; dtodishes.NameD="NameUpdate"; dtodishes.Category.IDCategory=3; dtodishes.PriceD=65; dtodishes.DescriptionD="DescriptionUpdate"; dtodishes.ImgD="UrlImgUpdate"; let updateDish=await DataDish.updateDish(dtodishes); if (updateDish===-1) { throw new Error("Dish no exist") } if (updateDish===-2) { throw new Error("Category no exist") } console.log(updateDish); let deleteDish=await DataDish.deleteDish(3); if (deleteDish===-1) { throw new Error("Dish no exist") } console.log(deleteDish); let addQuantity=await DataDish.addQuantity(5,12); if (addQuantity===-1) { throw new Error("Dish no exist") } console.log(addQuantity); let removeQuantity=await DataDish.removeQuantity(6,1); if (removeQuantity===-1) { throw new Error("Dish no exist") } console.log(removeQuantity); #endregion #region INGREDIENTS let registerIngredient=await DataDish.registerIngredient(4,"Ingredient3",20,2); if (registerIngredient===-1) { throw new Error("Dish no exist") } console.log(registerIngredient); let updateIngredientName=await DataDish.updateIngredientName(13,"IngredientUpdate",5); if (updateIngredientName===-1) { throw new Error("Ingredient no exist") } console.log(updateIngredientName); let removeIngredient=await DataDish.removeIngredient(12,5); if (removeIngredient===-1) { throw new Error("Ingredient no exist") } console.log(removeIngredient); let getIngredient=await DataDish.getIngredient(20); console.log(getIngredient); let getIngredientsDish=await DataDish.getIngredientsDish(8); console.log(getIngredientsDish); #endregion #region GETS let getDish=await DataDish.getDish(9); console.log(getDish); let getDishByCategory=await DataDish.getDishByCategory(4); console.log(getDishByCategory); let getSearchDish=await DataDish.getSearchDish(0,9999, "",0,9999,0,9999,0,9999,0,9999,"",0,9999,0,9999, 0,9999,"2" ); console.log(getSearchDish); #endregion } dishesmaintenace().then() #endregion #region TABLES let tablemaintenance=async()=> { async function registerTable() { for (let index = 0; index < 15; index++) { let registerTable = await DataTable.registerTable(4); console.log(registerTable); } } await registerTable(); let disableTable = await DataTable.disableTable(20); console.log(disableTable); let enableTable = await DataTable.enableTable(20); console.log(enableTable); let getTable=await DataTable.getTable(1); console.log(getTable); let getSearchTables=await DataTable.getSearchTables(); console.log(getSearchTables); } tablemaintenance().then() #endregion #region ORDER let ordermaintenance=async()=> { #region ONLINE ORDER let registerDish1=Order.registerDish(6,40,2); if (registerDish1===-1) { throw new Error("The number dish already exist in the list") } console.log(registerDish1); // let registerDish2=Order.registerDish(7,60,1); // if (registerDish2===-1) { // throw new Error("The number dish already exist in the list") // } // console.log(registerDish2); // let registerDish3=Order.registerDish(8,81,3); // if (registerDish3===-1) { // throw new Error("The number dish already exist in the list") // } // console.log(registerDish3); let getDishArray=Order.getDishArray(); console.log(getDishArray); // let cleanIDDishArray=Order.cleanIDDishArray(8); // console.log(cleanIDDishArray); // let removeIDDish=Order.removeIDDish(8); // console.log(removeIDDish); // let getDishArray2=Order.getDishArray(); // console.log(getDishArray2); let getDishesMultipleID=await DataDish.getDishesMultipleID(getDishArray); console.log(getDishesMultipleID); let dtocustomer=new DTOCustomer(); dtocustomer.NamesC=`NameCustomer`; dtocustomer.LastNameC=`LastNameCustomer`; dtocustomer.PhoneNumberC=`111111111111`; let dtoorder=new DTOOrder(); let newdate=new Date(2022,08,27); newdate.setUTCHours(15,00); dtoorder.DateO=newdate; dtoorder.SpecialRequirement="SpecialRequirement"; dtoorder.NumberPeople=2; dtoorder.Customer=dtocustomer; let registerOnlineOrder=await DataOrder.registerOnlineOrder(dtoorder,getDishArray); console.log(registerOnlineOrder) #endregion #region RESTAURANT ORDER let dtocustomer=new DTOCustomer(); dtocustomer.IDCustomer=8; dtocustomer.NamesC="NameCustomerorder"; dtocustomer.LastNameC="LastNameCustomer"; let registerDish1=Order.registerDish(6,40,2); if (registerDish1===-1) { throw new Error("The number dish already exist in the list") } console.log(registerDish1); let getDishArray=Order.getDishArray(); console.log(getDishArray); let getDishesMultipleID=await DataDish.getDishesMultipleID(getDishArray); console.log(getDishesMultipleID); let dtoorder=new DTOOrder(); let newdate=new Date(2022,08,27); newdate.setUTCHours(15,00); dtoorder.DateO=newdate; dtoorder.SpecialRequirement="SpecialRequirement"; dtoorder.NumberPeople=2; dtoorder.Customer=dtocustomer; let registerOrderRestaurant=await DataOrder.registerOrderRestaurant(dtoorder,getDishArray); console.log(registerOrderRestaurant) #endregion #region MAINTENANCE let addDetailOrder=await DataOrder.addDetailOrder(58,1,20); console.log(addDetailOrder); let removeDetailOrder=await DataOrder.removeDetailOrder(20,7); console.log(removeDetailOrder); let updateDetailOrderQuantity=await DataOrder.updateDetailOrderQuantity(20,6,3); console.log(updateDetailOrderQuantity); let updateSpecialRequirementsNumberPeople=await DataOrder.updateSpecialRequirementsNumberPeople(23,"SpecialRUpdate",3); console.log(updateSpecialRequirementsNumberPeople); let cancelOrder=await DataOrder.cancelOrder(10); console.log(cancelOrder); let confirmOrder=await DataOrder.confirmOrder(10); console.log(confirmOrder); let newdate=new Date(2022,07,28); newdate.setUTCHours(15,00); let updateDateOOrder=await DataOrder.updateDateOOrder(12,newdate); console.log(updateDateOOrder); #endregion #region GETS let getDetailOrder=await DataOrder.getDetailOrder(23,8); console.log(getDetailOrder); let getOrder=await DataOrder.getOrder(22); console.log(getOrder); let dateo1filter1=new Date(2000,09-1,27); dateo1filter1.setUTCHours(14,00); let dateo1filter2=new Date(2100,09-1,27); dateo1filter2.setUTCHours(16,00); let getSearchOrder=await DataOrder.getSearchOrder(0,9999, dateo1filter1,dateo1filter2, "Pending","",0,9999,0,9999,"","",0,9999,0,99999,7,8 ); console.log(getSearchOrder); let getMultipleIdOrder=await DataOrder.getMultipleIdOrder([24,26]); console.log(getMultipleIdOrder); #endregion } ordermaintenance().then() #endregion #region TABLE CUSTOMER let tablecustomer=async()=> { let registerTableCustomer=await DataTableCustomer.registerTableCustomer(4,33); console.log(registerTableCustomer); let updateIDTableTableCustomer=await DataTableCustomer.updateIDTableTableCustomer(3,32); console.log(updateIDTableTableCustomer); let deleteTableCustomer=await DataTableCustomer.deleteTableCustomer(1,31); console.log(deleteTableCustomer); GETS let getTableCustomer=await DataTableCustomer.getTableCustomer(1,30); console.log(getTableCustomer); let getMultipleIDTableTableCustomer=await DataTableCustomer.getMultipleIDTableTableCustomer([1,2]); console.log(getMultipleIDTableTableCustomer); let getMultipleIDCustomerTableCustomer=await DataTableCustomer.getMultipleIDCustomerTableCustomer([30,35,36]); console.log(getMultipleIDCustomerTableCustomer); let getSearchTableCustomer=await DataTableCustomer.getSearchTableCustomer( 0,9999,0,9999,0,9999,"","",0,9999 ); console.log(getSearchTableCustomer); } tablecustomer().then() #endregion #region BILL let billmaintenance=async()=> { let datenow=new Date(); let billdate= new Date(datenow.getFullYear(),datenow.getMonth(),datenow.getDate()); let registerBill=await DataBill.registerBill( billdate,24,33,22 ); console.log(registerBill); let datenow=new Date(); let billdate= new Date(datenow.getFullYear(),datenow.getMonth(),datenow.getDate()); let updateDateBill=await DataBill.updateDateBill( billdate,2 ); console.log(updateDateBill); let collectBill=await DataBill.collectBill(4); console.log(collectBill); let cancelBill=await DataBill.cancelBill(2); console.log(cancelBill); GETS let getBill=await DataBill.getBill(4); console.log(getBill); let getBillMultipleID=await DataBill.getBillMultipleID([2,3]); console.log(getBillMultipleID); let getSearchBill=await DataBill.getSearchBill( 3,3,new Date(2022,08-1,02),new Date(2022,09-1,18) ,0,9999,0,9999,0,9999,"",0,9999,0,9999,"" ); console.log(getSearchBill); } billmaintenance().then() #endregion ``` # https://uy.linkedin.com/in/carlos-andr%C3%A9s-rodr%C3%ADguez-p%C3%A9rez-6b3424191