<?php

include 'is_logged.php'; //Archivo verifica que el usario que intenta acceder a la URL esta logueado
$session_id = session_id();
$sucursal_users = $_SESSION['sucursal_users'];
if (isset($_POST['id'])) {
    $id = $_POST['id'];
}
if (isset($_POST['cantidad'])) {
    $cantidad = $_POST['cantidad'];
}
/* Connect To Database*/
require_once "../db.php";
require_once "../php_conexion.php";
//Archivo de funciones PHP
require_once "../funciones.php";

if (!empty($id) and !empty($cantidad)) {
    $id_producto  = get_row('productos', 'id_producto', 'cod_oem', $id);
    $precio_venta = get_row('productos', 'valor1_producto', 'id_producto', $id_producto);

    // consulta para comparar el stock con la cantidad resibida
    $query = mysqli_query($conexion, "select stock_producto, inv_producto, sucursal_id  from productos where id_producto = '$id_producto' and sucursal_id = '$sucursal_users'");
    $rw    = mysqli_fetch_array($query);
    $stock = $rw['stock_producto'];
    $inv   = $rw['inv_producto'];

    //Comprobamos si ya agregamos un producto a la tabla tmp_compra
    $comprobar = mysqli_query($conexion, "select * from tmp_ventas, productos where productos.id_producto = tmp_ventas.id_producto and  tmp_ventas.id_producto='" . $id_producto . "' and session_id='" . $session_id . "' and tmp_ventas.sucursal_tmp='" . $sucursal_users . "'");

    if ($row = mysqli_fetch_array($comprobar)) {
        $cant = $row['cantidad_tmp'] + $cantidad;
        // condicion si el stock e menor que la cantidad requerida
        if ($cant > $row['stock_producto'] and $inv == 0) {
            echo "<script>swal('LA CANTIDAD SUPERA AL STOCK!', 'INTENTAR NUEVAMENTE', 'error')
            $('#resultados').load('../ajax/agregar_tmp.php');
            </script>";
            exit;
        } else {

            $sql          = "UPDATE tmp_ventas SET cantidad_tmp='" . $cant . "' WHERE id_producto='" . $id_producto . "' and session_id='" . $session_id . "'";
            $query_update = mysqli_query($conexion, $sql);
        }
        // fin codicion cantaidad

    } else {
        // condicion si el stock e menor que la cantidad requerida
        if ($cantidad > $stock and $inv == 0) {
            echo "<script>swal('LA CANTIDAD SUPERA AL STOCK!', 'INTENTAR NUEVAMENTE', 'error')
            $('#resultados').load('../ajax/agregar_tmp.php');
            </script>";
            exit;
        } else {

            $insert_tmp = mysqli_query($conexion, "INSERT INTO tmp_ventas (id_producto,cantidad_tmp,precio_tmp,desc_tmp,session_id, sucursal_tmp) VALUES ('$id_producto','$cantidad','$precio_venta','0','$session_id','$sucursal_users')");
        }
        // fin codicion cantaidad
    }
}
if (isset($_GET['id'])) //codigo elimina un elemento del array
{
    $id_tmp = intval($_GET['id']);
    $delete = mysqli_query($conexion, "DELETE FROM tmp_ventas WHERE id_tmp='" . $id_tmp . "'");
}
$simbolo_moneda = get_row('perfil', 'moneda', 'id_perfil', 1);
$pv             = get_row('perfil', 'precio_venta', 'id_perfil', 1);
if ($pv == 0) {
    $ok = 'disabled';
} else {
    $ok = '';
}
?>
<div class="table-responsive">
    <table class="table table-sm">
        <thead style=" background-color:#9E9E9E;" class="thead-black">
            <tr>
                <th class='text-center'>COD</th>
                <th class='text-center'>CANT.</th>
                <th class='text-center'>DESCRIP.</th>
                <th class='text-center'>P.UNITARIO <?php echo $simbolo_moneda; ?></th>
                <th class='text-center'>DESC %</th>
                <th class='text-right'>TOTAL</th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            
            <?php
            $impuesto       = get_row('perfil', 'impuesto', 'id_perfil', 1);
            $nom_impuesto   = get_row('perfil', 'nom_impuesto', 'id_perfil', 1);
            $sumador_total  = 0;
            $total_iva      = 0;
            $total_impuesto = 0;
            $subtotal       = 0;
            $t              = 0;
            $sql            = mysqli_query($conexion, "select * from productos, tmp_ventas where productos.id_producto=tmp_ventas.id_producto and tmp_ventas.session_id='" . $session_id . "' and sucursal_tmp='" . $sucursal_users . "'");
            while ($row = mysqli_fetch_array($sql)) {
                $id_tmp          = $row["id_tmp"];
                $id_producto     = $row['id_producto'];
                $codigo_producto = $row['codigo_producto'];
                $cantidad        = $row['cantidad_tmp'];
                $desc_tmp        = $row['desc_tmp'];
                $nombre_producto = $row['nombre_producto'];

                $precio_venta   = $row['precio_tmp'];
                $precio_venta_f = number_format($precio_venta, 2); //Formateo variables
                $precio_venta_r = str_replace(",", "", $precio_venta_f); //Reemplazo las comas
                $precio_total   = $precio_venta_r * $cantidad;
                $final_items    = rebajas($precio_total, $desc_tmp); //Aplicando el descuento
                /*--------------------------------------------------------------------------------*/
                $precio_total_f = number_format($final_items, 2); //Precio total formateado
                $precio_total_r = str_replace(",", "", $precio_total_f); //Reemplazo las comas
                $sumador_total += $precio_total_r; //Sumador
                $subtotal = number_format($sumador_total, 2, '.', '');
                if ($row['iva_producto'] == 1) {
                    $total_iva = iva($precio_venta);
                } else {
                    $total_iva = 0;
                }
                $total_impuesto += rebajas($total_iva, $desc_tmp) * $cantidad;
                //$total_iva_full = rebajas($total_impuesto, $desc_tmp);
                $t = $subtotal * 0.01;
            ?>
                <tr>
                    <td class='text-center'><?php echo $codigo_producto; ?></td>
                    <td class='text-center' width="15%">
                        <input style=" background-color:#A9DFBF; border-radius: 5px; border: 1px solid #39c; text-align: center" type="text" class="form-control txt_cant" value="<?php echo $cantidad; ?>" id="<?php echo $id_tmp; ?>">
                    </td>
                    <td><?php echo $nombre_producto; ?></td>
             <td class='text-center' width="20%">
    <div class="input-group input-group-sm precio-group" style="min-width: 200px;">
        <!-- Input editable con icono -->
        <div class="input-group-prepend">
            <span class="input-group-text bg-success text-white" style="border: 1px solid #28a745;">
                <i class="fa fa-dollar-sign"></i>
            </span>
        </div>
        
        <!-- Input para editar precio -->
        <input type="text" 
               class="form-control txt_precio" 
               value="<?php echo number_format($precio_venta, 2); ?>" 
               data-id="<?php echo $id_tmp; ?>"
               style="background: linear-gradient(135deg, #E8F5E9 0%, #C8E6C9 100%);
                      border: 1px solid #28a745;
                      border-right: none;
                      text-align: center;
                      font-weight: bold;
                      font-size: 14px;"
               <?php echo $ok; ?>>
               
        
        <!-- Botón dropdown para tipos de precio -->
        <div class="input-group-append">
            <button class="btn btn-outline-success dropdown-toggle" 
                    type="button" 
                    data-toggle="dropdown" 
                    aria-haspopup="true" 
                    aria-expanded="false"
                    style="border: 1px solid #28a745;">
                <i class="fa fa-caret-down"></i>
            </button>
            <div class="dropdown-menu dropdown-menu-right shadow-sm" style="min-width: 220px;">
                <h6 class="dropdown-header bg-light">
                    <i class="fa fa-tags mr-2"></i>Tipos de Precio
                </h6>
                <?php
                $sql1 = mysqli_query($conexion, "select * from productos where id_producto='" . $id_producto . "'");
                while ($rw1 = mysqli_fetch_array($sql1)) {
                    $precio_pc = $rw1['valor1_producto'];
                    $precio_pt = $rw1['valor2_producto'];
                    $precio_pm = $rw1['valor3_producto'];
                    
                    // Determinar cuál está seleccionado
                    $selected_pc = ($precio_venta == $precio_pc) ? 'active' : '';
                    $selected_pt = ($precio_venta == $precio_pt) ? 'active' : '';
                    $selected_pm = ($precio_venta == $precio_pm) ? 'active' : '';
                ?>
                <a class="dropdown-item precio-option <?php echo $selected_pc; ?>" 
                   href="#" 
                   data-id="<?php echo $id_tmp; ?>" 
                   data-precio="<?php echo $precio_pc; ?>"
                   data-tipo="PC">
                    <div class="d-flex justify-content-between align-items-center">
                        <div>
                            <span class="badge badge-primary mr-2">PC</span>
                            <span>Cliente</span>
                        </div>
                        <div>
                            <strong><?php echo number_format($precio_pc, 2); ?></strong>
                            <?php if($selected_pc): ?>
                            <i class="fa fa-check text-success ml-2"></i>
                            <?php endif; ?>
                        </div>
                    </div>
                    <small class="text-muted d-block">Precio normal al contado</small>
                </a>
                
                <a class="dropdown-item precio-option <?php echo $selected_pt; ?>" 
                   href="#" 
                   data-id="<?php echo $id_tmp; ?>" 
                   data-precio="<?php echo $precio_pt; ?>"
                   data-tipo="PT">
                    <div class="d-flex justify-content-between align-items-center">
                        <div>
                            <span class="badge badge-info mr-2">PT</span>
                            <span>Taller</span>
                        </div>
                        <div>
                            <strong><?php echo number_format($precio_pt, 2); ?></strong>
                            <?php if($selected_pt): ?>
                            <i class="fa fa-check text-success ml-2"></i>
                            <?php endif; ?>
                        </div>
                    </div>
                    <small class="text-muted d-block">Pago con tarjeta crédito/débito</small>
                </a>
                
                <a class="dropdown-item precio-option <?php echo $selected_pm; ?>" 
                   href="#" 
                   data-id="<?php echo $id_tmp; ?>" 
                   data-precio="<?php echo $precio_pm; ?>"
                   data-tipo="PM">
                    <div class="d-flex justify-content-between align-items-center">
                        <div>
                            <span class="badge badge-warning mr-2">PM</span>
                            <span>Mayorist</span>
                        </div>
                        <div>
                            <strong><?php echo number_format($precio_pm, 2); ?></strong>
                            <?php if($selected_pm): ?>
                            <i class="fa fa-check text-success ml-2"></i>
                            <?php endif; ?>
                        </div>
                    </div>
                    <small class="text-muted d-block">Precio para ventas al por mayor</small>
                </a>
                
                <div class="dropdown-divider"></div>
                
                <a class="dropdown-item text-info" 
                   href="#" 
                   id="precioPersonalizado"
                   data-toggle="modal" 
                   data-target="#modalPrecioPersonalizado"
                   data-id="<?php echo $id_tmp; ?>"
                   data-precio-actual="<?php echo $precio_venta; ?>"
                   data-producto="<?php echo htmlspecialchars($nombre_producto); ?>">
                    <i class="fa fa-edit mr-2"></i>Editar precio manualmente
                </a>
                
                <?php } ?>
            </div>
        </div>
    </div>
</td>
 <td align="right" width="15%">
                        <input style=" background-color:#F7DC6F; border-radius: 5px; border: 1px solid #39c; text-align: center;" type="text" class="form-control txt_desc" style="text-align:center" value="<?php echo $desc_tmp; ?>" id="<?php echo $id_tmp; ?>">
                    </td>

                    <td class='text-right'><?php echo $simbolo_moneda . ' ' . number_format($final_items, 2); ?></td>
                    <!--<td class='text-right'><?php echo $simbolo_moneda . ' ' . number_format($total_iva, 2); ?></td>-->
                    <td class='text-center'>
                        <a href="#" class='btn btn-danger btn-sm waves-effect waves-light' onclick="eliminar('<?php echo $id_tmp ?>')"><i class="fa fa-remove"></i>
                        </a>
                    </td>
                </tr>
            <?php
            }

            $total_factura = $subtotal + $total_impuesto;

            ?>
            <tr>
                <td class='text-right' colspan=5>SUBTOTAL</td>
                <td class='text-right'><b><?php echo $simbolo_moneda . ' ' . number_format($subtotal, 2); ?></b></td>
                <td></td>
            </tr>
            <tr>
                <td class='text-right' colspan=5><?php echo $impuesto; ?>% <?php echo $nom_impuesto; ?> </td>
                <td class='text-right'><?php echo $simbolo_moneda . ' ' . number_format($total_impuesto, 2); ?></td>
                <td></td>
            </tr>
            <tr>
                <td style="font-size: 20pt;" class='text-right' colspan=5><b>TOTAL <?php echo $simbolo_moneda; ?></b></td>
                <td style="font-size: 20pt; background: #F5B7B1;" class='text-right'><b><?php echo number_format($total_factura, 2); ?></b></td>
                <td></td>
            </tr>
        </tbody>
    </table>
