Evaluating bids

Gestión de números (Dms)

Published on the September 22, 2024 in Design & Multimedia

About this project

Open

<!Doctype html>
<html lang="es">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Gestión de Usuarios</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
            display: flex;
            flex-direction: column;
            align-items: center;
        }
        #dms-container {
            position: absolute;
            top: 10px;
            left: 10px;
            background-color: lightgray;
            padding: 10px;
            border-radius: 5px;
        }
        #dms {
            font-weight: bold;
            font-size: 24px;
        }
        .btn-container {
            margin-top: 50px;
            display: flex;
            justify-content: center;
            gap: 20px;
        }
        #createUserBtn, #gestionIngresosBtn {
            font-size: 14px;
            padding: 15px 30px;
            cursor: pointer;
        }
        .user-list {
            margin-top: 40px;
            width: 100%;
        }
        .user-item {
            background-color: lightgray;
            padding: 10px;
            margin-bottom: 10px;
            border: 1px solid gray;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .user-item.subagent {
            background-color: lightgreen; /* Color para subagente */
        }
        .user-buttons button {
            margin-left: 10px;
        }
        .gestion-form {
            margin-top: 10px;
        }
        .modal {
            display: none;
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: white;
            padding: 20px;
            border: 1px solid #ccc;
            box-shadow: 0 4px 8px rgba(0,0,0,0.1);
        }
        .modal input {
            margin-top: 10px;
            padding: 5px;
            width: 100%;
        }
        .modal button {
            margin-top: 10px;
            padding: 5px;
            width: 100%;
        }
    </style>
</head>
<body>
    <div id="dms-container">
        <div id="dms">DMS: 1.000</div>
    </div>

    <div class="btn-container">
        <button id="createUserBtn" onclick="crearUsuario()">Crear Usuario</button>
        <button id="gestionIngresosBtn" onclick="abrirModalDMS()">Gestión de Ingresos</button>
    </div>

    <div class="user-list" id="userList"></div>

    <!-- Modal para ingreso de monto del usuario -->
    <div class="modal" id="modalGestionUsuario">
        <label for="montoInputUsuario">¿Cuánto le quieres mover al usuario?:</label>
        <input type="number" id="montoInputUsuario" step="any" oninput="limitarDecimales(this)">
        <button onclick="procesarGestionUsuario()">Confirmar</button>
        <button onclick="cerrarModal('modalGestionUsuario')">Cancelar</button>
    </div>

    <!-- Modal para ingreso de monto de DMS -->
    <div class="modal" id="modalGestionDMS">
        <label for="montoInputDMS">¿Cuánto quieres mover de DMS?:</label>
        <input type="number" id="montoInputDMS" step="any" oninput="limitarDecimales(this)">
        <button onclick="procesarGestionDMS()">Confirmar</button>
        <button onclick="cerrarModal('modalGestionDMS')">Cancelar</button>
    </div>

    <script>
        let dms = 1000;
        let userInfoGlobal = null;

        document.getElementById('dms').innerText = 'DMS: ' + dms.toFixed(2);

        function crearUsuario() {
            const nombre = prompt("Ingrese el nombre del usuario:");
            if (!nombre) {
                alert("Debe ingresar un nombre válido.");
                Return;
            }
           
            const password = prompt("Ingrese la contraseña del usuario:");
            if (!password) {
                alert("Debe ingresar una contraseña.");
                Return;
            }

            agregarUsuario(nombre);
        }

        function agregarUsuario(nombre) {
            const userList = document.getElementById("userList");

            const userItem = document.createElement("div");
            userItem.className = "user-item";

            const userInfo = document.createElement("span");
            userInfo.className = "user-info";
            userInfo.innerText = nombre + " - Monto: 0.00"; // Solo mostrar el nombre y el monto
            userItem.appendChild(userInfo);

            const buttonsDiv = document.createElement("div");
            buttonsDiv.className = "user-buttons";

            const btnGestionIngreso = document.createElement("button");
            btnGestionIngreso.innerText = "Gestión Ingreso";
            btnGestionIngreso.onclick = () => abrirModalUsuario(userInfo);
            buttonsDiv.appendChild(btnGestionIngreso);

            const btnGestion = document.createElement("button");
            btnGestion.innerText = "Gestión";
            btnGestion.onclick = () => toggleGestion(userItem, userInfo);
            buttonsDiv.appendChild(btnGestion);

            userItem.appendChild(buttonsDiv);
            userList.appendChild(userItem);
        }

        function abrirModalUsuario(userInfo) {
            userInfoGlobal = userInfo; // Guardamos el usuario seleccionado
            document.getElementById("modalGestionUsuario").style.display = "block";
        }

        function abrirModalDMS() {
            document.getElementById("modalGestionDMS").style.display = "block";
        }

        function cerrarModal(modalId) {
            document.getElementById(modalId).style.display = "none";
            userInfoGlobal = null;
        }

        function procesarGestionUsuario() {
            const monto = parseFloat(document.getElementById("montoInputUsuario").value);
            if (!isNaN(monto)) {
                const currentMonto = obtenerMontoUsuario(userInfoGlobal);
                if (monto < 0) {
                    const montoAbsoluto = Math.abs(monto);
                    if (currentMonto >= montoAbsoluto) {
                        actualizarMontoUsuario(userInfoGlobal, currentMonto - montoAbsoluto);
                        dms += montoAbsoluto;
                        actualizarDMS();
                    } else {
                        alert("El usuario no tiene suficiente saldo.");
                    }
                } Else {
                    if (dms >= monto) {
                        actualizarMontoUsuario(userInfoGlobal, currentMonto + monto);
                        dms -= monto;
                        actualizarDMS();
                    } else {
                        alert("No tienes suficiente DMS.");
                    }
                }
            } Else {
                alert("Monto inválido.");
            }
            CerrarModal('modalGestionUsuario'); // Cierra el modal después de la gestión
        }

        function procesarGestionDMS() {
            const monto = parseFloat(document.getElementById("montoInputDMS").value);
            if (!isNaN(monto)) {
                if (monto < 0) {
                    const montoAbsoluto = Math.abs(monto);
                    if (dms >= montoAbsoluto) {
                        dms += monto;
                        actualizarDMS();
                    } else {
                        alert("No tienes suficiente DMS.");
                    }
                } Else {
                    dms += monto;
                    actualizarDMS();
                }
            } else {
                alert("Monto inválido.");
            }
            CerrarModal('modalGestionDMS'); // Cierra el modal después de la gestión
        }

        function obtenerMontoUsuario(userInfo) {
            const montoTexto = userInfo.innerText.split(": ")[1];
            return parseFloat(montoTexto);
        }

        function actualizarMontoUsuario(userInfo, nuevoMonto) {
            const nombre = userInfo.innerText.split(" - ")[0];
            userInfo.innerText = `${nombre} - Monto: ${nuevoMonto.toFixed(2)}`;
        }

        function actualizarDMS() {
            document.getElementById('dms').innerText = 'DMS: ' + dms.toFixed(2);
        }

        function toggleGestion(userItem, userInfo) {
            const existingForm = userItem.querySelector(".gestion-form");

            if (existingForm) {
                existingForm.remove(); // Si ya hay un formulario, lo elimina
            } else {
                const gestionForm = document.createElement("div");
                gestionForm.className = "gestion-form";
               
                const subagent = userItem.classList.contains("subagent");
                const accion = subagent ? "Sacar de SubAgente" : "Subir a SubAgente";
                const subagentBtn = document.createElement("button");
                subagentBtn.innerText = accion;
                subagentBtn.onclick = () => toggleSubagente(userItem);
                gestionForm.appendChild(subagentBtn);

                const eliminarBtn = document.createElement("button");
                eliminarBtn.innerText = "Eliminar Usuario";
                eliminarBtn.onclick = () => eliminarUsuario(userItem, userInfo);
                gestionForm.appendChild(eliminarBtn);

                userItem.appendChild(gestionForm);
            }
        }

        function toggleSubagente(userItem) {
            userItem.classList.toggle("subagent"); // Cambia la clase para cambiar el color
            toggleGestion(userItem); // Oculta el formulario después de cambiar el estado
        }

        function eliminarUsuario(userItem, userInfo) {
            const montoUsuario = obtenerMontoUsuario(userInfo);
            if (montoUsuario > 0) {
                alert("No puedes eliminar un usuario con montos disponibles.");
            } Else if (confirm("¿Seguro que quieres eliminar al usuario?")) {
                userItem.remove();
            }
        }

        function limitarDecimales(input) {
            // Limitar a dos dígitos después del punto decimal
            const valor = input.value;
            if (valor.includes(".")) {
                Const partes = valor.split(".");
                If (partes[1].length > 2) {
                    input.value = partes[0] + "." + Partes[1].substring(0, 2);
                }
            }
        }
    </script>
</body>
</html>

Quiero que este código se le ponga más decoración, más opciones y mas cosas.
Este es un código en donde puedes crear usuarios, los puedes hacer subagentes y puedes controlar la cantidad de monto que tienen.

Project overview

Este es un proyecto hecho para después conectarlo a una base de datos y poder operar cosas más fácil.

Category Design & Multimedia
Subcategory Web design
What do you need? Medium-sized change
Is this a project or a position? Project
Required availability As needed

Delivery term: Not specified

Skills needed

Other projects posted by J. D. B.