Skip to content

Void Weekly Flushing Form

Status: DISCOVERY (2026-07-01). Design captured; strip-back rebuild deferred until Pete's Task Centre job populates CPLEGVOIDFLUSH component data in Test. Full discovery + field map: scratch/Void_Weekly_Flushing_discovery.md.

Purpose

LHP must flush the water systems of unoccupied (void) properties weekly to prevent legionella buildup. Operatives open this Versaa form at each property to record the flush and update the property's CPLEGVOIDFLUSH (Legionella Void Flush) component. Owned by Peter Steele (QL + reports) and Imran Saleem (the form). The current live form is v50 — bloated with unused FRA/insight/audit fields; the plan is a strip-back in place, not a from-scratch rebuild.

Work split (Void Weekly Flushing programme)

  1. (Pete) Task Centre job — stamps CPLEGVOIDFLUSH on every void + a maintenance cycle.
  2. (Pete) Report — which properties need flushing (planners allocate the visits).
  3. (Imran) This form — reads the component, asks the minimal questions, updates the component.
  4. (Pete) Exception reporting — void with active tenancy → remove component; on-hold flags.

What already works (verified 2026-07-01)

The read and cycle-date write-back pipelines exist and are already pointed at CPLEGVOIDFLUSH, cycle 2:

  • Read: Week Void Flush App Data (v4) — on Void Weekly Flushing.AppendPCAData, block-level SQL over hgmprcom + hgmpccyc (cmpnt_ref='CPLEGVOIDFLUSH', cycle_no=2, hgmblckd.block_prty=@BlockID) → returns last_date, next_date, duration, cmpnt_ref, seq_no, location, address into the form's Void Properties group.
  • Write: Weekly Void Flushing Prty Comp (v7), step Update QL Comp Cycle — INSERTs into the hgm1stuy audit table from hgmpccyc (@LastDate, next_date = last_date + duration); QL interface applies it to live hgmpccyc. Fired via the generic <form>.UpdatePCAComponent event (shared by ~two dozen compliance forms).
  • Contact: the form already carries the QLwat_* QL-contact block incl. Use Property Void Client No for "Create Contact for Voids" (same void-client pattern that unblocked Void Survey ticket 21617 — see void-survey.md).

What is missing (the actual work)

Read (extend the SELECT — Pete's side): the query already joins hgmprcom but doesn't select the descriptive columns. Add maker (→ *Make/SYSTEMTYPE), model_no (→ 'COMMUNAL' when CHTGCOMMUNAL exists), descriptn, cond_code, plus HRAVOID.desn (void status via hgmprty1.void_stat) and lot_id (chemical clean-down). None are read today.

Write (extend — Pete's side): the current write updates only the cycle date. The spec also needs component-master (hgmprcom) writes — COND_CODE='On_hold', *make/model_no on first visit — and appending the "why not flushed" text to Property Component Notes. Those paths don't exist yet.

Form (strip-back — Imran's side): drop the v50 clutter; add a SystemType (Simple/Stored) drop-down + first-visit detection; implement Pete's branch flow (ON HOLD → stop; Simple vs Stored; communal short route; "used in last 28 days"; 15-min first flush vs 2-min subsequent; signage/CRM-classification → COND_CODE=On_hold; "why not flushed" text box); wire leaves to the existing write-back and void-contact blocks.

Full field map

See scratch/Void_Weekly_Flushing_discovery.md — spec field → QL source → read/write status → form field → action needed. That doc is also the handoff to Pete for the QL-side asks.