<?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');
}

$nombre_usuario  = trim($_POST['nombre_usuario'] ?? '');
$fecha           = trim($_POST['fecha'] ?? '');
$nombre_tercero  = trim($_POST['nombre_tercero'] ?? '');
$numero_factura  = trim($_POST['numero_factura'] ?? '');
$observacion     = trim($_POST['observacion'] ?? 'No aplica');

$errores = [];
if ($nombre_usuario === '')  $errores[] = 'Falta nombre_usuario';
if ($fecha === '')           $errores[] = 'Falta fecha';
if ($nombre_tercero === '')  $errores[] = 'Falta nombre_tercero';
if ($numero_factura === '')  $errores[] = 'Falta numero_factura';

// validar fecha YYYY-MM-DD real
$dt = DateTime::createFromFormat('Y-m-d', $fecha);
if (!$dt || $dt->format('Y-m-d') !== $fecha) {
    $errores[] = 'Fecha inválida';
}

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

// 1) Consecutivo seguro (mejor: columna INT autoincrement aparte, pero así reduces fallos)
$res = $conn->query("SELECT COALESCE(MAX(CAST(numero_venta AS UNSIGNED)),0) AS mayor FROM alm_venta");
$row = $res->fetch_assoc();
$codigo = (int)$row['mayor'] + 1;

// 2) Insert con prepared
$total_venta = 0;
$estado = 'Proceso';

// si quieres permitir NULL cuando sea "Vario"
$nombre_tercero_db = ($nombre_tercero === 'Vario') ? null : $nombre_tercero;

$stmt = $conn->prepare("
    INSERT INTO alm_venta (nombre_usuario, numero_venta, fecha, nombre_tercero, numero_factura, observacion, total_venta, estado)
    VALUES (?, ?, ?, ?, ?, ?, ?, ?)
");
$stmt->bind_param(
    "sissssid",
    $nombre_usuario,
    $codigo,
    $fecha,
    $nombre_tercero_db,
    $numero_factura,
    $observacion,
    $total_venta,
    $estado
);

if (!$stmt->execute()) {
    http_response_code(500);
    exit("Error al guardar: " . $stmt->error);
}

$id_venta = $stmt->insert_id;

// PRG: redirección (evita reenvío por refresh)
header("Location: ../venta-detalle.php?id_venta=" . $id_venta);
exit;
