<?php
session_start();
require_once ("../conexion.php");
require_once('../include/sesiones.php');
$com_id=$_GET['id'];
$csql=mysqli_query($con,"SELECT * FROM compras where com_id='$com_id'") or die(mysqli_error($con)); 
$creg=mysqli_fetch_array($csql);

$sumador_total=0;
$neto=0;
$total_retencion=0;
$total_cargo_adicional=0;
$sql=mysqli_query($con, "SELECT * from compra_detalle where compras_com_id='$com_id' and empresa='$empresa'");
while ($rew=mysqli_fetch_array($sql))
{
    $comd_cantidad=$rew['comd_cantidad'];
    $comd_precio=$rew['comd_precio'];
    $comd_iva=$rew['comd_iva'];
    $comd_flete=$rew['comd_flete'];
    $cargo_adicional=$comd_flete*$comd_cantidad;
    $precio_total=$comd_precio*$comd_cantidad;
    $iva=($precio_total*$comd_iva)/100;
    $neto+=$precio_total;//Sumador
    $sumador_total+=$precio_total+$iva;//Sumador
    $total_cargo_adicional+=$cargo_adicional;
}

$ret=mysqli_query($con,"SELECT * FROM retencion_compra where empresa='$empresa' and compras_com_id='$com_id'") or die(mysqli_error($con)); 
$rets=mysqli_fetch_array($ret);
if (isset($rets['ret_porcentaje'])) 
{
   $total_retencion=($ret_porcentaje=$rets['ret_porcentaje']/100)*$neto;
}
$total_real=$sumador_total+$total_cargo_adicional-$total_retencion;

$sql=mysqli_query($con, "SELECT sum(coab_abono) as coab_abono from compra_abonos where compras_com_id='$com_id' and empresa='$empresa'");
$sql1=mysqli_fetch_array($sql);
$coab_abono=$sql1['coab_abono'];
$saldo=$total_real-$coab_abono;

