Solución
JL@juanluisabreu_4c541ef6
·2/4/2026TypeScriptsolution.tsTypeScript
function getDiscountRate(categoria: string): number{
const CATEGORY_ELECTRONIC = "electronics";
const CATEGORY_CLOTHING = "clothing";
const CATEGORY_FOOD = "food";
const CATEGORY_ELECTRONIC_RATE = 0.15;
const CATEGORY_CLOTHING_RATE = 0.20;
const CATEGORY_FOOD_RATE = 0.05;
const DEFUALT_OTHER_CATEGORY = 0.00;
if (categoria === CATEGORY_ELECTRONIC) {
return CATEGORY_ELECTRONIC_RATE;
} else if (categoria === CATEGORY_CLOTHING) {
return CATEGORY_CLOTHING_RATE;
} else if (categoria === CATEGORY_FOOD) {
return CATEGORY_FOOD_RATE
} else {
return DEFUALT_OTHER_CATEGORY
}
}
export function getProductFinalPrice(precio: number, categoria: string, inventario: number): number {
const DEFAULT_INVALID_INPUT = -1;
const TAX_RATE = 1.21;
let descuento = 0;
// Verificar si el stock es válido
if (inventario <= 0) return DEFAULT_INVALID_INPUT;
// Verificar si el precio es válido
if (precio <= 0) return DEFAULT_INVALID_INPUT;
descuento = precio * getDiscountRate(categoria);
// Calcular el precio con descuento aplicado
let discounted = precio - descuento;
// Aplicar el impuesto sobre el precio con descuento
let result = discounted * TAX_RATE;
// Redondear a dos decimales
return Math.round(result * 100) / 100;
}0respuestas