- Fix dualpath PC propagation direction (Equipment->PC) in api.asp and db_helpers.asp - Fix early exit in CreatePCMachineRelationship preventing propagation - Fix getShopfloorPCs to filter machinetypeid IN (33,34,35) instead of >= 33 - Fix getShopfloorPCs to show equipment numbers via GROUP_CONCAT subquery - Add detailed PropagateDP logging for dualpath debugging - Default "Show on Shopfloor Dashboard" checkbox to checked in addnotification.asp - Add USB label batch printing, single USB labels, and USB history pages - Add printer supplies tracking and toner report enhancements - Add uptime map visualization page - Add dashboard/lobby display SQL migration - Update CLAUDE.md with IIS 401 workaround documentation - Update TODO.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
182 lines
5.8 KiB
Plaintext
182 lines
5.8 KiB
Plaintext
<%
|
|
' Returns both standard and metered part numbers as pipe-delimited string
|
|
' Format: "standard|metered" or just "standard" if no metered option
|
|
Function GetSupplyPartNumbers(printerModel, supplyName)
|
|
On Error Resume Next
|
|
Dim pn, sn, isDrum, isWaste, stdPN, metPN
|
|
pn = UCase(printerModel)
|
|
sn = UCase(supplyName)
|
|
isDrum = (InStr(sn, "DRUM") > 0 Or InStr(sn, "IMAGING") > 0)
|
|
isWaste = (InStr(sn, "WASTE") > 0)
|
|
stdPN = ""
|
|
metPN = ""
|
|
|
|
' VersaLink C415
|
|
If InStr(pn, "C415") > 0 Then
|
|
If isWaste Then
|
|
stdPN = "008R13335"
|
|
ElseIf isDrum Then
|
|
stdPN = "013R00701"
|
|
ElseIf InStr(sn, "BLACK") > 0 Then
|
|
stdPN = "006R04677"
|
|
metPN = "006R04681"
|
|
ElseIf InStr(sn, "CYAN") > 0 Then
|
|
stdPN = "006R04678"
|
|
metPN = "006R04682"
|
|
ElseIf InStr(sn, "MAGENTA") > 0 Then
|
|
stdPN = "006R04679"
|
|
metPN = "006R04683"
|
|
ElseIf InStr(sn, "YELLOW") > 0 Then
|
|
stdPN = "006R04680"
|
|
metPN = "006R04684"
|
|
End If
|
|
|
|
' VersaLink C405
|
|
ElseIf InStr(pn, "C405") > 0 Then
|
|
If isWaste Then
|
|
stdPN = "108R01124"
|
|
ElseIf isDrum Then
|
|
stdPN = "101R00555"
|
|
ElseIf InStr(sn, "BLACK") > 0 Then
|
|
stdPN = "106R03500"
|
|
ElseIf InStr(sn, "CYAN") > 0 Then
|
|
stdPN = "106R03501"
|
|
ElseIf InStr(sn, "MAGENTA") > 0 Then
|
|
stdPN = "106R03502"
|
|
ElseIf InStr(sn, "YELLOW") > 0 Then
|
|
stdPN = "106R03503"
|
|
End If
|
|
|
|
' VersaLink C7125/C7100
|
|
ElseIf InStr(pn, "C7125") > 0 Or InStr(pn, "C7100") > 0 Then
|
|
If isWaste Then
|
|
stdPN = "115R00129"
|
|
ElseIf isDrum Then
|
|
stdPN = "013R00688"
|
|
ElseIf InStr(sn, "BLACK") > 0 Then
|
|
stdPN = "006R01824"
|
|
metPN = "006R01820"
|
|
ElseIf InStr(sn, "CYAN") > 0 Then
|
|
stdPN = "006R01825"
|
|
metPN = "006R01821"
|
|
ElseIf InStr(sn, "MAGENTA") > 0 Then
|
|
stdPN = "006R01826"
|
|
metPN = "006R01822"
|
|
ElseIf InStr(sn, "YELLOW") > 0 Then
|
|
stdPN = "006R01827"
|
|
metPN = "006R01823"
|
|
End If
|
|
|
|
' VersaLink B7125
|
|
ElseIf InStr(pn, "B7125") > 0 Then
|
|
If isWaste Then
|
|
stdPN = "115R00129"
|
|
ElseIf isDrum Then
|
|
stdPN = "013R00687"
|
|
ElseIf InStr(sn, "BLACK") > 0 Or InStr(sn, "TONER") > 0 Then
|
|
stdPN = "006R01818"
|
|
metPN = "006R01819"
|
|
End If
|
|
|
|
' VersaLink B405
|
|
ElseIf InStr(pn, "B405") > 0 Then
|
|
If isWaste Then
|
|
stdPN = "108R01124"
|
|
ElseIf isDrum Then
|
|
stdPN = "101R00554"
|
|
ElseIf InStr(sn, "BLACK") > 0 Or InStr(sn, "TONER") > 0 Then
|
|
stdPN = "106R03580"
|
|
End If
|
|
|
|
' AltaLink C8135
|
|
ElseIf InStr(pn, "C8135") > 0 Then
|
|
If isWaste Then
|
|
stdPN = "008R08101"
|
|
ElseIf isDrum Then
|
|
stdPN = "013R00681"
|
|
ElseIf InStr(sn, "BLACK") > 0 Then
|
|
stdPN = "006R01746"
|
|
ElseIf InStr(sn, "CYAN") > 0 Then
|
|
stdPN = "006R01747"
|
|
ElseIf InStr(sn, "MAGENTA") > 0 Then
|
|
stdPN = "006R01748"
|
|
ElseIf InStr(sn, "YELLOW") > 0 Then
|
|
stdPN = "006R01749"
|
|
End If
|
|
|
|
' Xerox EC8036/AltaLink C8036 (compatible with WC7800 and AltaLink C80xx toner)
|
|
ElseIf InStr(pn, "EC8036") > 0 Or InStr(pn, "C8036") > 0 Then
|
|
Dim altPN
|
|
altPN = ""
|
|
If isWaste Then
|
|
stdPN = "008R13061"
|
|
ElseIf isDrum Then
|
|
stdPN = "013R00677"
|
|
ElseIf InStr(sn, "BLACK") > 0 Then
|
|
stdPN = "006R01509"
|
|
altPN = "006R01697"
|
|
metPN = "006R01701"
|
|
ElseIf InStr(sn, "CYAN") > 0 Then
|
|
stdPN = "006R01512"
|
|
altPN = "006R01698"
|
|
metPN = "006R01702"
|
|
ElseIf InStr(sn, "MAGENTA") > 0 Then
|
|
stdPN = "006R01511"
|
|
altPN = "006R01699"
|
|
metPN = "006R01703"
|
|
ElseIf InStr(sn, "YELLOW") > 0 Then
|
|
stdPN = "006R01510"
|
|
altPN = "006R01700"
|
|
metPN = "006R01704"
|
|
End If
|
|
' Return all 3 options for EC8036
|
|
If altPN <> "" Then
|
|
GetSupplyPartNumbers = stdPN & "|" & altPN & "|" & metPN
|
|
Exit Function
|
|
End If
|
|
|
|
' HP LaserJet Pro M454dw / M454dn / MFP M479fdw / M479fdn (414A/414X series)
|
|
ElseIf InStr(pn, "M454") > 0 Or InStr(pn, "M479") > 0 Then
|
|
If InStr(sn, "BLACK") > 0 Then
|
|
stdPN = "W2020A"
|
|
metPN = "W2020X"
|
|
ElseIf InStr(sn, "CYAN") > 0 Then
|
|
stdPN = "W2021A"
|
|
metPN = "W2021X"
|
|
ElseIf InStr(sn, "MAGENTA") > 0 Then
|
|
stdPN = "W2023A"
|
|
metPN = "W2023X"
|
|
ElseIf InStr(sn, "YELLOW") > 0 Then
|
|
stdPN = "W2022A"
|
|
metPN = "W2022X"
|
|
End If
|
|
|
|
' HP LaserJet Pro M251nw / M252dw / MFP M277dw (201A/201X series)
|
|
ElseIf InStr(pn, "M251") > 0 Or InStr(pn, "M252") > 0 Or InStr(pn, "M277") > 0 Then
|
|
If InStr(sn, "BLACK") > 0 Then
|
|
stdPN = "CF400A"
|
|
metPN = "CF400X"
|
|
ElseIf InStr(sn, "CYAN") > 0 Then
|
|
stdPN = "CF401A"
|
|
metPN = "CF401X"
|
|
ElseIf InStr(sn, "MAGENTA") > 0 Then
|
|
stdPN = "CF403A"
|
|
metPN = "CF403X"
|
|
ElseIf InStr(sn, "YELLOW") > 0 Then
|
|
stdPN = "CF402A"
|
|
metPN = "CF402X"
|
|
End If
|
|
End If
|
|
|
|
If metPN <> "" Then
|
|
GetSupplyPartNumbers = stdPN & "|" & metPN
|
|
Else
|
|
GetSupplyPartNumbers = stdPN
|
|
End If
|
|
End Function
|
|
|
|
Function IsWasteSupply(supplyName)
|
|
IsWasteSupply = (InStr(1, UCase(supplyName), "WASTE") > 0)
|
|
End Function
|
|
%>
|