Device Information

Auto-fill from Device Register

Test Results (kPa)

kilopascals (kPa)
kilopascals (kPa)
kilopascals (kPa)

Accredited Plumber & Council

Recent Submissions

No submissions yet
Fill in the device info and test readings above, then hit Generate Form 9 PDF. Your council-ready PDF downloads immediately.
// ---- Device Register Picker ---- var _allDevices = [{"id":1,"client_id":1,"serial_number":"RPZ-2847-BCC","make":"Watts","model":"LF007QT","hazard_rating":"high","installation_date":null,"retest_date":"2026-11-30T00:00:00.000Z","device_type":"RPZ","location_on_property":"Main water meter — 88 Creek St, Brisbane QLD 4000","notes":null,"created_at":"2026-05-25T21:08:14.050Z","client_name":"Acme Properties QLD","client_address":"88 Creek St, Brisbane QLD 4000"},{"id":2,"client_id":2,"serial_number":"DCV-9034-BCC","make":"Reliance","model":"RDCV-200","hazard_rating":"medium","installation_date":null,"retest_date":"2027-01-15T00:00:00.000Z","device_type":"DCV","location_on_property":"Carpark fire system — 14 McCullough St, Sunnybank QLD 4109","notes":null,"created_at":"2026-05-25T21:08:21.834Z","client_name":"Sunnybank Medical Centre","client_address":"14 McCullough St, Sunnybank QLD 4109"}]; function hazardLabel(raw) { if (raw === 'high') return 'High Risk'; if (raw === 'medium') return 'Medium Risk'; if (raw === 'low') return 'Low Risk'; return raw || ''; } function fillDevice(device) { document.getElementById('device_serial').value = device.serial_number || ''; document.getElementById('device_make').value = device.make || ''; document.getElementById('device_model').value = device.model || ''; document.getElementById('hazard_rating').value = hazardLabel(device.hazard_rating); document.getElementById('installation_location').value = device.location_on_property || ''; } function clearDevice() { var fields = ['device_serial', 'device_make', 'device_model', 'hazard_rating', 'installation_location']; fields.forEach(function(f) { var el = document.getElementById(f); if (el) { if (el.tagName === 'SELECT') el.selectedIndex = 0; else el.value = ''; } }); } var clientSelect = document.getElementById('picker_client'); var deviceSelect = document.getElementById('picker_device'); var fillBtn = document.getElementById('fill_device_btn'); var clearBtn = document.getElementById('clear_device_btn'); if (clientSelect && deviceSelect && fillBtn && clearBtn) { clientSelect.addEventListener('change', function() { var clientId = parseInt(this.value, 10); deviceSelect.innerHTML = ''; deviceSelect.disabled = true; fillBtn.disabled = true; clearBtn.disabled = true; if (!clientId) return; var filtered = _allDevices.filter(function(d) { return d.client_id === clientId; }); filtered.forEach(function(d) { var opt = document.createElement('option'); opt.value = d.id; var label = (d.serial_number || '?') + (d.make ? ' — ' + d.make : '') + (d.model ? ' ' + d.model : ''); opt.textContent = label; deviceSelect.appendChild(opt); }); deviceSelect.disabled = false; }); deviceSelect.addEventListener('change', function() { fillBtn.disabled = !this.value; clearBtn.disabled = !this.value; }); fillBtn.addEventListener('click', function() { var deviceId = parseInt(deviceSelect.value, 10); if (!deviceId) return; var device = _allDevices.find(function(d) { return d.id === deviceId; }); if (device) fillDevice(device); }); clearBtn.addEventListener('click', function() { clearDevice(); clientSelect.value = ''; deviceSelect.innerHTML = ''; deviceSelect.disabled = true; fillBtn.disabled = true; clearBtn.disabled = true; }); } // ---- Submit button wires into hidden form ---- document.querySelector('.btn-primary').addEventListener('click', function(e) { const form = document.getElementById('form9-form'); // Copy all input values from visible fields into the hidden form before submit. ['device_serial', 'device_make', 'device_model', 'hazard_rating', 'installation_location', 'check_valve_1', 'check_valve_2', 'relief_valve', 'tester_name', 'tester_licence', 'test_date', 'council_name'].forEach(function(name) { const src = document.querySelector('[name="' + name + '"]'); if (src) { let existing = form.querySelector('[name="' + name + '"]'); if (!existing) { existing = document.createElement('input'); existing.type = 'hidden'; existing.name = name; form.appendChild(existing); } existing.value = src.value; } }); form.submit(); });