<?php
session_start();
require_once ("../conexion.php");
require_once('../include/sesiones.php');
$pen_id=$_GET['pen_id']; 


$neto = 0;
$descuentof = 0;
$sumador_total = 0;

// Inicialización preventiva de variables para evitar "undefined variable"
$pend_abonos = null;
$pend_abonos_combo = null;
$tipo_item = null;

$sql = mysqli_query($con, "SELECT * from pedido_detalle where pedido_pen_id='$pen_id' and pend_estado='facturado'");
while ($row = mysqli_fetch_array($sql)) {
    $pend_id = $row["pend_id"];
    $vent_cantidad = $row['pend_cantidad'];
    $vent_precio = $row['pend_precio'];
    $vent_descuento = $row['pend_descuento'];
    $pend_abonos = $row['pend_abonos'];

    $total_sab = 0;
    $suma_sab = 0;

    $sql1 = mysqli_query($con, "SELECT * FROM sabores_pedido_temp where pend_id='$pend_id'");
    while ($sab = mysqli_fetch_array($sql1)) {
        $sab_precio = $sab["precio"] * $sab['cantidad'] * $vent_cantidad;
        $suma_sab += $sab_precio;
    }

    $total_sab = $suma_sab;

    $vent_precio_total = $vent_precio * $vent_cantidad + $total_sab;
    $descuento = ($vent_descuento / 100) * $vent_precio_total;
    $precio_descuento_t = $vent_precio_total - $descuento;
    $neto += $vent_precio_total;
    $descuentof += $descuento;
    $sumador_total = $neto - $descuentof;
}

// Combo
$descuento_combo_total = 0;
$neto_combo = 0;
$sumador_combo = 0;

$sql2 = mysqli_query($con, "SELECT * from pedido_detalle_combo where pedido_pen_id='$pen_id' and pend_estado='facturado'");
while ($row2 = mysqli_fetch_array($sql2)) {
    $pedcom_cantidad = $row2['pedcom_cantidad'];
    $pend_desc = $row2['pend_desc'];
    $pedcom_precio = $row2['pedcom_precio'];
    $pend_abonos_combo = $row2['pend_abonos_combo'];

    $precio_total = $pedcom_cantidad * $pedcom_precio;
    $descuento_combo_total += ($pend_desc / 100) * $precio_total;
    $neto_combo += $precio_total;
    $sumador_combo = $neto_combo - $descuento_combo_total;
}

$suma_pedido = $sumador_total + $sumador_combo;

// Abonos
$suma_abonos = 0;
$abon = mysqli_query($con, "SELECT * from pedido_abono_temp where pedido_pen_id='$pen_id'") or die(mysqli_error($con));
while ($res = mysqli_fetch_array($abon)) {
    $ped_abono = $res["ped_abono"];
    $tipo_item = $res["tipo_item"];

    $suma_abonos += $ped_abono;
}

$saldo = $suma_pedido - $suma_abonos;
?>

