Solución

@moisesgj_83116407·13/7/2026TypeScript
solution.tsTypeScript
const ELECTRONICS_DESC:number = 0.15;
const CLOTHING_DESC:number = 0.20;
const FOOD_DESC:number = 0.05;
const TAX_RATE:number = 1.21;


function getDiscount(price:number, category: string): number {

  let categoriesDicount = new Map<string, number>([
    ["electronics", ELECTRONICS_DESC], ["clothing", CLOTHING_DESC], ["food", FOOD_DESC]
  ]);

  return price * (categoriesDicount.get(category) ?? 0);

}

export function getProductFinalPrice(price: number, category: string, stock: number): number {
  
  // Verificar si el stock y precio es válido
  if (stock <= 0 || price <= 0) return -1;

  // Aplicar descuento según la categoría del producto
  let discount = getDiscount(price, category);

  // Calcular el precio con descuento aplicado
  let discounted = price - discount;

  // Aplicar el impuesto sobre el precio con descuento
  let result = discounted * TAX_RATE;

  // Redondear a dos decimales
  return Math.round(result * 100) / 100;
}
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.