<?php
session_start();
require_once ("../conexion.php");
require_once('../include/sesiones.php');

$vena_id=$_GET['id']; 
$sql=mysqli_query($con,"SELECT * from ventas_apartadas where vena_id='$vena_id' and empresa='$empresa'");
$reg=mysqli_fetch_array($sql);
$clie_nombre=$reg["vena_nombre"];
$Cliente_clie_id=$reg["Cliente_clie_id"];

$cli=mysqli_query($con,"SELECT * FROM cliente  where clie_id=$Cliente_clie_id and empresa='$empresa'") or die(mysqli_error($con)); 
$result=mysqli_num_rows($cli);
$cli=mysqli_fetch_array($cli);
$clie_id=$cli['clie_id'];
$clie_nombre=$cli['clie_nombre'];
$clie_nota_credito=$cli['clie_nota_credito'];
$clie_cupo_credito=$cli['clie_cupo_credito'];


$sumador_combo=0;
$sumador_total=0;
$neto=0;
$total_descuento=0;
$total_iva=0;
$total_retencion=0;
$sumador_articulos=0;
$sql=mysqli_query($con,"SELECT * from venta_apartadas_detalle where ventas_apartadas_vena_id='$vena_id' and empresa='$empresa'");
while ($row=mysqli_fetch_array($sql))
{
    $vend_precio=$row['venad_precio'];
    $vend_cantidad=$row['venad_cantidad'];
    $vend_descuento=$row['venad_desc'];
    $vend_iva=$row['venad_iva'];

    $iva0=$vend_iva/100; //0.19
    $iva1=1+$iva0; //1.19

    $precio_total_item=$vend_precio*$vend_cantidad;//precio normal 1.000.000
    $precio_total_sin_iva_item=($vend_precio/$iva1)*$vend_cantidad; //precio sin iva  840.336
    $descuento_item=($vend_descuento/100)*$precio_total_sin_iva_item; //descuento_item 84.033
    $total_iva_item=$precio_total_sin_iva_item*$iva0; // total iva  159.336

    $neto+=$precio_total_sin_iva_item;
    $total_descuento+=$descuento_item;
    $total_iva+=$total_iva_item;

    $sumador_articulos=($neto+$total_iva)-$total_descuento;
}

$sql=mysqli_query($con,"SELECT sum(veaa_abono) as abono from venta_apartada_abonos where ventas_apartadas_vena_id='$vena_id' and empresa='$empresa'");
$sql=mysqli_fetch_array($sql);
$abono=$sql['abono'];
$saldo=$sumador_articulos-$abono;

if ($abono>$sumador_articulos) 
{
    $saldo_favor=abs($saldo);
    $sumador_total=0; 
} else 
{
    $saldo_favor=0;
    $sumador_total=$saldo;
}


if ($puntos=='si') 
{
   $total_punto=floor($sumador_articulos/$valor_punto_dinero);
} 
else
{ 
    $total_punto=0;
}
?>

<?php if ($abono>$sumador_articulos) { ?>
    <pre style="font-size:24px;text-align:center"><strong class="text-danger">Saldo a pagar: $<?php echo number_format($sumador_total,0);?></strong></pre>
    <pre style="font-size:24px;text-align:center"><strong class="text-info">Nota Credito: <?php echo number_format($saldo_favor);?></strong></pre>

<?php } else { ?>
    <pre style="font-size:24px;text-align:center"><strong class="text-danger">$<?php echo number_format($sumador_total,0); ?></strong></pre>
<?php } ?>


