Software y sistemas

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa de cambio en un software. Voy a enseñarte el algoritmo y un ejemplo de código para que puedas modificar los precios según una tasa, con la posibilidad de tener el sistema multimoneda o con varias divisas.

Veamos cómo añadir una tasa de cambio para basar tus precios en otra moneda, por ejemplo, el dólar.

Tasa de cambio en software

Pongamos un ejemplo: quieres basar tus precios en dólares, pero sin introducir los precios en dólares, solo quieres introducir la tasa de cambio. Tu moneda local es el peso mexicano pero quieres basar tus precios en dólares.

La primera vez que registres el precio de los productos o servicios vas a registrar la tasa de cambio de ese día y te vas a basar en dicha tasa para registrar el precio por primera vez.

Cada vez que cambies la tasa debes actualizar el precio de los productos usando la siguiente fórmula:

Nuevo precio = Precio anterior * Tasa nueva / Tasa anterior

Ejemplo

Supongamos que el 6 de diciembre de 2024 un dólar equivale a 20 pesos mexicanos. Tú quieres vender un jabón en 2 dólares, así que al hacer la conversión serán 40 pesos mexicanos. Registras la tasa de ese día (20) y el precio del producto (40). En ningún momento estamos introduciendo valores en dólares.

El siguiente día el dólar sube a 25 pesos mexicanos. Entonces ajustas la tasa, y usas la siguiente fórmula:

Nuevo precio = Precio anterior * Tasa nueva / Tasa anterior

Siguiendo con el ejemplo, la fórmula queda así:

Nuevo precio = 40 (precio del jabón el día anterior) * 25 (nueva tasa) / 20 (tasa anterior)

Y el resultado es 50. El precio del jabón el 6 de diciembre era de 40 pesos, pero el 7 de diciembre es de 50 pesos. Ahora solo debes aplicar esa fórmula a todos los productos.

Si al siguiente día (8 de diciembre) un dólar equivale a 10 pesos mexicanos entonces ajustas de nuevo:

Nuevo precio = 50 * 10 / 25

El resultado será 20, lo cual es correcto, pues recuerda que desde el inicio dijimos que el jabón iba a costar 2 dólares, pero todo esto fue hecho sin introducir valores en dólares.

Este ejemplo fue hecho con dólares y pesos mexicanos, pero se puede aplicar con cualquier divisa.

Si fuera SQL

Si se tratara de una consulta SQL, primero podrías sacar el factor de multiplicación dividiendo la tasa nueva entre la anterior. Para el primer ejemplo de arriba donde la tasa nueva era 25 y la anterior era 20, es 1.25. Luego, actualizar el precio multiplicando, así:

UPDATE productos SET precio = precio * 1.25

Y de este modo podrás actualizar tus precios según la tasa de cambio. Solo necesitas la tasa nueva, la tasa anterior y actualizar los precios. También podrías contar con un historial de precios y tasas de cambio de divisas.

Ejemplo con JavaScript y localStorage

He creado un ejemplo que puedes probar en tu navegador. El ejemplo usa localStorage por simplicidad.

La parte más relevante es la de la actualización de la tasa de cambio:

document.addEventListener("DOMContentLoaded", () => {
    const $tasa = document.querySelector("#tasa"),
        $btnGuardar = document.querySelector("#btnGuardar");
    // Esta es la tasa actual antes de poner la nueva
    let tasaVieja = parseFloat(localStorage.getItem("tasa_actual"));

    $btnGuardar.addEventListener("click", () => {
        const tasaNueva = $tasa.valueAsNumber;
        if (!tasaVieja) {
            tasaVieja = tasaNueva;
        }
        localStorage.setItem("tasa_anterior", tasaVieja.toString());
        localStorage.setItem("tasa_actual", tasaNueva.toString());
        // Actualizamos todos los precios. Si no hay productos, no pasará nada
        const productos = JSON.parse(localStorage.getItem("productos")) || [];
        for (let i = 0; i < productos.length; i++) {
            const precioViejo = productos[i].precio;
            const precioNuevo = precioViejo * tasaNueva / tasaVieja;
            productos[i].precio = precioNuevo;
        }
        localStorage.setItem("productos", JSON.stringify(productos));
        alert("Guardada correctamente");
    })

});

Puedes acceder al código fuente completo en https://github.com/parzibyte/ejemplos-javascript/tree/master/tasa-cambio y a la demostración en vivo en https://parzibyte.github.io/ejemplos-javascript/tasa-cambio/

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

9 horas hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

6 días hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Imprimir ñ en impresora térmica

En este post te enseñaré a imprimir la letra ñ en una impresora térmica. Voy…

4 semanas hace

Tramitar acta de nacimiento en línea de manera instantánea

En este post te quiero compartir mi experiencia tramitando un acta de nacimiento de México…

4 semanas hace

Esta web usa cookies.