<?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');
$numero_pedido  = post('numero_pedido'); // (no se usa para insertar, lo dejo porque venía)
$nombre_tercero = post('nombre_tercero');
$observacion    = post('observacion');

$estado         = 'Proceso';
$panel_impresion= 'No';
$documento_guia = 'No aplica';

/* Validaciones mínimas */
$errores = [];
if ($nombre_usuario === '') $errores[] = 'Falta nombre_usuario';
if ($fecha === '' || !preg_match('/^\d{4}-\d{2}-\d{2}$/', $fecha)) $errores[] = 'Fecha inválida';
if ($nombre_tercero === '') $errores[] = 'Falta nombre_tercero';
if ($observacion === '') $observacion = 'No aplica';

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

/* 1) Recuperar consecutivo (MISMA LÓGICA TUYA) */
$sql3cc = "SELECT numero_pedido FROM alm_pedido WHERE numero_pedido=(SELECT MAX(numero_pedido) as mayor FROM alm_pedido)";
$query3cc = mysqli_query($conn, $sql3cc);
$row3cc = $query3cc ? $query3cc->fetch_assoc() : null;

if (isset($row3cc['numero_pedido'])) {
    $numero = intval(preg_replace('/[^0-9]+/', '', $row3cc['numero_pedido']), 10);
} else {
    $numero = 0;
}
$codigo = (string)($numero + 1);

/* 2) Insert seguro (prepared) */
$stmt = $conn->prepare("
    INSERT INTO alm_pedido
    (nombre_usuario, fecha, numero_pedido, nombre_tercero, observacion, estado, panel_impresion, documento_guia)
    VALUES (?,?,?,?,?,?,?,?)
");
if (!$stmt) {
    http_response_code(500);
    exit("Error prepare: " . $conn->error);
}

$stmt->bind_param(
    "ssssssss",
    $nombre_usuario,
    $fecha,
    $codigo,
    $nombre_tercero,
    $observacion,
    $estado,
    $panel_impresion,
    $documento_guia
);

if ($stmt->execute()) {

    // MISMA LÓGICA TUYA para obtener id (MAX por filtros)
    $sql2 = "SELECT MAX(id) as id FROM alm_pedido WHERE nombre_usuario='$nombre_usuario' AND fecha ='$fecha' AND nombre_tercero='$nombre_tercero'";
    $query2 = $conn->query($sql2);
    $row2 = $query2->fetch_assoc();

    header("Location: ../pedido-detalle.php?id_pedido=" . (int)$row2['id']);
    exit;

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