<div id="resultado"></div>
<form method="post" action="" name="form_efectivo_efec" id="form_efectivo_efec">
    <div id="ventana_efec">
        <div id="efe" style="display: block; ">
            <div class="middle" id="ventana2">
                <label>
                    <input type="radio" name="forma_pag" id="forma_efec" value="Efectivo" checked onChange="medio_pago2(this)"/>
                    <div class="front-end box"><span>EFECTIVO</span></div>
                </label>
                <label>
                    <input type="radio" name="forma_pag" id="forma_tran" value="Transferencia" onChange="medio_pago2(this)"/>
                    <div class="back-end box"><span>TRANSFERENCIA</span></div>
                </label>
                <label>
                    <input type="radio" name="forma_pag" id="forma_tarj" value="Tarjeta" onChange="medio_pago2(this)"/>
                    <div class="back-end box"><span>TARJETA</span></div>
                </label>
                <label>
                    <input type="radio" name="forma_pag" id="forma_comb" value="Combinado" onChange="medio_pago2(this)"/>
                    <div class="back-end box"><span>COMBINADO</span></div>
                </label>
       
            </div> 
            </br> 
            <label>NUMERACION</label>
            <select name="serie_remi" id="serie_remi" class="form-control name_list" >
                <?php
                    $serie11=mysqli_query($con,"SELECT * FROM serie_factura WHERE empresa='$empresa' and ser_tipo='remision' and ser_estado='activo' ORDER BY (ser_predeterminda='si') DESC");
                    while( $serie3 = mysqli_fetch_array( $serie11) )
                    {
                        echo' <option value="'.$serie3['ser_id'].'">'.$serie3['ser_prefijo'].' '.$serie3['ser_inicio'].'-'.$serie3['ser_fin'].'</option>';
                    }
                ?>
            </select>

            <label>VENDEDOR</label>
            <section id="intro" >
                <select name="vendedor" id="vendedor" class="form-control name_list" >
                <?php
                    $query="SELECT usu_id, usu_nombre FROM usuario WHERE empresa_emp_id='$empresa' AND usu_estado='Activo' AND sucursal='$sucursal' ORDER BY (usu_id='$usu_id') DESC, usu_nombre";
                    $datos = mysqli_query($con, $query);
                    while ($fila = mysqli_fetch_array($datos)) 
                    {
                        echo '<option value="'.$fila['usu_id'].'">'.$fila['usu_nombre'].'</option>';
                    }
                ?>
                </select>
            </section>

            <div id="div_efectiv" style="display: "> </div>

            <div id="div_medio_pag" style="display: none">
                <label>PLATAFORMA DE PAGO</label>
                <section id="intro" >
                    <select name="medio_pago" id="medio_pago" class="form-control name_list input-sm" >
                        <option value=""> - </option>
                        <?php
                            $datos = mysqli_query($con,"SELECT * FROM banco WHERE empresa='$empresa' order by ban_nombre asc") ;
                            while( $fila = mysqli_fetch_array( $datos ) )
                            {
                                echo' <option value="'.$fila['ban_nombre'].'">'.$fila['ban_nombre'].'</option>';
                            }
                        ?>
                    </select>
                </section>
            </div>

                    

        <!-- /.combinado -->
        <div id="div_combinado" style="display: none; ">
            <input type="hidden" name="tipo_venta" value="pos">
            <input type="hidden" name="total_punto" id="total_punto" value="<?php echo $total_punto; ?>">
            <input type="hidden" name="comicion" id="comicion" value="">
           

              <p></p>
              <label class="col-md-12" style="text-align: center; color: darkgreen; font-size: 16px;">FORMAS DE PAGO</label>

           
            <p></p>

            <!-- Contenedor donde se agregarán los campos -->
            <!-- Esto puede ir en cualquier lugar del HTML, fuera del contenedor -->
            <input type="hidden" id="nota_credito_valor" value="<?php echo $clie_nota_credito; ?>">

            <div id="campos-container">
                <div class="campo-pago">
                    <div class="col-md-6" style="padding-right: 0px">
                        <label>Medio de pago</label>
                        <select name="medio_pago[]" class="form-control medio-pago-select input-sm" >
                            <option value="" disabled selected>Seleccione...</option>
                            <option value="efectivo">Efectivo</option>
                            <?php if ($clie_nota_credito>0) { ?>
                            <option value="nota credito">Nota Credito</option>
                            <?php } ?>
                            <?php
                                $datos = mysqli_query($con,"SELECT * FROM banco WHERE empresa='$empresa' ORDER BY ban_nombre ASC");
                                while($fila = mysqli_fetch_array($datos)) {
                                    echo '<option value="'.$fila['ban_nombre'].'">'.$fila['ban_nombre'].'</option>';
                                }
                            ?>
                        </select>
                    </div>
                    <div class="col-md-5">
                        <label>Valor</label>
                        <input type="number" name="valores[]" class="form-control input-sm" >
                        <small class="text-danger mensaje-error" style="display: none;">Valor excede el total disponible</small>
                    </div>
                    <div class="col-md-1">
                        <label>&nbsp;</label>
                         <a type="button" class="btn btn-xs btn-danger btn-block eliminar_pago"> <i class="btn-icon-only icon-remove"></i></a>
                    </div>
                </div>
            </div>

            <div>&nbsp;</div>

             <!-- Botón para agregar campos -->
            <div style="margin-top: 10px;">
                <div class="col-md-12">
                    <button type="button" class="btn btn-warning btn-sm" onclick="agregarCampos()">+ Agregar Medio de Pago</button>
                </div>
            </div>


            <div>&nbsp;</div>

                <input type="hidden" value="<?php echo $sumador_total; ?>" name="total_factura" id="total_factura">
                <input type="hidden" value="" name="credi_com" id="credi_com">
                <div class="col-md-12">
                <!-- Mostrar saldo restante -->
                <span style="color: red; font-size: 20px; font-style: normal;">SALDO POR PAGAR $ : </span>
                <span id="saldo_restante" style="color: red; font-size: 20px; font-style: normal;"> </span>
                </div>
       
        </div>
  



            <input type="hidden" name="vena_id" id="vena_id" value="<?php echo $vena_id; ?>">
            <input type="hidden" name="total_punto" id="total_punto" value="<?php echo $total_punto; ?>">
            <input type="hidden" name="sumador_total" id="sumador_total" value="<?php echo $sumador_total; ?>">
            <input type="hidden" name="saldo_favor" id="saldo_favor"  value="<?php echo $saldo_favor ?>">
            <input type="hidden" name="comicion" id="comicion" class="form-control input-sm" value="">
            <br>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
                <button name="btn_efectivo1" value="btn_efectivo1" type="submit" class="btn btn-success" accesskey="s" title="alt + s" ><i class="icon-ok"></i> <strong>Aceptar</strong></button> 

            </div>
        </div>
    </div>
