[et_pb_section fb_built="1" _builder_version="4.0.9" custom_padding="0px|0px|0px|0px" hover_enabled="0" sticky_enabled="0"][et_pb_row _builder_version="4.0.9" custom_padding="0px|0px|0px|0px" hover_enabled="0" sticky_enabled="0"][et_pb_column type="4_4" _builder_version="4.0.9"][et_pb_text _builder_version="4.0.9" hover_enabled="0" sticky_enabled="0"]

<style>
    .calculator-container {
        max-width: 800px;
        margin: 0 auto;
        padding: 20px;
        background-color: #f5f5f5;
        border-radius: 8px;
        box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    }
    
    .calculator-title {
        text-align: center;
        color: #2E7D32;
        margin-bottom: 20px;
    }
    
    .input-group {
        margin-bottom: 15px;
    }
    
    .input-group label {
        display: block;
        font-weight: bold;
        margin-bottom: 5px;
    }
    
    .input-group input,
    .input-group select {
        width: 100%;
        padding: 10px;
        border: 1px solid #ddd;
        border-radius: 4px;
    }
    
    .btn-calculate {
        background-color: #4CAF50;
        color: white;
        border: none;
        padding: 12px 20px;
        border-radius: 4px;
        cursor: pointer;
        font-size: 16px;
        display: block;
        margin: 20px auto;
    }
    
    .btn-calculate:hover {
        background-color: #2E7D32;
    }
    
    .results-table {
        width: 100%;
        border-collapse: collapse;
        margin-top: 20px;
        display: none;
    }
    
    .results-table th,
    .results-table td {
        border: 1px solid #ddd;
        padding: 10px;
        text-align: left;
    }
    
    .results-table th {
        background-color: #C8E6C9;
    }
    
    .result-value {
        font-weight: bold;
        color: #2E7D32;
    }
    
    .total-value {
        font-weight: bold;
        color: #d9534f;
        font-size: 1.1em;
    }
</style>

<div class="calculator-container">
    <h2 class="calculator-title">Calculador de Prima de Servicios USO - 2025</h2>
    
    <div class="input-group">
        <label for="fecha_ingreso">Fecha de Ingreso:</label>
        <input type="date" id="fecha_ingreso">
    </div>
    
    <div class="input-group">
        <label for="fecha_calculo">Fecha de Cálculo (2025):</label>
        <input type="date" id="fecha_calculo">
    </div>
    
    <div class="input-group">
        <label for="nivel_cargo">Nivel del Cargo:</label>
        <select id="nivel_cargo">
            <option value="">Seleccione un nivel...</option>
            <option value="A1">A1 - Prima Serv. Día: $11,733</option>
            <option value="A2">A2 - Prima Serv. Día: $12,265</option>
            <option value="B3">B3 - Prima Serv. Día: $12,993</option>
            <option value="B4">B4 - Prima Serv. Día: $13,588</option>
            <option value="C5">C5 - Prima Serv. Día: $14,214</option>
            <option value="C6">C6 - Prima Serv. Día: $14,871</option>
            <option value="D7">D7 - Prima Serv. Día: $15,782</option>
            <option value="D8">D8 - Prima Serv. Día: $16,631</option>
            <option value="D9">D9 - Prima Serv. Día: $17,738</option>
            <option value="E10">E10 - Prima Serv. Día: $18,726</option>
            <option value="E11">E11 - Prima Serv. Día: $19,745</option>
        </select>
    </div>
    
    <button class="btn-calculate" onclick="calculatePrima()">Calcular Prima de Servicios</button>
    
    <table id="results_table" class="results-table">
        <tr>
            <th>Concepto</th>
            <th>Valor</th>
        </tr>
        <tr>
            <td>Nivel y Código del Cargo</td>
            <td><span id="resultado_nivel" class="result-value">-</span></td>
        </tr>
        <tr>
            <td>Prima de Servicios (Valor Día)</td>
            <td>$ <span id="resultado_valor_dia" class="result-value">-</span></td>
        </tr>
        <tr>
            <td>Semestre de Cálculo</td>
            <td><span id="resultado_semestre" class="result-value">-</span></td>
        </tr>
        <tr>
            <td>Días Laborados en el Semestre</td>
            <td><span id="resultado_dias" class="result-value">-</span> días</td>
        </tr>
        <tr>
            <td>Prima de Servicios Total a Recibir</td>
            <td>$ <span id="resultado_total" class="total-value">-</span></td>
        </tr>
    </table>