?>
<div  class="col-md-12">
    <div class="form-group">
        <pre style="font-size:24px;text-align:center"><strong class="text-danger">$<?php echo number_format(round($saldo),0);?></strong></pre>
        <label>Proveedor</label>
        <input type="text" name="clie_nombre" value="<?php echo $creg['proveedor_nombre']; ?>" class="form-control name_list" readonly>
        <label>Factura Proveedor N</label> 
        <input type="text" name="com_facturaproveedor" value="<?php echo $creg['com_facturaproveedor']; ?>" class="form-control name_list" readonly>
        <label>Descontar de:</label>
        <select name="select_caja" id="select_caja" class="form-control name_list" required  onChange="CajaOnChange(this)" >
            <option value=""> - </option>
            <option value="Caja_Mayor">Caja mayor</option>
            <?php
            $sql=mysqli_query($con, "SELECT count(*) as aper_num, mca_id,cajas_caja_id, apertura, mca_estado from movimiento_caja where mca_usuario='$usu_id' and empresa='$empresa' and sucursal='$sucursal' and mca_estado='1'");
            $row= mysqli_fetch_array($sql);
            $cajas_caja_id=$row['cajas_caja_id'];


            $datos=mysqli_query($con,"SELECT * FROM cajas where caja_id ='$cajas_caja_id'");
            if($fila = mysqli_fetch_array( $datos ))
            {
                echo' <option value="'.$fila['caja_id'].'">'.$fila['caja_nombre'].'</option>';
            }
            ?>
        </select>

        <div id="div_caja_mayor" style="display:none;">
            <form method="post" action="" id="form_abono_caja_mayor" enctype="multipart/form-data">
                <input type="hidden" name="com_id" value="<?php echo $creg['com_id']; ?>" readonly>
                <input type="hidden" name="com_facturaproveedor" value="<?php echo $creg['com_facturaproveedor']; ?>" readonly>
                <input type="hidden" name="saldo" value="<?php echo round($saldo); ?>"  readonly>
                <input type="hidden" name="caja_descontar" id="caja_descontar" value="caja mayor" readonly>
                <label>Método de Pago</label>
                <select name="medio_pago" class="form-control input-sm medio_pago_select" required>
                    <option value="" disabled selected>Seleccione...</option>
                    <option value="Efectivo">Efectivo</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>
                <label>Valor a pagar</label>
                <input type="number" name="valor" class="form-control input-sm" max="<?php echo round($saldo); ?>" required> 
                </br>
                <label for="imagen" style="width:100%">Adjuntar Comprobante de pago ( jpg )</label>
                <input type="file" name="archivo[]" id="imagen" accept="image/jpg, image/jpeg, image/pjpeg, image/gif, image/png, image/jfif">

                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
                    <button type="submit" class="btn btn-success" name="btn_compra_caja_mayor" value="btn_compra_caja_mayor" id="btn_compra_caja_mayor">Abonar</button>
                </div>
            </form>
        </div>


        <div id="div_caja_menor" style="display:none;">
            </br>
            <button type="button" id="agregar_pago" class="btn btn-primary btn-sm mt-2">+ Agregar método Pago</button>
            <form method="post" action="" id="form_compra_caja_menor" enctype="multipart/form-data">
                <div id="pagos_container">
                    <div class="metodo_pago_row"> 
                        <div class="col-md-5"> 
                            <input type="hidden" name="com_id" value="<?php echo $creg['com_id']; ?>" readonly>
                            <input type="hidden" name="com_facturaproveedor" value="<?php echo $creg['com_facturaproveedor']; ?>" readonly>
                            <input type="hidden" name="caja_descontar" id="caja_descontar" value="caja menor" readonly>
                            <input type="hidden" name="saldo" id="saldo" value="<?php echo round($saldo);?>">

                            <label>Método de Pago</label>
                            <select name="medio_pago[]" class="form-control input-sm medio_pago_select" required>
                                <option value="" disabled selected>Seleccione...</option>
                                <option value="Efectivo">Efectivo</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> 
                        </div> 
                        <div class="col-md-3"> 
                            <label>Saldo Disponible</label> 
                            <input type="text" class="form-control input-sm saldo_disponible" readonly> 
                        </div> 
                        <div class="col-md-3"> 
                            <label>Valor</label> 
                            <input type="number" name="valor_pago[]" class="form-control input-sm valor_pago_input" required> 
                        </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>
                </br>

                <label>Total a Abonar</label>
                <input type="text" class="form-control input-sm" id="valor_abonar" name="valor2" readonly required>
                
                </br>
                <label for="imagen2" style="width:100%">Adjuntar Comprobante de pago ( jpg )</label>
                <input type="file" name="archivo[]" id="imagen2" accept="image/jpg, image/jpeg, image/pjpeg, image/gif, image/png, image/jfif">
                <div class="modal-footer" >
                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
                    <button type="submit" class="btn btn-success" name="btn_compra_caja_menor" value="btn_compra_caja_menor" id="btn_compra_caja_menor">Registrar</button>
                </div>
            </form>
        </div>
    </div>
</div> <!-- /.form-group -->
    
<script language="javascript">
$("#form_abono_caja_mayor").submit(function( event ) 
{
    $('#btn_compra_caja_mayor').attr("disabled", true);
    var formData = new FormData($("#form_abono_caja_mayor")[0]);
    var ruta = "php_compras/registrar_abono.php";
    $.ajax({
        type: "POST",
        url: ruta,
        data: formData,
        contentType: false,
        processData: false, 
        beforeSend: function(objeto){
            $('#resultados').html('<center><img src="./img/ajax-loader.gif"> CARGANDO...</center>');
        },
        success: function(datos){
        $("#resultados").html(datos);
        $('#btn_compra_caja_mayor').attr("disabled", false);
        $('#form_abono_caja_mayor').modal('hide');
        $('body').removeClass('modal-open');
        $('.modal-backdrop').remove();
        load(1);
    }
});
event.preventDefault();
})


$("#form_compra_caja_menor").submit(function( event ) 
{
    $('#btn_compra_caja_menor').attr("disabled", true);
    var formData = new FormData($("#form_compra_caja_menor")[0]);
    var ruta = "php_compras/registrar_abono.php";
    $.ajax({
        type: "POST",
        url: ruta,
        data: formData,
        contentType: false,
        processData: false, 
        beforeSend: function(objeto){
            $('#resultados').html('<center><img src="./img/ajax-loader.gif"> CARGANDO...</center>');
        },
        success: function(datos){
        $("#resultados").html(datos);
        $('#btn_compra_caja_menor').attr("disabled", false);
        $('#form_compra_caja_menor').modal('hide');
        $('body').removeClass('modal-open');
        $('.modal-backdrop').remove();
        load(1);
    }
});
event.preventDefault();
})


