<?php
session_start();
require '../../../script/conexion.php';

ini_set('display_errors', 0);
error_reporting(E_ALL);

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    exit('Método no permitido');
}

function post($k, $default = '') {
    return trim($_POST[$k] ?? $default);
}

$nombre_usuario      = post('nombre_usuario');
$fecha               = post('fecha');
$referencia_producto = post('referencia_producto');
$talla               = post('talla');
$cantidad            = post('cantidad');
$observacion         = post('observacion');

$movimiento   = 'Salida';
$tipo_novedad = 'Novedad';
$precio_unidad = 0;

/* Validaciones mínimas (sin cambiar tu negocio) */
$errores = [];

if ($nombre_usuario === '') $errores[] = 'Falta nombre_usuario';
if ($fecha === '' || !preg_match('/^\d{4}-\d{2}-\d{2}$/', $fecha)) $errores[] = 'Fecha inválida';
if ($referencia_producto === '') $errores[] = 'Falta referencia_producto';
if ($talla === '') $errores[] = 'Falta talla';
if ($cantidad === '' || !is_numeric($cantidad)) $errores[] = 'Cantidad inválida';

if ($errores) {
    http_response_code(400);
    exit('Error: ' . implode(', ', $errores));
}

$cantidad_int = (int)$cantidad;
$precio_num = (float)$precio_unidad;

$stmt = $conn->prepare("
    INSERT INTO alm_novedad
    (nombre_usuario, nombre_tercero, fecha, referencia_producto, talla, cantidad, precio_unidad, movimiento, observacion, tipo_novedad)
    VALUES (?, NULL, ?, ?, ?, ?, ?, ?, ?, ?)
");

if (!$stmt) {
    http_response_code(500);
    exit("Error prepare: " . $conn->error);
}

$stmt->bind_param(
    "ssssidsss",
    $nombre_usuario,
    $fecha,
    $referencia_producto,
    $talla,
    $cantidad_int,
    $precio_num,
    $movimiento,
    $observacion,
    $tipo_novedad
);

if ($stmt->execute()) {

    $class_referencia = $referencia_producto;
    $class_talla = $talla;
    require '../../../clases/class-referencia.php';

    header("Location: ../novedad.php?referencia_producto=" . urlencode($referencia_producto));
    exit;

} else {
    http_response_code(500);
    exit("Error execute: " . $stmt->error);
}
