Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

100 Zeilen
5.8KB

  1. <%
  2. '=======================================================================================================================
  3. ' Maps a parsed-JSON answers Dictionary (from the SurveyJS order-details form) onto a
  4. ' POBO_OrderDetails instance, and validates it first - the client-side SurveyJS
  5. ' required/enum rules in continue.asp are a UX convenience, not something the server can trust.
  6. '=======================================================================================================================
  7. ' Returns "" if valid, or a "; "-joined list of validation error messages.
  8. Function ValidateOrderDetailsAnswers(answers)
  9. Dim errors() : ReDim errors(-1)
  10. RequireNonEmptyString errors, answers, "ContactName", "Contact name is required."
  11. RequireNonEmptyString errors, answers, "Municipality", "Municipality is required."
  12. RequireNonEmptyString errors, answers, "Phone", "Phone number is required."
  13. RequireEnum errors, answers, "PurpleEnvelopeStock", Array("KCIStock", "OwnStock")
  14. RequireEnum errors, answers, "PurplePrintOption", Array("AddressesAndPermit", "PermitOnly")
  15. RequireEnum errors, answers, "PurpleBlueProvider", Array("ElectionSource", "PSI", "Spectrum", "Other")
  16. RequireEnum errors, answers, "PurplePrintStyle", Array("ColorCoding", "BlackOnly")
  17. RequireEnum errors, answers, "PurpleColorCodingBy", Array("Precinct", "Election")
  18. RequireEnum errors, answers, "BluePermitOwnership", Array("KCIPermit", "OwnPermit")
  19. RequireEnum errors, answers, "BlueHasNonprofitStatus", Array("Yes", "No", "Unsure")
  20. RequireEnum errors, answers, "BlueWantsOfficeCopies", Array("Yes", "No")
  21. RequireEnum errors, answers, "MailingPostageOption", Array("FirstClass", "NonprofitRate", "PresortStandard", "No")
  22. RequireEnum errors, answers, "MailingHasNonprofitStatus", Array("Yes", "No", "NotSure")
  23. RequireBoolean errors, answers, "MailingNonprofitAuthCodeUnknown"
  24. RequireBoolean errors, answers, "PurpleWantsQuote"
  25. RequireBoolean errors, answers, "PurpleTrackMIBallot"
  26. RequireBoolean errors, answers, "BlueWantsQuote"
  27. RequireBoolean errors, answers, "BluePrintPermit"
  28. RequireBoolean errors, answers, "MailingWantsService"
  29. RequireNonNegativeInteger errors, answers, "PurplePermanentBallotListCount"
  30. RequireNonNegativeInteger errors, answers, "PurplePrecinctCount"
  31. RequireNonNegativeInteger errors, answers, "PurpleExtraEnvelopeQty"
  32. RequireNonNegativeInteger errors, answers, "BlueOfficeCopiesQty"
  33. RequireNonNegativeInteger errors, answers, "MailingEstimatedQuantity"
  34. RequireNonNegativeInteger errors, answers, "SecrecySleevesQty"
  35. RequireNonNegativeInteger errors, answers, "IVotedStickerRolls"
  36. RequireNonNegativeInteger errors, answers, "FutureVoterStickerRolls"
  37. RequireValidDate errors, answers, "MailingPickupDate"
  38. If UBound(errors) >= 0 Then
  39. ValidateOrderDetailsAnswers = Join(errors, "; ")
  40. Else
  41. ValidateOrderDetailsAnswers = ""
  42. End If
  43. End Function
  44. Sub MapOrderDetailsAnswers(ByRef model, answers)
  45. ' Contact
  46. model.ContactName = DictValue(answers, "ContactName")
  47. model.Municipality = DictValue(answers, "Municipality")
  48. model.Phone = DictValue(answers, "Phone")
  49. ' Purple envelope
  50. model.PurpleWantsQuote = DictValue(answers, "PurpleWantsQuote")
  51. model.PurpleEnvelopeStock = DictValue(answers, "PurpleEnvelopeStock")
  52. model.PurplePrintOption = DictValue(answers, "PurplePrintOption")
  53. model.PurplePrintStyle = DictValue(answers, "PurplePrintStyle")
  54. model.PurpleColorCodingBy = DictValue(answers, "PurpleColorCodingBy")
  55. model.PurplePrecinctCount = DictValue(answers, "PurplePrecinctCount")
  56. model.PurpleColorNames = DictValue(answers, "PurpleColorNames")
  57. model.PurpleTrackMIBallot = DictValue(answers, "PurpleTrackMIBallot")
  58. model.PurpleExtraEnvelopeQty = DictValue(answers, "PurpleExtraEnvelopeQty")
  59. model.PurplePermanentBallotListCount = DictValue(answers, "PurplePermanentBallotListCount")
  60. ' Blue envelope
  61. model.BlueWantsQuote = DictValue(answers, "BlueWantsQuote")
  62. model.BlueWantsOfficeCopies = DictValue(answers, "BlueWantsOfficeCopies")
  63. model.BlueOfficeCopiesQty = DictValue(answers, "BlueOfficeCopiesQty")
  64. model.PurpleBlueProvider = DictValue(answers, "PurpleBlueProvider")
  65. model.PurpleBlueProviderOther = DictValue(answers, "PurpleBlueProviderOther")
  66. model.BluePrintPermit = DictValue(answers, "BluePrintPermit")
  67. model.BluePermitOwnership = DictValue(answers, "BluePermitOwnership")
  68. model.BlueHasNonprofitStatus = DictValue(answers, "BlueHasNonprofitStatus")
  69. model.BlueNonprofitAuthCode = DictValue(answers, "BlueNonprofitAuthCode")
  70. model.BluePermitCity = DictValue(answers, "BluePermitCity")
  71. model.BluePermitNumber = DictValue(answers, "BluePermitNumber")
  72. ' Mailing service
  73. model.MailingWantsService = DictValue(answers, "MailingWantsService")
  74. model.MailingPostageOption = DictValue(answers, "MailingPostageOption")
  75. model.MailingHasNonprofitStatus = DictValue(answers, "MailingHasNonprofitStatus")
  76. model.MailingNonprofitAuthCode = DictValue(answers, "MailingNonprofitAuthCode")
  77. model.MailingNonprofitAuthCodeUnknown = DictValue(answers, "MailingNonprofitAuthCodeUnknown")
  78. model.MailingEstimatedQuantity = DictValue(answers, "MailingEstimatedQuantity")
  79. model.MailingPickupDate = DictValue(answers, "MailingPickupDate")
  80. ' Additional items
  81. model.SecrecySleevesQty = DictValue(answers, "SecrecySleevesQty")
  82. model.IVotedStickerRolls = DictValue(answers, "IVotedStickerRolls")
  83. model.FutureVoterStickerRolls = DictValue(answers, "FutureVoterStickerRolls")
  84. model.SpecialRequests = DictValue(answers, "SpecialRequests")
  85. End Sub
  86. %>

Powered by TurnKey Linux.