<?php
$host = 'localhost';
$username = 'SYSDBA';
$password = 'masterkey';

$empresa = $_GET['empresa'] ?? '01';
$almacen = $_GET['almacen'] ?? '';

if (!preg_match('/^\d{1,2}$/', $empresa)) {
    http_response_code(400);
    echo json_encode(['error' => 'Empresa inválida']);
    exit;
}

$empresa = str_pad($empresa, 2, '0', STR_PAD_LEFT);

// Ruta a base de datos
$database = "C:\\Program Files (x86)\\Common Files\\Aspel\\Sistemas Aspel\\SAE7.00\\Empresa$empresa\\Datos\\SAE70EMPRE$empresa.FDB";

try {
    $dbh = new PDO("firebird:host=$host;dbname=$database;charset=UTF8", $username, $password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ]);

    // Consulta MULTIALMACEN desde PARAM_INVENTARIOxx
    $stmtMulti = $dbh->query("SELECT MULTIALMACEN FROM PARAM_INVENTARIO$empresa");
    $multiRow = $stmtMulti->fetch();

    $usaMulti = isset($multiRow['MULTIALMACEN']) && strtoupper($multiRow['MULTIALMACEN']) === 'T';

    if ($usaMulti) {
        if ($almacen !== '') {
            // Multialmacén con almacén específico
            $sql = "
                SELECT M.CVE_ART, I.DESCR, I.EXIST, I.UNI_MED, I.LIN_PROD, I.TIPO_ELE
                FROM MULT$empresa M
                JOIN INVE$empresa I ON M.CVE_ART = I.CVE_ART
                WHERE I.STATUS = 'A' AND M.CVE_ALM = :almacen
                ORDER BY M.CVE_ART ASC
            ";
            $stmt = $dbh->prepare($sql);
            $stmt->bindParam(':almacen', $almacen);
        } else {
            // Multialmacén sin almacén - sumar existencias
            $sql = "
                SELECT I.CVE_ART, I.DESCR, SUM(M.EXIST) AS EXIST, I.UNI_MED, I.LIN_PROD, I.TIPO_ELE
                FROM MULT$empresa M
                JOIN INVE$empresa I ON M.CVE_ART = I.CVE_ART
                WHERE I.STATUS = 'A'
                GROUP BY I.CVE_ART, I.DESCR, I.UNI_MED, I.LIN_PROD, I.TIPO_ELE
                ORDER BY I.CVE_ART ASC
            ";
            $stmt = $dbh->prepare($sql);
        }
    } else {
        // No usa multialmacén
        $sql = "
            SELECT I.CVE_ART, I.DESCR, I.EXIST, I.UNI_MED, I.LIN_PROD, I.TIPO_ELE
            FROM INVE$empresa I
            WHERE I.STATUS = 'A'
            ORDER BY I.CVE_ART ASC
        ";
        $stmt = $dbh->prepare($sql);
    }

    $stmt->execute();

    $productos = $stmt->fetchAll();

    // Agregar URL_IMAGEN con path seguro y simple
    foreach ($productos as &$row) {
        $clave = preg_replace('/[^a-zA-Z0-9_\-]/', '', $row['CVE_ART']);
        $row['URL_IMAGEN'] = "/imagenes-productos/{$clave}.jpg";
    }
    unset($row); // evitar referencias persistentes

    header('Content-Type: application/json; charset=utf-8');
    echo json_encode($productos, JSON_UNESCAPED_UNICODE);
} catch (PDOException $e) {
    http_response_code(500);
    echo json_encode(['error' => 'Error de base de datos: ' . $e->getMessage()]);
}