</div>

<script>
function calculatePrima() {
    // Obtener valores del formulario
    var fechaIngreso = document.getElementById('fecha_ingreso').value;
    var fechaCalculo = document.getElementById('fecha_calculo').value;
    var nivelCargo = document.getElementById('nivel_cargo').value;
    
    // Validar los campos
    if (!fechaIngreso || !fechaCalculo || !nivelCargo) {
        alert('Por favor complete todos los campos');
        return;
    }
    
    // Convertir fechas a objetos Date
    var fechaIngresoObj = new Date(fechaIngreso);
    var fechaCalculoObj = new Date(fechaCalculo);
    
    // Validar que la fecha de cálculo sea posterior a la de ingreso
    if (fechaCalculoObj < fechaIngresoObj) {
        alert('La fecha de cálculo debe ser posterior a la fecha de ingreso');
        return;
    }
    
    // Valores de prima de servicios por día según nivel
    var valoresPrima = {
        'A1': 11733,
        'A2': 12265,
        'B3': 12993,
        'B4': 13588,
        'C5': 14214,
        'C6': 14871,
        'D7': 15782,
        'D8': 16631,
        'D9': 17738,
        'E10': 18726,
        'E11': 19745
    };
    
    // Obtener valor diario de prima
    var valorDiaPrima = valoresPrima[nivelCargo];
    
    // Determinar semestre
    var mes = fechaCalculoObj.getMonth(); // 0-11
    var año = fechaCalculoObj.getFullYear();
    var semestre = mes < 6 ? 1 : 2;
    
    // Fechas de inicio y fin del semestre
    var inicioSemestre = new Date(año, semestre === 1 ? 0 : 6, 1);
    var finSemestre = new Date(año, semestre === 1 ? 5 : 11, semestre === 1 ? 30 : 31);
    
    // Ajustar fecha de inicio para el cálculo
    var fechaInicioCalculo = fechaIngresoObj > inicioSemestre ? fechaIngresoObj : inicioSemestre;
    
    // Ajustar fecha de fin para el cálculo
    var fechaFinCalculo = fechaCalculoObj < finSemestre ? fechaCalculoObj : finSemestre;
    
    // Calcular días laborados
    var unDia = 24 * 60 * 60 * 1000;
    var diasLaborados = Math.round((fechaFinCalculo - fechaInicioCalculo) / unDia) + 1;
    
    // Calcular prima total
    var primaTotal = valorDiaPrima * diasLaborados;
    
    // Formatear números
    function formatNumber(num) {
        return new Intl.NumberFormat('es-CO', {
            minimumFractionDigits: 2,
            maximumFractionDigits: 2
        }).format(num);
    }
    
    // Mostrar resultados
    document.getElementById('resultado_nivel').textContent = nivelCargo;
    document.getElementById('resultado_valor_dia').textContent = formatNumber(valorDiaPrima);
    document.getElementById('resultado_semestre').textContent = semestre + '° Semestre de ' + año;
    document.getElementById('resultado_dias').textContent = diasLaborados;
    document.getElementById('resultado_total').textContent = formatNumber(primaTotal);
    
    // Mostrar tabla de resultados
    document.getElementById('results_table').style.display = 'table';
}
</script>

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]
AFILIATE A LA USO
Chat USO