Files
shopdb/savedevice.asp
cproudlock 53fd7e2214 Consolidate PC machinetypeid: all PCs use 33, pctypeid determines type
- Simplified GetMachineTypeIdFromPCType() to always return 33 (PC)
- PC type differentiation now handled entirely by pctypeid
- Updated savedevice.asp: 28 -> 33
- Updated savedevice_direct.asp: 36 -> 33, added pctypeid
- Removed redundant machinetypeid mapping logic (36-43)
- All 317 existing PCs already use machinetypeid=33

Schema simplified:
  machinetypeid=33 (PC) + pctypeid determines specific type
  pctypeid: 1=Standard, 2=Engineer, 3=Shopfloor, 5=CMM, etc.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 07:53:27 -05:00

62 lines
2.1 KiB
Plaintext

<!--#include file="./includes/sql.asp"-->
<!--#include file="./includes/validation.asp"-->
<!--#include file="./includes/encoding.asp"-->
<!--#include file="./includes/error_handler.asp"-->
<!--#include file="./includes/db_helpers.asp"-->
<%
' Initialize error handling
Call InitializeErrorHandling("savedevice.asp")
' Get the serial number from the form
Dim serialnumber
serialnumber = Trim(Request.Form("serialnumber"))
' Validate serial number format and length
If Not ValidateSerialNumber(serialnumber) Then
Call CleanupResources()
Response.Redirect("./adddevice.asp?error=INVALID_SERIAL")
Response.End
End If
' Check if serial number already exists - PHASE 2: Use machines table
Dim checkSQL, rsCheck, existingMachineID
checkSQL = "SELECT machineid FROM machines WHERE serialnumber = ? AND pctypeid IS NOT NULL"
Set rsCheck = ExecuteParameterizedQuery(objConn, checkSQL, Array(serialnumber))
If Not rsCheck.EOF Then
' Serial number already exists - redirect to edit page
existingMachineID = rsCheck("machineid")
rsCheck.Close
Set rsCheck = Nothing
Call CleanupResources()
Response.Redirect("./editdevice.asp?pcid=" & existingMachineID & "&scanned=1")
Response.End
End If
rsCheck.Close
Set rsCheck = Nothing
' Insert new device with minimal required fields - PHASE 2: Use machines table
' machinestatusid = 2 (Inventory)
' isactive = 1
' modelnumberid = 1 (default model)
' requires_manual_machine_config = 0 (no manual config needed)
' osid = 1 (default OS)
' machinetypeid = 33 (PC), pctypeid = 1 (Standard)
Dim insertSQL, recordsAffected
insertSQL = "INSERT INTO machines (serialnumber, machinestatusid, isactive, modelnumberid, requires_manual_machine_config, osid, machinetypeid, pctypeid, lastupdated) " & _
"VALUES (?, 2, 1, 1, 0, 1, 33, 1, NOW())"
recordsAffected = ExecuteParameterizedInsert(objConn, insertSQL, Array(serialnumber))
' Cleanup and redirect
Call CleanupResources()
If recordsAffected > 0 Then
' Success - redirect back with success message
Response.Redirect("./adddevice.asp?added=" & Server.URLEncode(serialnumber))
Else
Response.Redirect("./adddevice.asp?error=db")
End If
%>