sync-legacy: scoreboard abos = F brut status=1 (écart positif = fantômes retirés d'ERPNext) + note clarifiée
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
29589597b1
commit
5783ec30b9
|
|
@ -540,8 +540,8 @@ async function scoreboard () {
|
|||
const [fAcct, fSvcActive, fDelivery, fTicket, fInvoice, fPayment, fDevice,
|
||||
eCust, eSubActif, eLoc, eIssue, eInv, ePay, eDevice, ghost] = await Promise.all([
|
||||
myc('SELECT COUNT(*) c FROM account'),
|
||||
// F actif = service.status=1 SUR compte non-résilié (F ne cascade pas la résiliation → comptage brut gonflé) : comparé pomme-à-pomme au 'Actif' ERPNext maintenant nettoyé
|
||||
myc('SELECT COUNT(*) c FROM service s JOIN delivery d ON d.id=s.delivery_id JOIN account a ON a.id=d.account_id WHERE s.status=1 AND a.status NOT IN (3,4,5)'),
|
||||
// F actif = service.status=1 BRUT (ce que F croit actif, fantômes F-non-cascadés inclus) ; l'écart positif = fantômes avérés qu'ERPNext a retirés (raffinage 2026-07-06)
|
||||
myc('SELECT COUNT(*) c FROM service WHERE status=1'),
|
||||
myc('SELECT COUNT(*) c FROM delivery'),
|
||||
myc('SELECT COUNT(*) c FROM ticket'),
|
||||
myc('SELECT COUNT(*) c FROM invoice'),
|
||||
|
|
@ -564,7 +564,7 @@ async function scoreboard () {
|
|||
entities: [
|
||||
row('customers', 'Clients', fAcct, eCust, 'F account ↔ Customer'),
|
||||
row('locations', 'Lieux de service', fDelivery, eLoc, 'F delivery ↔ Service Location'),
|
||||
row('subscriptions', 'Abonnements actifs', fSvcActive, eSubActif, ghost ? `${ghost} actifs sur compte résilié — à revoir (fantômes payants >24 mois auto-annulés)` : 'F actif hors compte résilié ↔ Actif'),
|
||||
row('subscriptions', 'Abonnements actifs', fSvcActive, eSubActif, `écart = fantômes avérés retirés d'ERPNext (payants, résiliés, F silencieux >24 mois) ; ${ghost} actifs sur compte résilié restants à revoir`),
|
||||
row('devices', 'Appareils', fDevice, eDevice, 'F device ↔ Service Equipment (liens orphelins possibles)'),
|
||||
row('tickets', 'Tickets', fTicket, eIssue, 'F ticket ↔ Issue (import à réparer)'),
|
||||
row('invoices', 'Factures', fInvoice, eInv, 'F invoice ↔ Sales Invoice'),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user