function CajaOnChange(sel) {
    const div_caja_mayor = document.getElementById("div_caja_mayor");
    const div_caja_menor = document.getElementById("div_caja_menor");

    if (sel.value === "Caja_Mayor") {
        div_caja_mayor.style.display = "";
        div_caja_menor.style.display = "none";
    } else if (sel.value === "") {
        div_caja_mayor.style.display = "none";
        div_caja_menor.style.display = "none";
    } else {
        div_caja_mayor.style.display = "none";
        div_caja_menor.style.display = "";
    }
}

$(document).ready(function () {
    // Agregar nueva fila
    $(document).on('click', '#agregar_pago', function () {
        var nuevoMetodo = `
        <div class="metodo_pago_row">
            <div class="col-md-5">
                <label>Medio de Pago</label>
                <select name="medio_pago[]" class="form-control input-sm medio_pago_select" required>
                    <option value="" disabled selected>Seleccione...</option>
                    <option value="Efectivo">Efectivo</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>
            </div>
            <div class="col-md-3">
                <label>Saldo Disponible</label>
                <input type="text" class="form-control input-sm saldo_disponible" readonly>
            </div>
            <div class="col-md-3">
                <label>Valor</label>
                <input type="number" name="valor_pago[]" class="form-control input-sm valor_pago_input" required>
            </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>`;
        $('#pagos_container').append(nuevoMetodo);
        actualizarOpcionesDisponibles();
    });

    // Eliminar fila
    $('#pagos_container').on('click', '.eliminar_pago', function () {
        if ($('.metodo_pago_row').length > 1) {
            $(this).closest('.metodo_pago_row').remove();
            actualizarOpcionesDisponibles();
        }
    });

    // Cambiar medio de pago - actualizar saldo disponible
    $('#pagos_container').on('change', '.medio_pago_select', function () {
        var medio_pago = $(this).val();
        var fila = $(this).closest('.metodo_pago_row');
        var inputSaldo = fila.find('.saldo_disponible');

        $.getJSON('./php_compras/dinero_disponible.php', { medio_pago: medio_pago }, function (data) {
            inputSaldo.val(data.saldo || 0);
        });
        actualizarOpcionesDisponibles();
    });

    // Validación individual por fila
    $('#pagos_container').on('input', '.valor_pago_input', function () {
        var fila = $(this).closest('.metodo_pago_row');
        var medioSeleccionado = fila.find('.medio_pago_select').val();

        if (!medioSeleccionado) {
            alert('Primero seleccione el método de pago.');
            $(this).val('');
            return;
        }
        mostrarSumaTotal();
    });

});

// ---------------------- FUNCIONES ----------------------

function actualizarOpcionesDisponibles() {
    let seleccionados = [];
    // Recoger todos los valores seleccionados
    $('.medio_pago_select').each(function () {
        let val = $(this).val();
        if (val) {
            seleccionados.push(val);
        }
    });

    // Ocultar opciones repetidas
    $('.medio_pago_select').each(function () {
        let actual = $(this).val();
        $(this).find('option').each(function () {
            let val = $(this).val();

            if (val === '' || val === actual) {
                $(this).show();
            } else if (seleccionados.includes(val)) {
                $(this).hide();
            } else {
                $(this).show();
            }
        });
    });
}

function mostrarSumaTotal() {
    let suma = 0;
    let saldo = parseFloat($('#saldo').val()) || 0;
    let excedido = false;

    $('.valor_pago_input').each(function () {
        let val = parseFloat($(this).val()) || 0;
        // Sumar si aún no se ha excedido
        if ((suma + val) <= saldo) {
            suma += val;
        } else {
            // Excedió, marcar input inválido, limpiar y mostrar alerta una vez
            if (!excedido) {
                alert('El valor total a abonar no puede ser mayor al saldo disponible en caja menor.');
                excedido = true;
            }
            $(this).val('');
            $(this).addClass('is-invalid');
        }
    });
    $('#valor_abonar').val(suma.toLocaleString('es-CO'));
}
</script>