Generation

generate functionSun, 27 Jul 2025

desarrollar un mini punto de venta. El punto de venta nos debe permitir realizar 5 acciones: Dar de alta nuevos productos. Dar de baja y editar productos, para este apartado es sólo cambiar alguna propiedad del producto por ejemplo nombreProducto: 'coca-cola' 2.1 - para la baja de productos este apartado es sólo cambiar alguna propiedad del producto por ejemplo activo: true or false y filtrar los productos por esta condición ocupando algún criterio de filtrado para el objeto. Seleccionar productos, en este módulo podremos agregar a nuestra canasta los productos que seleccionamos y almacenarlos en nuestra canasta. Vender productos, en este módulo podríamos hacer la cuenta de los productos seleccionados y obtener el total del precio de cada uno de ellos. Retornar el cambio, en este módulo del total de la cuenta preguntar al cliente con cuanto estará pagando, si la cantidad con la que está pagando es mayor al total, se deberá calcular el cambio a retornar.

Aquí te muestro un ejemplo de cómo podrías implementar un mini punto de venta en TypeScript: ```typescript // Clase Producto class Producto { id: number; nombreProducto: string; precio: number; activo: boolean; constructor(id: number, nombreProducto: string, precio: number, activo: boolean = true) { this.id = id; this.nombreProducto = nombreProducto; this.precio = precio; this.activo = activo; } } // Clase Punto de Venta class PuntoDeVenta { productos: Producto[]; canasta: Producto[]; constructor() { this.productos = []; this.canasta = []; } // Dar de alta nuevos productos agregarProducto(id: number, nombreProducto: string, precio: number) { const producto = new Producto(id, nombreProducto, precio); this.productos.push(producto); } // Dar de baja y editar productos editarProducto(id: number, nombreProducto?: string, precio?: number, activo?: boolean) { const producto = this.productos.find((p) => p.id === id); if (producto) { if (nombreProducto) { producto.nombreProducto = nombreProducto; } if (precio) { producto.precio = precio; } if (activo !== undefined) { producto.activo = activo; } } } // Filtrar productos por condición filtrarProductos(activo: boolean) { return this.productos.filter((p) => p.activo === activo); } // Seleccionar productos seleccionarProducto(id: number) { const producto = this.productos.find((p) => p.id === id); if (producto) { this.canasta.push(producto); } } // Vender productos venderProductos() { const total = this.canasta.reduce((acc, producto) => acc + producto.precio, 0); return total; } // Retornar el cambio calcularCambio(total: number, pago: number) { const cambio = pago - total; return cambio; } } // Crear un punto de venta const puntoDeVenta = new PuntoDeVenta(); // Agregar productos puntoDeVenta.agregarProducto(1, 'Coca-Cola', 10); puntoDeVenta.agregarProducto(2, 'Pepsi', 12); puntoDeVenta.agregarProducto(3, 'Fanta', 8); // Editar producto puntoDeVenta.editarProducto(1, 'Coca-Cola', 11); // Filtrar productos const productosActivos = puntoDeVenta.filtrarProductos(true); console.log(productosActivos); // Seleccionar productos puntoDeVenta.seleccionarProducto(1); puntoDeVenta.seleccionarProducto(2); // Vender productos const total = puntoDeVenta.venderProductos(); console.log(`Total: $${total}`); // Retornar el cambio const pago = 50; const cambio = puntoDeVenta.calcularCambio(total, pago); console.log(`Cambio: $${cambio}`); ``` En este ejemplo, creamos una clase `Producto` para representar los productos y una clase `PuntoDeVenta` para representar el punto de venta. La clase `PuntoDeVenta` tiene métodos para agregar productos, editar productos, filtrar productos, seleccionar productos, vender productos y calcular el cambio. En el ejemplo, creamos un punto de venta y agregamos algunos productos. Luego, editamos un producto, filtramos los productos activos, seleccionamos algunos productos, vendemos los productos seleccionados y calculamos el cambio.

TypeScript
Generate More

Want to kickstart your project?Use the new AI Studio to create your code