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

/* Inicia validación */
if (empty($_POST['mod_id'])) {
    $errors[] = "ID vacío";
} else if (empty($_POST['mod'])) {
    $errors[] = "Selecciona una acción (Agregar/Eliminar)";
} else {
    // Escapado de datos
    $almacen = trim(mysqli_real_escape_string($con, (strip_tags($_POST["mod_almacen"], ENT_QUOTES))));
	$id_producto = intval($_POST['mod_id']);
	$accion = mysqli_real_escape_string($con, (strip_tags($_POST["mod"], ENT_QUOTES)));
    $date_added = date("Y-m-d H:i:s");

    // Definir cantidad según la acción para evitar errores de variable no definida
    $cantidad = 0;
    if ($accion == "agregar") {
        $cantidad = $_POST["mod_cantidad_a"];
    } else if ($accion == "eliminar") {
        $cantidad = $_POST["mod_cantidad_e"];
    }

    // 1. Consultar existencia actual
    $sql_p = "SELECT existencia FROM products WHERE id_producto='$id_producto' AND almacen='$almacen'";
    $query_p = mysqli_query($con, $sql_p);
    $dato = mysqli_fetch_array($query_p);

    if ($dato) {
        $actualizado = $dato['existencia'];
        $existencia = 0;

        // 2. Lógica de cálculo
        if ($accion == "eliminar") {
            if ($cantidad > $actualizado) {
                $errors[] = "La cantidad es mayor al Stock actual ($actualizado)";
            } else {
                $existencia = $actualizado - $cantidad;
            }
        } else {
            $existencia = $actualizado + $cantidad;
        }

        // 3. Si no hay errores de validación, ejecutar UPDATE
        if (!isset($errors)) {
            $sql = "UPDATE products SET date_added='$date_added', existencia='$existencia' WHERE id_producto='$id_producto' AND almacen='$almacen'";
            $query_update = mysqli_query($con, $sql);

            if ($query_update) {
                $messages[] = "Producto actualizado satisfactoriamente. Nuevo Stock: $existencia";
            } else {
                $errors[] = "Lo siento, algo salió mal: " . mysqli_error($con);
            }
        }
    } else {
        $errors[] = "No se encontró el producto en el almacén especificado.";
    }
}

if (isset($errors)) {
    echo '<div class="alert alert-danger" role="alert">
            <button type="button" class="close" data-dismiss="alert">&times;</button>
            <strong>Error!</strong> '.implode(", ", $errors).'
          </div>';
}

if (isset($messages)) {
    echo '<div class="alert alert-success" role="alert">
            <button type="button" class="close" data-dismiss="alert">&times;</button>
            <strong>¡Bien hecho!</strong> '.implode(", ", $messages).'
          </div>';
}
?>