<div class="tabbable">
    <ul class="nav nav-tabs">
        <?php
        // Usamos el operador ?? para manejar variables posiblemente no definidas
       /* $pend_abonos = $pend_abonos ?? null;
        $pend_abonos_combo = $pend_abonos_combo ?? null;
        $tipo_item = $tipo_item ?? null;*/

        if (($pend_abonos === null  || $pend_abonos_combo === null) && $tipo_item === null) { ?>
        
            <li class="active"><a href="#abono_plata" data-toggle="tab">DINERO</a></li>
            <li><a href="#abono_articulo" data-toggle="tab">ARTICULO</a></li>

        <?php
        } else if (($pend_abonos === 'si' || $pend_abonos_combo === 'si') && $tipo_item != 'no' || $tipo_item != 'no') { ?>
        
            <li class="active"><a href="#abono_articulo" data-toggle="tab">ARTICULO</a></li>

        <?php
        } else if (($pend_abonos === null  || $pend_abonos_combo === null) && $tipo_item === 'no') { ?>

            <li class="active"><a href="#abono_plata" data-toggle="tab">DINERO</a></li>
           
        <?php } ?>
    </ul>

    <div class="tab-content">
        <?php if (($pend_abonos === null  || $pend_abonos_combo === null) && $tipo_item === null) { ?>
        
            <div class="tab-pane active" id="abono_plata">

        <?php }  else if (($pend_abonos === 'si' || $pend_abonos_combo === 'si') && $tipo_item != 'no' || $tipo_item != 'no') { ?>
            
            <div class="tab-pane" id="abono_plata">

        <?php   } else if (($pend_abonos === null  || $pend_abonos_combo === null) && $tipo_item === 'no') { ?>
            
            <div class="tab-pane active" id="abono_plata">

        <?php } ?>
        
            <form method="post" action="" id="abonar_cuenta" name="abonar_cuenta">
                <div class="container">
                    <div id="resultados" ></div>
                    <input type="hidden" name="pen_id" id="pen_id" value="<?php echo $pen_id; ?>">
                     <?php if ($suma_abonos!=$suma_pedido) { ?>
                     <div class="middle">
                        <label>
                            <input type="radio" name="forma_pago" id="forma_pago" value="efectivo" checked onChange="medio_pago1(this)"/>
                            <div class="front-end box"><span>EFECTIVO</span></div>
                        </label>
                        <label>
                            <input type="radio" name="forma_pago" id="forma_pago" value="transferencia" onChange="medio_pago1(this)"/>
                            <div class="back-end box"><span>TRANSFERENCIA</span></div>
                        </label>
                        <label>
                            <input type="radio" name="forma_pago" id="forma_pago" value="tarjeta" onChange="medio_pago1(this)"/>
                            <div class="back-end box"><span>TARJETA</span></div>
                        </label>
                    </div> 
                    <div id="div_efectivo" style="display: "> </div>


                    <div id="div_medio_pago" 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" required>
                                <option selected disabled >Seleccione</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>

                    <label>Valor Abonar</label>
                    <input type="number" name="valor" id="valor" class="form-control name_list" min="1" autocomplete="off" max="<?php echo $saldo; ?>" required >

                     <?php } ?>

                    <br>
                   <div id="tablaabonos"></div>
                </div>

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


       <?php if (($pend_abonos === null  || $pend_abonos_combo === null) && $tipo_item === null) { ?>
                
                <div class="tab-pane" id="abono_articulo">

        <?php }  else if (($pend_abonos === 'si' || $pend_abonos_combo === 'si') && $tipo_item != 'no' || $tipo_item != 'no') { ?>

                <div class="tab-pane active" id="abono_articulo">

        <?php   } else if (($pend_abonos === null  || $pend_abonos_combo === null) && $tipo_item === 'no') { ?>  

                <div class="tab-pane" id="abono_articulo">

        <?php   } ?>



            <div id="resultados1"></div>
            <form method="post" action="" id="abonar_cuenta_arti" name="abonar_cuenta_arti">
                <?php if ($suma_abonos!=$suma_pedido) { ?>
                   
                <div class="middle" >
                    <label>
                        <input type="radio" name="forma_pago" id="forma_pago" value="efectivo" checked onChange="medio_pago2(this)"/>
                        <div class="front-end box"><span>EFECTIVO</span></div>
                    </label>
                    <label>
                        <input type="radio" name="forma_pago" id="forma_pago" value="transferencia" onChange="medio_pago2(this)"/>
                        <div class="back-end box"><span>TRANSFERENCIA</span></div>
                    </label>
                    <label>
                        <input type="radio" name="forma_pago" id="forma_pago" value="tarjeta" onChange="medio_pago2(this)"/>
                        <div class="back-end box"><span>TARJETA</span></div>
                    </label>
                </div> 
            <?php } ?>
                <div id="div_efectivo2" style="display: "> </div>

                

                <div id="div_medio_pago2" 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" required>
                            <option selected disabled >Seleccione</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>
                <br>
                
                <input type="hidden" name="pen_id" id="pen_id" value="<?php echo $pen_id; ?>">
                <div id="resultados_abo"></div>
                <div id="tablaabonosarti"></div>
                
                <br>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
                    <button type="submit" class="btn btn-info" name="btn_abonar_art" id="btn_abonar_art">Abonar</button>
                </div>
            </form>
        </div>
    </div>
</div>

<script>

$(document).ready(function () {
    // Quitar eventos previos antes de asignar nuevos
    $(document).off("click", "a[id^='del-']").on("click", "a[id^='del-']", function (e) {
        e.preventDefault();
        if (confirm("¿Deseas eliminar el Abono?")) {
            const ped_abo_id = this.id.split('-')[1];
            $.get("./php_pedidos/eliminar_abono_articulos.php", { ped_abo_id }, function(data){
                $("#resultados_abo").html(data);
                loadTablaabonarart();
                loadTablaabonar();
                loadabonos();
                loadtabladetalle();
            });
        }
    });

    $(document).off("click", "a[id^='del_com-']").on("click", "a[id^='del_com-']", function (e) {
        e.preventDefault();
        if (confirm("¿Deseas eliminar el Abono?")) {
            const ped_abo_id = this.id.split('-')[1];
            $.get("./php_pedidos/eliminar_abono_articulos.php", { ped_abo_id }, function(data){
                $("#resultados_abo").html(data);
                loadTablaabonarart();
                loadTablaabonar();
                loadabonos();
                loadtabladetalle();
            });
        }
    });
});