</div>
<!-- Modal para precio personalizado -->
<div class="modal fade" id="modalPrecioPersonalizado" tabindex="-1" role="dialog">
    <div class="modal-dialog modal-sm" role="document">
        <div class="modal-content modal-precio-personalizado">
            <div class="modal-header">
                <h5 class="modal-title">
                    <i class="fa fa-edit mr-2"></i>Editar Precio
                </h5>
                <button type="button" class="close text-white" data-dismiss="modal">
                    <span>&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <div class="form-group">
                    <label for="nombreProductoPrecio" class="text-muted">Producto:</label>
                    <input type="text" class="form-control" id="nombreProductoPrecio" readonly style="background: #f8f9fa;">
                </div>
                
                <div class="form-group">
                    <label for="precioActual" class="text-muted">Precio Actual:</label>
                    <div class="precio-input-group input-group mb-2">
                        <div class="input-group-prepend">
                            <span class="input-group-text">$</span>
                        </div>
                        <input type="text" class="form-control" id="precioActual" readonly style="background: #e9ecef;">
                    </div>
                </div>
                
                <div class="form-group mb-4">
                    <label for="nuevoPrecio" class="font-weight-bold">Nuevo Precio:</label>
                    <div class="precio-input-group input-group">
                        <div class="input-group-prepend">
                            <span class="input-group-text bg-success text-white">$</span>
                        </div>
                        <input type="text" 
                               class="form-control" 
                               id="nuevoPrecio" 
                               placeholder="0.00"
                               autocomplete="off">
                    </div>
                    <small class="form-text text-muted mt-1">
                        <i class="fa fa-info-circle mr-1"></i>Digite el nuevo precio
                    </small>
                </div>
                
                <div class="alert alert-info d-none" id="infoPrecio">
                    <small>
                        <i class="fa fa-lightbulb mr-1"></i>
                        <span id="infoText"></span>
                    </small>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">
                    <i class="fa fa-times mr-1"></i>Cancelar
                </button>
                <button type="button" class="btn btn-success" id="btnGuardarPrecio">
                    <i class="fa fa-save mr-1"></i>Guardar Precio
                </button>
            </div>
        </div>
    </div>
