<% ' Get and validate all inputs Dim machineid, modelid, machinetypeid, businessunitid, printerid, mapleft, maptop machineid = Trim(Request.Querystring("machineid")) modelid = Trim(Request.Form("modelid")) machinetypeid = Trim(Request.Form("machinetypeid")) businessunitid = Trim(Request.Form("businessunitid")) printerid = Trim(Request.Form("printerid")) mapleft = Trim(Request.Form("mapleft")) maptop = Trim(Request.Form("maptop")) ' Get form inputs for new business unit Dim newbusinessunit newbusinessunit = Trim(Request.Form("newbusinessunit")) ' Get form inputs for new machine type Dim newmachinetype, newmachinedescription, newfunctionalaccountid newmachinetype = Trim(Request.Form("newmachinetype")) newmachinedescription = Trim(Request.Form("newmachinedescription")) newfunctionalaccountid = Trim(Request.Form("newfunctionalaccountid")) ' Get form inputs for new functional account Dim newfunctionalaccount newfunctionalaccount = Trim(Request.Form("newfunctionalaccount")) ' Get form inputs for new model Dim newmodelnumber, newvendorid, newmodelimage newmodelnumber = Trim(Request.Form("newmodelnumber")) newvendorid = Trim(Request.Form("newvendorid")) newmodelimage = Trim(Request.Form("newmodelimage")) ' Get form inputs for new vendor Dim newvendorname newvendorname = Trim(Request.Form("newvendorname")) ' Validate required fields If Not IsNumeric(machineid) Or CLng(machineid) < 1 Then Response.Write("
Error: Invalid machine ID.
") Response.Write("Go back") objConn.Close Response.End End If If modelid <> "new" And (Not IsNumeric(modelid)) Then Response.Write("
Error: Invalid model ID.
") Response.Write("Go back") objConn.Close Response.End End If If machinetypeid <> "new" And (Not IsNumeric(machinetypeid)) Then Response.Write("
Error: Invalid machine type ID.
") Response.Write("Go back") objConn.Close Response.End End If If businessunitid <> "new" And (Not IsNumeric(businessunitid)) Then Response.Write("
Error: Invalid business unit ID.
") Response.Write("Go back") objConn.Close Response.End End If ' Handle new business unit creation If businessunitid = "new" Then If Len(newbusinessunit) = 0 Then Response.Write("
New business unit name is required
") Response.Write("Go back") objConn.Close Response.End End If If Len(newbusinessunit) > 50 Then Response.Write("
Business unit name too long
") Response.Write("Go back") objConn.Close Response.End End If ' Escape single quotes Dim escapedBUName escapedBUName = Replace(newbusinessunit, "'", "''") ' Insert new business unit Dim sqlNewBU sqlNewBU = "INSERT INTO businessunits (businessunit, isactive) VALUES ('" & escapedBUName & "', 1)" On Error Resume Next objConn.Execute sqlNewBU If Err.Number <> 0 Then Response.Write("
Error creating new business unit: " & Err.Description & "
") Response.Write("Go back") objConn.Close Response.End End If ' Get the newly created business unit ID Dim rsNewBU Set rsNewBU = objConn.Execute("SELECT LAST_INSERT_ID() AS newid") businessunitid = CLng(rsNewBU("newid")) rsNewBU.Close Set rsNewBU = Nothing On Error Goto 0 End If ' Handle new machine type creation If machinetypeid = "new" Then If Len(newmachinetype) = 0 Then Response.Write("
New machine type name is required
") Response.Write("Go back") objConn.Close Response.End End If If Len(newfunctionalaccountid) = 0 Then Response.Write("
Functional account is required for new machine type
") Response.Write("Go back") objConn.Close Response.End End If If Len(newmachinetype) > 50 Or Len(newmachinedescription) > 255 Then Response.Write("
Machine type field length exceeded
") Response.Write("Go back") objConn.Close Response.End End If ' Handle new functional account creation (nested) If newfunctionalaccountid = "new" Then If Len(newfunctionalaccount) = 0 Then Response.Write("
New functional account name is required
") Response.Write("Go back") objConn.Close Response.End End If If Len(newfunctionalaccount) > 50 Then Response.Write("
Functional account name too long
") Response.Write("Go back") objConn.Close Response.End End If ' Escape single quotes Dim escapedFAName escapedFAName = Replace(newfunctionalaccount, "'", "''") ' Insert new functional account Dim sqlNewFA sqlNewFA = "INSERT INTO functionalaccounts (functionalaccount, isactive) VALUES ('" & escapedFAName & "', 1)" On Error Resume Next objConn.Execute sqlNewFA If Err.Number <> 0 Then Response.Write("
Error creating new functional account: " & Err.Description & "
") Response.Write("Go back") objConn.Close Response.End End If ' Get the newly created functional account ID Dim rsNewFA Set rsNewFA = objConn.Execute("SELECT LAST_INSERT_ID() AS newid") newfunctionalaccountid = CLng(rsNewFA("newid")) rsNewFA.Close Set rsNewFA = Nothing On Error Goto 0 End If ' Escape single quotes Dim escapedMTName, escapedMTDesc escapedMTName = Replace(newmachinetype, "'", "''") escapedMTDesc = Replace(newmachinedescription, "'", "''") ' Insert new machine type Dim sqlNewMT sqlNewMT = "INSERT INTO machinetypes (machinetype, machinedescription, functionalaccountid, isactive) " & _ "VALUES ('" & escapedMTName & "', '" & escapedMTDesc & "', " & newfunctionalaccountid & ", 1)" On Error Resume Next objConn.Execute sqlNewMT If Err.Number <> 0 Then Response.Write("
Error creating new machine type: " & Err.Description & "
") Response.Write("Go back") objConn.Close Response.End End If ' Get the newly created machine type ID Dim rsNewMT Set rsNewMT = objConn.Execute("SELECT LAST_INSERT_ID() AS newid") machinetypeid = CLng(rsNewMT("newid")) rsNewMT.Close Set rsNewMT = Nothing On Error Goto 0 End If ' Handle new model creation If modelid = "new" Then If Len(newmodelnumber) = 0 Then Response.Write("
New model number is required
") Response.Write("Go back") objConn.Close Response.End End If If Len(newvendorid) = 0 Then Response.Write("
Vendor is required for new model
") Response.Write("Go back") objConn.Close Response.End End If If Len(newmodelnumber) > 50 Or Len(newmodelimage) > 100 Then Response.Write("
Model field length exceeded
") Response.Write("Go back") objConn.Close Response.End End If ' Handle new vendor creation (nested) If newvendorid = "new" Then If Len(newvendorname) = 0 Then Response.Write("
New vendor name is required
") Response.Write("Go back") objConn.Close Response.End End If If Len(newvendorname) > 50 Then Response.Write("
Vendor name too long
") Response.Write("Go back") objConn.Close Response.End End If ' Escape single quotes Dim escapedVendorName escapedVendorName = Replace(newvendorname, "'", "''") ' Insert new vendor (with ismachine=1) Dim sqlNewVendor sqlNewVendor = "INSERT INTO vendors (vendor, isactive, isprinter, ispc, ismachine) " & _ "VALUES ('" & escapedVendorName & "', 1, 0, 0, 1)" On Error Resume Next objConn.Execute sqlNewVendor If Err.Number <> 0 Then Response.Write("
Error creating new vendor: " & Err.Description & "
") Response.Write("Go back") objConn.Close Response.End End If ' Get the newly created vendor ID Dim rsNewVendor Set rsNewVendor = objConn.Execute("SELECT LAST_INSERT_ID() AS newid") newvendorid = CLng(rsNewVendor("newid")) rsNewVendor.Close Set rsNewVendor = Nothing On Error Goto 0 End If ' Escape single quotes for model Dim escapedModelNumber, escapedModelImage escapedModelNumber = Replace(newmodelnumber, "'", "''") escapedModelImage = Replace(newmodelimage, "'", "''") ' Set default image if not specified If escapedModelImage = "" Then escapedModelImage = "default.png" End If ' Insert new model Dim sqlNewModel sqlNewModel = "INSERT INTO models (modelnumber, vendorid, image, isactive) " & _ "VALUES ('" & escapedModelNumber & "', " & newvendorid & ", '" & escapedModelImage & "', 1)" On Error Resume Next objConn.Execute sqlNewModel If Err.Number <> 0 Then Response.Write("
Error creating new model: " & Err.Description & "
") Response.Write("Go back") objConn.Close Response.End End If ' Get the newly created model ID Dim rsNewModel Set rsNewModel = objConn.Execute("SELECT LAST_INSERT_ID() AS newid") modelid = CLng(rsNewModel("newid")) rsNewModel.Close Set rsNewModel = Nothing On Error Goto 0 End If ' Build UPDATE statement Dim strSQL strSQL = "UPDATE machines SET " & _ "modelnumberid = " & modelid & ", " & _ "machinetypeid = " & machinetypeid & ", " & _ "businessunitid = " & businessunitid ' Add optional printerid If printerid <> "" And IsNumeric(printerid) Then strSQL = strSQL & ", printerid = " & printerid End If ' Add optional map coordinates If mapleft <> "" And maptop <> "" And IsNumeric(mapleft) And IsNumeric(maptop) Then strSQL = strSQL & ", mapleft = " & mapleft & ", maptop = " & maptop End If strSQL = strSQL & " WHERE machineid = " & machineid On Error Resume Next objConn.Execute strSQL If Err.Number <> 0 Then Response.Write("
Error: " & Err.Description & "
") Response.Write("Go back") objConn.Close Response.End End If objConn.Close %>