</form>



<script type="text/javascript">

$("#form_efectivo_efec").submit(function(event) {
    event.preventDefault(); // Detener el envío del formulario desde el inicio

    // Quitar "required" de campos no visibles
    $(this).find("input, select").each(function() {
        if (!$(this).is(":visible")) {
            $(this).prop("required", false);
        }
    });

    // Verificar si la opción seleccionada es "Combinado"
    var formaPagoSeleccionada = document.querySelector('input[name="forma_pag"]:checked');
    var esCombinado = formaPagoSeleccionada && formaPagoSeleccionada.value === "Combinado";

    // Solo validar el saldo pendiente si es "Combinado"
    if (esCombinado) {
        var credi_com = parseFloat(document.getElementById("credi_com").value || "0");
        if (credi_com !== 0) {
            alert('Debes completar los abonos. Saldo pendiente: ' + credi_com.toLocaleString());
            return;
        }
    }

    // Proceder con el envío AJAX
    $('#btn_efectivo1').attr("disabled", true);
    $('#ventana2').hide(); 
    $('#ventana_efec').hide(); 

    var parametros = $(this).serialize();
    $.ajax({
        type: "POST",
        url: "php_apartados/registrar_venta_efectivo.php",
        data: parametros,
        beforeSend: function(objeto){
            $('#resultado').html('<center><img src="./img/ajax-loader.gif"> CARGANDO...</center>');
        },
        success: function(datos){
            $("#resultado").html(datos);
            $('#btn_efectivo1').attr("disabled", false);
            load(1);
        }
    });
});



function agregarCampos() {
    const contenedor = document.getElementById('campos-container');
    const campos = document.querySelector('.campo-pago');
    const clon = campos.cloneNode(true); // clona todo el grupo

    // Limpiar valores del clon
    clon.querySelectorAll('input').forEach(input => input.value = '');
    clon.querySelectorAll('select').forEach(select => select.value = '');
    clon.querySelectorAll('.mensaje-error').forEach(el => el.style.display = 'none');

    contenedor.appendChild(clon);
   // actualizarOpciones();
    actualizarSaldo();
    actualizarOpcionesDisponibles();
}

// eliminar grupo de campos
$(document).on('click', '.eliminar_pago', function () {
    if ($('.campo-pago').length > 1) {
        $(this).closest('.campo-pago').remove();
    }
   // actualizarOpciones();
    actualizarSaldo();
    actualizarOpcionesDisponibles();
});


function actualizarOpcionesDisponibles() {
    let seleccionados = [];

    // Recoger valores seleccionados
    $('.medio-pago-select').each(function() {
        let val = $(this).val();
        if (val) {
            seleccionados.push(val);
        }
    });

    // Para cada select, ocultar opciones seleccionadas en otros
    $('.medio-pago-select').each(function() {
        let actual = $(this).val();
        $(this).find('option').each(function() {
            let val = $(this).val();

            if (seleccionados.includes(val)) {
                // Ocultar opciones ya usadas en otros selects
                $(this).hide();
            } else {
                $(this).show();
            }
        });
    });
}


$('#campos-container').on('change', '.medio-pago-select', function() {
    actualizarOpcionesDisponibles();

    // Si seleccionan "nota credito", poner el valor automáticamente
    const valorNotaCredito = parseFloat(document.getElementById('nota_credito_valor').value) || 0;
    
  let campoPago = $(this).closest('.campo-pago');
let inputValor = campoPago.find('input[name="valores[]"]');

if ($(this).val() === 'nota credito') {
    inputValor.val(valorNotaCredito); // asigna el valor automáticamente
} else {
    inputValor.val(''); // limpia si se cambia a otro medio
}
actualizarSaldo(); // en ambos casos

});




