{"id":18613,"date":"2025-11-26T18:49:12","date_gmt":"2025-11-26T23:19:12","guid":{"rendered":"https:\/\/ymprealty.com\/?page_id=18613"},"modified":"2025-11-29T12:29:16","modified_gmt":"2025-11-29T16:59:16","slug":"pagina-de-puebas","status":"publish","type":"page","link":"https:\/\/ymprealty.com\/en\/pagina-de-puebas\/","title":{"rendered":"Plan de pagos inteligente"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"18613\" class=\"elementor elementor-18613\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b4f35c3 e-flex e-con-boxed e-con e-parent\" data-id=\"b4f35c3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-233c5cf elementor-widget elementor-widget-html\" data-id=\"233c5cf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n    .ymp-plan-container{\r\n        font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\r\n        background:#f5f7f9;\r\n        border-radius:18px;\r\n        padding:24px 24px 32px;\r\n        border:1px solid #dde3ea;\r\n        box-shadow:0 10px 25px rgba(0,0,0,.06);\r\n        max-width:1100px;\r\n        margin:0 auto;\r\n    }\r\n    .ymp-plan-header{\r\n        display:flex;\r\n        justify-content:space-between;\r\n        gap:16px;\r\n        flex-wrap:wrap;\r\n        margin-bottom:20px;\r\n    }\r\n    .ymp-plan-title{\r\n        font-size:24px;\r\n        font-weight:700;\r\n        color:#1f2933;\r\n    }\r\n    .ymp-plan-subtitle{\r\n        font-size:13px;\r\n        color:#6b7480;\r\n    }\r\n    .ymp-badge{\r\n        background:#02734A;\r\n        color:#fff;\r\n        font-size:12px;\r\n        padding:4px 10px;\r\n        border-radius:999px;\r\n        align-self:flex-start;\r\n        display:inline-flex;\r\n        align-items:center;\r\n        gap:6px;\r\n    }\r\n    .ymp-badge span{\r\n        display:inline-flex;\r\n        width:16px;\r\n        height:16px;\r\n        border-radius:50%;\r\n        background:#fff;\r\n        color:#02734A;\r\n        align-items:center;\r\n        justify-content:center;\r\n        font-size:11px;\r\n        font-weight:700;\r\n    }\r\n\r\n    .ymp-grid{\r\n        display:grid;\r\n        grid-template-columns: minmax(0,2fr) minmax(0,1.5fr);\r\n        gap:22px;\r\n    }\r\n    @media (max-width:900px){\r\n        .ymp-grid{grid-template-columns:1fr;}\r\n    }\r\n\r\n    .ymp-card{\r\n        background:#fff;\r\n        border-radius:16px;\r\n        padding:18px 18px 20px;\r\n        border:1px solid #e0e6ee;\r\n    }\r\n\r\n    .ymp-card h3{\r\n        margin:0 0 12px;\r\n        font-size:16px;\r\n        font-weight:600;\r\n        color:#1f2933;\r\n    }\r\n\r\n    .ymp-row{\r\n        display:grid;\r\n        grid-template-columns:repeat(2,minmax(0,1fr));\r\n        gap:12px;\r\n    }\r\n    @media (max-width:600px){\r\n        .ymp-row{grid-template-columns:1fr;}\r\n    }\r\n\r\n    .ymp-field label{\r\n        font-size:12px;\r\n        font-weight:600;\r\n        color:#4b5563;\r\n        margin-bottom:4px;\r\n        display:block;\r\n    }\r\n    .ymp-field label span{\r\n        color:#02734A;\r\n        font-weight:700;\r\n    }\r\n    .ymp-input,\r\n    .ymp-select{\r\n        width:100%;\r\n        padding:8px 10px;\r\n        border-radius:10px;\r\n        border:1px solid #cfd7e3;\r\n        font-size:13px;\r\n        background:#f9fafb;\r\n        transition:.15s border-color,.15s box-shadow,.15s background;\r\n    }\r\n    .ymp-input:focus,\r\n    .ymp-select:focus{\r\n        outline:none;\r\n        border-color:#02734A;\r\n        box-shadow:0 0 0 1px rgba(2,115,74,.12);\r\n        background:#fff;\r\n    }\r\n\r\n    .ymp-button{\r\n        margin-top:14px;\r\n        display:inline-flex;\r\n        align-items:center;\r\n        gap:6px;\r\n        background:linear-gradient(135deg,#02734A,#039668);\r\n        border:none;\r\n        color:#fff;\r\n        font-size:13px;\r\n        font-weight:600;\r\n        padding:9px 16px;\r\n        border-radius:999px;\r\n        cursor:pointer;\r\n        box-shadow:0 8px 18px rgba(2,115,74,.3);\r\n        transition:.18s transform,.18s box-shadow,.18s filter;\r\n    }\r\n    .ymp-button.secondary{\r\n        background:#FF8A00;\r\n        box-shadow:0 8px 18px rgba(255,138,0,.35);\r\n    }\r\n    .ymp-button:hover{\r\n        transform:translateY(-1px);\r\n        box-shadow:0 10px 22px rgba(2,115,74,.35);\r\n        filter:brightness(1.03);\r\n    }\r\n    .ymp-button.secondary:hover{\r\n        box-shadow:0 10px 24px rgba(255,138,0,.45);\r\n    }\r\n    .ymp-button:active{\r\n        transform:translateY(0);\r\n        box-shadow:0 6px 14px rgba(2,115,74,.25);\r\n    }\r\n\r\n    .ymp-summary-grid{\r\n        display:grid;\r\n        grid-template-columns:repeat(2,minmax(0,1fr));\r\n        gap:10px;\r\n        margin-top:6px;\r\n    }\r\n    @media (max-width:600px){\r\n        .ymp-summary-grid{grid-template-columns:1fr;}\r\n    }\r\n    .ymp-summary-card{\r\n        background:#f9fafb;\r\n        border-radius:12px;\r\n        padding:10px 11px;\r\n        border:1px solid #e1e7f0;\r\n        display:flex;\r\n        flex-direction:column;\r\n        gap:3px;\r\n    }\r\n    .ymp-summary-label{\r\n        font-size:11px;\r\n        color:#6b7480;\r\n    }\r\n    .ymp-summary-value{\r\n        font-size:15px;\r\n        font-weight:700;\r\n        color:#111827;\r\n    }\r\n    .ymp-summary-highlight{\r\n        color:#FF8A00;\r\n    }\r\n\r\n    .ymp-progress-wrapper{\r\n        margin-top:14px;\r\n    }\r\n    .ymp-progress-label{\r\n        font-size:12px;\r\n        color:#4b5563;\r\n        margin-bottom:4px;\r\n    }\r\n    .ymp-progress-bar{\r\n        position:relative;\r\n        width:100%;\r\n        height:20px;\r\n        border-radius:999px;\r\n        background:#e5e7eb;\r\n        overflow:hidden;\r\n    }\r\n    .ymp-progress-fill{\r\n        position:absolute;\r\n        top:0;\r\n        left:0;\r\n        height:100%;\r\n        background:linear-gradient(90deg,#02734A,#04b274);\r\n        width:0%;\r\n        transition:width .25s ease-out;\r\n    }\r\n    .ymp-progress-text{\r\n        position:absolute;\r\n        top:0;\r\n        left:50%;\r\n        transform:translateX(-50%);\r\n        height:100%;\r\n        display:flex;\r\n        align-items:center;\r\n        justify-content:center;\r\n        font-size:11px;\r\n        font-weight:700;\r\n        color:#fff;\r\n        text-shadow:0 1px 2px rgba(0,0,0,.35);\r\n        pointer-events:none;\r\n    }\r\n\r\n    .ymp-chart-wrapper{\r\n        display:flex;\r\n        flex-direction:column;\r\n        align-items:center;\r\n        gap:6px;\r\n        margin-top:6px;\r\n    }\r\n    .ymp-chart-legend{\r\n        display:flex;\r\n        gap:12px;\r\n        flex-wrap:wrap;\r\n        justify-content:center;\r\n        font-size:11px;\r\n        color:#4b5563;\r\n    }\r\n    .ymp-dot{\r\n        width:10px;\r\n        height:10px;\r\n        border-radius:999px;\r\n        display:inline-block;\r\n        margin-right:4px;\r\n    }\r\n\r\n    .ymp-table-wrapper{\r\n        margin-top:18px;\r\n    }\r\n    .ymp-table-title{\r\n        font-size:14px;\r\n        font-weight:600;\r\n        color:#111827;\r\n        margin-bottom:6px;\r\n    }\r\n    .ymp-table{\r\n        width:100%;\r\n        border-collapse:collapse;\r\n        font-size:12px;\r\n        background:#fff;\r\n        border-radius:12px;\r\n        overflow:hidden;\r\n        border:1px solid #e1e7f0;\r\n    }\r\n    .ymp-table thead{\r\n        background:#f3f4f6;\r\n    }\r\n    .ymp-table th,\r\n    .ymp-table td{\r\n        padding:7px 8px;\r\n        text-align:right;\r\n        border-bottom:1px solid #edf1f7;\r\n    }\r\n    .ymp-table th:first-child,\r\n    .ymp-table td:first-child{\r\n        text-align:center;\r\n    }\r\n    .ymp-table th:nth-child(2),\r\n    .ymp-table td:nth-child(2){\r\n        text-align:left;\r\n    }\r\n    .ymp-table tfoot td{\r\n        font-weight:700;\r\n        background:#f9fafb;\r\n    }\r\n    .ymp-tag-reserva{\r\n        display:inline-flex;\r\n        align-items:center;\r\n        gap:4px;\r\n        font-size:10px;\r\n        padding:2px 6px;\r\n        border-radius:999px;\r\n        background:#fff7ed;\r\n        color:#c05621;\r\n        border:1px solid #fed7aa;\r\n    }\r\n<\/style>\r\n\r\n<div class=\"ymp-plan-container\" id=\"ymp-plan-widget\">\r\n    <div class=\"ymp-plan-header\">\r\n        <div>\r\n            <div class=\"ymp-plan-title\">Plan de pagos inteligente YMP<\/div>\r\n            <div class=\"ymp-plan-subtitle\">\r\n                Calcula tu inicial, pagos mensuales y saldo a financiar seg\u00fan el precio de la villa.\r\n            <\/div>\r\n        <\/div>\r\n        <div class=\"ymp-badge\">\r\n            <span>Y<\/span> YMP Realty \u00b7 Punta Cana\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"ymp-grid\">\r\n        <!-- LADO IZQUIERDO: FORMULARIO -->\r\n        <div class=\"ymp-card\">\r\n            <h3>Datos b\u00e1sicos<\/h3>\r\n            <div class=\"ymp-row\">\r\n                <div class=\"ymp-field\">\r\n                    <label>Nombre del cliente <span>*<\/span><\/label>\r\n                    <input type=\"text\" id=\"ymp-nombre\" class=\"ymp-input\" placeholder=\"Ej. Juan P\u00e9rez\">\r\n                <\/div>\r\n                <div class=\"ymp-field\">\r\n                    <label>Tipo de villa<\/label>\r\n                    <input type=\"text\" id=\"ymp-tipo-villa\" class=\"ymp-input\" placeholder=\"Ej. Villa 2 habitaciones, modelo A\">\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"ymp-row\" style=\"margin-top:10px;\">\r\n                <div class=\"ymp-field\">\r\n                    <label>Correo del cliente (para enviar resumen)<\/label>\r\n                    <input type=\"email\" id=\"ymp-email\" class=\"ymp-input\" placeholder=\"Ej. cliente@email.com\">\r\n                <\/div>\r\n                <div class=\"ymp-field\">\r\n                    <label>Estado del proyecto<\/label>\r\n                    <select id=\"ymp-estado\" class=\"ymp-select\">\r\n                        <option value=\"En plano\">En plano<\/option>\r\n                        <option value=\"En construcci\u00f3n\">En construcci\u00f3n<\/option>\r\n                        <option value=\"Entrega inmediata\">Entrega inmediata<\/option>\r\n                    <\/select>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"ymp-row\" style=\"margin-top:10px;\">\r\n                <div class=\"ymp-field\">\r\n                    <label>Precio de la villa (US$) <span>*<\/span><\/label>\r\n                    <input type=\"number\" id=\"ymp-precio\" class=\"ymp-input\" min=\"0\" step=\"1000\" placeholder=\"Ej. 150000\">\r\n                <\/div>\r\n\r\n                <div class=\"ymp-field\">\r\n                    <label>Reserva inicial (US$) <span>*<\/span><\/label>\r\n                    <input type=\"number\" id=\"ymp-reserva\" class=\"ymp-input\" min=\"0\" step=\"100\" placeholder=\"Ej. 2000\">\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"ymp-row\" style=\"margin-top:10px;\">\r\n                <div class=\"ymp-field\">\r\n                    <label>Porcentaje de inicial<\/label>\r\n                    <select id=\"ymp-porcentaje\" class=\"ymp-select\">\r\n                        <option value=\"0.15\">15% del valor del inmueble<\/option>\r\n                        <option value=\"0.20\">20% del valor del inmueble<\/option>\r\n                        <option value=\"0.25\">25% del valor del inmueble<\/option>\r\n                        <option value=\"0.30\">30% del valor del inmueble<\/option>\r\n                        <option value=\"0.35\">35% del valor del inmueble<\/option>\r\n                        <option value=\"0.40\">40% del valor del inmueble<\/option>\r\n                        <option value=\"0.45\">45% del valor del inmueble<\/option>\r\n                        <option value=\"0.50\">50% del valor del inmueble<\/option>\r\n                    <\/select>\r\n                <\/div>\r\n\r\n                <div class=\"ymp-field\">\r\n                    <label>Plazo para pagar el inicial (meses)<\/label>\r\n                    <input type=\"number\" id=\"ymp-meses\" class=\"ymp-input\" min=\"1\" step=\"1\" placeholder=\"Ej. 18\">\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div style=\"margin-top:10px; display:flex; flex-wrap:wrap; gap:8px;\">\r\n                <button type=\"button\" class=\"ymp-button\" id=\"ymp-calcular\">\r\n                    Calcular plan de pagos\r\n                <\/button>\r\n                <button type=\"button\" class=\"ymp-button secondary\" id=\"ymp-enviar\">\r\n                    Enviar plan por correo\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- LADO DERECHO: RESUMEN, PROGRESO Y GR\u00c1FICO -->\r\n        <div class=\"ymp-card\">\r\n            <h3>Resumen del plan<\/h3>\r\n\r\n            <div class=\"ymp-summary-grid\">\r\n                <div class=\"ymp-summary-card\">\r\n                    <div class=\"ymp-summary-label\">Nombre del cliente<\/div>\r\n                    <div class=\"ymp-summary-value\" id=\"ymp-res-nombre\" style=\"color:#ffffff;background:#02734A;padding:4px 8px;border-radius:999px;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;\">\r\n                        \u2014\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"ymp-summary-card\">\r\n                    <div class=\"ymp-summary-label\">Tipo de villa<\/div>\r\n                    <div class=\"ymp-summary-value\" id=\"ymp-res-tipo\">\u2014<\/div>\r\n                <\/div>\r\n                <div class=\"ymp-summary-card\">\r\n                    <div class=\"ymp-summary-label\">Inicial requerido (seg\u00fan % elegido)<\/div>\r\n                    <div class=\"ymp-summary-value\" id=\"ymp-res-inicial\">US$ 0.00<\/div>\r\n                <\/div>\r\n                <div class=\"ymp-summary-card\">\r\n                    <div class=\"ymp-summary-label\">Reserva + pagos en construcci\u00f3n<\/div>\r\n                    <div class=\"ymp-summary-value\" id=\"ymp-res-total-pre\">US$ 0.00<\/div>\r\n                <\/div>\r\n                <div class=\"ymp-summary-card\">\r\n                    <div class=\"ymp-summary-label\">Pago mensual durante la construcci\u00f3n<\/div>\r\n                    <div class=\"ymp-summary-value ymp-summary-highlight\" id=\"ymp-res-mensual\">US$ 0.00<\/div>\r\n                <\/div>\r\n                <div class=\"ymp-summary-card\">\r\n                    <div class=\"ymp-summary-label\">Saldo estimado a financiar<\/div>\r\n                    <div class=\"ymp-summary-value ymp-summary-highlight\" id=\"ymp-res-financiar\" style=\"font-size:17px;\">\r\n                        US$ 0.00\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"ymp-progress-wrapper\">\r\n                <div class=\"ymp-progress-label\">Porcentaje del valor cubierto antes del financiamiento<\/div>\r\n                <div class=\"ymp-progress-bar\">\r\n                    <div class=\"ymp-progress-fill\" id=\"ymp-progress-fill\"><\/div>\r\n                    <div class=\"ymp-progress-text\" id=\"ymp-progress-text\">0%<\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"ymp-chart-wrapper\">\r\n                <canvas id=\"ymp-chart\" width=\"260\" height=\"260\"><\/canvas>\r\n                <div class=\"ymp-chart-legend\">\r\n                    <span><span class=\"ymp-dot\" style=\"background:#02734A;\"><\/span>Pagos antes del banco<\/span>\r\n                    <span><span class=\"ymp-dot\" style=\"background:#FF8A00;\"><\/span>Saldo a financiar<\/span>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- TABLA DE PAGOS MENSUALES -->\r\n    <div class=\"ymp-card ymp-table-wrapper\">\r\n        <div class=\"ymp-table-title\">\r\n            Promesa de pago mensual durante la construcci\u00f3n\r\n            <span class=\"ymp-tag-reserva\">\r\n                <strong>Nota:<\/strong> la reserva se paga por separado pero se suma al total de inicial aportado\r\n            <\/span>\r\n        <\/div>\r\n        <table class=\"ymp-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>#<\/th>\r\n                    <th>Mes<\/th>\r\n                    <th>Pago mensual (US$)<\/th>\r\n                    <th>Acumulado (US$)<\/th>\r\n                <\/tr>\r\n            <\/thead>\r\n            <tbody id=\"ymp-tabla-body\">\r\n                <tr>\r\n                    <td colspan=\"4\" style=\"text-align:center;color:#9ca3af;padding:10px;\">\r\n                        Calcula el plan para ver el detalle de los pagos mensuales\u2026\r\n                    <\/td>\r\n                <\/tr>\r\n            <\/tbody>\r\n            <tfoot>\r\n                <tr>\r\n                    <td colspan=\"2\">Total inicial aportado (reserva + cuotas)<\/td>\r\n                    <td colspan=\"2\" id=\"ymp-total-construccion\">US$ 0.00<\/td>\r\n                <\/tr>\r\n            <\/tfoot>\r\n        <\/table>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- Chart.js CDN para el gr\u00e1fico de pastel -->\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\r\n<script>\r\n(function(){\r\n    const $ = id => document.getElementById(id);\r\n\r\n    let ympPlanData = null;\r\n    let ympSchedule = [];\r\n\r\n    \/\/ Gr\u00e1fico de pastel\r\n    let chartCtx = $('ymp-chart').getContext('2d');\r\n    let chart = new Chart(chartCtx,{\r\n        type:'doughnut',\r\n        data:{\r\n            labels:['Pagos antes del banco','Saldo a financiar'],\r\n            datasets:[{\r\n                data:[0,100],\r\n                backgroundColor:['#02734A','#FF8A00'],\r\n                borderWidth:1,\r\n                borderColor:'#ffffff'\r\n            }]\r\n        },\r\n        options:{\r\n            plugins:{\r\n                legend:{display:false},\r\n                tooltip:{\r\n                    callbacks:{\r\n                        label:function(ctx){\r\n                            const label = ctx.label || '';\r\n                            const value = ctx.raw || 0;\r\n                            return label + ': ' + value.toLocaleString('en-US',{style:'currency',currency:'USD'});\r\n                        }\r\n                    }\r\n                }\r\n            },\r\n            cutout:'65%'\r\n        }\r\n    });\r\n\r\n    function formatUSD(num){\r\n        if(isNaN(num)) num = 0;\r\n        return 'US$ ' + num.toLocaleString('en-US',{\r\n            minimumFractionDigits:2,\r\n            maximumFractionDigits:2\r\n        });\r\n    }\r\n\r\n    function actualizarChart(pagosAntesBanco, saldoFinanciar){\r\n        chart.data.datasets[0].data = [pagosAntesBanco, saldoFinanciar];\r\n        chart.update();\r\n    }\r\n\r\n    function actualizarBarraPorcentaje(porcentaje){\r\n        porcentaje = Math.max(0,Math.min(100,porcentaje));\r\n        $('ymp-progress-fill').style.width = porcentaje.toFixed(1) + '%';\r\n        $('ymp-progress-text').textContent = porcentaje.toFixed(1) + '%';\r\n    }\r\n\r\n    function construirTablaPagos(meses, pagoMensual){\r\n        const tbody = $('ymp-tabla-body');\r\n        tbody.innerHTML = '';\r\n        ympSchedule = [];\r\n\r\n        if(isNaN(meses) || meses<=0 || isNaN(pagoMensual) || pagoMensual<=0){\r\n            tbody.innerHTML = '<tr><td colspan=\"4\" style=\"text-align:center;color:#9ca3af;padding:10px;\">No hay pagos mensuales calculados. Verifica el precio, el porcentaje y el plazo.<\/td><\/tr>';\r\n            $('ymp-total-construccion').textContent = 'US$ 0.00';\r\n            return;\r\n        }\r\n        let acumulado = 0;\r\n        for(let i=1;i<=meses;i++){\r\n            acumulado += pagoMensual;\r\n            const tr = document.createElement('tr');\r\n            const tdIndex = document.createElement('td');\r\n            const tdMes = document.createElement('td');\r\n            const tdPago = document.createElement('td');\r\n            const tdAcum = document.createElement('td');\r\n\r\n            tdIndex.textContent = i;\r\n            tdMes.textContent = 'Mes ' + i;\r\n            tdPago.textContent = pagoMensual.toLocaleString('en-US',{minimumFractionDigits:2,maximumFractionDigits:2});\r\n            tdAcum.textContent = acumulado.toLocaleString('en-US',{minimumFractionDigits:2,maximumFractionDigits:2});\r\n\r\n            tr.appendChild(tdIndex);\r\n            tr.appendChild(tdMes);\r\n            tr.appendChild(tdPago);\r\n            tr.appendChild(tdAcum);\r\n            tbody.appendChild(tr);\r\n\r\n            ympSchedule.push({\r\n                index: i,\r\n                mes: 'Mes ' + i,\r\n                pago: pagoMensual,\r\n                acumulado: acumulado\r\n            });\r\n        }\r\n\r\n        const reservaVal = parseFloat($('ymp-reserva').value) || 0;\r\n        const totalInicialAportado = acumulado + reservaVal;\r\n        $('ymp-total-construccion').textContent = formatUSD(totalInicialAportado);\r\n    }\r\n\r\n    $('ymp-calcular').addEventListener('click',function(){\r\n        const nombre = $('ymp-nombre').value.trim() || 'Cliente YMP';\r\n        const tipoVilla = $('ymp-tipo-villa').value.trim() || 'Villa seleccionada';\r\n        const estado = $('ymp-estado').value || 'En plano';\r\n        const precio = parseFloat($('ymp-precio').value);\r\n        const reserva = parseFloat($('ymp-reserva').value);\r\n        const porcentaje = parseFloat($('ymp-porcentaje').value || '0.20');\r\n        const meses = parseInt($('ymp-meses').value || '0',10);\r\n\r\n        if(isNaN(precio) || precio<=0){\r\n            alert('Por favor introduce el precio de la villa.');\r\n            return;\r\n        }\r\n        if(isNaN(reserva) || reserva<0){\r\n            alert('Por favor introduce un monto de reserva v\u00e1lido.');\r\n            return;\r\n        }\r\n        if(isNaN(meses) || meses<=0){\r\n            alert('Por favor introduce el n\u00famero de meses para pagar el inicial.');\r\n            return;\r\n        }\r\n\r\n        \/\/ 1) Inicial requerido seg\u00fan el % elegido\r\n        const inicialRequerido = precio * porcentaje;\r\n\r\n        if(reserva > inicialRequerido){\r\n            alert('La reserva no puede ser mayor que el monto total de inicial calculado (' + formatUSD(inicialRequerido) + ').');\r\n            return;\r\n        }\r\n\r\n        \/\/ 2) Saldo del inicial a pagar durante la construcci\u00f3n\r\n        const saldoConstruccion = Math.max(inicialRequerido - reserva,0);\r\n\r\n        \/\/ 3) Pago mensual durante la construcci\u00f3n\r\n        const pagoMensual = saldoConstruccion \/ meses;\r\n\r\n        \/\/ 4) Total pagado antes de financiar (reserva + cuotas de construcci\u00f3n)\r\n        const totalAntesFinanciar = reserva + saldoConstruccion;\r\n\r\n        \/\/ 5) Saldo a financiar con el banco\r\n        const saldoFinanciar = Math.max(precio - totalAntesFinanciar,0);\r\n\r\n        \/\/ 6) Porcentaje cubierto\r\n        const porcentajeCubierto = (totalAntesFinanciar \/ precio) * 100;\r\n\r\n        \/\/ Actualizar resumen\r\n        $('ymp-res-nombre').textContent = nombre;\r\n        $('ymp-res-tipo').textContent = tipoVilla + ' \u00b7 ' + estado;\r\n        $('ymp-res-inicial').textContent = formatUSD(inicialRequerido);\r\n        $('ymp-res-total-pre').textContent = formatUSD(totalAntesFinanciar);\r\n        $('ymp-res-mensual').textContent = formatUSD(pagoMensual);\r\n        $('ymp-res-financiar').textContent = formatUSD(saldoFinanciar);\r\n\r\n        \/\/ Barra de porcentaje\r\n        actualizarBarraPorcentaje(porcentajeCubierto);\r\n\r\n        \/\/ Gr\u00e1fico pastel\r\n        actualizarChart(totalAntesFinanciar, saldoFinanciar);\r\n\r\n        \/\/ Tabla de pagos mensuales\r\n        construirTablaPagos(meses, pagoMensual);\r\n\r\n        \/\/ Guardar datos para env\u00edo por correo\r\n        ympPlanData = {\r\n            nombre,\r\n            tipoVilla,\r\n            estado,\r\n            precio,\r\n            reserva,\r\n            porcentaje,\r\n            meses,\r\n            inicialRequerido,\r\n            saldoConstruccion,\r\n            pagoMensual,\r\n            totalAntesFinanciar,\r\n            saldoFinanciar,\r\n            schedule: ympSchedule.slice()\r\n        };\r\n    });\r\n\r\n    \/\/ Enviar por correo (mailto: cliente + gerente de ventas)\r\n    $('ymp-enviar').addEventListener('click', function(){\r\n        if(!ympPlanData){\r\n            alert('Primero calcula el plan de pagos.');\r\n            return;\r\n        }\r\n\r\n        const emailCliente = ($('ymp-email').value || '').trim();\r\n        if(!emailCliente){\r\n            alert('Escribe el correo del cliente para enviar el plan.');\r\n            return;\r\n        }\r\n        const emailEmpresa = 'gerentedeventas@himepe.com';\r\n\r\n        const d = ympPlanData;\r\n\r\n        let subject = 'Plan de pagos - ' + d.tipoVilla + ' - ' + d.nombre;\r\n\r\n        let bodyLines = [];\r\n        bodyLines.push('Hola ' + d.nombre + ',');\r\n        bodyLines.push('');\r\n        bodyLines.push('Adjuntamos el resumen de tu plan de pagos para la ' + d.tipoVilla + ':');\r\n        bodyLines.push('');\r\n        bodyLines.push('Estado del proyecto: ' + d.estado);\r\n        bodyLines.push('Precio total de la villa: ' + formatUSD(d.precio));\r\n        bodyLines.push('Reserva inicial: ' + formatUSD(d.reserva));\r\n        bodyLines.push('Porcentaje de inicial: ' + (d.porcentaje * 100).toFixed(0) + '%');\r\n        bodyLines.push('Inicial requerido: ' + formatUSD(d.inicialRequerido));\r\n        bodyLines.push('Total inicial aportado (reserva + cuotas): ' + formatUSD(d.totalAntesFinanciar));\r\n        bodyLines.push('Pago mensual durante la construcci\u00f3n: ' + formatUSD(d.pagoMensual));\r\n        bodyLines.push('Saldo estimado a financiar: ' + formatUSD(d.saldoFinanciar));\r\n        bodyLines.push('');\r\n        bodyLines.push('Promesa de pago mensual durante la construcci\u00f3n:');\r\n        bodyLines.push('--------------------------------------------------');\r\n        d.schedule.forEach(item=>{\r\n            bodyLines.push(\r\n                '#'+item.index+' - '+item.mes+': '+\r\n                item.pago.toLocaleString('en-US',{style:'currency',currency:'USD'})+\r\n                ' (acumulado: '+item.acumulado.toLocaleString('en-US',{style:'currency',currency:'USD'})+')'\r\n            );\r\n        });\r\n        bodyLines.push('--------------------------------------------------');\r\n        bodyLines.push('');\r\n        bodyLines.push('Este plan es una simulaci\u00f3n y puede ajustarse seg\u00fan condiciones finales.');\r\n        bodyLines.push('');\r\n        bodyLines.push('Atentamente,');\r\n        bodyLines.push('YMP Realty');\r\n        bodyLines.push('www.ymprealty.com');\r\n\r\n        const body = encodeURIComponent(bodyLines.join('\\n'));\r\n        const recipients = encodeURIComponent(emailCliente + ',' + emailEmpresa);\r\n        const mailtoUrl = 'mailto:' + recipients +\r\n            '?subject=' + encodeURIComponent(subject) +\r\n            '&body=' + body;\r\n\r\n        window.location.href = mailtoUrl;\r\n    });\r\n\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Plan de pagos inteligente YMP Calcula tu inicial, pagos mensuales y saldo a financiar seg\u00fan el precio de la villa. Y YMP Realty \u00b7 Punta Cana Datos b\u00e1sicos Nombre del cliente * Tipo de villa Correo del cliente (para enviar resumen) Estado del proyecto En planoEn construcci\u00f3nEntrega inmediata Precio de la villa (US$) * Reserva [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-18613","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ymprealty.com\/en\/wp-json\/wp\/v2\/pages\/18613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ymprealty.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ymprealty.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ymprealty.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ymprealty.com\/en\/wp-json\/wp\/v2\/comments?post=18613"}],"version-history":[{"count":26,"href":"https:\/\/ymprealty.com\/en\/wp-json\/wp\/v2\/pages\/18613\/revisions"}],"predecessor-version":[{"id":18695,"href":"https:\/\/ymprealty.com\/en\/wp-json\/wp\/v2\/pages\/18613\/revisions\/18695"}],"wp:attachment":[{"href":"https:\/\/ymprealty.com\/en\/wp-json\/wp\/v2\/media?parent=18613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}