diff --git a/backend/services/analyticsService.js b/backend/services/analyticsService.js index 295e27d..e7452b2 100644 --- a/backend/services/analyticsService.js +++ b/backend/services/analyticsService.js @@ -684,40 +684,32 @@ const getClientAnalytics = async (range = {}) => { return clients; }; -const getClientFilterOptions = async (range = {}) => { - const dateRange = { - start: range.start, - end: range.end - }; - const { params, whereClause } = buildDateFilter(dateRange); +const getClientFilterOptions = async () => { const [marketplaceResult, salesChannelResult, sellerResult] = await Promise.all([ pool.query(` SELECT DISTINCT NULLIF(TRIM(marketplace), '') as value FROM orders - ${whereClause} - AND NULLIF(TRIM(marketplace), '') IS NOT NULL + WHERE NULLIF(TRIM(marketplace), '') IS NOT NULL ORDER BY value ASC; - `, params), + `), pool.query(` SELECT DISTINCT NULLIF(TRIM(canal_venda), '') as value FROM orders - ${whereClause} - AND NULLIF(TRIM(canal_venda), '') IS NOT NULL + WHERE NULLIF(TRIM(canal_venda), '') IS NOT NULL ORDER BY value ASC; - `, params), + `), pool.query(` SELECT NULLIF(TRIM(id_vendedor), '') as id, NULLIF(TRIM(nome_vendedor), '') as name FROM orders - ${whereClause} - AND ( + WHERE ( NULLIF(TRIM(id_vendedor), '') IS NOT NULL OR NULLIF(TRIM(nome_vendedor), '') IS NOT NULL ) GROUP BY id, name ORDER BY COALESCE(name, id) ASC, id ASC; - `, params) + `) ]); const sellerOptionsByValue = new Map(); diff --git a/backend/test/analyticsService.test.js b/backend/test/analyticsService.test.js index 856558d..1d776a0 100644 --- a/backend/test/analyticsService.test.js +++ b/backend/test/analyticsService.test.js @@ -612,7 +612,7 @@ test('getClientAnalytics groups phone-less history through the customer identity } }); -test('getClientFilterOptions returns distinct date-scoped order metadata options', async () => { +test('getClientFilterOptions returns all distinct order metadata options', async () => { const originalQuery = pool.query; const calls = []; @@ -641,10 +641,12 @@ test('getClientFilterOptions returns distinct date-scoped order metadata options assert.equal(calls.length, 3); calls.forEach(call => { - assert.deepEqual(call.params, ['2026-06-01', '2026-06-15']); - assert.match(call.sql, /data_pedido_date >= \$1::date/); - assert.match(call.sql, /data_pedido_date <= \$2::date/); + assert.deepEqual(call.params, []); + assert.doesNotMatch(call.sql, /data_pedido_date >=/); + assert.doesNotMatch(call.sql, /data_pedido_date <=/); }); + assert.match(calls[0].sql, /WHERE NULLIF\(TRIM\(marketplace\), ''\) IS NOT NULL/); + assert.match(calls[2].sql, /NULLIF\(TRIM\(nome_vendedor\), ''\) IS NOT NULL/); assert.deepEqual(options.marketplaces, ['Mercado Livre', 'Shopee']); assert.deepEqual(options.salesChannels, ['Online']); assert.deepEqual(options.sellers, [