The initial idea of my personal project was to develop a basic system for dividing payment between n customers who consumed n products, in order to train my skills.
For this, the central idea would be to feed two simple blocks of input, one for the customers and another for the products (with the prices), creating a list for the first and another list for the second. You can see in the codes that most of the system has already been done with the two main functions:HTML
var addCliente = document.getElementById("addCliente");
var addProduto = document.getElementById("addProduto");
var listaClientesContainer = document.getElementById("listaClientesContainer");
var listaProdutosContainer = document.getElementById("listaProdutosContainer");
addCliente.addEventListener("click", function() {
addClienteFunction();
});
addProduto.addEventListener("click", function() {
addProdutoFunction();
});
var contadorCliente = 0;
function addClienteFunction() {
var nomeCliente = document.getElementById("nomeCliente");
if (nomeCliente.value != "") {
var postagemCliente = document.createElement("div");
var dadosDoCliente = document.createElement("div");
var areaDoValorDividido = document.createElement("div");
listaClientesContainer.appendChild(postagemCliente);
postagemCliente.classList.add("postagemCliente");
postagemCliente.appendChild(dadosDoCliente);
dadosDoCliente.classList.add("dadosDoCliente");
postagemCliente.appendChild(areaDoValorDividido);
areaDoValorDividido.classList.add("areaDoValorDividido");
dadosDoCliente.innerHTML += contadorCliente+1 + " - " + nomeCliente.value;
areaDoValorDividido.innerHTML = "R$0";
nomeCliente.value = "";
contadorCliente++;
}
}
var valorTotal = 0;
var contadorProduto = 0;
var valorDividido = 0;
function addProdutoFunction() {
var nomeProduto = document.getElementById("nomeProduto");
var precoProduto = document.getElementById("precoProduto");
if ((nomeProduto.value != "") && (precoProduto.value != "") && (!isNaN(precoProduto.value))) {
var postagemProduto = document.createElement("div");
listaProdutosContainer.appendChild(postagemProduto);
postagemProduto.classList.add("postagemProduto");
postagemProduto.innerHTML += contadorProduto+1 + " - " + nomeProduto.value + " (R$" + precoProduto.value + ")";
valorTotal += Number(precoProduto.value);
valorDividido = valorTotal/contadorCliente;
console.log(valorDividido);
nomeProduto.value = "";
precoProduto.value = "";
contadorProduto++;
}
}
<div id="areaClientes">
<div id="clientesContainer">
<input type="text" id="nomeCliente" placeholder="Adicionar novo cliente">
<button id="addCliente">Adicionar</button>
<button id="finalizarConta">Fechar Conta</button>
</div>
</div>
<div id="areaProdutos">
<div id="produtosContainer">
<input type="text" id="nomeProduto" placeholder="Adicionar novo produto">
<input type="text" id="precoProduto" placeholder="Adicionar preço do produto">
<button id="addProduto">Adicionar</button>
</div>
</div>
<div id="listaClientes">
<div id="listaClientesContainer"></div>
</div>
<div id="listaProdutos">
<div id="listaProdutosContainer"></div>
</div>
The question in this case is "simple": I can get the value that should be paid for each one via the "Divided value" variable, but I can not enter this value in the clients list, since it is not possible to access the "DividedType", because this is a variable present only in the other function.
So, I was wondering if there is any way to insert a command in the function "addProdutoFunction ()" that changes some content present only in the function "addClientFunction ()".