diff --git a/displayprinter.asp b/displayprinter.asp index 6cad6b2..f726583 100644 --- a/displayprinter.asp +++ b/displayprinter.asp @@ -280,26 +280,53 @@ Else ' Try to convert to numeric On Error Resume Next - Dim numericValue, progressClass + Dim numericValue, progressClass, displayValue, isWaste numericValue = CDbl(itemValue) If Err.Number = 0 Then - ' Determine progress bar color based on level - If numericValue < 10 Then - progressClass = "bg-danger" ' Red for critical (< 10%) - ElseIf numericValue < 25 Then - progressClass = "bg-warning" ' Yellow for low (< 25%) + ' Check if this is a waste cartridge (invert the logic) + isWaste = (InStr(1, itemName, "Waste", 1) > 0) + + If isWaste Then + ' For waste cartridges: 0 = OK (100% capacity), 1 = Replace (0% capacity) + ' If binary (0 or 1), convert to percentage first + If numericValue <= 1 Then + ' Binary value: 0 or 1 + displayValue = 100 - (numericValue * 100) + Else + ' Percentage value: invert it + displayValue = 100 - numericValue + End If + + ' Color logic for waste capacity + If displayValue < 10 Then + progressClass = "bg-danger" ' Red for critical (< 10% capacity remaining) + ElseIf displayValue < 25 Then + progressClass = "bg-warning" ' Yellow for low (< 25% capacity remaining) + Else + progressClass = "bg-success" ' Green for good (>= 25% capacity remaining) + End If Else - progressClass = "bg-success" ' Green for good (>= 25%) + ' Normal supplies: show value as-is + displayValue = numericValue + + ' Normal color logic + If numericValue < 10 Then + progressClass = "bg-danger" ' Red for critical (< 10%) + ElseIf numericValue < 25 Then + progressClass = "bg-warning" ' Yellow for low (< 25%) + Else + progressClass = "bg-success" ' Green for good (>= 25%) + End If End If ' Display supply level with progress bar Response.Write("