Ejercicios de práctica de JavaScript

Ejercicio 25

Sistema de facturación.

  1. Crear una función que se llame facturacion().
  2. La función tiene que recibir como parámetro el monto de un producto, y el medio de pago: C (tarjeta de crédito), E (efectivo) y D (tarjeta de débito). Si el monto del producto es menor a $200 no se aplicará ningún descuento. Si el monto a abonar es entre $200 y $400 se aplicará un descuento del 30% si el medio de pago es efectivo, 20% si se realiza con débito y 10% con tarjeta de crédito. Para montos mayores a $400, el descuento es 40% sin importar el medio de pago.
  3. La función deberá retornar el monto final a abonar.

Forma de resolverlo:

Creo la funcion expresada facturacion() que recibe como parámetros: precio (valido que ingrese numero, que no ingrese vací­o, que no sea 0, que no sea número negaativo) y medioPago .

Si el precio está (0,200) no importa el método de pago, no hay ningún descuento (es la condición 1ra a evaluar en el if).

Si el precio está en (200,400) el método de pago si influye, en el else if lo selecciono con switch. Y finalmente si el monto es mayor a 400 tampoco importa el método de pago, siempre tiene un 40 % de descuento. Siempre muestro todo por consola

const facturacion = (precio = undefined, medioPago = undefined) => { if(precio === undefined) return console.warn("No ingresaste un numero"); if(typeof precio !== "number") return console.error(`El ${precio} ingresado no es un numero.`); if(precio === 0) return console.error("El precio ingresado no puede ser 0."); if(Math.sign(precio)=== -1) return console.error("El precio ingresado no puede ser negativo"); if(precio < 200) { return console.info(`El monto a abonar es de ${precio}.`); } else if(precio <400){ switch (medioPago) { case "C": console.info(`El precio ingresado es de ${precio}, por pago en tarjeta de credito tenes un 10 % de descuento, tu precio final es de ${precio *0.9}.`); break; case "E": console.info(`El precio ingresado es de ${precio}, por pago en efectivo tenes un 30 % de descuento, tu precio final es de ${precio *0.7}.`); break; case "D": console.info(`El precio ingresado es de ${precio}, por pago en tarjeta de debito tenes un 20 % de descuento, tu precio final es de ${precio *0.8}.`); break; default: console.warn("No ingresaste el medio de pago"); break; } else { return console.info(`El precio ingresado es de ${precio}, por monto mayor a $400 tenés un 40% de descuento, tu precio final es de ${precio * 0.6}.`); } }

Llamo a la función sin parámetros para ver validación

facturacion();

Llamo a la funcón con string como parámetros para ver validación

facturacion("Hola");

Llamo a la función con 0 como parámetros para ver validación

facturacion(0);

Llamo a la función con número negativo como parámetros para ver validación

facturacion(-20);

Llamo a la función y paso como parámetro un importe menor a 200

facturacion(100,"C"); facturacion(110,"E"); facturacion(120,"D");

Llamo a la función y paso como parámetro un importe entre (200,400)

facturacion(300,"C"); facturacion(300,"E"); facturacion(300,"D");

Llamo a la función y paso como parámetro mayor a $ 400

facturacion(500,"C"); facturacion(600,"E"); facturacion(700,"D");

Con F12 podés verlo en la consola

Volver al inicio