+
+
+
+
+
+
+
Estoque
+
+
+
+
Estoque Lanche
+
+
+
+ Id
+ Nome
+ Descrição
+ Preço
+ Ativo
+
+
+
+
+
Estoque Ingredientes
+
+
+
+ Id
+ Nome
+ Descrição
+ Quantidade
+ Preço de Compra
+ Preço de Venda
+ Tipo
+ Ativo
+
+
+
+
+
Estoque Bebidas
+
+
+ Id
+ Nome
+ Descrição
+ Quantidade
+ Preço de Compra
+ Preço de Venda
+ Tipo
+ Ativo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/estoque/estoque.js b/target/lanchonete-online-1.0-SNAPSHOT/view/estoque/estoque.js
new file mode 100644
index 0000000..56a50eb
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/estoque/estoque.js
@@ -0,0 +1,280 @@
+function getInfo(){
+ requisicao("../../getIngredientes", getIngredientes);
+ requisicao("../../getBebidas", getBebidas);
+ requisicao("../../getLanches", getLanches);
+}
+
+
+function getIngredientes(resposta){
+
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ }
+ else {
+ dados = JSON.parse(resposta.srcElement.responseText);
+ atualizarIngredientes(dados);
+ }
+
+}
+
+function getLanches(resposta){
+
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ }
+ else {
+ dados = JSON.parse(resposta.srcElement.responseText);
+ atualizarLanches(dados);
+ }
+
+}
+
+function getBebidas(resposta){
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ }
+ else {
+ dados = JSON.parse(resposta.srcElement.responseText);
+ atualizarBebidas(dados);
+ }
+}
+
+function atualizarIngredientes(dados){
+
+ let tabela = document.getElementById("tabelaIngredientes");
+
+
+ Object.keys(dados).forEach(cadastro => {
+ let row = tabela.insertRow(1);
+ for (let key in dados[cadastro]) {
+ row.insertCell().innerHTML = dados[cadastro][key];
+ row.onclick = () => pegarIngrediente(dados[cadastro]);
+ }
+ });
+}
+
+function atualizarLanches(dados){
+
+ let tabela = document.getElementById("tabelaLanches");
+ Object.keys(dados).forEach(cadastro => {
+ let row = tabela.insertRow(1);
+ for (let key in dados[cadastro]) {
+ row.insertCell().innerHTML = dados[cadastro][key];
+ row.onclick = () => pegarLanche(dados[cadastro]);
+ }
+ });
+}
+
+function pegarIngrediente(dados) {
+ document.getElementById("ingredientesID").value = dados["id_ingrediente"];
+ document.getElementById("ingredientesNome").value = dados["nome"];
+ document.getElementById("ingredientesDescricao").value = dados["descricao"];
+ document.getElementById("ingredientesQuantidade").value = dados["quantidade"];
+ document.getElementById("ingredientesPrecoCompra").value = dados["valor_compra"];
+ document.getElementById("ingredientesPrecoVenda").value = dados["valor_venda"];
+ document.getElementById("ingredientesTipo").value = dados["tipo"];
+ showIngrediente();
+};
+
+function pegarLanche(dados) {
+ document.getElementById("lanchesID").value = dados["id_lanche"];
+ document.getElementById("lanchesNome").value = dados["nome"];
+ document.getElementById("lanchesDescricao").value = dados["descricao"];;
+ document.getElementById("lanchesPrecoVenda").value = dados["valor_venda"];
+ getIngredientesLanche(dados["id_lanche"])
+ showLanche();
+};
+
+function getIngredientesLanche(id){
+ dados = {}
+ dados['id'] = id;
+ requisicao("../../getIngredientesPorLanche", setarIngredientes, JSON.stringify(dados));
+
+}
+
+function setarIngredientes(resposta){
+ let tabela = document.getElementById("ingredientesLanche");
+ limparTabela(tabela);
+
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ }
+ else {
+ dados = JSON.parse(resposta.srcElement.responseText);
+
+ Object.keys(dados).forEach(cadastro => {
+ let row = tabela.insertRow(1);
+ for (let key in dados[cadastro]) {
+ row.insertCell().innerHTML = dados[cadastro][key];
+ }
+ });
+ }
+}
+
+function limparTabela(tabela){
+ //let tableRows = tabela.getElementsByTagName('tr');
+
+ while(tabela.rows.length > 1) {
+ tabela.deleteRow(1);
+ }
+}
+
+function showLanche(){
+ let ingredientes = document.getElementById("editarIngredientes");
+ let bebidas = document.getElementById("editarBebidas");
+ let lanches = document.getElementById("editarLanches");
+ lanches.style.display = 'block';
+ ingredientes.style.display = 'none';
+ bebidas.style.display = 'none';
+}
+
+
+function showIngrediente(){
+ let ingredientes = document.getElementById("editarIngredientes");
+ let bebidas = document.getElementById("editarBebidas");
+ let lanches = document.getElementById("editarLanches");
+ lanches.style.display = 'none';
+ ingredientes.style.display = 'block';
+ bebidas.style.display = 'none';
+}
+
+function atualizarBebidas(dados){
+ let tabela = document.getElementById("tabelaBebidas");
+
+
+ Object.keys(dados).forEach(cadastro => {
+ let row = tabela.insertRow(1);
+ for (let key in dados[cadastro]) {
+ row.insertCell().innerHTML = dados[cadastro][key];
+ row.onclick = () => pegarBebida(dados[cadastro]);
+ }
+ });
+
+}
+
+function pegarBebida(dados){
+ document.getElementById("bebidasID").value = dados["id_bebida"];
+ document.getElementById("bebidasNome").value = dados["nome"];
+ document.getElementById("bebidasDescricao").value = dados["descricao"];
+ document.getElementById("bebidasQuantidade").value = dados["quantidade"];
+ document.getElementById("bebidasPrecoCompra").value = dados["valor_compra"];
+ document.getElementById("bebidasPrecoVenda").value = dados["valor_venda"];
+ document.getElementById("bebidasTipo").value = dados["tipo"];
+ showBebida();
+}
+
+function showBebida(){
+ let ingredientes = document.getElementById("editarIngredientes");
+ let bebidas = document.getElementById("editarBebidas");
+ let lanches = document.getElementById("editarLanches");
+ lanches.style.display = 'none';
+ ingredientes.style.display = 'none';
+ bebidas.style.display = 'block';
+}
+
+function alterarIngrediente(){
+
+ let form = document.getElementById("editarIngredientes");
+ let dados = {};
+
+ if(validar(form)){
+ dados = formularioParaObjeto(form);
+ requisicao("../../alterarIngrediente", resolver, JSON.stringify(dados));
+ }
+
+}
+
+function alterarBebida(){
+
+ let form = document.getElementById("editarBebidas");
+ let dados = {};
+
+ if(validar(form)){
+ dados = formularioParaObjeto(form);
+ requisicao("../../alterarBebida", resolver, JSON.stringify(dados));
+ }
+
+}
+
+function removerIngrediente(){
+
+ let form = document.getElementById("editarIngredientes");
+ let dados = {};
+
+ if(validar(form)){
+ dados = formularioParaObjeto(form);
+ requisicao("../../removerIngrediente", resolver, JSON.stringify(dados));
+ }
+
+}
+
+function removerBebida(){
+
+ let form = document.getElementById("editarBebidas");
+ let dados = {};
+
+ if(validar(form)){
+ dados = formularioParaObjeto(form);
+ requisicao("../../removerBebida", resolver, JSON.stringify(dados));
+ }
+
+}
+
+
+function resolver(resposta){
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ } else {
+ alert(resposta.srcElement.responseText);
+ window.location.reload();
+ }
+}
+
+function validar(formulario){
+ let sucesso = true;
+ Object.values(formulario).reduce(
+ (obj, field) => {
+ if (field.value.toString().trim() === "" || field.value.toString().trim() === "Tipo") {
+ alert("Você precisa preencher todos os campos para se Cadastrar! O Campo "+field.name+" Está Vazio!")
+ sucesso = false;
+ return;
+ }
+ }, {});
+ return sucesso;
+}
+
+function formularioParaObjeto(formulario){
+ let dados = Object.values(formulario).reduce(
+ (obj, field) => {obj[field.name] = field.value; return obj}, {});
+ return dados;
+}
+
+function logout(){
+ deleteAllCookies();
+ deleteAllSession();
+ sessionStorage.clear();
+ requisicao("../../logout", deslogar)
+}
+
+function deslogar(resposta){
+ alert(resposta.srcElement.responseText);
+ window.location.replace("../home/home.html");
+}
+
+function deleteAllCookies() {
+
+ var cookies = document.cookie.split(";");
+ for (var i = 0; i < cookies.length; i++){
+ console.log(cookies[i].split("=")[0].trim());
+ document.cookie = cookies[i].split("=")[0].trim()+"=; expires=Thu, 01 jan 1970 00:00:01 GTM;";}
+}
+
+function deleteAllSession() {
+
+ console.log("Ué");
+ Object.keys(sessionStorage).forEach(
+ (key) => {
+ sessionStorage.removeItem(key);
+ }
+ )
+}
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/estoque/styles.css b/target/lanchonete-online-1.0-SNAPSHOT/view/estoque/styles.css
new file mode 100644
index 0000000..c872918
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/estoque/styles.css
@@ -0,0 +1,170 @@
+#editarIngredientes {
+ display: none;
+}
+
+#editarBebidas {
+ display: none;
+}
+
+#editarLanches {
+ display: none;
+}
+
+.containerEstoque {
+ width: 100vw;
+ height: 100vh;
+ background-image: url("../assets/fundoplano1.png")
+}
+
+.headerPage {
+ width: 100vw;
+ height: 12vh;
+ background-color: #F16262;
+ display: flex;
+ align-items: center;
+}
+
+.buttonLogout {
+ width: 12vw;
+ height: 7vh;
+ border-radius: 1em;
+ border: none;
+ background-color: white;
+ font-family: 'Sansita', sans-serif;
+ font-size: 2.4rem;
+ color: black;
+}
+
+
+.containerNavButton {
+ width: 60vw;
+ height: 10vh;
+ /* background-color: aquamarine; */
+
+}
+
+.containerAction {
+ width: 20vw;
+ height: 10vh;
+
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+}
+
+.containerPage {
+ width: 100vw;
+ height: 88vh;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.containerConteudo {
+ background-color: #F6F6F6;
+ width: 70vw;
+ height: 88vh;
+ display: flex;
+ overflow-y: auto;
+ flex-direction: column;
+ align-items: center;
+ /* padding-top: 45px; */
+ justify-content: flex-start;
+}
+
+
+table {
+ border-collapse: collapse;
+ table-layout: fixed;
+ width: 100%;
+ margin: 20px;
+ display: contents;
+ margin: 10vh;
+}
+
+th,
+td {
+ height: 1vh;
+ padding: 10px;
+ text-align: left;
+ border-bottom: 1px solid rgb(143, 141, 141);
+
+
+}
+
+tr:hover {
+ background-color: rgba(37, 37, 37, 0.356);
+}
+
+form {
+ margin: 10vh;
+ display: flexbox;
+ justify-content: space-evenly;
+}
+
+label {
+ font-family: 'Sansita', sans-serif;
+ position: relative;
+ margin: 6vh;
+}
+
+input {
+ justify-content: space-around;
+ flex-direction: column;
+}
+
+
+
+#editarIngredientes {
+ display: none;
+}
+
+#editarBebidas {
+ display: none;
+}
+
+.titleTypeContainer {
+ font-size: 2.8rem;
+ font-family: 'Sansita', sans-serif;
+ color: #000;
+}
+
+.containerTitle {
+ width: 100%;
+ margin-bottom: 20px;
+ display: flex;
+ justify-content: center;
+}
+
+.containerTable {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+ align-items: flex-start;
+}
+
+.titleTypeContainerTable {
+ font-size: 2.2rem;
+ font-family: 'Sansita', sans-serif;
+ color: #FFF;
+}
+
+.containerTitleTable {
+ width: 100%;
+ height: 5vh;
+ background-color: #F16262;
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+ padding: 2px 10px;
+}
+
+.iconArrow {
+ width: 100%;
+}
+
+.iconArrowLeft {
+ width: 4%;
+}
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/home/home.css b/target/lanchonete-online-1.0-SNAPSHOT/view/home/home.css
new file mode 100644
index 0000000..995aab3
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/home/home.css
@@ -0,0 +1,265 @@
+html {
+ background-color: #F6F6F6
+}
+
+#top {
+ width: 100vw;
+ height: 10vh;
+ background-color: #F16262;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-between;
+ padding-left: 25px;
+}
+
+
+
+#logo {
+ width: 3vw;
+ height: 8vh;
+ background-color: white;
+ margin: 10px 25px 10px 25px;
+ width: 20vw;
+}
+
+
+.sobre {
+ align-self: flex-end;
+ text-align: right;
+}
+
+.opcoes,
+.sobre {
+ height: 8vh;
+ margin: 10px 25px 10px 25px;
+ position: relative;
+ top: 10%;
+ vertical-align: center;
+ color: white;
+ font-family: 'Sansita', sans-serif;
+ align-items: center;
+ font-size: 2vw;
+ white-space: nowrap;
+}
+
+a {
+ padding: 0px;
+ margin: 0px;
+ text-decoration: none;
+ color: inherit;
+ font-family: 'Sansita', sans-serif;
+}
+
+.sobre:hover {
+
+ padding-bottom: -30px;
+ border-bottom: 10px solid white;
+}
+
+.opcoes:hover {
+
+ padding-bottom: -30px;
+ border-bottom: 10px solid white;
+}
+
+
+body,
+html {
+ width: 100%;
+ height: 100%;
+ font-family: Arial, Tahoma, sans-serif;
+
+}
+
+
+
+:root {
+ font-size: 60%;
+}
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+
+}
+
+html,
+body,
+#root {
+ height: 100vh;
+ margin: 0;
+ padding: 0;
+ overflow: hidden;
+
+}
+
+body {}
+
+
+body,
+input,
+button,
+textarea {
+ font: 500 1.6rem Poppins;
+}
+
+.contHome {
+ height: 100vh;
+ width: 100vw;
+ background-image: url("../assets/home.jpg");
+ background-color: transparent;
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-attachment: fixed;
+}
+
+.contFilho {
+ height: 90vh;
+ width: 100vw;
+ position: fixed;
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+ /* background-color: blanchedalmond; */
+}
+
+
+.logoHeader {
+ width: 12vw;
+ border: none;
+ border-radius: 10px;
+ background-size: cover;
+ background-repeat: no-repeat;
+
+}
+
+#imagemLogo2 {
+ width: 19vw;
+ height: 9vh;
+ position: relative;
+ left: -3vw;
+ top: 0.5vh;
+}
+
+
+.contFilho2 {
+ /* background-color: aqua; */
+
+ width: 32vw;
+ height: 90vh;
+ margin-right: 70px;
+ /* margin-bottom: 130px; */
+
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+.logo {
+
+ width: 30vw;
+ height: 26vh;
+ margin-top: 20px;
+ border: none;
+ background-color: transparent;
+}
+
+#imagemLogo {
+ width: 22.5vw;
+ height: 19vw;
+ position: relative;
+ top: -15vh;
+ left: 3.3vw;
+ -webkit-filter: drop-shadow(6px 10px 25px rgba(0, 0, 0, 0.5));
+ filter: url("data:image/svg+xml;utf8,
#drop-shadow");
+ -ms-filter: "progid:DXImageTransform.Microsoft.Dropshadow(OffX=2, OffY=15, Color='#444')";
+ filter: "progid:DXImageTransform.Microsoft.Dropshadow(OffX=2, OffY=15, Color='#444')";
+}
+
+.esp1,
+.esp2 {
+
+ width: 20vw;
+ height: 10px;
+ margin: 10px 0;
+ background: #FFFFFF;
+ border-radius: 20px;
+}
+
+.fantasia {
+
+ width: 100%;
+ height: 40vh;
+
+
+ flex-direction: column;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ text-align: center;
+ padding-bottom: 10px;
+
+ color: #FFFFFF;
+
+ opacity: 0.75;
+
+}
+
+.legendLogo {
+ font-family: 'Sansita', sans-serif;
+ font-size: 4.3rem;
+
+
+}
+
+.legendAtendimento {
+ font-family: 'Sansita', sans-serif;
+ font-size: 1.9rem;
+}
+
+.desc {
+
+ width: 445px;
+ height: 47px;
+ left: 894px;
+ top: 813px;
+ margin-top: 10px;
+ text-align: center;
+
+ color: #BCB2B2;
+
+}
+
+
+.button {
+ margin-top: 10px;
+ width: 175px;
+ height: 61px;
+ left: 1035px;
+ top: 695px;
+ border: none;
+ font-family: 'Sansita', sans-serif;
+ font-size: 2rem;
+ color: #FFF;
+ cursor: pointer;
+ background: #F16262;
+ border-radius: 30px;
+}
+
+
+
+
+footer {
+ clear: both;
+ width: 700px;
+ margin: 0 auto;
+ font-size: 0.75em;
+ text-align: center;
+ background-color: #ECECEC;
+ padding: 5px;
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+}
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/home/home.html b/target/lanchonete-online-1.0-SNAPSHOT/view/home/home.html
new file mode 100644
index 0000000..c083361
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/home/home.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
Lanchonete
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hamburgueria
+
+ &
+
+ Porções
+
+ Acessar Cardápio
+
+
+
+
+
+
+
+
+ Atendimento das 19:00 às 02:00
+ Entrega das 19:00 às 23:00
+
+
+
+
+
+
+
+
+
+
+
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/login/login.html b/target/lanchonete-online-1.0-SNAPSHOT/view/login/login.html
new file mode 100644
index 0000000..7acfc5b
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/login/login.html
@@ -0,0 +1,66 @@
+
+
+
Login
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/login/login.js b/target/lanchonete-online-1.0-SNAPSHOT/view/login/login.js
new file mode 100644
index 0000000..4106b3c
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/login/login.js
@@ -0,0 +1,57 @@
+function enviarLogin(){
+
+ let usuario = document.getElementById("loginInput").value;
+ let senha = document.getElementById("senhaInput").value;
+
+ if(usuario && senha){
+
+ let dados = {};
+
+ dados['usuario'] = usuario;
+ dados['senha'] = senha;
+
+
+ requisicao("../../login", resolver, JSON.stringify(dados));
+ } else {
+ alert("Digite as Informações!");
+ }
+
+}
+
+
+function resolver(resposta){
+ if(resposta.srcElement.responseText.localeCompare("erro") == -1){
+ let queryString = window.location.search;
+ let urlParams = new URLSearchParams(queryString);
+ if(urlParams.get('Action')){
+ if(urlParams.get('Action').localeCompare("montarLanche") == 0){
+ window.location.replace("../montarLanche/montarLanche.html");
+ } else {
+ window.location.replace(resposta.srcElement.responseText);}
+ } else {
+ window.location.replace(resposta.srcElement.responseText);
+ }
+ } else {
+ alert("Erro ao Logar! Tente novamente. Se Cadastre se não possuir uma conta!");
+ }
+}
+
+
+function validarToken(){
+ requisicao("../../validarToken", check)
+}
+
+function check(resposta){
+ if(resposta.srcElement.responseText.includes("erro")){
+ console.log("Token Inválido");
+ } else {
+ let queryString = window.location.search;
+ let urlParams = new URLSearchParams(queryString);
+ if(urlParams.get('Action')){
+ if(urlParams.get('Action').localeCompare("montarLanche") == 0){
+ window.location.replace("../montarLanche/montarLanche.html");
+ } else {
+ window.location.replace("../carrinho/carrinho.html");}
+ } else {window.location.replace("../carrinho/carrinho.html");}
+ }
+}
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/login/login_Funcionario.html b/target/lanchonete-online-1.0-SNAPSHOT/view/login/login_Funcionario.html
new file mode 100644
index 0000000..1d776ff
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/login/login_Funcionario.html
@@ -0,0 +1,81 @@
+
+
+
Login
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Login Administrativo
+
+
+
+
+
+
+ Entrar
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/login/styles.css b/target/lanchonete-online-1.0-SNAPSHOT/view/login/styles.css
new file mode 100644
index 0000000..7f762db
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/login/styles.css
@@ -0,0 +1,115 @@
+.containerLogin {
+ width: 100vw;
+ height: 100vh;
+ background-image: url("../assets/fundoplano1.png")
+}
+
+.headerPage {
+ width: 100vw;
+ height: 12vh;
+ background-color: #F16262;
+ display: flex;
+ align-items: center;
+}
+
+
+.containerNavButton {
+ width: 60vw;
+ height: 10vh;
+ /* background-color: aquamarine; */
+
+}
+
+.containerAction {
+ width: 20vw;
+ height: 10vh;
+ /* background-color: beige; */
+
+}
+
+.containerPage {
+ width: 100vw;
+ height: 88vh;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.containerConteudo {
+ background-color: #F6F6F6;
+ width: 70vw;
+ height: 88vh;
+}
+
+.iconArrow {
+ width: 100%;
+}
+
+.inputLogin {
+ width: 100%;
+ height: 40vh;
+ /* background-color: blue; */
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+}
+
+.buttonLink {
+ width: 100%;
+ height: 45vh;
+ /* background-color: brown; */
+ display: flex;
+ justify-content: flex-start;
+ flex-direction: column;
+ align-items: center;
+
+}
+
+.buttonSubmit {
+ background-color: #F16262;
+ width: 15%;
+ height: 20%;
+ border: none;
+ border-radius: 20px;
+ margin-bottom: 25px;
+ font-size: 2.2rem;
+ font-family: 'Sansita', sans-serif;
+ color: #FFF;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.TextInput {
+ width: 30vw;
+ margin-top: 25px;
+ height: 8vh;
+ border: 1px solid #BDBDBD;
+ border-radius: 10px;
+ padding: 15px;
+
+}
+
+#loginInput {
+ margin-top: 30px;
+}
+
+
+.iconArrowLeft {
+ width: 7%;
+}
+
+.titlePage {
+ font-family: 'Sansita', sans-serif;
+ font-size: 3.8rem;
+ user-select: none;
+}
+
+.linkNewCreate {
+ text-decoration: none;
+ color: #F16262;
+ font-family: 'Ubuntu', sans-serif;
+ font-size: 2rem;
+
+}
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/menu/menu.html b/target/lanchonete-online-1.0-SNAPSHOT/view/menu/menu.html
new file mode 100644
index 0000000..b5feae2
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/menu/menu.html
@@ -0,0 +1,40 @@
+
+
+
+
+
Cardápio
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Em Breve... Aguardem Novidades!
+
+
+
+
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/menu/menu.js b/target/lanchonete-online-1.0-SNAPSHOT/view/menu/menu.js
new file mode 100644
index 0000000..0a01c15
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/menu/menu.js
@@ -0,0 +1,265 @@
+function loadData(){
+ requisicao("../../getStatusLanchonete", verificarStatusAntesDeCarregar);
+}
+
+function verificarStatusAntesDeCarregar(response) {
+ if (response.srcElement.responseText !== "erro") {
+ try {
+ const data = JSON.parse(response.srcElement.responseText);
+ if (data.status === "ABERTO") {
+ requisicao("../../getLanchesCliente", getLanches);
+ requisicao("../../getBebidasCliente", getBebidas);
+ } else {
+ alert("A lanchonete está fechada no momento. Por favor, tente novamente mais tarde.");
+ }
+ } catch (e) {
+ console.error("Erro ao processar resposta:", e);
+ alert("Erro ao processar resposta do servidor. Tente novamente mais tarde.");
+ }
+ }
+}
+
+function divConstructor(dados){
+
+ let screen = document.getElementById("screen");
+
+ let divLanche = document.createElement('div');
+ divLanche.classList.add("divLanche");
+
+ let row = document.createElement('div');
+ row.classList.add("row");
+
+ let divImagem = document.createElement('div');
+ divImagem.classList.add("divImagem");
+
+ let img = document.createElement('img');
+ img.classList.add("lancheIMG");
+ img.setAttribute("src", imagemAleatoriaLanche());
+
+ let divConteudo = document.createElement('div');
+ divConteudo.classList.add("divConteudo");
+
+ let tituloLanche = document.createElement('h1');
+ tituloLanche.classList.add("tituloLanche");
+ tituloLanche.innerText = dados['nome'];
+
+ let row2 = document.createElement('div');
+ row2.classList.add("row");
+
+ let descricaoLanche = document.createElement('div');
+ descricaoLanche.classList.add("descricaoLanche");
+
+ let p = document.createElement("p");
+ p.classList.add("textoDescricao");
+ p.innerText = dados['descricao'];
+
+ let preco = document.createElement("p");
+ preco.classList.add("preco");
+ preco.innerText = "R$ "+dados['valor_venda'];
+
+ let column = document.createElement('div');
+ column.classList.add("column");
+
+ let botaoLanche1 = document.createElement("button");
+ botaoLanche1.classList.add("botaoLanche");
+ botaoLanche1.innerText = "Veja os Ingredientes"
+ botaoLanche1.onclick = () => {showIngredientes(dados['id_lanche']);
+ campoSelecionado = p;};
+
+
+ let botaoLanche2 = document.createElement("button");
+ botaoLanche2.classList.add("botaoLanche");
+ botaoLanche2.innerText = "Adicionar ao Carrinho"
+ botaoLanche2.onclick = () => {lancheProCarrinho(dados['nome'], dados['valor_venda']);};
+
+ screen.appendChild(divLanche);
+ divLanche.appendChild(row);
+ row.appendChild(divImagem);
+ divImagem.appendChild(img);
+ row.appendChild(divConteudo);
+ divConteudo.appendChild(tituloLanche);
+ divConteudo.appendChild(row2);
+ row2.appendChild(descricaoLanche);
+ descricaoLanche.appendChild(p);
+ descricaoLanche.appendChild(preco);
+ row2.appendChild(column);
+ column.appendChild(botaoLanche1);
+ column.appendChild(botaoLanche2);
+}
+
+function divConstructorBebidas(dados){
+
+ let screen = document.getElementById("screenBebidas");
+
+ let divLanche = document.createElement('div');
+ divLanche.classList.add("divLanche");
+
+ let row = document.createElement('div');
+ row.classList.add("row");
+
+ let divImagem = document.createElement('div');
+ divImagem.classList.add("divImagem");
+
+ let img = document.createElement('img');
+ img.classList.add("lancheIMG");
+ img.setAttribute("src", imagemAleatoriaBebida());
+
+ let divConteudo = document.createElement('div');
+ divConteudo.classList.add("divConteudo");
+
+ let tituloLanche = document.createElement('h1');
+ tituloLanche.classList.add("tituloLanche");
+ tituloLanche.innerText = dados['nome'];
+
+ let row2 = document.createElement('div');
+ row2.classList.add("row");
+
+ let descricaoLanche = document.createElement('div');
+ descricaoLanche.classList.add("descricaoLanche");
+
+ let p = document.createElement("p");
+ p.classList.add("textoDescricao");
+ p.innerText = dados['descricao'];
+
+ let preco = document.createElement("p");
+ preco.classList.add("preco");
+ preco.innerText = "R$ "+dados['valor_venda'];
+
+ let column = document.createElement('div');
+ column.classList.add("column");
+
+ let botaoLanche1 = document.createElement("button");
+ botaoLanche1.classList.add("botaoLanche");
+ botaoLanche1.innerText = "Tipo: "+dados['tipo'].capitalize();
+
+ let botaoLanche2 = document.createElement("button");
+ botaoLanche2.classList.add("botaoLanche");
+ botaoLanche2.innerText = "Adicionar ao Carrinho"
+ botaoLanche2.onclick = () => {bebidaProCarrinho(dados['nome'], dados['valor_venda']);};
+
+ screen.appendChild(divLanche);
+ divLanche.appendChild(row);
+ row.appendChild(divImagem);
+ divImagem.appendChild(img);
+ row.appendChild(divConteudo);
+ divConteudo.appendChild(tituloLanche);
+ divConteudo.appendChild(row2);
+ row2.appendChild(descricaoLanche);
+ descricaoLanche.appendChild(p);
+ descricaoLanche.appendChild(preco);
+ row2.appendChild(column);
+ column.appendChild(botaoLanche1);
+ column.appendChild(botaoLanche2);
+}
+
+function getLanches(resposta){
+
+ if(resposta.srcElement.responseText.includes("erro")){
+ alert("Ocorreu um erro com nosso Sistema! Tente novamente mais tarde.")
+ }
+ else {
+ dados = JSON.parse(resposta.srcElement.responseText);
+
+ Object.keys(dados).forEach( lanche => {
+ divConstructor(dados[lanche])}
+ )
+ }
+
+}
+
+function getBebidas(resposta){
+
+ if(resposta.srcElement.responseText.includes("erro")){
+ alert("Ocorreu um erro com nosso Sistema! Tente novamente mais tarde.")
+ }
+ else {
+ dados = JSON.parse(resposta.srcElement.responseText);
+
+ Object.keys(dados).forEach( lanche => {
+ divConstructorBebidas(dados[lanche])}
+ )
+ }
+
+}
+
+function imagemAleatoriaLanche(){
+ n = Math.floor(Math.random() * 4) + 1
+ return "../assets/lanches/" + n + ".jpg";
+}
+
+function imagemAleatoriaBebida(){
+ n = Math.floor(Math.random() * 4) + 1
+ return "../assets/bebidas/" + n + ".jpg";
+}
+
+function showBebidas(){
+
+ let lanches = document.getElementById("screen");
+ let bebidas = document.getElementById("screenBebidas");
+ let porcoes = document.getElementById("screenPorcoes");
+
+ lanches.style.display = 'none';
+ bebidas.style.display = 'block';
+ porcoes.style.display = 'none';
+
+}
+
+function showLanches(){
+
+ let lanches = document.getElementById("screen");
+ let bebidas = document.getElementById("screenBebidas");
+ let porcoes = document.getElementById("screenPorcoes");
+
+ lanches.style.display = 'block';
+ bebidas.style.display = 'none';
+ porcoes.style.display = 'none';
+
+}
+
+function showPorcoes(){
+
+ let lanches = document.getElementById("screen");
+ let bebidas = document.getElementById("screenBebidas");
+ let porcoes = document.getElementById("screenPorcoes");
+
+ lanches.style.display = 'none';
+ bebidas.style.display = 'none';
+ porcoes.style.display = 'block';
+
+}
+
+String.prototype.capitalize = function() {
+ return this.charAt(0).toUpperCase() + this.slice(1);
+}
+
+
+function showIngredientes(id){
+ getIngredientesLanche(id);
+}
+
+function getIngredientesLanche(id){
+ dados = {}
+ dados['id'] = id;
+ requisicao("../../getIngredientesPorLancheCliente", mostrarIngredientes, JSON.stringify(dados));
+}
+
+function mostrarIngredientes(resposta){
+ dados = JSON.parse(resposta.srcElement.responseText);
+ let string="";
+ Object.keys(dados).forEach(ingrediente => {
+ string += "-"+dados[ingrediente]['nome']+"\r\n"}
+ )
+ campoSelecionado.innerText = string;
+}
+
+function lancheProCarrinho(nome, preco){
+ console.log("Ativado")
+ sessionStorage.setItem(nome, preco+";lanche;1");
+ alert("Lanche salvo! Faça login no Carrinho para Prosseguir ou Removê-lo");
+}
+
+function bebidaProCarrinho(nome, preco,){
+ console.log("Ativado")
+ sessionStorage.setItem(nome, preco+";bebida;1");
+ alert("Bebida salva! Faça login no Carrinho para Prosseguir ou Removê-lo");
+}
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/menu/styles.css b/target/lanchonete-online-1.0-SNAPSHOT/view/menu/styles.css
new file mode 100644
index 0000000..776a305
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/menu/styles.css
@@ -0,0 +1,237 @@
+body {
+ margin: 0px;
+ padding: 0px;
+}
+
+#content {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+#top {
+ width: 100%;
+ height: 12vh;
+ background-color: #F16262;
+ display: flex;
+ flex-direction: row;
+}
+
+
+
+.logo {
+
+ width: 30vw;
+ height: 26vh;
+ margin-top: 20px;
+ border: none;
+ background-color: transparent;
+}
+
+#imagemLogo2 {
+ width: 19vw;
+ height: 9vh;
+ position: relative;
+ left: -1.1vw;
+ top: 1.1vh;
+}
+
+
+.opcoes {
+ width: 3vw;
+ height: 8vh;
+ margin: 10px 25px 10px 25px;
+ position: relative;
+ top: 10%;
+ text-align: center;
+ vertical-align: center;
+ width: 15vw;
+ color: white;
+ font-family: 'Sansita', sans-serif;
+ align-items: center;
+ font-size: 2vw;
+ white-space: nowrap;
+}
+
+a {
+ padding: 0px;
+ margin: 0px;
+ text-decoration: none;
+ color: inherit;
+ font-family: 'Sansita', sans-serif;
+}
+
+.opcoes:hover {
+
+ padding-bottom: -30px;
+ border-bottom: 10px solid white;
+}
+
+#carrinho {
+ width: 3vw;
+ height: 8vh;
+ background-color: white;
+ margin: 10px 25px 10px 25px;
+ width: 20vw;
+ border-radius: 30px;
+ float: right;
+ color: black;
+ align-items: center;
+ text-align: center;
+ font-family: 'Sansita', sans-serif;
+ font-size: 2vw;
+ white-space: nowrap;
+ vertical-align: center;
+
+}
+
+#carrinho a {
+ position: relative;
+ top: 10%;
+}
+
+#background {
+ height: 88vh;
+ width: 100%;
+ background-color: white;
+ align-items: center;
+ background-image: url("../assets/fundoplano1.png");
+ background-repeat: repeat;
+ background-size: auto;
+ display: flex;
+ justify-content: center;
+}
+
+#screen {
+ width: 60vw;
+ height: 88vh;
+ background-color: white;
+ overflow-y: scroll;
+ scrollbar-color: white;
+
+}
+
+#screen::-webkit-scrollbar {
+ display: none;
+}
+
+#screenBebidas {
+ width: 60vw;
+ height: 88vh;
+ background-color: white;
+ overflow-y: scroll;
+ scrollbar-color: white;
+ display: none;
+}
+
+#screenBebidas::-webkit-scrollbar {
+ display: none;
+}
+
+#screenPorcoes {
+ width: 60vw;
+ height: 88vh;
+ background-color: white;
+ overflow-y: scroll;
+ scrollbar-color: white;
+ display: none;
+}
+
+#screenPorcoes::-webkit-scrollbar {
+ display: none;
+}
+
+.divLanche {
+ width: 100%;
+ height: 30vh;
+ margin-top: 20px;
+ margin-bottom: 20px;
+ display: block;
+ /*background-color: rgba(167, 156, 156, 0.116);*/
+}
+
+.row {
+ display: flex;
+ flex-direction: row;
+}
+
+.column {
+ display: flex;
+ flex-direction: column;
+}
+
+.divImagem {
+ display: block;
+ margin: 3vw;
+ width: 13vw;
+ height: 23vh;
+ margin-right: 0vw;
+}
+
+.lancheIMG {
+ width: 13vw;
+ height: 100%;
+ border-radius: 10%;
+}
+
+.divConteudo {
+ display: block;
+ margin: 3vh;
+ width: 70%;
+ height: 23vh;
+}
+
+.tituloLanche {
+ font-size: 2vw;
+ margin: 1vw;
+ margin-left: 0.5vw;
+ margin-bottom: 0.5vh;
+ border-bottom: 2px solid black;
+}
+
+.descricaoLanche {
+ background-color: rgba(238, 134, 116, 0.301);
+ width: 28vw;
+ height: 17.5vh;
+ margin: 0.5vw;
+ border-radius: 10px;
+ display: block;
+ color: rgb(70, 70, 70);
+
+}
+
+.textoDescricao::-webkit-scrollbar {
+ display: none;
+}
+
+
+.textoDescricao {
+ margin: 5px;
+ height: 100%;
+ overflow-y: scroll;
+}
+
+.preco {
+ position: relative;
+ top: -9vh;
+ float: right;
+ color: red;
+ font-size: 22px;
+}
+
+.botaoLanche {
+ width: 10vw;
+ height: 6vh;
+ margin: 2vh;
+ background-color: cornsilk;
+ border-radius: 6px;
+ color: rgb(70, 70, 70);
+ font-size: 12px;
+}
+
+.emBreve {
+ position: relative;
+ top: 30%;
+ text-align: center;
+ color: black;
+}
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/montarLanche/montarLanche.html b/target/lanchonete-online-1.0-SNAPSHOT/view/montarLanche/montarLanche.html
new file mode 100644
index 0000000..15fb5e8
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/montarLanche/montarLanche.html
@@ -0,0 +1,70 @@
+
+
+
Painel de Controle
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Monte agora seu lanche!
+
+
+
+
+
+
Defina o seu lanche
+
+
+
+
+
+
+
Escolha o seu pão
+
+
+
+ Pão
+
+
+
+
Vamos turbinar ?
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/montarLanche/montarLanche.js b/target/lanchonete-online-1.0-SNAPSHOT/view/montarLanche/montarLanche.js
new file mode 100644
index 0000000..609b19f
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/montarLanche/montarLanche.js
@@ -0,0 +1,157 @@
+
+function getInfo(){
+requisicao("../../getIngredientesCliente", getIngredientes);
+}
+
+function getIngredientes(resposta){
+
+ dadosLanche = {};
+ dadosLanche['ingredientes'] = {};
+ valor = 0;
+
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ }
+ else {
+ dados = JSON.parse(resposta.srcElement.responseText);
+ Object.keys(dados).forEach( ingrediente => {
+ if(dados[ingrediente]['tipo'] == 'pao'){
+ option = document.createElement('option');
+ option.innerText=dados[ingrediente]['nome'];
+ document.getElementById('SelectPao').add(option);
+ } else {
+ createIngredienteDiv(dados[ingrediente])}
+ })
+ }
+
+}
+
+function createIngredienteDiv(dados){
+
+ let ingredientes = document.getElementById("ingredientes");
+
+ let opcIngredientes = document.createElement('div');
+ opcIngredientes.classList.add("opcIngredientes");
+
+ let nameValue = document.createElement('div');
+ nameValue.classList.add('nameValue');
+
+ let legendIngrediente = document.createElement('p');
+ legendIngrediente.classList.add('legendIngrediente');
+ legendIngrediente.innerHTML = dados['nome']+"
R$ "+dados['valor_venda'];
+
+ let containerIncremento = document.createElement('div');
+ containerIncremento.classList.add('containerIncremento');
+
+ let contador = document.createElement('div');
+ contador.classList.add('contador');
+
+ let p = document.createElement('p');
+ p.classList.add('legendIngrediente');
+ p.innerText = 0;
+
+ let buttonplus = document.createElement('button');
+ buttonplus.classList.add('buttonIcons');
+ buttonplus.type = "button";
+ buttonplus.onclick = ()=>{plusItem(p, dados['nome'], dados['valor_venda']);};
+
+ let plus = document.createElement('p');
+ plus.classList.add('icon');
+ plus.innerText = " +";
+
+ let buttonminus = document.createElement('button');
+ buttonminus.classList.add('buttonIcons');
+ buttonminus.type = "button";
+ buttonminus.onclick = ()=>{minusItem(p, dados['nome'], dados['valor_venda']);};
+
+ let minus = document.createElement('p');
+ minus.classList.add('icon');
+ minus.innerText = "– ";
+
+
+
+ ingredientes.appendChild(opcIngredientes);
+ opcIngredientes.appendChild(nameValue);
+ nameValue.appendChild(legendIngrediente);
+ opcIngredientes.appendChild(containerIncremento);
+ containerIncremento.appendChild(contador);
+ contador.appendChild(buttonminus);
+ buttonminus.appendChild(minus);
+ contador.appendChild(p);
+ contador.appendChild(buttonplus);
+ buttonplus.appendChild(plus);
+
+}
+
+function plusItem(p, nome, valorI){
+ n = parseInt(p.innerText) + 1;
+ p.innerText = n;
+
+ dadosLanche['ingredientes'][nome] = p.innerText;
+ valor += parseFloat(valorI);
+ atualizarValor();
+}
+
+function minusItem(p, nome, valorI){
+ if(parseInt(p.innerText) > 0){
+ n = parseInt(p.innerText) - 1;
+ p.innerText = n;
+
+ dadosLanche[nome] = p.innerText;
+
+ valor -= parseFloat(valorI);
+ atualizarValor();
+ if(p.innerText == "0"){
+ delete dadosLanche['ingredientes'][nome];
+ }
+ }
+}
+
+function atualizarValor(){
+ document.getElementById("valor1").innerText = "R$ "+valor.toFixed(2);
+}
+
+function salvarLanche(){
+
+ let dados = {};
+
+ if(validarLanche()){
+ console.log(dadosLanche);
+ requisicao("../../salvarLancheCliente", resolver, JSON.stringify(dadosLanche));
+ }
+
+}
+
+function validarLanche(){
+ let nome = document.getElementById("nomeLanche");
+ let descricao = document.getElementById("textArea3");
+ let pao = document.getElementById("SelectPao");
+ let resultado = true;
+ if(nome.value == ""){
+ alert("Campo Nome Vazio!")
+ resultado = false;
+ }
+ if(descricao.value == ""){
+ alert("Campo Descrição Vazio!")
+ resultado = false;
+ }
+ if(pao.selectedIndex == 0){
+ alert("Campo Pão Vazio!")
+ resultado = false;
+ }
+ if(resultado){
+ dadosLanche['nome'] = nome.value;
+ dadosLanche['descricao'] = descricao.value;
+ dadosLanche['ingredientes'][pao.value] = 1 ;
+ }
+ return resultado;
+}
+
+function resolver(resposta){
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login.html");
+ } else {
+ window.location.replace(resposta.srcElement.responseText);
+
+ }
+}
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/montarLanche/styles.css b/target/lanchonete-online-1.0-SNAPSHOT/view/montarLanche/styles.css
new file mode 100644
index 0000000..1b00977
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/montarLanche/styles.css
@@ -0,0 +1,277 @@
+.containerMontar {
+ width: 100vw;
+ height: 100vh;
+ background-image: url("../assets/fundoplano1.png")
+}
+
+.headerPage {
+ width: 100vw;
+ height: 12vh;
+ background-color: #F16262;
+ display: flex;
+ align-items: center;
+}
+
+.containerAgrupados {
+ width: 100%;
+ height: 5vh;
+ margin-bottom: 10px;
+ display: flex;
+ justify-content: space-between;
+}
+
+.titleTypeContainer {
+ font-size: 2.8rem;
+ font-family: 'Sansita', sans-serif;
+ color: #000;
+ text-align: center;
+}
+
+.containerEspaco {
+ height: 100%;
+ width: 35%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.containerEspacoB {
+ display: flex;
+ align-items: flex-start;
+ justify-content: flex-start;
+ height: 100%;
+ width: 70%;
+
+}
+
+
+.containerValue {
+ width: 40%;
+ height: 60%;
+ display: flex;
+ border: 1px solid #F16262;
+ border-radius: 1em;
+ padding: 5px 0 5px 0;
+ align-items: center;
+ flex-direction: column;
+}
+
+.buttonLogout {
+ width: 12vw;
+ height: 7vh;
+ border-radius: 1em;
+ border: none;
+ background-color: white;
+ font-family: 'Sansita', sans-serif;
+ font-size: 2.4rem;
+ color: black;
+}
+
+
+.containerNavButton {
+ width: 60vw;
+ height: 10vh;
+ /* background-color: aquamarine; */
+
+}
+
+.containerAction {
+ width: 20vw;
+ height: 10vh;
+
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+}
+
+.containerPage {
+ width: 100vw;
+ height: 88vh;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.containerConteudo {
+ background-color: #F6F6F6;
+ width: 70vw;
+ height: 88vh;
+ display: block;
+ overflow-y: scroll;
+ flex-direction: column;
+ align-items: center;
+ /* padding-top: 45px; */
+ justify-content: flex-start;
+}
+
+.iconArrow {
+ width: 100%;
+}
+
+.iconArrowLeft {
+ width: 4%;
+}
+
+.legendValue {
+ font-family: 'Ubuntu', sans-serif;
+ color: #FFF;
+ font-size: 1.8rem;
+
+}
+
+.containerValueLanche {
+ margin-top: 10%;
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #F16262;
+}
+
+.legendTitleContainer {
+ font-family: 'Sansita', sans-serif;
+ font-size: 2.2rem;
+ color: black;
+ user-select: none;
+}
+
+.titleTypeContainerTable {
+ font-size: 2.2rem;
+ font-family: 'Sansita', sans-serif;
+ color: #FFF;
+}
+
+.containerTitleTable {
+ width: 100%;
+ height: 5vh;
+ margin: 10px 0;
+ background-color: #F16262;
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+ padding: 2px 10px;
+}
+
+.TextInput {
+ width: 32vw;
+ margin-top: 10px;
+ height: 7vh;
+ border: 1px solid #BDBDBD;
+ border-radius: 10px;
+ padding-left: 15px;
+}
+
+#SelectPao {
+ margin-bottom: 10px;
+}
+
+
+.opcIngredientes {
+ width: 75%;
+ border-radius: 1em;
+ height: 8vh;
+ border: solid 2px #F16262;
+ margin: 15px 0;
+ padding: 2px 15px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.contador {
+ width: 8vw;
+ height: 5vh;
+ border: 2px solid #000;
+ border-radius: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 2px 15px;
+}
+
+.buttonIcons {
+ border: none;
+ background-color: Transparent;
+}
+
+.legendIngrediente {
+ font-family: 'Sansita', sans-serif;
+ font-size: 1.5rem;
+ color: #676464;
+}
+
+.buttonInputContainer {
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ height: 15%;
+ margin-top: 10px;
+ /* background-color: chartreuse; */
+}
+
+.buttonSubmitCancel {
+ background-color: #978D8D;
+ width: 30%;
+ height: 90%;
+ border: none;
+ border-radius: 20px;
+ margin-bottom: 25px;
+ font-size: 2rem;
+ font-family: 'Sansita', sans-serif;
+ color: #FFF;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+}
+
+
+
+.buttonSubmitSalvar {
+ background-color: #F16262;
+ width: 30%;
+ height: 90%;
+ border: none;
+ border-radius: 20px;
+ margin-bottom: 25px;
+ font-size: 2rem;
+ font-family: 'Sansita', sans-serif;
+ color: #FFF;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+}
+
+.containerInputSelect {
+ align-items: center;
+ flex-direction: column;
+ display: flex;
+}
+
+#textArea3 {
+ resize: none;
+ height: 10vh;
+ padding-top: 5px;
+ margin-bottom: 20px;
+}
+
+#ingredientes {
+ display: flex;
+ flex-direction: column;
+ overflow-y: scroll;
+ height: 27vh;
+ width: 100%;
+ align-items: center;
+}
+
+#ingredientes::-webkit-scrollbar {
+ display: none;
+}
+
+
+.icon {
+ font-size: 2vw;
+ font-weight: bold;
+}
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/painel/painel.html b/target/lanchonete-online-1.0-SNAPSHOT/view/painel/painel.html
new file mode 100644
index 0000000..a97afc5
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/painel/painel.html
@@ -0,0 +1,258 @@
+
+
+
+
+
Painel de Controle
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Lanchonete Code Burguer's
+
+
+
+
+
Gerenciamento de serviços
+
+
+ Abrir lanchonete
+ Fechar lanchonete
+
+
+
+
+
+
Cadastro de Items
+
+
+
+
+
+
+
+
+
+
+
Cadastro de Ingredientes
+
+
+
+
+
+
+
+
+
Cadastro de Bebidas
+
+
+
+
+
+
+
Cadastro de Funcionários
+
+
+
+
+
+
+
+
+
+
+
+
Cadastro de lanches
+
+
+
+
+
Preço do Lanche
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/painel/painel.js b/target/lanchonete-online-1.0-SNAPSHOT/view/painel/painel.js
new file mode 100644
index 0000000..3ad4dcb
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/painel/painel.js
@@ -0,0 +1,414 @@
+function validarToken(){
+ sessionStorage.clear();
+ requisicao("../../validarTokenFunc", check)
+}
+
+function check(resposta){
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ }
+}
+
+function showCadIngredienteDiv(){
+
+
+ let tip = document.getElementById("Agrupado");
+ let div = document.getElementById("CadIngredientes");
+ let div2 = document.getElementById("CadBebidas");
+ let div3 = document.getElementById("CadFuncionarios");
+ let div4 = document.getElementById("CadLanches");
+
+ tip.style.display = 'none';
+ div.style.display = 'block';
+ div2.style.display = 'none';
+ div3.style.display = 'none';
+ div4.style.display = 'none';
+}
+
+function showCadBebidaDiv(){
+
+ let tip = document.getElementById("Agrupado");
+ let div = document.getElementById("CadBebidas");
+ let div2 = document.getElementById("CadIngredientes");
+ let div3 = document.getElementById("CadFuncionarios");
+ let div4 = document.getElementById("CadLanches");
+
+
+ tip.style.display = 'none';
+ div.style.display = 'block';
+ div2.style.display = 'none';
+ div3.style.display = 'none';
+ div4.style.display = 'none';
+
+}
+
+function showInicioDiv(){
+
+ let tip = document.getElementById("Agrupado");
+ let div = document.getElementById("CadBebidas");
+ let div2 = document.getElementById("CadIngredientes");
+ let div3 = document.getElementById("CadFuncionarios");
+ let div4 = document.getElementById("CadLanches");
+
+
+ tip.style.display = 'block';
+ div.style.display = 'none';
+ div2.style.display = 'none';
+ div3.style.display = 'none';
+ div4.style.display = 'none';
+}
+
+function salvarIngrediente(){
+
+ let form = document.getElementById("addIngrediente");
+ let dados = {};
+
+ if(validar(form)){
+ dados = formularioParaObjeto(form);
+ requisicao("../../salvarIngrediente", resolver, JSON.stringify(dados));
+
+ }
+
+}
+
+function salvarBebida(){
+
+ let form = document.getElementById("addBebida");
+ let dados = {};
+
+ if(validar(form)){
+ dados = formularioParaObjeto(form);
+ requisicao("../../salvarBebida", resolver, JSON.stringify(dados));
+
+ }
+
+}
+
+function salvarFuncionario(){
+
+ let form = document.getElementById("addFuncionario");
+ let dados = {};
+
+ if(validar(form)){
+ dados = formularioParaObjeto(form);
+ console.log(dados);
+ requisicao("../../salvarFuncionario", resolver, JSON.stringify(dados));
+
+ }
+
+}
+
+function showCadLanches(){
+ //CadLanches
+
+ let tip = document.getElementById("Agrupado");
+ let div = document.getElementById("CadLanches");
+ let div2 = document.getElementById("CadBebidas");
+ let div3 = document.getElementById("CadFuncionarios");
+ let div4 = document.getElementById("CadIngredientes");
+ //let divStatus = document.getElementById("statusId")
+ //let divStatus2 = document.getElementById("statusId2")
+ //let divcenter = document.getElementById("footerId");
+
+
+ tip.style.display = 'none';
+ div.style.display = 'block';
+ div2.style.display = 'none';
+ div3.style.display = 'none';
+ div4.style.display = 'none';
+ //divStatus.style.display = 'flex';
+ //divStatus2.style.display = 'flex';
+ //divcenter.style.justifyContent = 'space-around';
+
+
+ requisicao("../../getIngredientes", getIngredientes);
+
+}
+
+function resolver(resposta){
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ } else {
+ alert(resposta.srcElement.responseText);
+ window.location.reload();
+ }
+}
+
+function logout(){
+ deleteAllCookies();
+ deleteAllSession();
+ sessionStorage.clear();
+ requisicao("../../logout", deslogar)
+}
+
+function deslogar(resposta){
+ alert(resposta.srcElement.responseText);
+ window.location.replace("../home/home.html");
+}
+
+function deleteAllCookies() {
+
+ var cookies = document.cookie.split(";");
+ for (var i = 0; i < cookies.length; i++){
+ console.log(cookies[i].split("=")[0].trim());
+ document.cookie = cookies[i].split("=")[0].trim()+"=; expires=Thu, 01 jan 1970 00:00:01 GTM;";}
+}
+
+function deleteAllSession() {
+
+ console.log("Ué");
+ Object.keys(sessionStorage).forEach(
+ (key) => {
+ sessionStorage.removeItem(key);
+ }
+ )
+}
+
+function showCadFuncionario(){
+
+ let tip = document.getElementById("Agrupado");
+ let div = document.getElementById("CadLanches");
+ let div2 = document.getElementById("CadBebidas");
+ let div3 = document.getElementById("CadFuncionarios")
+
+
+ tip.style.display = 'none';
+ div.style.display = 'none';
+ div2.style.display = 'none';
+ div3.style.display = 'block';
+}
+
+function formularioParaObjeto(formulario){
+ let dados = Object.values(formulario).reduce(
+ (obj, field) => {obj[field.name] = field.value; return obj}, {});
+ return dados;
+}
+
+function validar(formulario){
+ let sucesso = true;
+ Object.values(formulario).reduce(
+ (obj, field) => {
+ if (field.value.toString().trim() === "" || field.value.toString().trim() === "Tipo") {
+ alert("Você precisa preencher todos os campos para se Cadastrar! O Campo "+field.name+" Está Vazio!")
+ sucesso = false;
+ return;
+ }
+ }, {});
+ return sucesso;
+}
+
+function getIngredientes(resposta){
+
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ }
+ else {
+ dados = JSON.parse(resposta.srcElement.responseText);
+ Object.keys(dados).forEach( ingrediente => {
+ if(dados[ingrediente]['tipo'] == 'pao'){
+ option = document.createElement('option');
+ option.innerText=dados[ingrediente]['nome'];
+ document.getElementById('selectPao').add(option);
+ } else {
+ createIngredienteDiv(dados[ingrediente])}
+ })
+ }
+
+}
+
+function createIngredienteDiv(dados){
+
+ let ingredientes = document.getElementById("ingredientes");
+
+ let opcIngredientes = document.createElement('div');
+ opcIngredientes.classList.add("opcIngredientes");
+
+ let nameValue = document.createElement('div');
+ nameValue.classList.add('nameValue');
+
+ let legendIngrediente = document.createElement('p');
+ legendIngrediente.classList.add('legendIngrediente');
+ legendIngrediente.innerHTML = dados['nome']+"
R$ "+dados['valor_venda'];
+
+ let containerIncremento = document.createElement('div');
+ containerIncremento.classList.add('containerIncremento');
+
+ let contador = document.createElement('div');
+ contador.classList.add('contador');
+
+ let p = document.createElement('p');
+ p.classList.add('legendIngrediente');
+ p.innerText = 0;
+
+ let buttonplus = document.createElement('button');
+ buttonplus.classList.add('buttonIcons');
+ buttonplus.type = "button";
+ buttonplus.onclick = ()=>{plusItem(p, dados['nome']);};
+
+ let plus = document.createElement('p');
+ plus.classList.add('icon');
+ plus.innerText = " +";
+
+ let buttonminus = document.createElement('button');
+ buttonminus.classList.add('buttonIcons');
+ buttonminus.type = "button";
+ buttonminus.onclick = ()=>{minusItem(p, dados['nome']);};
+
+ let minus = document.createElement('p');
+ minus.classList.add('icon');
+ minus.innerText = "– ";
+
+
+
+ ingredientes.appendChild(opcIngredientes);
+ opcIngredientes.appendChild(nameValue);
+ nameValue.appendChild(legendIngrediente);
+ opcIngredientes.appendChild(containerIncremento);
+ containerIncremento.appendChild(contador);
+ contador.appendChild(buttonminus);
+ buttonminus.appendChild(minus);
+ contador.appendChild(p);
+ contador.appendChild(buttonplus);
+ buttonplus.appendChild(plus);
+
+}
+
+function plusItem(p, nome){
+ n = parseInt(p.innerText) + 1;
+ p.innerText = n;
+
+ sessionStorage.setItem(nome, p.innerText);
+
+}
+
+function minusItem(p, nome){
+ if(parseInt(p.innerText) > 0){
+ n = parseInt(p.innerText) - 1;
+ p.innerText = n;
+
+ sessionStorage.setItem(nome, p.innerText);
+ }
+}
+
+function salvarLanche(){
+
+ let dados = {};
+
+ if(validarLanche()){
+ dados = dadosDoLanche();
+ console.log(dados);
+ sessionStorage.clear()
+ requisicao("../../salvarLanche", resolver, JSON.stringify(dados));
+ window.location.reload();
+ }
+
+}
+
+
+function validarLanche(){
+ let nome = document.getElementById("nomeLanche");
+ let descricao = document.getElementById("textArea3");
+ let pao = document.getElementById("selectPao");
+ let valor = document.getElementById("ValorLanche");
+ let resultado = true;
+ if(nome.value == ""){
+ alert("Campo Nome Vazio!")
+ resultado = false;
+ }
+ if(descricao.value == ""){
+ alert("Campo Descrição Vazio!")
+ resultado = false;
+ }
+ if(pao.selectedIndex == 0){
+ alert("Campo Pão Vazio!")
+ resultado = false;
+ }
+ if(valor.value == 0){
+ alert("Campo Valor Vazio!")
+ resultado = false;
+ }
+ return resultado;
+}
+
+function dadosDoLanche(){
+ let dados = {};
+ let ingredientes = {};
+
+ let nome = document.getElementById("nomeLanche");
+ let descricao = document.getElementById("textArea3");
+ let pao = document.getElementById("selectPao");
+ let valor = document.getElementById("ValorLanche");
+
+ dados['nome'] = nome.value;
+ dados['descricao'] = descricao.value;
+ dados['ValorVenda'] = parseFloat(valor.value);
+
+ ingredientes[pao.value] = "1";
+ Object.keys(sessionStorage).forEach(
+ (key) => {
+ ingredientes[key] = sessionStorage.getItem(key);
+ }
+ )
+ dados['ingredientes'] = ingredientes;
+ return dados
+}
+
+function abrirLanchonete() {
+ requisicao("../../alterarStatusLanchonete", atualizarStatusLanchonete, JSON.stringify({status: "ABERTO"}));
+}
+
+function fecharLanchonete() {
+ requisicao("../../alterarStatusLanchonete", atualizarStatusLanchonete, JSON.stringify({status: "FECHADO"}));
+}
+
+function atualizarStatusLanchonete(response) {
+ const resposta = response.srcElement.responseText;
+ console.log("Resposta do servidor:", resposta);
+
+ if (resposta === "erro" || resposta.includes("Status inválido")) {
+ console.error("Erro ao alterar status:", resposta);
+ return;
+ }
+
+ try {
+ const data = JSON.parse(resposta);
+ console.log("Dados parseados:", data);
+
+ // Procura o elemento dentro do footer
+ const footer = document.querySelector(".footerPainel");
+ const statusElement = footer.querySelector(".legendStatus");
+ console.log("Elemento de status encontrado:", statusElement);
+
+ if (statusElement) {
+ const novoTexto = data.status === "ABERTO" ? "Aberto agora!" : "Fechado agora!";
+ console.log("Atualizando texto para:", novoTexto);
+
+ // Força a atualização do DOM
+ statusElement.innerHTML = novoTexto;
+ statusElement.style.display = 'none';
+ statusElement.offsetHeight; // Força um reflow
+ statusElement.style.display = '';
+
+ // Atualiza também o outro elemento se existir
+ const outroStatus = document.querySelectorAll(".legendStatus");
+ outroStatus.forEach(el => {
+ if (el !== statusElement) {
+ el.innerHTML = novoTexto;
+ }
+ });
+ } else {
+ console.error("Elemento .legendStatus não encontrado!");
+ }
+ } catch (e) {
+ console.error("Erro ao processar resposta:", e);
+ }
+}
+
+function verificarStatusLanchonete() {
+ requisicao("../../getStatusLanchonete", atualizarStatusLanchonete);
+}
+
+// Adicionar chamada para verificar status ao carregar a página
+document.addEventListener('DOMContentLoaded', function() {
+ verificarStatusLanchonete();
+})
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/painel/styles.css b/target/lanchonete-online-1.0-SNAPSHOT/view/painel/styles.css
new file mode 100644
index 0000000..46b29a2
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/painel/styles.css
@@ -0,0 +1,538 @@
+.containerPainel {
+ width: 100vw;
+ height: 100vh;
+ background-image: url("../assets/fundoplano1.png");
+}
+
+.headerPage {
+ width: 100vw;
+ height: 12vh;
+ background-color: #F16262;
+ display: flex;
+ align-items: center;
+}
+
+
+.containerNavButton {
+ width: 60vw;
+ height: 10vh;
+ display: flex;
+ justify-content: space-around;
+ align-items: center;
+
+ /* background-color: aquamarine; */
+
+}
+
+.navButton {
+ text-align: center;
+ font-family: 'Sansita', sans-serif;
+ font-size: 2rem;
+ text-decoration: none;
+ color: white;
+}
+
+.navButton:hover {
+ padding-bottom: 2px;
+ border-bottom: 4px solid white;
+}
+
+.containerAction {
+ width: 20vw;
+ height: 10vh;
+ /* background-color: beige; */
+ display: flex;
+ justify-content: flex-end;
+ padding-right: 20px;
+ align-items: center;
+}
+
+.buttonLogout {
+ width: 12vw;
+ height: 7vh;
+ border-radius: 1em;
+ border: none;
+ background-color: white;
+ font-family: 'Sansita', sans-serif;
+ font-size: 2.4rem;
+ color: black;
+}
+
+.containerAgrupado {
+ width: 100%;
+ height: 100%;
+}
+
+.containerPage {
+ width: 100vw;
+ height: 88vh;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.containerConteudo {
+ background-color: #F6F6F6;
+ width: 70vw;
+ height: 88vh;
+ display: flex;
+ flex-direction: column;
+}
+
+.titleLanchonete {
+ width: 100%;
+ height: 10vh;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ /* background-color: khaki; */
+}
+
+.titlePage {
+ font-family: 'Sansita', sans-serif;
+ font-size: 3.2rem;
+ color: black;
+ user-select: none;
+}
+
+.containerGerenciador {
+ width: 100%;
+ height: 25vh;
+ flex-direction: column;
+ display: flex;
+ align-items: center;
+ /* background-color: lightblue; */
+}
+
+.containerButtons {
+ width: 70%;
+ height: 25vh;
+ /* background-color: lightseagreen; */
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+}
+
+.containerButtons1 {
+ width: 35%;
+ height: 35vh;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ justify-content: space-around;
+ /* background-color: yellow; */
+}
+
+.containerButtons2 {
+ width: 35%;
+ height: 35vh;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ justify-content: space-around;
+ /* background-color: yellow; */
+}
+
+.ButtonsGroupsCadastro {
+ width: 70%;
+ height: 30vh;
+ display: flex;
+ justify-content: space-around;
+
+}
+
+.buttonGerenciador {
+ border: none;
+ background-color: #F16262;
+ border-radius: 1em;
+ width: 15vw;
+ height: 14vh;
+ font-family: 'Sansita', sans-serif;
+ font-size: 2.5rem;
+ color: white;
+ cursor: pointer;
+ /* display: flex; */
+ padding: 10px;
+ /* align-items: center; */
+ /* justify-content: center; */
+
+
+}
+
+.titleContainer {
+ width: 100%;
+ height: 6vh;
+ background-color: #F16262;
+ display: flex;
+ align-items: center;
+ padding-left: 20px;
+ justify-content: flex-start;
+}
+
+.legendTitle {
+ font-family: 'Sansita', sans-serif;
+ font-size: 2.5rem;
+ color: white;
+
+}
+
+.cadastroItems {
+ width: 100%;
+ height: 42vh;
+ /* background-color: lightcoral; */
+ flex-direction: column;
+ display: flex;
+ align-items: center;
+}
+
+.footerPainel {
+ width: 70%;
+ height: 12vh;
+ background-color: #F16262;
+ display: flex;
+ align-items: center;
+ position: fixed;
+ padding: 3px 15px;
+ bottom: 0px;
+}
+
+.StatusLanchonete {
+ width: 20vw;
+ height: 9vh;
+ background-color: white;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 0.5em;
+}
+
+.containerFooter {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+
+}
+
+.StatusInfo2 {
+ border-radius: 0.5em;
+ width: 10vw;
+ height: 9vh;
+ background-color: #F16262;
+ border: 1px solid #FFF;
+ flex-direction: column;
+ padding: 5px;
+ display: none;
+ align-items: center;
+ justify-content: space-between;
+
+}
+
+.StatusInfo {
+ padding: 5px;
+ border-radius: 0.5em;
+ width: 10vw;
+ height: 9vh;
+ background-color: #F16262;
+ border: 1px solid #FFF;
+ flex-direction: column;
+ display: none;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.inputValorLucro {
+ width: 6vw;
+ height: 5vh;
+ border: none;
+ background-color: #F16262;
+ font-family: 'Ubuntu', sans-serif;
+ color: #FFF;
+ font-size: 1.4rem;
+ padding-left: 5px;
+
+}
+
+.legendStatusValue {
+ font-family: 'Ubuntu', sans-serif;
+ color: #FFF;
+ font-size: 1.4rem;
+ margin-bottom: 5px;
+}
+
+.legendStatus {
+ font-family: 'Ubuntu', sans-serif;
+ font-size: 1.9rem;
+ color: #0CD008;
+ user-select: none;
+}
+
+
+
+.containerCadItems {
+ width: 100%;
+ height: 90%;
+ display: none;
+ flex-direction: column;
+}
+
+.titleCadPainel {
+ margin-top: 20px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 10%;
+ width: 100%;
+}
+
+.form {
+ width: 100%;
+ height: 90%;
+ display: flex;
+ justify-content: center;
+}
+
+.formItems {
+ width: 70%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: flex-start;
+ /* background-color: aqua; */
+ /* padding: 0 20%; */
+}
+
+.TextInput {
+ width: 32vw;
+ margin-top: 10px;
+ height: 7vh;
+ border: 1px solid #BDBDBD;
+ border-radius: 10px;
+ padding-left: 15px;
+}
+
+#textArea1 {
+ resize: none;
+ height: 10vh;
+ padding-top: 5px;
+ margin-bottom: 20px;
+}
+
+#textArea2 {
+ resize: none;
+ height: 10vh;
+ padding-top: 5px;
+ margin-bottom: 20px;
+}
+
+#textArea3 {
+ resize: none;
+ height: 10vh;
+ padding-top: 5px;
+ margin-bottom: 20px;
+}
+
+.buttonInputContainer {
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ width: 70%;
+ height: 15%;
+ /* background-color: chartreuse; */
+}
+
+.buttonSubmitCancel {
+ background-color: #978D8D;
+ width: 40%;
+ height: 60%;
+ border: none;
+ border-radius: 20px;
+ margin-bottom: 25px;
+ font-size: 2rem;
+ font-family: 'Sansita', sans-serif;
+ color: #FFF;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+}
+
+
+
+.buttonSubmitSalvar {
+ background-color: #F16262;
+ width: 40%;
+ height: 60%;
+ border: none;
+ border-radius: 20px;
+ margin-bottom: 25px;
+ font-size: 2rem;
+ font-family: 'Sansita', sans-serif;
+ color: #FFF;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+}
+
+.containerInputs {
+ width: 32vw;
+ height: 10vh;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.TextInputLanche {
+ width: 15vw;
+ height: 7vh;
+
+ border: 1px solid #BDBDBD;
+ border-radius: 10px;
+ padding-left: 15px;
+}
+
+.containerTitlePageLanche {
+ padding-left: 10px;
+ width: 70vw;
+ display: flex;
+ align-items: center;
+ height: 5vh;
+ background-color: #F16262;
+}
+
+.titleContainerLanche {
+ font-size: 2.2rem;
+ font-family: 'Sansita', sans-serif;
+ color: #FFF;
+}
+
+.opcIngredientes {
+ width: 85%;
+ border-radius: 1em;
+ height: 8vh;
+ border: solid 2px #F16262;
+ margin: 15px 0;
+ padding: 2px 15px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.legendIngrediente {
+ font-family: 'Sansita', sans-serif;
+ font-size: 1.5rem;
+ color: #676464;
+}
+
+.contador {
+ width: 8vw;
+ height: 5vh;
+ border: 2px solid #000;
+ border-radius: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 2px 15px;
+}
+
+.buttonIcons {
+ border: none;
+ background-color: Transparent;
+}
+
+.legendStatusInfo {
+ font-size: 1.3rem;
+ font-family: 'Sansita', sans-serif;
+ color: #FFF;
+ /* text-align: center; */
+}
+
+#ingredientes {
+ display: flex;
+ flex-direction: column;
+ overflow-y: scroll;
+ height: 27vh;
+ width: 100%;
+ align-items: center;
+}
+
+#ingredientes::-webkit-scrollbar {
+ display: none;
+}
+
+.icon {
+ font-size: 2vw;
+ font-weight: bold;
+}
+
+
+
+
+.containerGastos {
+ width: 13vw;
+ height: 19vh;
+ border: 1px solid #F16262;
+ /* background-color: cyan; */
+ flex-direction: column;
+ display: flex;
+ align-items: center;
+ border-radius: 1em;
+ position: absolute;
+ top: 25vh;
+ right: 18vw;
+}
+
+.containerLucro {
+ width: 20%;
+ height: 70%;
+ border: solid 1px #F16262;
+ border-radius: 1em;
+ flex-direction: column;
+ display: flex;
+ align-items: center;
+ /* background-color: darkblue; */
+
+}
+
+.titleLucro {
+ margin-bottom: 15px;
+}
+
+.titleContainerLucro {
+ font-family: 'Sansita', sans-serif;
+ font-size: 2.2rem;
+ color: black;
+ user-select: none;
+
+}
+
+.inputPreco {
+ width: 10vw;
+ margin-top: 10px;
+ height: 4.5vh;
+ border: 1px solid #BDBDBD;
+ border-radius: 10px;
+ padding-left: 15px;
+ position: relative;
+ top: -0.8vh;
+ align-items: center;
+
+}
+
+.legendGastos {
+ font-family: 'Ubuntu', sans-serif;
+ color: #FFF;
+ font-size: 1.4rem;
+
+}
+
+.LabelGastos {
+ width: 100%;
+ height: 5vh;
+ background-color: #F16262;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/relatorio/relatorio.html b/target/lanchonete-online-1.0-SNAPSHOT/view/relatorio/relatorio.html
new file mode 100644
index 0000000..34a7846
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/relatorio/relatorio.html
@@ -0,0 +1,88 @@
+
+
+
Relatórios
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Relatório Geral
+
+
+
+
+ Gastos
+ Vendas
+ Lucro
+
+
+
Relatório Bebidas por Pedidos
+
+
+ ID Pedido
+ Cliente
+ Bebida
+ Quantidade
+ Custo Bebida
+ Valor Venda Bebida
+ Lucro por Bebida
+ Custo Pedido
+ Valor Venda Pedido
+ Lucro Pedido
+
+
+
Relatório Lanches Detalhado
+
+
+ Lanche
+ Ingrediente
+ Quantidade
+ Custo(Por Ingrediente)
+ Venda(Por Ingrediente)
+ Lucro(Por Ingrediente)
+ Custo(Lanche)
+ Venda(Ingredientes)
+ Lucro(Ingredientes)
+ Lucro(Lanche)
+ Venda(Lanche)
+ Lucro Total
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/relatorio/relatorio.js b/target/lanchonete-online-1.0-SNAPSHOT/view/relatorio/relatorio.js
new file mode 100644
index 0000000..ad90131
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/relatorio/relatorio.js
@@ -0,0 +1,77 @@
+function getInfo(){
+ requisicao("../../getRelatorioLanches", getRelLanches);
+ requisicao("../../getRelatorioBebidas", getRelBebidas);
+ requisicao("../../getRelatorioGastos", getRelGastos);
+}
+
+function getRelLanches(resposta){
+
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ }
+ else {
+ dados = JSON.parse(resposta.srcElement.responseText);
+ attRelatorioLanches(dados);
+ }
+
+}
+
+function attRelatorioLanches(dados){
+
+ let tabela = document.getElementById("tbRelatorioLanches");
+
+ Object.keys(dados).forEach(cadastro => {
+ let row = tabela.insertRow(1);
+ for (let key in dados[cadastro]) {
+ row.insertCell().innerHTML = dados[cadastro][key];
+ }
+ });
+}
+
+function getRelBebidas(resposta){
+
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ }
+ else {
+ dados = JSON.parse(resposta.srcElement.responseText);
+ attRelatorioBebidas(dados);
+ }
+
+}
+
+function attRelatorioBebidas(dados){
+
+ let tabela = document.getElementById("tbRelatorioBebidas");
+
+ Object.keys(dados).forEach(cadastro => {
+ let row = tabela.insertRow(1);
+ for (let key in dados[cadastro]) {
+ row.insertCell().innerHTML = dados[cadastro][key];
+ }
+ });
+}
+
+function getRelGastos(resposta){
+
+ if(resposta.srcElement.responseText.includes("erro")){
+ window.location.replace("../login/login_Funcionario.html?Action=TokenError");
+ }
+ else {
+ dados = JSON.parse(resposta.srcElement.responseText);
+ attRelatorioGastos(dados);
+ }
+
+}
+
+function attRelatorioGastos(dados){
+
+ let tabela = document.getElementById("tbRelatorioGastos");
+
+ Object.keys(dados).forEach(cadastro => {
+ let row = tabela.insertRow(1);
+ for (let key in dados[cadastro]) {
+ row.insertCell().innerHTML = dados[cadastro][key];
+ }
+ });
+}
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/relatorio/styles.css b/target/lanchonete-online-1.0-SNAPSHOT/view/relatorio/styles.css
new file mode 100644
index 0000000..bd1809b
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/relatorio/styles.css
@@ -0,0 +1,99 @@
+table{
+ border-collapse: collapse;
+ table-layout: fixed;
+ height: 100px;
+ overflow-y: auto;
+ margin: 20px;
+ display: block;
+}
+
+th,
+td {
+ height: 1vh;
+ padding: 6px;
+ text-align: left;
+ border-bottom: 1px solid rgb(143, 141, 141);
+
+
+}
+
+tr:hover {
+ background-color: rgba(37, 37, 37, 0.356);
+}
+
+.containerRelatorio {
+ width: 100vw;
+ height: 100vh;
+ background-image: url("../assets/fundoplano1.png")
+}
+
+.headerPage {
+ width: 100vw;
+ height: 12vh;
+ background-color: #F16262;
+ display: flex;
+ align-items: center;
+}
+
+.buttonLogout {
+ width: 12vw;
+ height: 7vh;
+ border-radius: 1em;
+ border: none;
+ background-color: white;
+ font-family: 'Sansita', sans-serif;
+ font-size: 2.4rem;
+ color: black;
+}
+
+
+.containerNavButton {
+ width: 60vw;
+ height: 10vh;
+ /* background-color: aquamarine; */
+
+}
+
+.containerAction {
+ width: 20vw;
+ height: 10vh;
+
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+}
+.containerTable {
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+ align-items: flex-start;
+}
+
+.containerPage {
+ width: 100vw;
+ height: 88vh;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.containerConteudo {
+ background-color: #FFF;
+ width: 95vw;
+ height: 88vh;
+ display: flex;
+ overflow-y: auto;
+ flex-direction: column;
+ align-items: flex-start;
+ /* padding-top: 45px; */
+ justify-content: flex-start;
+}
+
+.titleTypeContainer {
+ font-size: 2.8rem;
+ font-family: 'Sansita', sans-serif;
+ color: #000;
+ margin-left: 10px;
+}
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/scripts/conexao.js b/target/lanchonete-online-1.0-SNAPSHOT/view/scripts/conexao.js
new file mode 100644
index 0000000..9a2bbd8
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/scripts/conexao.js
@@ -0,0 +1,50 @@
+function requisicao(caminho, funcaoResposta, dados = null, metodo = 'POST'){
+ try
+ {
+ //Inicia o Objeto que faz o Request
+ asyncRequest = new XMLHttpRequest();
+ asyncRequest.withCredentials = true;
+ //prepara a requisição pro servlet com o Caminho dele e o tipo de Request
+ asyncRequest.open(metodo, caminho, true);
+ asyncRequest.withCredentials = true;
+
+ // Adiciona headers necessários
+ if (dados) {
+ asyncRequest.setRequestHeader('Content-Type', 'application/json');
+ }
+
+ //Seta a função a ser chamada quando a comunicação for feita e a resposta chegar
+ asyncRequest.onload = funcaoResposta;
+
+ //Manda os dados, se ouver algum, ou Null se nada for especificado
+ asyncRequest.send(dados);
+
+ }
+ catch(exception)
+ {
+ alert("Request Falho!");
+ console.log(exception);
+ }
+}
+
+function printarResposta(resposta){
+
+ //Fiz essa função aqui só pra printar os dados que forem recebidos de volta
+ console.log(resposta);
+}
+
+function alertarResposta(resposta){
+
+ //E essa pra mostrar com um alerta
+ alert(resposta.srcElement.responseText);
+ console.log(resposta);
+}
+
+
+/////////////////
+function get_cookie(name){
+ return document.cookie.split(';').some(c => {
+ return c.trim().startsWith(name + '=');
+ });
+}
+
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/sobre/sobre.html b/target/lanchonete-online-1.0-SNAPSHOT/view/sobre/sobre.html
new file mode 100644
index 0000000..39a4c2b
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/sobre/sobre.html
@@ -0,0 +1,37 @@
+
+
+
+
+
Cardápio
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sobre o Projeto
+
+ Com o objetivo de desenvolver a capacidade dos alunos e obter nota na disciplina APS (Atividades Práticas Supervisionadas), foi proposto um projeto de desenvolvimento de um sistema para uma lanchonete online, onde o administrador consiga controlar os pedidos da lanchonete e emitir relatórios. A lanchonete devera permitir o cadastro dos usuários, para que eles possam realizar seus pedidos, e o cadastro de produtos, que ficariam por parte do administrador. Após o cadastro, cliente poderá utilizar os ingredientes cadastrados para criar seu lanche personalizado. O sistema deverá fazer o controle dos pedidos de forma que agrade os clientes, e controlar tambem o estoque de produtos.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/sobre/styles.css b/target/lanchonete-online-1.0-SNAPSHOT/view/sobre/styles.css
new file mode 100644
index 0000000..317cc06
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/sobre/styles.css
@@ -0,0 +1,127 @@
+body {
+ margin: 0px;
+ padding: 0px;
+}
+
+#content {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+#top {
+ width: 100vw;
+ height: 10vh;
+ background-color: #F16262;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-between;
+ padding-left: 25px;
+}
+
+
+
+.logo {
+
+ width: 30vw;
+ height: 26vh;
+ margin-top: 20px;
+ border: none;
+ background-color: transparent;
+}
+
+#imagemLogo2 {
+ width: 19vw;
+ height: 9vh;
+ position: relative;
+ left: -0.1vw;
+ top: 1.1vh;
+}
+
+
+.opcoes {
+ height: 8vh;
+ margin: 10px 25px 10px 25px;
+ position: relative;
+ top: 10%;
+ vertical-align: center;
+ color: white;
+ font-family: 'Sansita', sans-serif;
+ align-items: center;
+ font-size: 2vw;
+ white-space: nowrap;
+}
+
+a {
+ padding: 0px;
+ margin: 0px;
+ text-decoration: none;
+ color: inherit;
+ font-family: 'Sansita', sans-serif;
+}
+
+.opcoes:hover {
+
+ padding-bottom: -30px;
+ border-bottom: 10px solid white;
+}
+
+
+
+
+
+#background {
+ height: 88vh;
+ width: 100%;
+ background-color: white;
+ align-items: center;
+ background-image: url("../assets/fundoplano1.png");
+ background-repeat: repeat;
+ background-size: auto;
+ display: flex;
+ justify-content: center;
+}
+
+#screen {
+ width: 60vw;
+ height: 88vh;
+ background-color: white;
+ overflow-y: scroll;
+ scrollbar-color: white;
+
+}
+
+#screen::-webkit-scrollbar {
+ display: none;
+}
+
+h1 {
+ text-align: center;
+ font-size: 32px;
+}
+
+p {
+ font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
+ font-size: 0.9em;
+ color: #555;
+ line-height: 1.8;
+ margin-left: 50px;
+ margin-right: 50px;
+ font-size: 16px;
+ text-align: justify;
+}
+
+hr.solid {
+ border-top: 3px solid #bbb;
+ margin-left: 8vw;
+ margin-right: 8vw;
+ margin-bottom: 8vh;
+}
+
+body {
+ height: 100vh;
+ margin: 0;
+ padding: 0;
+ overflow: hidden;
+}
\ No newline at end of file
diff --git a/target/lanchonete-online-1.0-SNAPSHOT/view/styles/global.css b/target/lanchonete-online-1.0-SNAPSHOT/view/styles/global.css
new file mode 100644
index 0000000..8b36cd8
--- /dev/null
+++ b/target/lanchonete-online-1.0-SNAPSHOT/view/styles/global.css
@@ -0,0 +1,75 @@
+:root {
+ font-size: 60%;
+}
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+
+}
+
+html,
+body,
+#root {
+ height: 100vh;
+ margin: 0;
+ padding: 0;
+ overflow: hidden;
+
+}
+
+body {}
+
+#root {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+body,
+input,
+button,
+textarea {
+ font: 500 1.6rem Poppins;
+}
+
+.container {
+ width: 90vw;
+ max-width: 700px;
+}
+
+
+@media(min-width: 700px) {
+ :root {
+ font-size: 62.5%;
+ }
+}
+
+.logo {
+
+ width: 30vw;
+ height: 26vh;
+ margin-top: 20px;
+ border: none;
+ background-color: transparent;
+}
+
+#imagemLogo2 {
+ width: 19vw;
+ height: 9vh;
+ position: relative;
+ left: -1.1vw;
+ top: 1.1vh;
+}
+
+.containerLogo {
+ width: 20vw;
+ height: 10vh;
+ border-radius: 10px;
+ margin: 10px;
+ /* background-color: aqua; */
+ position: relative;
+ left: -0.7vw;
+ top: -1vh;
+}
\ No newline at end of file
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..6529bb4
--- /dev/null
+++ b/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=lanchonete-online
+groupId=com.lanchonete
+version=1.0-SNAPSHOT
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..81d403f
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,53 @@
+Controllers\getBebidasCliente.class
+Controllers\loginFuncionario.class
+Model\Endereco.class
+Controllers\comprar.class
+Controllers\salvarBebida.class
+Model\RelatorioGastos.class
+DAO\DaoPedido.class
+Model\Pedido.class
+DAO\DaoStatusLanchonete.class
+DAO\DaoEndereco.class
+Controllers\cadastro.class
+Controllers\getCliente.class
+Controllers\getIngredientesPorLanche.class
+Controllers\salvarLancheCliente.class
+DAO\DaoCliente.class
+Controllers\salvarIngrediente.class
+Model\RelatorioLanches.class
+Controllers\salvarFuncionario.class
+Controllers\validarTokenFunc.class
+Controllers\logout.class
+Controllers\getBebidas.class
+DAO\DaoToken.class
+DAO\DaoFuncionario.class
+Controllers\login.class
+Controllers\alterarBebida.class
+Controllers\getLanchesCliente.class
+Controllers\getLanches.class
+Helpers\EncryptadorMD5.class
+Controllers\getIngredientes.class
+Model\Ingrediente.class
+Controllers\getRelatorioLanches.class
+Controllers\getStatusLanchonete.class
+Controllers\removerBebida.class
+Controllers\getRelatorioBebidas.class
+Controllers\removerIngrediente.class
+Controllers\tabela.class
+Model\Cliente.class
+Controllers\alterarIngrediente.class
+Controllers\salvarLanche.class
+Model\Funcionario.class
+Model\Lanche.class
+Controllers\getIngredientesCliente.class
+Model\Bebida.class
+DAO\DaoBebida.class
+Model\RelatorioBebidas.class
+DAO\DaoIngrediente.class
+Controllers\validarToken.class
+Controllers\getIngredientesPorLancheCliente.class
+Controllers\alterarStatusLanchonete.class
+DAO\DaoLanche.class
+Helpers\ValidadorCookie.class
+Controllers\getRelatorioGastos.class
+DAO\DaoRelatorio.class
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..27ffec5
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,54 @@
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\salvarBebida.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\DAO\DaoBebida.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Model\Ingrediente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Model\Bebida.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getLanches.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Model\RelatorioLanches.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Helpers\ValidadorCookie.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\loginFuncionario.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\removerIngrediente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\DAO\DaoUtil.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\cadastro.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\alterarBebida.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getRelatorioGastos.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Model\Cliente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\removerBebida.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getIngredientesPorLancheCliente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\DAO\DaoFuncionario.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\validarTokenFunc.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\alterarIngrediente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getLanchesCliente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getCliente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Model\RelatorioGastos.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Model\RelatorioBebidas.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Model\Funcionario.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Model\Pedido.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getRelatorioBebidas.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\login.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getIngredientesPorLanche.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\DAO\DaoIngrediente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\comprar.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\salvarLanche.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\DAO\DaoCliente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\DAO\DaoLanche.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\DAO\DaoRelatorio.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\validarToken.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getRelatorioLanches.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Helpers\EncryptadorMD5.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getIngredientes.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Model\Endereco.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\tabela.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\DAO\DaoPedido.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\salvarFuncionario.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\alterarStatusLanchonete.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\DAO\DaoToken.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Model\Lanche.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getIngredientesCliente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\logout.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getBebidas.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\DAO\DaoEndereco.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\salvarLancheCliente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\DAO\DaoStatusLanchonete.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getStatusLanchonete.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\salvarIngrediente.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\java\Controllers\getBebidasCliente.java
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..1805244
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1,4 @@
+DAO\DaoClienteTest.class
+DAO\ClienteControllerTest$1.class
+DAO\ClienteControllerTest$DelegatingServletInputStream.class
+DAO\ClienteControllerTest.class
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..c754a16
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1,2 @@
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\test\java\DAO\ClienteControllerTest.java
+C:\Users\daniel.pereira\IdeaProjects\APS-04-Lanchonete-Online-em-Java\src\test\java\DAO\DaoClienteTest.java
diff --git a/target/surefire-reports/DAO.ClienteControllerTest.txt b/target/surefire-reports/DAO.ClienteControllerTest.txt
new file mode 100644
index 0000000..aa4a583
--- /dev/null
+++ b/target/surefire-reports/DAO.ClienteControllerTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: DAO.ClienteControllerTest
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.197 s - in DAO.ClienteControllerTest
diff --git a/target/surefire-reports/DAO.DaoClienteTest.txt b/target/surefire-reports/DAO.DaoClienteTest.txt
new file mode 100644
index 0000000..6972f7c
--- /dev/null
+++ b/target/surefire-reports/DAO.DaoClienteTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: DAO.DaoClienteTest
+-------------------------------------------------------------------------------
+Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.78 s - in DAO.DaoClienteTest
diff --git a/target/surefire-reports/TEST-DAO.ClienteControllerTest.xml b/target/surefire-reports/TEST-DAO.ClienteControllerTest.xml
new file mode 100644
index 0000000..a3b3997
--- /dev/null
+++ b/target/surefire-reports/TEST-DAO.ClienteControllerTest.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/surefire-reports/TEST-DAO.DaoClienteTest.xml b/target/surefire-reports/TEST-DAO.DaoClienteTest.xml
new file mode 100644
index 0000000..da490b1
--- /dev/null
+++ b/target/surefire-reports/TEST-DAO.DaoClienteTest.xml
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/target/test-classes/DAO/BebidaTest.class b/target/test-classes/DAO/BebidaTest.class
new file mode 100644
index 0000000..9b65652
Binary files /dev/null and b/target/test-classes/DAO/BebidaTest.class differ
diff --git a/target/test-classes/DAO/ClienteControllerTest$1.class b/target/test-classes/DAO/ClienteControllerTest$1.class
new file mode 100644
index 0000000..ab6d8a9
Binary files /dev/null and b/target/test-classes/DAO/ClienteControllerTest$1.class differ
diff --git a/target/test-classes/DAO/ClienteControllerTest$DelegatingServletInputStream.class b/target/test-classes/DAO/ClienteControllerTest$DelegatingServletInputStream.class
new file mode 100644
index 0000000..d91fb14
Binary files /dev/null and b/target/test-classes/DAO/ClienteControllerTest$DelegatingServletInputStream.class differ
diff --git a/target/test-classes/DAO/ClienteControllerTest.class b/target/test-classes/DAO/ClienteControllerTest.class
new file mode 100644
index 0000000..432c16f
Binary files /dev/null and b/target/test-classes/DAO/ClienteControllerTest.class differ
diff --git a/target/test-classes/DAO/DaoClienteTest.class b/target/test-classes/DAO/DaoClienteTest.class
new file mode 100644
index 0000000..d9112cb
Binary files /dev/null and b/target/test-classes/DAO/DaoClienteTest.class differ
diff --git a/target/webapp/WEB-INF/web.xml b/target/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..deea1d5
--- /dev/null
+++ b/target/webapp/WEB-INF/web.xml
@@ -0,0 +1,256 @@
+
+
+
+ cadastro
+ Controllers.cadastro
+
+
+ tabela
+ Controllers.tabela
+
+
+ login
+ Controllers.login
+
+
+ salvarIngrediente
+ Controllers.salvarIngrediente
+
+
+ salvarBebida
+ Controllers.salvarBebida
+
+
+ loginFuncionario
+ Controllers.loginFuncionario
+
+
+ getIngredientes
+ Controllers.getIngredientes
+
+
+ logout
+ Controllers.logout
+
+
+ getBebidas
+ Controllers.getBebidas
+
+
+ alterarIngrediente
+ Controllers.alterarIngrediente
+
+
+ alterarBebida
+ Controllers.alterarBebida
+
+
+ removerIngrediente
+ Controllers.removerIngrediente
+
+
+ removerBebida
+ Controllers.removerBebida
+
+
+ getLanches
+ Controllers.getLanches
+
+
+ getLanchesCliente
+ Controllers.getLanchesCliente
+
+
+ validarToken
+ Controllers.validarToken
+
+
+ getBebidasCliente
+ Controllers.getBebidasCliente
+
+
+ validarTokenFunc
+ Controllers.validarTokenFunc
+
+
+ salvarLanche
+ Controllers.salvarLanche
+
+
+ getIngredientesPorLanche
+ Controllers.getIngredientesPorLanche
+
+
+ getIngredientesPorLancheCliente
+ Controllers.getIngredientesPorLancheCliente
+
+
+ getCliente
+ Controllers.getCliente
+
+
+ comprar
+ Controllers.comprar
+
+
+ getRelatorioBebidas
+ Controllers.getRelatorioBebidas
+
+
+ getRelatorioGastos
+ Controllers.getRelatorioGastos
+
+
+ getRelatorioLanches
+ Controllers.getRelatorioLanches
+
+
+ getIngredientesCliente
+ Controllers.getIngredientesCliente
+
+
+ salvarLancheCliente
+ Controllers.salvarLancheCliente
+
+
+ salvarFuncionario
+ Controllers.salvarFuncionario
+
+
+ alterarStatusLanchonete
+ Controllers.alterarStatusLanchonete
+
+
+ getStatusLanchonete
+ Controllers.getStatusLanchonete
+
+
+ cadastro
+ /cadastro
+
+
+ tabela
+ /tabela
+
+
+ login
+ /login
+
+
+ salvarIngrediente
+ /salvarIngrediente
+
+
+ salvarBebida
+ /salvarBebida
+
+
+ loginFuncionario
+ /loginFuncionario
+
+
+ getIngredientes
+ /getIngredientes
+
+
+ logout
+ /logout
+
+
+ getBebidas
+ /getBebidas
+
+
+ alterarIngrediente
+ /alterarIngrediente
+
+
+ alterarBebida
+ /alterarBebida
+
+
+ removerIngrediente
+ /removerIngrediente
+
+
+ removerBebida
+ /removerBebida
+
+
+ getLanches
+ /getLanches
+
+
+ getLanchesCliente
+ /getLanchesCliente
+
+
+ validarToken
+ /validarToken
+
+
+ getBebidasCliente
+ /getBebidasCliente
+
+
+ validarTokenFunc
+ /validarTokenFunc
+
+
+ salvarLanche
+ /salvarLanche
+
+
+ getIngredientesPorLanche
+ /getIngredientesPorLanche
+
+
+ getIngredientesPorLancheCliente
+ /getIngredientesPorLancheCliente
+
+
+ getCliente
+ /getCliente
+
+
+ comprar
+ /comprar
+
+
+ getRelatorioBebidas
+ /getRelatorioBebidas
+
+
+ getRelatorioGastos
+ /getRelatorioGastos
+
+
+ getRelatorioLanches
+ /getRelatorioLanches
+
+
+ getIngredientesCliente
+ /getIngredientesCliente
+
+
+ salvarLancheCliente
+ /salvarLancheCliente
+
+
+ salvarFuncionario
+ /salvarFuncionario
+
+
+ alterarStatusLanchonete
+ /alterarStatusLanchonete
+
+
+ getStatusLanchonete
+ /getStatusLanchonete
+
+
+
+ 30
+
+
+