34849-vm/save_product.php
2026-02-12 16:50:14 +00:00

54 lines
2.1 KiB
PHP

<?php
session_start();
require_once 'db/config.php';
// Función para generar el código base a partir de las iniciales
function generar_codigo_base($nombre) {
$palabras = explode(' ', trim($nombre));
$iniciales = '';
foreach ($palabras as $palabra) {
if (!empty($palabra)) {
$iniciales .= strtoupper($palabra[0]);
}
}
return $iniciales;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Recoger todos los datos del formulario
$id = $_POST['id'] ?? null;
$nombre = $_POST['nombre'] ?? '';
$codigo_base = $_POST['codigo_base'] ?? '';
$sku = !empty($_POST['sku']) ? $_POST['sku'] : null;
$costo = !empty($_POST['costo']) ? (float)$_POST['costo'] : 0.00;
$precio_venta = !empty($_POST['precio_venta']) ? (float)$_POST['precio_venta'] : 0.00;
$description = $_POST['description'] ?? '';
$provincia_id = !empty($_POST['provincia_id']) ? $_POST['provincia_id'] : null;
$show_on_panel = isset($_POST['show_on_panel']) ? 1 : 0;
// Generar código base si está vacío
if (empty($codigo_base)) {
$codigo_base = generar_codigo_base($nombre);
}
$db = db();
if (!empty($id)) {
// Actualizar producto existente
$sql = "UPDATE products SET nombre = ?, sku = ?, costo = ?, precio_venta = ?, description = ?, provincia_id = ?, show_on_panel = ?, codigo_base = ? WHERE id = ?";
$stmt = $db->prepare($sql);
$stmt->execute([$nombre, $sku, $costo, $precio_venta, $description, $provincia_id, $show_on_panel, $codigo_base, $id]);
$_SESSION['success_message'] = "Producto actualizado exitosamente.";
} else {
// Crear nuevo producto
$sql = "INSERT INTO products (nombre, sku, costo, precio_venta, description, provincia_id, show_on_panel, codigo_base, unidades_vendidas) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0)";
$stmt = $db->prepare($sql);
$stmt->execute([$nombre, $sku, $costo, $precio_venta, $description, $provincia_id, $show_on_panel, $codigo_base]);
$_SESSION['success_message'] = "Producto creado exitosamente.";
}
header('Location: productos.php');
exit;
}
?>