gigafibre-fsm/scripts/migration/check_gl_dates.py
louispaulb 607ea54b5c refactor: reduce token count, DRY code, consolidate docs
Backend services:
- targo-hub: extract deepGetValue to helpers.js, DRY disconnect reasons
  lookup map, compact CAPABILITIES, consolidate vision.js prompts/schemas,
  extract dispatch scoring weights, trim section dividers across 9 files
- modem-bridge: extract getSession() helper (6 occurrences), resetIdleTimer(),
  consolidate DM query factory, fix duplicate username fill bug, trim headers
  (server.js -36%, tplink-session.js -47%, docker-compose.yml -57%)

Frontend:
- useWifiDiagnostic: extract THRESHOLDS const, split processDiagnostic into
  6 focused helpers (processOnlineStatus, processWanIPs, processRadios,
  processMeshNodes, processClients, checkRadioIssues)
- EquipmentDetail: merge duplicate ROLE_LABELS, remove verbose comments

Documentation (17 → 13 files, -1,400 lines):
- New consolidated README.md (architecture, services, dependencies, auth)
- Merge ECOSYSTEM-OVERVIEW into ARCHITECTURE.md
- Merge MIGRATION-PLAN + ARCHITECTURE-COMPARE + FIELD-GAP + CHANGELOG → MIGRATION.md
- Merge COMPETITIVE-ANALYSIS into PLATFORM-STRATEGY.md
- Update ROADMAP.md with current phase status
- Delete CONTEXT.md (absorbed into README)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 08:39:58 -04:00

29 lines
976 B
Python

"""Check GL entry date distribution for income accounts."""
import frappe, os, sys
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 1)
os.chdir("/home/frappe/frappe-bench/sites")
frappe.init(site="erp.gigafibre.ca", sites_path=".")
frappe.connect()
r = frappe.db.sql("""
SELECT EXTRACT(YEAR FROM posting_date)::int as y,
EXTRACT(MONTH FROM posting_date)::int as m,
COUNT(*)
FROM "tabGL Entry"
WHERE account LIKE %s AND credit > 0
GROUP BY y, m
ORDER BY y, m
""", ('4020%',))
print("GL entries for 4020 (Mensualite fibre) by month:")
for row in r:
print(f" {int(row[0])}-{int(row[1]):02d}: {row[2]} entries")
# Total GL entry date range
r2 = frappe.db.sql("""
SELECT MIN(posting_date), MAX(posting_date), COUNT(*)
FROM "tabGL Entry" WHERE credit > 0 AND account NOT LIKE %s AND account NOT LIKE %s
""", ('Comptes%', '%payer%'))
print(f"\nAll income GL: min={r2[0][0]} max={r2[0][1]} count={r2[0][2]}")
frappe.destroy()