<?php
/* Connect To Database*/
include('is_logged.php');
require_once ("../config/db.php");
require_once ("../config/conexion.php");

$desde = (isset($_GET['desde'])) ? mysqli_real_escape_string($con, $_GET['desde']) : "";
$hasta = (isset($_GET['hasta'])) ? mysqli_real_escape_string($con, $_GET['hasta']) : "";
$tienda = (isset($_GET['tienda'])) ? mysqli_real_escape_string($con, $_GET['tienda']) : "";

$action = (isset($_REQUEST['action'])&& $_REQUEST['action'] !=NULL)?$_REQUEST['action']:'';

// --- BLOQUE DE ANULACIÓN Y REVERSIÓN DE STOCK ---
if (isset($_GET['id'])) {
    $movimiento = intval($_GET['id']);
    
    // 1. Obtenemos origen y destino antes de borrar
    $query_mov = mysqli_query($con, "SELECT usuario, destino FROM movimientos WHERE numero_movimiento='$movimiento'");
    $rm = mysqli_fetch_array($query_mov);
    
    if ($rm) {
        $almacen_origen = $rm['usuario']; 
        $almacen_destino = $rm['destino'];

        // 2. Buscamos los productos para devolverlos
        $consulta2 = mysqli_query($con, "SELECT * FROM detalle_movimiento WHERE numero_movimiento='$movimiento'");
        
        while ($dato2 = mysqli_fetch_array($consulta2)) {
            $id_pro = $dato2['id_producto'];
            $cant = $dato2['cantidad'];

            // SUMAR AL ORIGEN
            mysqli_query($con, "UPDATE products SET existencia = existencia + $cant WHERE id_producto = '$id_pro' AND almacen = '$almacen_origen'");

            // OBTENER NOMBRE PARA RESTAR AL DESTINO (Separado para evitar bloqueos de SQL)
            $sql_p = mysqli_query($con, "SELECT nombre_producto FROM products WHERE id_producto='$id_pro'");
            $r_p = mysqli_fetch_array($sql_p);
            if($r_p){
                $nombre_p = mysqli_real_escape_string($con, $r_p['nombre_producto']);
                // RESTAR AL DESTINO
                mysqli_query($con, "UPDATE products SET existencia = existencia - $cant WHERE nombre_producto = '$nombre_p' AND almacen = '$almacen_destino'");
            }
        }

        // 3. Borrar registros
        $del1 = mysqli_query($con, "DELETE FROM movimientos WHERE numero_movimiento='$movimiento'");
        $del2 = mysqli_query($con, "DELETE FROM detalle_movimiento WHERE numero_movimiento='$movimiento'");
        
        if ($del1 && $del2) {
            echo '<div class="alert alert-success alert-dismissible" role="alert">
                    <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <strong>¡Aviso!</strong> Movimiento anulado e inventario restablecido exitosamente.
                  </div>';
        }
    }
}

