hotfix: corrige 500 en /customers y /historical-sales
- customers_bp: last_purchase no existe como columna; se calcula via subquery a sales. - pos_bp: historical_sales no existe en tenants sin importacion; endpoint devuelve lista vacia en lugar de 500. - Servicio reiniciado y validado. Tests: 35 passed
This commit is contained in:
@@ -80,7 +80,8 @@ def list_customers():
|
|||||||
SELECT c.id, c.name, c.rfc, c.razon_social, c.phone, c.email,
|
SELECT c.id, c.name, c.rfc, c.razon_social, c.phone, c.email,
|
||||||
c.address, c.cp,
|
c.address, c.cp,
|
||||||
c.price_tier, c.credit_limit, c.credit_balance, c.vehicle_info,
|
c.price_tier, c.credit_limit, c.credit_balance, c.vehicle_info,
|
||||||
c.branch_id, c.is_active, c.created_at, c.last_purchase
|
c.branch_id, c.is_active, c.created_at,
|
||||||
|
(SELECT MAX(s.created_at) FROM sales s WHERE s.customer_id = c.id) AS last_purchase
|
||||||
FROM customers c
|
FROM customers c
|
||||||
WHERE {where}
|
WHERE {where}
|
||||||
ORDER BY c.name
|
ORDER BY c.name
|
||||||
|
|||||||
@@ -338,6 +338,16 @@ def list_historical_sales():
|
|||||||
|
|
||||||
where = " AND ".join(where_clauses)
|
where = " AND ".join(where_clauses)
|
||||||
|
|
||||||
|
# Defensive: the historical_sales table is created on demand by imports.
|
||||||
|
# If it does not exist yet, return an empty list instead of a 500.
|
||||||
|
cur.execute("SELECT to_regclass('historical_sales')")
|
||||||
|
if cur.fetchone()[0] is None:
|
||||||
|
cur.close(); conn.close()
|
||||||
|
return jsonify({
|
||||||
|
'data': [],
|
||||||
|
'pagination': {'page': page, 'per_page': per_page, 'total': 0, 'total_pages': 0}
|
||||||
|
})
|
||||||
|
|
||||||
cur.execute(f"SELECT count(*) FROM historical_sales WHERE {where}", params)
|
cur.execute(f"SELECT count(*) FROM historical_sales WHERE {where}", params)
|
||||||
total = cur.fetchone()[0]
|
total = cur.fetchone()[0]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user