function loadTablaabonar(){
    var id=$("#pen_id").val();
    $.get("./php_pedidos/tabla_abonos.php?id="+id,function(data){
    $("#tablaabonos").html(data);
    })
}
loadTablaabonar();


function loadTablaabonarart(){
    var id=$("#pen_id").val();
    $.get("./php_pedidos/tabla_abonos_articulos.php?id="+id,function(data){
    $("#tablaabonosarti").html(data);
    })
}
loadTablaabonarart();


function validarYEnviarAbono(formId, btnId, url, resultadoDiv, formaPagoSelector, medioPagoSelector) {
    // Al enviar el formulario con id=formId, ejecuta la función
    $("#" + formId).submit(function(event) {
        event.preventDefault();  // Evita que el formulario se envíe de forma tradicional (recargando la página)

        // Obtiene la forma de pago seleccionada (radio button) dentro del formulario actual
        var forma_pago = $(this).find(formaPagoSelector + ":checked").val();
        // Obtiene el valor seleccionado del medio de pago (select) dentro del formulario actual
        var medio_pago = $(this).find(medioPagoSelector).val();

        // Si la forma de pago NO es "efectivo"
        if (forma_pago !== "efectivo") {
            // Verifica que se haya seleccionado un medio de pago válido (no vacío ni "Seleccione")
            if (!medio_pago || medio_pago === "Seleccione") {
                alert("Debe seleccionar una plataforma de pago.");  // Muestra alerta
                $(this).find(medioPagoSelector).focus();           // Pone el foco en el select de medio de pago
                return false;  // Detiene el envío del formulario
            }
        }

        // Confirma con el usuario si realmente quiere realizar el abono
        if (!confirm("¿Desea realizar el Abono?")) {
            return false; // Si cancela, detiene el envío
        }

        // Deshabilita el botón para evitar envíos múltiples
        $('#' + btnId).attr("disabled", true);

        // Serializa todos los datos del formulario para enviarlos vía AJAX
        var parametros = $(this).serialize();

        // Realiza la llamada AJAX para enviar los datos al servidor
        $.ajax({
            type: "POST",          // Método POST
            url: url,              // URL a la que se envían los datos
            data: parametros,      // Datos serializados del formulario
            beforeSend: function() {
                // Mientras se procesa la petición, muestra un mensaje de carga en el div resultadoDiv
                $('#' + resultadoDiv).html('<center><img src="./img/ajax-loader.gif"> CARGANDO...</center>');
            },
            success: function(datos) {
                // Al recibir respuesta exitosa, muestra los datos recibidos en resultadoDiv
                $('#' + resultadoDiv).html(datos);

                // Vuelve a habilitar el botón
                $('#' + btnId).attr("disabled", false);

                // Resetea el formulario para limpiar campos
                document.getElementById(formId).reset();

                // Llama a funciones para actualizar tablas o datos en la página
                loadTablaabonar();
                if (typeof loadTablaabonarart === 'function') loadTablaabonarart();
                loadabonos();
                loadtabladetalle();
            }
        });
    });
}

// Uso de la función para el formulario principal
validarYEnviarAbono(
    "abonar_cuenta",                // id del formulario principal
    "btn_abonar",                  // id del botón enviar
    "php_pedidos/registrar_abono.php",  // URL para procesar el abono
    "resultados",                  // div donde se mostrará la respuesta
    "input[name='forma_pago']",    // selector para forma de pago (radio buttons)
    "#medio_pago"                  // selector para medio de pago (select)
);

// Uso de la función para el formulario de artículos
validarYEnviarAbono(
    "abonar_cuenta_arti",          // id formulario para abono de artículos
    "btn_abonar_art",              // id botón para abono artículo
    "php_pedidos/registrar_abono_articulo.php", // URL para procesar abono artículos
    "resultados1",                 // div donde se muestra respuesta para artículos
    "input[name='forma_pago']",    // selector forma de pago igual que el anterior
    "#medio_pago"                  // selector medio de pago igual que el anterior, pero dentro del form
);



function medio_pago1(sel) {
    if (sel.value=="efectivo")
    {
        divT = document.getElementById("div_medio_pago");
        divT.style.display = "none";
        divT = document.getElementById("div_efectivo");
        divT.style.display = "block";
    } 
    else 
    {
        divT = document.getElementById("div_medio_pago");
        divT.style.display = "";
        divT = document.getElementById("div_efectivo");
        divT.style.display = "none";
    }
}



function medio_pago2(sel) {
    if (sel.value=="efectivo")
    {
        divT = document.getElementById("div_medio_pago2");
        divT.style.display = "none";
        divT = document.getElementById("div_efectivo2");
        divT.style.display = "block";
    } 
    else 
    {
        divT = document.getElementById("div_medio_pago2");
        divT.style.display = "";
        divT = document.getElementById("div_efectivo2");
        divT.style.display = "none";
    }
}
</script>