// --- BLOQUE DE LISTADO (TABLA) ---
if($action == 'ajax')
{
    $sTable = "movimientos";
    $sWhere = " WHERE factura='Movimiento Interno' ";

    // Filtros de fecha originales
    if($_GET['desde']!="" && $_GET['hasta']!="" && $_GET['tienda']=="") {
        $sWhere.= " AND (fecha BETWEEN '$desde' AND '$hasta') ";
    } else if($_GET['desde']!="" && $_GET['hasta']=="" && $_GET['tienda']=="") {
        $sWhere.= " AND fecha = '$desde' ";
    } else if($_GET['desde']=="" && $_GET['hasta']!="" && $_GET['tienda']=="") {
        $sWhere.= " AND fecha = '$hasta' ";
    } else if($_GET['tienda']!="" && $_GET['desde']=="" && $_GET['hasta']=="") {
        $sWhere.= " AND (destino = '$tienda') ";
    } else if($_GET['tienda']!="" && $_GET['desde']!="" && $_GET['hasta']!="") {
        $sWhere.= " AND (destino = '$tienda') AND (fecha BETWEEN '$desde' AND '$hasta') ";
    }

    $sWhere.= " ORDER BY id_movimiento desc";
    
    include 'pagination.php';
    $page = (isset($_REQUEST['page']) && !empty($_REQUEST['page']))?$_REQUEST['page']:1;
    $per_page = 30;
    $adjacents = 4;
    $offset = ($page - 1) * $per_page;

    $count_query = mysqli_query($con, "SELECT count(*) AS numrows FROM $sTable $sWhere");
    $row = mysqli_fetch_array($count_query);
    $numrows = $row['numrows'];
    $total_pages = ceil($numrows/$per_page);
    $reload = './movimientos.php';

    $sql="SELECT * FROM $sTable $sWhere LIMIT $offset,$per_page";
    $query = mysqli_query($con, $sql);
?>
<div class="table-responsive">
    <table class="table">
        <tr class="info">
            <th>#</th>
            <th>Fecha movimiento</th>
            <th>Num movimiento</th>
            <th>Envio</th>
            <th>Recibio</th>
            <th>Estatus</th>
            <th>Acciones</th>
        </tr>
        <?php
        $item = $offset;
        if($numrows > 0) {
            while ($movimiento = mysqli_fetch_array($query)) {
                $id_movimiento = $movimiento['id_movimiento'];
                $fecha = $movimiento['fecha'];
                $num = $movimiento['numero_movimiento'];
                $envio_id = $movimiento['usuario'];
                $recibio_id = $movimiento['destino'];
                $estatus = $movimiento['estatus'];
                $item++;

                // Buscar nombres de tiendas
                $q_env = mysqli_query($con, "SELECT nombre FROM tiendas WHERE id_tienda='$envio_id'");
                $r_env = mysqli_fetch_array($q_env);
                $nombre_envio = ($r_env) ? $r_env['nombre'] : "N/A";

                $q_rec = mysqli_query($con, "SELECT nombre FROM tiendas WHERE id_tienda='$recibio_id'");
                $r_rec = mysqli_fetch_array($q_rec);
                $nombre_recibio = ($r_rec) ? $r_rec['nombre'] : "N/A";
                ?>
                <tr>
                    <td><?php echo $item; ?></td>
                    <td><?php echo $fecha; ?></td>
                    <td><?php echo $num; ?></td>
                    <input type="hidden" value="<?php echo $num;?>" id="num_movi<?php echo $id_movimiento;?>">
					<td><?php echo $nombre_envio; ?></td>
                    <td><?php echo $nombre_recibio; ?></td>
                    <input type="hidden" value="<?php echo $nombre_recibio;?>" id="destino<?php echo $id_movimiento;?>">
					<td><?php echo $estatus; ?></td>
                    <td>
                    <?php 
                    if($_SESSION['rol']=="gerencia" || $_SESSION['rol']=="supervisor" || $_SESSION['rol']=="almacen") { 
                    ?>
                        <a href="ver_movimiento.php?id_movimiento=<?php echo $id_movimiento;?>" class='btn btn-default' title='Ver Detalle' ><i class="glyphicon glyphicon-eye-open"></i></a>
                        <?php
                        if($estatus=="Sin movimiento") {
                            if($_SESSION['rol']=="gerencia" || $_SESSION['rol']=="supervisor") {
                            ?>
                                <a href="editar_movimiento.php?id_movimiento=<?php echo $id_movimiento;?>" class='btn btn-default' title='Editar' ><i class="glyphicon glyphicon-edit"></i></a>
                                <a href="#" class='btn btn-default' title='Anular movimiento' onclick="eliminar('<?php echo $num; ?>')"><i class="glyphicon glyphicon-trash"></i></a>
                            <?php 
                            } 
                            ?>
                            <a href="#" class='btn btn-default' title="Despachar" onclick="obtener_datos('<?php echo $id_movimiento;?>',2);" data-toggle="modal" data-target="#myModa14">Datos para el Despacho</a>
                        <?php 
                        }
                        
                        if($estatus=="Despachado") {
                            if($_SESSION['rol']=="gerencia" || $_SESSION['rol']=="supervisor") {
                            ?>
                            <a href="#" class='btn btn-default' title="Editar despacho" onclick="obtener_datos('<?php echo $id_movimiento;?>',2);" data-toggle="modal" data-target="#myModa14">Editar Datos</a>
                            <?php 
                            }
                            ?>
                            <a href="#" class='btn btn-default' title='Ver Nota y Guia' onclick="imprimir_guia('<?php echo $id_movimiento;?>');"><i class="glyphicon glyphicon-download"></i></a>
                        <?php   
                        }
                    }
                    ?>
                    </td>
                </tr>
                <?php
            }
        } else {
            echo "<tr><td colspan='7'>No se encontraron resultados</td></tr>";
        }
        ?>
        <tr>
            <td colspan="7"><span class="pull-right"><?php echo paginate($reload, $page, $total_pages, $adjacents);?></span></td>
        </tr>
    </table>
</div>
<?php 
} 
?>