Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

92 lignes
5.2KB

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

Powered by TurnKey Linux.