diff --git a/apps/ops/src/api/reports.js b/apps/ops/src/api/reports.js index c551e93..82ee17c 100644 --- a/apps/ops/src/api/reports.js +++ b/apps/ops/src/api/reports.js @@ -10,6 +10,21 @@ async function hubFetch (path) { return res.json() } +/** + * Per-address provider lookup (Québec IHV open data) for a batch of addresses. + * @param {Array<{key,address1,city,zip}>} items (max 80 per call) + * @returns {Promise<{results: Record}>} + */ +export async function lookupServiceabilityBatch (items) { + const res = await fetch(HUB + '/serviceability/lookup-batch', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ items }), + }) + if (!res.ok) throw new Error('Serviceability API error: ' + res.status) + return res.json() +} + /** * Revenue report — GL entries grouped by Income account and month * @param {string} start YYYY-MM-DD diff --git a/apps/ops/src/pages/ReportInternetCherPage.vue b/apps/ops/src/pages/ReportInternetCherPage.vue index b038ca4..98978be 100644 --- a/apps/ops/src/pages/ReportInternetCherPage.vue +++ b/apps/ops/src/pages/ReportInternetCherPage.vue @@ -4,6 +4,11 @@
Clients qui paient cher — Internet
+ + Vérifie, pour chaque adresse, les fournisseurs Internet disponibles (données ouvertes Québec IHV). Cogeco surligné = alternative existante = risque de churn. + @@ -69,6 +74,13 @@
{{ formatMoney(totalDiscounts) }}
+
+
+
Cogeco disponible
+
{{ cogecoCount }}
+
{{ svcBusy ? `vérifié ${svcProgress.done}/${svcProgress.total}` : 'risque de churn' }}
+
+
@@ -145,12 +157,29 @@ -