選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

96 行
5.5KB

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

Powered by TurnKey Linux.