Fix reports charts to count only PCs, exclude PCs from equipment list

charts/udcchart.asp, charts/ma3chart.asp:
- Add COALESCE to handle NULL aggregate values
- Add NULL checks for VBScript CInt operations
- Change machinecount to only count PCs (pctypeid IS NOT NULL)
- UDC/CLM/MA3 apps only exist on PCs, not equipment

displaymachines.asp:
- Add machinetypeid < 33 filter to exclude PC machine types
- PCs with NULL pctypeid were incorrectly showing on equipment list

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
cproudlock
2025-12-09 16:37:12 -05:00
parent 40e14520e2
commit 7b6ae1ad4c
2 changed files with 12 additions and 7 deletions

View File

@@ -1,11 +1,13 @@
<%
strSQL2 = "SELECT sum(case when appid = '42' then 1 else 0 end) AS ma3count," &_
"(SELECT COUNT(*) FROM machines WHERE machines.isactive=1 AND machines.islocationonly=0) AS machinecount "& _
' Count only PCs (pctypeid IS NOT NULL) for MA3 stats
strSQL2 = "SELECT COALESCE(sum(case when appid = '42' then 1 else 0 end), 0) AS ma3count," &_
"(SELECT COUNT(*) FROM machines WHERE machines.isactive=1 AND machines.pctypeid IS NOT NULL) AS machinecount "& _
"FROM installedapps WHERE appid=42 and installedapps.isactive=1"
set rs2 = objconn.Execute(strSQL2)
ma3count = rs2("ma3count")
machinecount = rs2("machinecount")
If IsNull(ma3count) Or ma3count = "" Then ma3count = 0
If IsNull(machinecount) Or machinecount = "" Or CInt(machinecount) = 0 Then machinecount = 1
ma2count = CInt(machinecount) - CInt(ma3count)
ma3pct = FormatNumber(CInt(ma3count)/Cint(machinecount)*100,2)
ma2pct = FormatNumber(CInt(ma2count)/Cint(machinecount)*100,2)

View File

@@ -2,15 +2,18 @@
<script src="assets/js/jquery.min.js"></script>
<%
strSQL = "SELECT sum(case when appid = '4' then 1 else 0 end) AS clmcount," &_
"sum(case when appid = '2' then 1 else 0 end) AS udccount, "&_
"(SELECT COUNT(*) FROM machines WHERE machines.isactive=1 AND machines.islocationonly=0) AS machinecount "& _
' Count only PCs (pctypeid IS NOT NULL) for UDC/CLM stats
strSQL = "SELECT COALESCE(sum(case when appid = '4' then 1 else 0 end), 0) AS clmcount," &_
"COALESCE(sum(case when appid = '2' then 1 else 0 end), 0) AS udccount, "&_
"(SELECT COUNT(*) FROM machines WHERE machines.isactive=1 AND machines.pctypeid IS NOT NULL) AS machinecount "& _
"FROM installedapps WHERE appid IN (2,4) and installedapps.isactive=1"
set rs = objconn.Execute(strSQL)
clmcount = rs("clmcount")
udccount = rs("udccount")
machinecount = rs("machinecount")
If IsNull(clmcount) Or clmcount = "" Then clmcount = 0
If IsNull(udccount) Or udccount = "" Then udccount = 0
If IsNull(machinecount) Or machinecount = "" Or CInt(machinecount) = 0 Then machinecount = 1
nocollections = CInt(machinecount) - CInt(clmcount) - CInt(udccount)
udcpct = FormatNumber(CInt(udccount)/Cint(machinecount)*100,2)
clmpct = FormatNumber(CInt(clmcount)/Cint(machinecount)*100,2)