-- Basada en `stock_agustina_store3.sql`:
-- Devuelve SOLO los productos cuya `_stock_tienda_agustina` difiere
-- de la suma de `stocks_por_tiendas` para store=3 y area_id IN (3,4).
SELECT
    p.ID AS producto_id,
    p.post_title AS nombre_producto,
    sku.meta_value AS sku,
    agustina.meta_value AS stock_tienda_agustina,
    tienda.meta_value AS stock_tienda,
    (
        SELECT SUM(spt.stock)
        FROM stocks_por_tiendas spt
        WHERE spt.producto_id = p.ID
          AND spt.store = 3
          AND spt.area_id IN (3, 4)
    ) AS stock_store3_area3_4
FROM wp_posts p
LEFT JOIN wp_postmeta sku
    ON sku.post_id = p.ID AND sku.meta_key = '_sku'
LEFT JOIN wp_postmeta agustina
    ON agustina.post_id = p.ID AND agustina.meta_key = '_stock_tienda_agustina'
LEFT JOIN wp_postmeta tienda
    ON tienda.post_id = p.ID AND tienda.meta_key = '_stock_tienda'
LEFT JOIN wp_postmeta tipo
    ON tipo.post_id = p.ID AND tipo.meta_key = '_producto_tipo'
WHERE p.post_type = 'product'
  AND tipo.meta_value = '1'
  -- Comparamos el valor guardado en postmeta con la suma calculada.
  -- Usamos COALESCE para tratar NULLs y CAST para comparar numéricamente.
  AND CAST(COALESCE(agustina.meta_value, '0') AS SIGNED) <> COALESCE(
        (
            SELECT SUM(spt2.stock)
            FROM stocks_por_tiendas spt2
            WHERE spt2.producto_id = p.ID
              AND spt2.store = 3
              AND spt2.area_id IN (3,4)
        ),
        0
    )
ORDER BY CAST(COALESCE(agustina.meta_value, '0') AS UNSIGNED) ASC;
