34849-vm/save_ingreso_borrador.php
2026-04-21 17:55:48 +00:00

61 lines
2.4 KiB
PHP

<?php
require_once 'db/config.php';
session_start();
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit();
}
$db = db();
$action = $_POST['action'] ?? '';
$userId = $_SESSION['user_id'];
if ($action === 'create') {
$product_id = !empty($_POST['product_id']) ? (int)$_POST['product_id'] : null;
$nombre_producto = $_POST['nombre_producto'] ?? '';
$cantidad_esperada = (int)($_POST['cantidad_esperada'] ?? 0);
$observaciones = $_POST['observaciones'] ?? '';
if ((!empty($nombre_producto) || !empty($product_id)) && $cantidad_esperada > 0) {
// If product_id is provided, get the name from the products table if nombre_producto is empty
if ($product_id && empty($nombre_producto)) {
$stmt = $db->prepare("SELECT nombre FROM products WHERE id = ?");
$stmt->execute([$product_id]);
$product = $stmt->fetch(PDO::FETCH_ASSOC);
if ($product) {
$nombre_producto = $product['nombre'];
}
}
$stmt = $db->prepare("INSERT INTO ingreso_borrador (product_id, nombre_producto, cantidad_esperada, usuario_registro_id, observaciones) VALUES (?, ?, ?, ?, ?)");
$stmt->execute([$product_id, $nombre_producto, $cantidad_esperada, $userId, $observaciones]);
}
} elseif ($action === 'verify') {
$id = (int)($_POST['id'] ?? 0);
$cantidad_recibida = (int)($_POST['cantidad_recibida'] ?? 0);
$observaciones = $_POST['observaciones'] ?? '';
// Fetch expected quantity to determine status
$stmt = $db->prepare("SELECT cantidad_esperada FROM ingreso_borrador WHERE id = ?");
$stmt->execute([$id]);
$ingreso = $stmt->fetch(PDO::FETCH_ASSOC);
if ($ingreso) {
$estado = ($cantidad_recibida == $ingreso['cantidad_esperada']) ? 'Conforme' : 'Discrepancia';
$stmt = $db->prepare("UPDATE ingreso_borrador SET
cantidad_recibida = ?,
estado = ?,
usuario_verifico_id = ?,
observaciones = CONCAT(IFNULL(observaciones, ''), '\nVerificación: ', ?),
fecha_verificacion = NOW()
WHERE id = ?");
$stmt->execute([$cantidad_recibida, $estado, $userId, $observaciones, $id]);
}
}
header('Location: ingreso_mercaderia.php');
exit();