Filtrar Servicios y Mostrar Compras y Pedidos con JavaScript

Other foreign languages3.4 KB

Filtrar servicios en un combo

"Filtrar y mostrar en un combo (<select>) los servicios cuyo nombre de planta comienza con una letra y tienen un costo mayor a un valor."

function consulta() {
let formul = document.getElementById("idForm");
if (formul.reportValidity()) { // Verifica que los campos del formulario sean válidos
let combo = document.getElementById("idCombo");
combo.innerHTML = ""; // Limpia opciones previas
let letra = document.getElementById("idLetra").value;
let costo = parseFloat(document.getElementById("idCosto").value);
let datos = sistema.listaServicios;
let cant = 0;
for (let elem of datos) {
if (elem.planta.nombre[0] === letra && elem.costo > costo) {
cant++;
let nodo = document.createElement("option"); // Crea un nodo <option>
let nodoTexto = document.createTextNode(elem.planta.nombre); // Crea un nodo de texto con el nombre
nodo.appendChild(nodoTexto); // Agrega el texto dentro del <option>
combo.appendChild(nodo); // Agrega la opción al <select>

Mostrar compras de un cliente en una lista

"Dado un número de cliente, mostrar en una lista (<ul>) todas sus compras."

function mostrarCompras() {
let clienteId = document.getElementById("idCliente").value;
let lista = document.getElementById("idLista");
lista.innerHTML = ""; // Limpiar lista previa
let comprasCliente = sistema.listaCompras.filter(compra => compra.cliente.id == clienteId);

if (comprasCliente.length > 0) {
for (let compra of comprasCliente) {
let nodo = document.createElement("li");
let nodoTexto = document.createTextNode(`Producto: ${compra.producto} - Cantidad: ${compra.cantidad}`);
nodo.appendChild(nodoTexto);
lista.appendChild(nodo);
}
} else {
let nodo = document.createElement("li");
let nodoTexto = document.createTextNode("Sin compras registradas");
nodo.appendChild(nodoTexto);
lista.appendChild(nodo);
}
}

Mostrar pedidos de un producto en una tabla

"Dado un código de producto, mostrar en una tabla (<table>) los pedidos que lo incluyan."

function mostrarPedidos() {
let codigo = document.getElementById("idCodigo").value;
let tabla = document.getElementById("idTabla").getElementsByTagName("tbody")[0];
tabla.innerHTML = ""; // Limpiar tabla previa

let pedidosEncontrados = sistema.listaPedidos.filter(pedido => pedido.producto.codigo == codigo);

if (pedidosEncontrados.length > 0) {
for (let pedido of pedidosEncontrados) {
let fila = document.createElement("tr"); // Crear fila
let celda1 = document.createElement("td");
let celda2 = document.createElement("td");
let texto1 = document.createTextNode(pedido.cliente.nombre);
let texto2 = document.createTextNode(pedido.cantidad);
celda1.appendChild(texto1);
celda2.appendChild(texto2);
fila.appendChild(celda1);
fila.appendChild(celda2);
tabla.appendChild(fila);
}
} else {
let fila = document.createElement("tr");
let celda = document.createElement("td");
let texto = document.createTextNode("Sin pedidos");
celda.appendChild(texto);
celda.setAttribute("colspan", "2");
fila.appendChild(celda);
tabla.appendChild(fila);
}
}

Download

PDF Word HTML