function actualizarSaldo() {
    const totalFactura = parseFloat(document.getElementById('total_factura').value) || 0;
    let inputs = document.querySelectorAll('input[name="valores[]"]');
    let sumaValores = 0;
    let saldoRestante = totalFactura;

    inputs.forEach((input, index) => {
        let valor = parseFloat(input.value);
        if (!isNaN(valor)) {
            sumaValores += valor;
        }
    });

    saldoRestante = totalFactura - sumaValores;

    // Evitar que el saldo sea negativo
    if (saldoRestante < 0) {
        let ultimoInput = [...inputs].find(input => document.activeElement === input);
        if (ultimoInput) {
            let sumaSinEste = 0;
            inputs.forEach(input => {
                if (input !== ultimoInput && !isNaN(parseFloat(input.value))) {
                    sumaSinEste += parseFloat(input.value);
                }
            });

            let maxPermitido = totalFactura - sumaSinEste;
            ultimoInput.value = maxPermitido.toFixed(0);
            saldoRestante = 0;

            // Mostrar mensaje visual
            const errorMsg = ultimoInput.parentNode.querySelector('.mensaje-error');
            if (errorMsg) {
                errorMsg.style.display = 'block';
                setTimeout(() => {
                    errorMsg.style.display = 'none';
                }, 3000);
            }
        }
    }

    // Mostrar saldo actualizado en el span saldo total
    document.getElementById('saldo_restante').textContent = saldoRestante.toLocaleString('es-CO');
    // También actualiza el valor del input oculto (sin formato)
    document.getElementById('credi_com').value = saldoRestante;    
}



// Detectar cambios
document.addEventListener('input', function(e) {
    if (e.target.name === 'valores[]') {
        actualizarSaldo();
    }
});

</script>

<script>
function medio_pago2(sel) {
    // Obtener referencias a los contenedores de los métodos de pago
    const divEfectivo = document.getElementById("div_efectiv");
    const divTransferencia = document.getElementById("div_medio_pag");
    const divCombinado = document.getElementById("div_combinado");

    // Ocultar todos los contenedores para limpiar la vista
    divEfectivo.style.display = "none";
    divTransferencia.style.display = "none";
    divCombinado.style.display = "none";

    // Desactivar el atributo 'required' en los campos de selección y valores de medios de pago ocultos
    document.querySelectorAll(
        "#div_medio_pag select, #div_combinado select, #div_combinado input[name='valores[]']"
    ).forEach(el => {
        el.required = false;
    });

    // Verificar qué opción fue seleccionada y mostrar el contenedor correspondiente
    if (sel.value === "Efectivo") {
        // Mostrar el contenedor para pago en efectivo
        divEfectivo.style.display = "block";

    } else if (sel.value === "Transferencia" || sel.value === "Tarjeta") {
        // Mostrar el contenedor para pago por transferencia o tarjeta
        divTransferencia.style.display = "block";

        // Seleccionar el campo 'medio_pago' dentro del contenedor transferencia y hacerlo obligatorio
        const medioPagoSelect = document.querySelector("#medio_pago");
        if (medioPagoSelect) medioPagoSelect.required = true;

    } else if (sel.value === "Combinado") {
        // Mostrar el contenedor para pago combinado (varios medios)
        divCombinado.style.display = "block";

        // Activar el atributo 'required' en todos los selects y campos de valor dentro de combinado
        document.querySelectorAll("#div_combinado select, #div_combinado input[name='valores[]']").forEach(el => {
            el.required = true;
        });
    }
}

// Al cargar la página (cuando el DOM esté listo)
document.addEventListener("DOMContentLoaded", function () {
    // Buscar el botón de radio seleccionado por defecto (el que está marcado)
    const selected = document.querySelector('input[name="forma_pag"]:checked');

    // Si existe uno seleccionado, llamar a la función para mostrar su contenido correcto
    if (selected) medio_pago2(selected);
});
</script>




<style>
.middle {
  width: 100%;
  text-align: center;
  /* Made by */
}
.middle h1 {
  font-family: "Dax", sans-serif;
  color: #ccc;
}
.middle input[type="radio"] {
  display: none;
}
.middle input[type="radio"]:checked + .box {
  background-color: #009e90;
}
.middle input[type="radio"]:checked + .box span {
  color: white;
  transform: translateY(70px);
}
.middle input[type="radio"]:checked + .box span:before {
  transform: translateY(0px);
  opacity: 1;
}
.middle .box {
  width: 131px;
  height: 60px;
  background-color: #ccc;
  transition: all 250ms ease;
  will-change: transition;
  display: inline-block;
  text-align: center;
  cursor: pointer;
  position: relative;
  font-family: "Dax", sans-serif;
  font-weight: 900;
  padding-top: 19px;
}
.middle .box span {
  left: 0;
  right: 0;
}
</style>