</div>
<script>
    $(document).ready(function() {
        $('.txt_desc').off('blur');
        $('.txt_desc').on('blur', function(event) {
            var keycode = (event.keyCode ? event.keyCode : event.which);
            // if(keycode == '13'){
            id_tmp = $(this).attr("id");
            desc = $(this).val();
            //Inicia validacion
            if (isNaN(desc)) {
                Swal.fire({
                    icon: 'error',
                    title: 'Error',
                    text: 'Digitar un descuento válido',
                    confirmButtonColor: '#d33',
                    confirmButtonText: 'Aceptar'
                });
                $(this).focus();
                return false;
            }
            //Fin validacion
            $.ajax({
                type: "POST",
                url: "../ajax/editar_desc_venta.php",
                data: "id_tmp=" + id_tmp + "&desc=" + desc,
                success: function(datos) {
                    $(".total").load("../ajax/carga_total.php");
                    $("#resultados").load("../ajax/agregar_tmp.php");
                    Swal.fire({
                        icon: 'success',
                        title: 'Éxito',
                        text: 'Descuento actualizado correctamente',
                        showConfirmButton: false,
                        timer: 1500
                    });
                }
            });
            // }
        });

        // === PRECIO EDITABLE MANUAL ===
        $(document).on("blur", ".txt_precio", function() {
            let id_tmp = $(this).data("id");
            let precio = $(this).val();

            if (isNaN(precio) || precio <= 0) {
                Swal.fire({
                    icon: 'error',
                    title: 'Error',
                    text: 'Digite un precio válido',
                    confirmButtonColor: '#d33',
                    confirmButtonText: 'Aceptar'
                });
                return;
            }

            $.ajax({
                type: "POST",
                url: "../ajax/editar_precio_venta.php",
                data: "id_tmp=" + id_tmp + "&precio=" + precio,
                success: function(datos) {
                    $("#resultados").load("../ajax/agregar_tmp.php");
                    Swal.fire({
                        icon: 'success',
                        title: 'Éxito',
                        text: 'Precio actualizado',
                        showConfirmButton: false,
                        timer: 1500
                    });
                }
            });
        });

        // === CAMBIO DESDE SELECT PC / PT / PM ===
        $(document).on("change", ".select_precio", function() {
            let id_tmp = $(this).data("id");
            let precio = $(this).val();

            // Actualizar input visualmente
            $(this).closest('.input-group').find('.txt_precio').val(precio);

            $.ajax({
                type: "POST",
                url: "../ajax/editar_precio_venta.php",
                data: "id_tmp=" + id_tmp + "&precio=" + precio,
                success: function(datos) {
                    $("#resultados").load("../ajax/agregar_tmp.php");
                    Swal.fire({
                        icon: 'success',
                        title: 'Éxito',
                        text: 'Precio actualizado',
                        showConfirmButton: false,
                        timer: 1500
                    });
                }
            });
        });

        $(".txt_cant").on("blur", function(event) {
            var inputElement = $(this);
            id_tmp = inputElement.attr("id");
            cant = inputElement.val();
            
            // Validación básica
            if (isNaN(cant) || cant <= 0) {
                Swal.fire({
                    icon: 'error',
                    title: 'Error',
                    text: 'Debe digitar una cantidad válida',
                    confirmButtonColor: '#d33',
                    confirmButtonText: 'Aceptar'
                });
                inputElement.val(1);
                inputElement.focus();
                return false;
            }
            
            // Redondear si es necesario
            if (!Number.isInteger(parseFloat(cant))) {
                cant = Math.round(cant);
                inputElement.val(cant);
            }
            
            // Mostrar loading
            Swal.fire({
                title: 'Actualizando...',
                text: 'Por favor espere',
                allowOutsideClick: false,
                didOpen: () => {
                    Swal.showLoading();
                }
            });
            
            $.ajax({
                type: "POST",
                url: "../ajax/editar_cant_venta.php",
                data: { 
                    id_tmp: id_tmp, 
                    cant: cant 
                },
                dataType: "json",
                success: function(response) {
                    Swal.close();
                    
                    if (response.success) {
                        // Éxito
                        Swal.fire({
                            icon: 'success',
                            title: '¡Éxito!',
                            html: response.message,
                            showConfirmButton: false,
                            timer: 1500,
                            timerProgressBar: true,
                            didClose: () => {
                                // Actualizar la interfaz después de cerrar
                                $(".total").load("../ajax/carga_total.php");
                                $("#resultados").load("../ajax/agregar_tmp.php");
                            }
                        });
                    } else {
                        // Error
                        Swal.fire({
                            icon: 'error',
                            title: 'Error de Stock',
                            html: response.message,
                            confirmButtonColor: '#d33',
                            confirmButtonText: 'Aceptar',
                            didClose: () => {
                                // Recargar para mostrar valores actuales
                                $("#resultados").load("../ajax/agregar_tmp.php");
                                $(".total").load("../ajax/carga_total.php");
                            }
                        });
                    }
                },
                error: function(xhr, status, error) {
                    Swal.fire({
                        icon: 'error',
                        title: 'Error de Conexión',
                        text: 'No se pudo conectar con el servidor',
                        confirmButtonColor: '#d33',
                        confirmButtonText: 'Aceptar'
                    });
                }
            });
        });

        // === EDICIÓN DIRECTA DEL PRECIO (al hacer blur) ===
        $(document).on("blur", ".txt_precio", function() {
            let inputElement = $(this);
            let id_tmp = inputElement.data("id");
            let precio = parseFloat(inputElement.val().replace(/,/g, ''));
            
            // Validación simple
            if (isNaN(precio) || precio <= 0) {
                Swal.fire({
                    icon: 'error',
                    title: 'Error',
                    text: 'Digite un precio válido',
                    confirmButtonColor: '#d33',
                    confirmButtonText: 'Aceptar'
                });
                // Recargar el valor actual
                recargarPrecioActual(id_tmp, inputElement);
                return;
            }
            
            // Formatear
            inputElement.val(precio.toFixed(2));
            
            // Mostrar loading
            Swal.fire({
                title: 'Actualizando...',
                text: 'Por favor espere',
                allowOutsideClick: false,
                didOpen: () => {
                    Swal.showLoading();
                }
            });
            
            // Actualizar via AJAX
            $.ajax({
                type: "POST",
                url: "../ajax/editar_precio_venta.php",
                data: { id_tmp: id_tmp, precio: precio },
                dataType: "json",
                beforeSend: function() {
                    inputElement.prop('disabled', true);
                },
                success: function(response) {
                    Swal.close();
                    
                    if (response.success) {
                        // Éxito
                        Swal.fire({
                            icon: 'success',
                            title: '¡Éxito!',
                            html: 'Precio actualizado',
                            showConfirmButton: false,
                            timer: 1500,
                            timerProgressBar: true,
                            didClose: () => {
                                // Recargar la tabla completa
                                $("#resultados").load("../ajax/agregar_tmp.php");
                                $(".total").load("../ajax/carga_total.php");
                            }
                        });
                    } else {
                        // Error
                        Swal.fire({
                            icon: 'error',
                            title: 'Error',
                            html: response.message || 'Error al actualizar el precio',
                            confirmButtonColor: '#d33',
                            confirmButtonText: 'Aceptar'
                        });
                        recargarPrecioActual(id_tmp, inputElement);
                    }
                },
                error: function() {
                    Swal.close();
                    Swal.fire({
                        icon: 'error',
                        title: 'Error de conexión',
                        text: 'No se pudo conectar con el servidor',
                        confirmButtonColor: '#d33',
                        confirmButtonText: 'Aceptar'
                    });
                    recargarPrecioActual(id_tmp, inputElement);
                },
                complete: function() {
                    inputElement.prop('disabled', false);
                }
            });
        });
        
        // === SELECCIÓN DE TIPO DE PRECIO (PC/PT/PM) ===
        $(document).on("click", ".precio-option", function(e) {
            e.preventDefault();
            
            let link = $(this);
            let id_tmp = link.data("id");
            let precio = link.data("precio");
            let tipo = link.data("tipo");
            
            // Actualizar el input visualmente
            let precioFormateado = parseFloat(precio).toFixed(2);
            link.closest('.precio-group').find('.txt_precio').val(precioFormateado);
            
            // Mostrar loading
            Swal.fire({
                title: 'Actualizando...',
                text: 'Cambiando a precio ' + tipo,
                allowOutsideClick: false,
                didOpen: () => {
                    Swal.showLoading();
                }
            });
            
            // Enviar al servidor
            $.ajax({
                type: "POST",
                url: "../ajax/editar_precio_venta.php",
                data: { id_tmp: id_tmp, precio: precio, tipo: tipo },
                dataType: "json",
                success: function(response) {
                    Swal.close();
                    
                    if (response.success) {
                        Swal.fire({
                            icon: 'success',
                            title: '¡Precio actualizado!',
                            html: 'Ahora usando: <strong>' + tipo + '</strong>',
                            showConfirmButton: false,
                            timer: 1500,
                            timerProgressBar: true,
                            didClose: () => {
                                // Recargar la tabla
                                $("#resultados").load("../ajax/agregar_tmp.php");
                                $(".total").load("../ajax/carga_total.php");
                            }
                        });
                    } else {
                        Swal.fire({
                            icon: 'error',
                            title: 'Error',
                            html: response.message || 'Error al cambiar el precio',
                            confirmButtonColor: '#d33',
                            confirmButtonText: 'Aceptar'
                        });
                    }
                },
                error: function() {
                    Swal.close();
                    Swal.fire({
                        icon: 'error',
                        title: 'Error de conexión',
                        text: 'No se pudo conectar con el servidor',
                        confirmButtonColor: '#d33',
                        confirmButtonText: 'Aceptar'
                    });
                }
            });
        });
        
        // === MODAL PARA PRECIO PERSONALIZADO ===
        $('#modalPrecioPersonalizado').on('show.bs.modal', function(event) {
            var button = $(event.relatedTarget);
            var id_tmp = button.data('id');
            var precio_actual = button.data('precio-actual');
            var producto = button.data('producto');
            
            var modal = $(this);
            modal.data('id_tmp', id_tmp);
            modal.find('#nombreProductoPrecio').val(producto);
            modal.find('#precioActual').val(parseFloat(precio_actual).toFixed(2));
            modal.find('#nuevoPrecio').val('').focus();
            modal.find('#infoPrecio').addClass('d-none');
        });
        
        // Validar precio en el modal
        $('#nuevoPrecio').on('input', function() {
            var precio = $(this).val().replace(/,/g, '');
            var precioActual = parseFloat($('#precioActual').val());
            
            if (!isNaN(precio) && precio !== '') {
                var infoDiv = $('#infoPrecio');
                var infoText = $('#infoText');
                infoDiv.removeClass('d-none');
                
                var diferencia = ((parseFloat(precio) - precioActual) / precioActual) * 100;
                
                if (diferencia > 0) {
                    infoDiv.removeClass('alert-danger').addClass('alert-success');
                    infoText.html('Aumento del <strong>' + diferencia.toFixed(1) + '%</strong> sobre el precio actual');
                } else if (diferencia < 0) {
                    infoDiv.removeClass('alert-success').addClass('alert-danger');
                    infoText.html('Descuento del <strong>' + Math.abs(diferencia).toFixed(1) + '%</strong> sobre el precio actual');
                } else {
                    infoDiv.removeClass('alert-danger alert-success').addClass('alert-info');
                    infoText.html('Mismo precio que el actual');
                }
            } else {
                $('#infoPrecio').addClass('d-none');
            }
        });
        
        // Guardar precio personalizado
        $('#btnGuardarPrecio').on('click', function() {
            var modal = $('#modalPrecioPersonalizado');
            var id_tmp = modal.data('id_tmp');
            var nuevoPrecio = parseFloat($('#nuevoPrecio').val().replace(/,/g, ''));
            
            if (isNaN(nuevoPrecio) || nuevoPrecio <= 0) {
                Swal.fire({
                    icon: 'error',
                    title: 'Error',
                    text: 'Digite un precio válido mayor a cero',
                    confirmButtonColor: '#d33',
                    confirmButtonText: 'Aceptar'
                });
                $('#nuevoPrecio').focus();
                return;
            }
            
            // Mostrar confirmación
            Swal.fire({
                title: '¿Guardar precio personalizado?',
                html: '<strong>Nuevo precio:</strong> $' + nuevoPrecio.toFixed(2),
                icon: 'question',
                showCancelButton: true,
                confirmButtonColor: '#28a745',
                cancelButtonColor: '#d33',
                confirmButtonText: 'Sí, guardar',
                cancelButtonText: 'Cancelar'
            }).then((result) => {
                if (result.isConfirmed) {
                    // Mostrar loading
                    Swal.fire({
                        title: 'Guardando...',
                        text: 'Por favor espere',
                        allowOutsideClick: false,
                        didOpen: () => {
                            Swal.showLoading();
                        }
                    });
                    
                    $.ajax({
                        type: "POST",
                        url: "../ajax/editar_precio_venta.php",
                        data: { 
                            id_tmp: id_tmp, 
                            precio: nuevoPrecio,
                            tipo: 'Personalizado' 
                        },
                        dataType: "json",
                        success: function(response) {
                            Swal.close();
                            
                            if (response.success) {
                                modal.modal('hide');
                                Swal.fire({
                                    icon: 'success',
                                    title: '¡Guardado!',
                                    html: response.message,
                                    showConfirmButton: false,
                                    timer: 1500,
                                    timerProgressBar: true,
                                    didClose: () => {
                                        // Recargar la tabla
                                        $("#resultados").load("../ajax/agregar_tmp.php");
                                        $(".total").load("../ajax/carga_total.php");
                                    }
                                });
                            } else {
                                Swal.fire({
                                    icon: 'error',
                                    title: 'Error',
                                    html: response.message || 'Error al guardar el precio',
                                    confirmButtonColor: '#d33',
                                    confirmButtonText: 'Aceptar'
                                });
                            }
                        },
                        error: function() {
                            Swal.close();
                            Swal.fire({
                                icon: 'error',
                                title: 'Error de conexión',
                                text: 'No se pudo guardar el precio',
                                confirmButtonColor: '#d33',
                                confirmButtonText: 'Aceptar'
                            });
                        }
                    });
                }
            });
        });
        
        // === FUNCIÓN AUXILIAR PARA RECARGAR PRECIO ACTUAL ===
        function recargarPrecioActual(id_tmp, inputElement) {
            $.ajax({
                type: "POST",
                url: "../ajax/obtener_precio_actual.php",
                data: { id_tmp: id_tmp },
                dataType: "json",
                success: function(response) {
                    if (response.success) {
                        inputElement.val(response.precio_formateado);
                    }
                }
            });
        }
        
        // === PERMITIR SOLO NÚMEROS Y PUNTO EN PRECIOS ===
        $(document).on("keypress", ".txt_precio, #nuevoPrecio", function(e) {
            var charCode = (e.which) ? e.which : e.keyCode;
            
            // Permitir: números (48-57), punto (46), backspace (8), tab (9), enter (13)
            if (charCode !== 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
                e.preventDefault();
                return false;
            }
            
            // Solo permitir un punto decimal
            if (charCode === 46 && $(this).val().indexOf('.') !== -1) {
                e.preventDefault();
                return false;
            }
            
            return true;
        });
        
    });
</script>