Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

98 wiersze
5.6KB

  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, "MailingPostageOption", Array("FirstClass", "NonprofitRate", "PresortStandard", "No")
  21. RequireEnum errors, answers, "MailingHasNonprofitStatus", Array("Yes", "No", "NotSure")
  22. RequireBoolean errors, answers, "MailingNonprofitAuthCodeUnknown"
  23. RequireBoolean errors, answers, "PurpleWantsQuote"
  24. RequireBoolean errors, answers, "PurpleWantsBlueEnvelopes"
  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, "MailingEstimatedQuantity"
  33. RequireNonNegativeInteger errors, answers, "SecrecySleevesQty"
  34. RequireNonNegativeInteger errors, answers, "IVotedStickerRolls"
  35. RequireNonNegativeInteger errors, answers, "FutureVoterStickerRolls"
  36. RequireValidDate errors, answers, "MailingPickupDate"
  37. If UBound(errors) >= 0 Then
  38. ValidateOrderDetailsAnswers = Join(errors, "; ")
  39. Else
  40. ValidateOrderDetailsAnswers = ""
  41. End If
  42. End Function
  43. Sub MapOrderDetailsAnswers(ByRef model, answers)
  44. ' Contact
  45. model.ContactName = DictValue(answers, "ContactName")
  46. model.Municipality = DictValue(answers, "Municipality")
  47. model.Phone = DictValue(answers, "Phone")
  48. ' Purple envelope
  49. model.PurpleWantsQuote = DictValue(answers, "PurpleWantsQuote")
  50. model.PurpleEnvelopeStock = DictValue(answers, "PurpleEnvelopeStock")
  51. model.PurplePrintOption = DictValue(answers, "PurplePrintOption")
  52. model.PurpleWantsBlueEnvelopes = DictValue(answers, "PurpleWantsBlueEnvelopes")
  53. model.PurpleBlueProvider = DictValue(answers, "PurpleBlueProvider")
  54. model.PurpleBlueProviderOther = DictValue(answers, "PurpleBlueProviderOther")
  55. model.PurplePrintStyle = DictValue(answers, "PurplePrintStyle")
  56. model.PurpleColorCodingBy = DictValue(answers, "PurpleColorCodingBy")
  57. model.PurplePrecinctCount = DictValue(answers, "PurplePrecinctCount")
  58. model.PurpleColorNames = DictValue(answers, "PurpleColorNames")
  59. model.PurpleTrackMIBallot = DictValue(answers, "PurpleTrackMIBallot")
  60. model.PurpleExtraEnvelopeQty = DictValue(answers, "PurpleExtraEnvelopeQty")
  61. model.PurplePermanentBallotListCount = DictValue(answers, "PurplePermanentBallotListCount")
  62. ' Blue envelope
  63. model.BlueWantsQuote = DictValue(answers, "BlueWantsQuote")
  64. model.BluePrintPermit = DictValue(answers, "BluePrintPermit")
  65. model.BluePermitOwnership = DictValue(answers, "BluePermitOwnership")
  66. model.BlueHasNonprofitStatus = DictValue(answers, "BlueHasNonprofitStatus")
  67. model.BlueNonprofitAuthCode = DictValue(answers, "BlueNonprofitAuthCode")
  68. model.BluePermitCity = DictValue(answers, "BluePermitCity")
  69. model.BluePermitNumber = DictValue(answers, "BluePermitNumber")
  70. ' Mailing service
  71. model.MailingWantsService = DictValue(answers, "MailingWantsService")
  72. model.MailingPostageOption = DictValue(answers, "MailingPostageOption")
  73. model.MailingHasNonprofitStatus = DictValue(answers, "MailingHasNonprofitStatus")
  74. model.MailingNonprofitAuthCode = DictValue(answers, "MailingNonprofitAuthCode")
  75. model.MailingNonprofitAuthCodeUnknown = DictValue(answers, "MailingNonprofitAuthCodeUnknown")
  76. model.MailingEstimatedQuantity = DictValue(answers, "MailingEstimatedQuantity")
  77. model.MailingPickupDate = DictValue(answers, "MailingPickupDate")
  78. ' Additional items
  79. model.SecrecySleevesQty = DictValue(answers, "SecrecySleevesQty")
  80. model.IVotedStickerRolls = DictValue(answers, "IVotedStickerRolls")
  81. model.FutureVoterStickerRolls = DictValue(answers, "FutureVoterStickerRolls")
  82. model.SpecialRequests = DictValue(answers, "SpecialRequests")
  83. End Sub
  84. %>

Powered by TurnKey Linux.