fix(legacy-report): treat accounts with a company name as commercial
98 business accounts had commercial=0 but a company name (Ferme X Inc., Ville de Farnham, Les Jardins Sorel…), leaking into the residential report. Rule is now: commercial = (commercial flag) OR (company present). Residential @90$ drops 739→654 (0 company-bearing rows left); commercial 244→276. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
b01cf19db6
commit
c4bf18fdcb
|
|
@ -117,9 +117,15 @@ function buildQuery (url) {
|
||||||
const cats = includeAddons ? [...CAT_INTERNET_CORE, ...CAT_INTERNET_ADDONS] : CAT_INTERNET_CORE
|
const cats = includeAddons ? [...CAT_INTERNET_CORE, ...CAT_INTERNET_ADDONS] : CAT_INTERNET_CORE
|
||||||
const catPlaceholders = cats.map(() => '?').join(',')
|
const catPlaceholders = cats.map(() => '?').join(',')
|
||||||
|
|
||||||
|
// A non-empty company name means a business even when the legacy `commercial`
|
||||||
|
// flag wasn't set — 98 such accounts (Ferme X Inc., Assurances …, Ville de
|
||||||
|
// Farnham, Les Jardins Sorel) leaked into "residential". So the rule is:
|
||||||
|
// commercial = (commercial flag set) OR (company name present). Residential
|
||||||
|
// therefore excludes any account carrying a company name.
|
||||||
|
const HAS_COMPANY = "(a.company IS NOT NULL AND TRIM(a.company) <> '')"
|
||||||
let commercialClause = ''
|
let commercialClause = ''
|
||||||
if (segment === 'residential') commercialClause = 'AND a.commercial = 0'
|
if (segment === 'residential') commercialClause = `AND a.commercial = 0 AND NOT ${HAS_COMPANY}`
|
||||||
else if (segment === 'commercial') commercialClause = 'AND a.commercial = 1'
|
else if (segment === 'commercial') commercialClause = `AND (a.commercial = 1 OR ${HAS_COMPANY})`
|
||||||
|
|
||||||
const sql = `
|
const sql = `
|
||||||
SELECT
|
SELECT
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user