You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

572 line
27KB

  1. Option Explicit
  2. Dim dev:dev = True
  3. Dim outFile
  4. Dim WaitTime:WaitTime = 15000
  5. Dim DataDirectory
  6. Dim ExportDirectory
  7. Dim PurpleEnvelopeProofReport
  8. Dim WshShell:Set WshShell = WScript.CreateObject("Wscript.Shell")
  9. Dim oConn:Set oConn = WScript.CreateObject("ADODB.Connection")
  10. Dim ConnectionString
  11. Dim objFSO:Set objFSO = CreateObject("Scripting.FileSystemObject")
  12. Dim glob:set glob = CreateObject("Chilkat_9_5_0.Global")
  13. Dim success:success = glob.UnlockBundle("KENTCM.CB1022025_RGzBPM5J655e")
  14. If (success <> 1) Then
  15. WriteLine(glob.LastErrorText)
  16. WScript.Quit
  17. End If
  18. Dim objCSV:Set objCsv = CreateObject("Chilkat_9_5_0.Csv")
  19. Dim WorkingDirectory:WorkingDirectory = Replace(WScript.ScriptFullName,WScript.ScriptName,"")
  20. If dev Then
  21. DataDirectory = WorkingDirectory & "test"
  22. ExportDirectory = "\\kci-syn-cl01\PC Transfer\TrackingDataExport\"
  23. ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=F:\Development\Tracking_Kits\Data\webdata - Copy.mdb;"
  24. PurpleEnvelopeProofReport = "F:\Development\Tracking_Kits\Data\Proofs.rep"
  25. set outFile = objFSO.CreateTextFile("\\kci-syn-cl01\PC Transfer\TrackingDataExport\temp.csv",True)
  26. Else
  27. DataDirectory = "\\kci-syn-cl01\PC Transfer\TrackingDataImport"
  28. ExportDirectory = "\\kci-syn-cl01\PC Transfer\TrackingDataExport\"
  29. ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=C:\inetpub\Data\webdata - Copy.mdb;"
  30. PurpleEnvelopeProofReport ="C:\inetpub\tracking\Data\Proofs.rep"
  31. set outFile = objFSO.CreateTextFile("\\kci-syn-cl01\PC Transfer\TrackingDataExport\temp.csv",True)
  32. End If
  33. 'ToDo create a checkstatus function so I dont need four functions of create a case switch that responds to the status of jobs
  34. Dim KitID:CheckForFiles:KitID = CheckForJobsToCass()
  35. If KitID > 0 Then
  36. ExportMMCsv(KitID)
  37. RunMailManager
  38. ImportCass
  39. End If
  40. KitID = CheckStatusFor("Ready to Assign Labels"):If KitID > 0 Then:createTrackingInfoForKit(KitID):End If
  41. KitID = CheckStatusFor("Ready For Export"):If KitID > 0 Then:CreateExportForSnailWorks(KitID):End If
  42. KitID = CheckStatusFor("Ready to Proof"):If KitID > 0 Then:CreateProofForJurisdiction(KitID):End If
  43. KitID = CheckStatusFor("Ready For Inkjet Export"):If KitID > 0 Then:ExportInkjetFile(KitID):End If
  44. WScript.Quit
  45. Function ExportInkjetFile(KitID)
  46. If oConn.State = 0 Then:oConn.Open(ConnectionString):End If
  47. Dim KitRs:set KitRs = oConn.Execute("Select * From [Kit] Where [ID] =" & KitID & ";")
  48. Dim KitLabelsRs: Set KitLabelsRs = oConn.Execute("SELECT InkjetRecords.ID, InkjetRecords.KitID, InkjetRecords.VOTERID, InkjetRecords.LASTNAME," &_
  49. " InkjetRecords.FIRSTNAME, InkjetRecords.MIDDLENAME, InkjetRecords.SUFFIX, InkjetRecords.PRECINCT," &_
  50. " InkjetRecords.ADDRESS1, InkjetRecords.ADDRESS2, InkjetRecords.ADDRESS3, InkjetRecords.ADDRESS4," &_
  51. " InkjetRecords.ADDRESS5, InkjetRecords.APPSENT, InkjetRecords.APPRETURNED, InkjetRecords.BALSENT," &_
  52. " InkjetRecords.BALRETURNED, InkjetRecords.CountingBoard, InkjetRecords.UOCAVASTATUS, InkjetRecords.EMAILADDRESS," &_
  53. " InkjetRecords.PHONENUMBER, InkjetRecords.BALLOT_NUMBER, InkjetRecords.CassADDRESS1, InkjetRecords.CassADDRESS2," &_
  54. " InkjetRecords.CassADDRESS3, InkjetRecords.CassADDRESS4, InkjetRecords.CassADDRESS5, InkjetRecords.KitLabelID," &_
  55. " KitLabels.ID, KitLabels.KitID, KitLabels.OutboundSerial, KitLabels.InBoundSerial, KitLabels.OutboundIMB," &_
  56. " KitLabels.InBoundIMB, KitLabels.OutboundIMBDigits, KitLabels.InBoundIMBDigits, KitLabels.OutboundIMBPNG," &_
  57. " KitLabels.INBOUNDIMBPNG, KitLabels.SetNumber" &_
  58. " FROM InkjetRecords" &_
  59. " LEFT JOIN [KitLabels] ON InkjetRecords.KitLabelID = KitLabels.ID" & _
  60. " WHERE InkjetRecords.KitID =" & KitID & " ;")
  61. Dim JurisdictionRs:Set JurisdictionRs = oConn.Execute("SELECT * FROM Jurisdiction WHERE JCode ='" & KitRs("Jcode").Value & "';")
  62. Dim ExportFileName:ExportFileName = objFSO.GetBaseName(KitRs("Filename")) & ".1up"
  63. If Not objFSO.FolderExists(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value) Then:objFSO.CreateFolder(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value):End If
  64. If objFSO.FileExists(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value & "/" & ExportFileName) Then:objFSO.DeleteFile(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value & "/" & ExportFileName):End If
  65. Dim objExportFile:set objExportFile = objFSO.CreateTextFile(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value & "/" & ExportFileName,2)
  66. Dim ElectionDate:ElectionDate=GetSetting("ElectionDate")
  67. objExportFile.Writeline("Election Date")
  68. objExportFile.Writeline("Full Name")
  69. objExportFile.Writeline("Alternate 1 Address")
  70. objExportFile.Writeline("Delivery Address")
  71. objExportFile.Writeline("City St ZIP+4")
  72. objExportFile.Writeline("")
  73. objExportFile.Writeline("*Voter ID*")
  74. objExportFile.Writeline("Precinct")
  75. objExportFile.Writeline("Ballot Number")
  76. objExportFile.Writeline("Clerk Name")
  77. objExportFile.Writeline("City or Township Name")
  78. objExportFile.Writeline("Return Address")
  79. objExportFile.Writeline("Return CSZ")
  80. objExportFile.Writeline("Jurisdiction IMB")
  81. While Not KitLabelsRs.EOF
  82. objExportFile.Writeline(ElectionDate)
  83. objExportFile.Writeline(KitLabelsRs("CassADDRESS1").Value)
  84. objExportFile.Writeline("")
  85. objExportFile.Writeline("*" & KitLabelsRs("VOTERID").Value & "*")
  86. KitLabelsRs.MoveNext
  87. Wend
  88. objExportFile.Close
  89. oConn.Execute("UPDATE KIT SET [Status] ='Done',[InkJetJob]=1 WHERE [ID] =" & KitID & ";")
  90. If KitRs.State = 1 Then:KitRs.Close:End If
  91. If KitLabelsRs.State = 1 Then:KitLabelsRs.Close: End If
  92. If JurisdictionRs.State = 1 Then:JurisdictionRs.Close:End If
  93. If oConn.State = 1 Then:oConn.Close:End If
  94. End Function
  95. Function CheckStatusFor(StatusString)
  96. If oConn.State = 0 Then:oConn.Open(ConnectionString):End If
  97. Dim rs:Set rs = oConn.Execute("Select TOP 1 [ID] FROM [Kit] Where Status ='" & StatusString & "' and JobType='Purple Envelopes';")
  98. If Not rs.EOF Then
  99. CheckStatusFor = rs("ID").value
  100. Else
  101. CheckStatusFor = 0
  102. End If
  103. If rs.State = 1 Then:rs.Close:End If
  104. If oConn.State = 1 Then:oConn.Close:End If
  105. End Function
  106. Function CreateProofForJurisdiction(KitID)
  107. Dim Qpdf:Set Qpdf = WScript.CreateObject("DebenuPDFLibraryAX1013.PDFLibrary")
  108. Dim Result:Result = Qpdf.UnlockKey("j564z3wi9i66k93cp3r798b3y")
  109. If oConn.State = 0 Then:oConn.Open(ConnectionString):End If
  110. Dim Rs:set Rs = oConn.Execute("SELECT MIN(ID) as [MIN],MAX(ID) as [MAX] FROM InkjetRecords WHERE KitID = " & KitID &";")
  111. Dim MIN:MIN = Rs("MIN").Value
  112. Dim MAX:MAX = Rs("MAX").Value
  113. Dim RecordCount:RecordCount = (MAX - MIN) + 1
  114. Rs.Close
  115. Dim KitRs:set KitRs = oConn.Execute("Select * From [Kit] Where [ID] =" & KitID & ";")
  116. Dim JurisdictionRs:set JurisdictionRs = oConn.Execute("SELECt * FROM [Jurisdiction] WHERE JCode='" & KitRs("Jcode").Value & "';")
  117. Dim ProofFileName:ProofFileName = objFSO.GetBaseName(KitRs("Filename")) & "-PROOF.PDF"
  118. If Not objFSO.FolderExists(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value) Then:objFSO.CreateFolder(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value):End If
  119. Dim reportManager:set reportManager = CreateObject("ReportMan.ReportManX")
  120. With reportManager
  121. .Preview = False
  122. .ShowProgress = False
  123. .ShowPrintDialog = False
  124. .filename = PurpleEnvelopeProofReport
  125. .SetDatabaseConnectionString "WEBDATA",ConnectionString
  126. .SetParamValue "PBKITID",KitID
  127. .SetParamValue "PBJCODE",KitRs("Jcode").Value
  128. Dim MAXRECORDS:MAXRECORDS = 3750
  129. If RecordCount > MAXRECORDS Then
  130. Dim i
  131. For i = 0 To RecordCount / MAXRECORDS
  132. Dim newMin:If MIN + (i * MAXRECORDS) > MIN Then:newMin = MIN + (i * MAXRECORDS) + 1:Else newMin = MIN:End If
  133. Dim newMax:If MIN + (i * MAXRECORDS) + MAXRECORDS > MAX Then:newMax = MAX:Else newMax = MIN + (i * MAXRECORDS) + MAXRECORDS:End If
  134. .SetParamValue "PBMIN",newMin
  135. .SetParamValue "PBMAX",newMax
  136. .SaveToPDF ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value & "\Part_" & i & "_" & ProofFileName,1
  137. Result = Qpdf.AddToFileList("Proofs",ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value & "\Part_" & i & "_" & ProofFileName)
  138. Next
  139. Result = Qpdf.MergeFileListFast("Proofs",ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value & "/" & ProofFileName)
  140. Dim test
  141. For test = 1 To Qpdf.FileListCount("Proofs")
  142. WshShell.Run "cmd.exe /c DEL /F /Q """ & Qpdf.FileListItem("Proofs",test) & """" ,0,True
  143. Next
  144. Else
  145. .SetParamValue "PBMIN",MIN
  146. .SetParamValue "PBMAX",MAX
  147. .SaveToPDF ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value & "/" & ProofFileName,1
  148. End If
  149. End With
  150. oConn.Execute("UPDATE KIT SET [Status] ='Ready For Inkjet Export' WHERE [ID] =" & KitID & ";")
  151. If KitRs.State = 1 Then:KitRs.Close:End If
  152. If JurisdictionRs.State = 1 Then:JurisdictionRs.Close:End If
  153. If oConn.State = 1 Then:oConn.Close:End If
  154. End Function
  155. Function CreateExportForSnailWorks(KitID)
  156. If oConn.State = 0 Then:oConn.Open(ConnectionString):End If
  157. Dim KitRs:set KitRs = oConn.Execute("Select * From [Kit] Where [ID] =" & KitID & ";")
  158. Dim KitLabelsRs: Set KitLabelsRs = oConn.Execute("SELECT InkjetRecords.ID, InkjetRecords.KitID, InkjetRecords.VOTERID, InkjetRecords.LASTNAME," &_
  159. " InkjetRecords.FIRSTNAME, InkjetRecords.MIDDLENAME, InkjetRecords.SUFFIX, InkjetRecords.PRECINCT," &_
  160. " InkjetRecords.ADDRESS1, InkjetRecords.ADDRESS2, InkjetRecords.ADDRESS3, InkjetRecords.ADDRESS4," &_
  161. " InkjetRecords.ADDRESS5, InkjetRecords.APPSENT, InkjetRecords.APPRETURNED, InkjetRecords.BALSENT," &_
  162. " InkjetRecords.BALRETURNED, InkjetRecords.CountingBoard, InkjetRecords.UOCAVASTATUS, InkjetRecords.EMAILADDRESS," &_
  163. " InkjetRecords.PHONENUMBER, InkjetRecords.BALLOT_NUMBER, InkjetRecords.CassADDRESS1, InkjetRecords.CassADDRESS2," &_
  164. " InkjetRecords.CassADDRESS3, InkjetRecords.CassADDRESS4, InkjetRecords.CassADDRESS5, InkjetRecords.KitLabelID," &_
  165. " KitLabels.ID, KitLabels.KitID, KitLabels.OutboundSerial, KitLabels.InBoundSerial, KitLabels.OutboundIMB," &_
  166. " KitLabels.InBoundIMB, KitLabels.OutboundIMBDigits, KitLabels.InBoundIMBDigits, KitLabels.OutboundIMBPNG," &_
  167. " KitLabels.INBOUNDIMBPNG, KitLabels.SetNumber" &_
  168. " FROM InkjetRecords" &_
  169. " LEFT JOIN [KitLabels] ON InkjetRecords.KitLabelID = KitLabels.ID" & _
  170. " WHERE InkjetRecords.KitID =" & KitID & " ;")
  171. Dim JurisdictionRs:Set JurisdictionRs = oConn.Execute("SELECT * FROM Jurisdiction WHERE JCode ='" & KitRs("Jcode").Value & "';")
  172. Dim ExportFileName:ExportFileName = objFSO.GetBaseName(KitRs("Filename")) & "_SW_EXPORT.csv"
  173. If Not objFSO.FolderExists(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value) Then:objFSO.CreateFolder(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value):End If
  174. If objFSO.FileExists(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value & "/" & ExportFileName) Then:objFSO.DeleteFile(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value & "/" & ExportFileName):End If
  175. Dim objExportFile:set objExportFile = objFSO.CreateTextFile(ExportDirectory & KitRs("JobNumber").Value & "-" & JurisdictionRs("Name").value & "/" & ExportFileName,2)
  176. With objExportFile
  177. .Write("""H"",") 'Record Type Required value must be = "H" (Header)
  178. .Write(Truncate("5.1",5)) 'Version Required value must be ="5.1" for current release
  179. .Write(Truncate("KCI",50)) 'UserId Required
  180. .Write(Truncate(KitRs("Jcode").Value,50)) 'Client Name Required (will create new subaccount if not already defined) - We decideded to make this the juriscode
  181. .Write(Truncate("",50)) 'Parent Client Name Optional (use if 3-tier account structure)
  182. .Write(Truncate("Purple envelope - " & KitRs("JobNumber").Value,50)) 'Job Name Required
  183. .Write(Truncate("",50)) 'Job Description Optional
  184. .Write(Truncate("",50)) 'Split Name Optional – will default to ‘Default’
  185. .Write(Truncate("",80)) 'Split Description Optional
  186. .Write(Truncate("L",1)) 'Piece Type Required L-Letters, C-Cards, F-Flats
  187. .Write(Truncate(Year(Now()) & "/" &_
  188. Right("0" & Month(Now()), 2) & "/" & Right("0" & Day(Now()), 2),10)) 'MailDate Required (YYYY/MM/DD)
  189. .Write(Truncate("N",1)) 'UploadType Required N = New job, new split A = Append new split to existing job R = Replace existing split
  190. .Write(Truncate("",8)) 'TrackedQuantity Optional
  191. .Write(Truncate("",8)) 'PiecesMailed Optional – shown as Estimated Quantity
  192. .Write(Truncate("",10)) 'Target InHomeDateStart Optional (YYYY/MM/DD)
  193. .Write(Truncate("",10)) 'Target InHomeDateEnd Optional (YYYY/MM/DD)
  194. .Write(Truncate("",100)) 'ConfirmationEmail Optional
  195. .Write(Truncate("",9)) 'JobId (SW) Optional for previously created jobs SWJobId
  196. .Write(Truncate("",4)) 'SplitId (SW) Optional for previously created jobs SWJobId
  197. .Write(Truncate(Choice(IsNull(KitRs("InboundSTID")),"O","R"),1)) 'TypeofTracking Required Values: O- Outbound Only I-Inbound Only R-Round Trip
  198. .Write(Truncate("",11)) 'ReturnedPostalRoutingCode
  199. .Write(Truncate("",2)) 'ReportId1
  200. .Write(Truncate("",255)) 'Report1Email
  201. .Write(Truncate("",2)) 'ReportId2
  202. .Write(Truncate("",255)) 'Report2Email
  203. .Write("""N""") 'INFOONLY
  204. .Write(vbCrLf)
  205. While Not KitLabelsRs.EOF
  206. .Write("""D"",") 'RecordType Required value must be = “D” (Detail)
  207. .Write(Truncate("",20)) 'CustomerUniqueIdentifier Optional- any identifier you designate
  208. .Write(Truncate(KitLabelsRs("OutboundIMBDigits"),31)) 'IMB Required – Unencoded, numeric IMB
  209. .Write(Truncate("",10)) 'Greeting Optional
  210. .Write(Truncate("",50)) 'First Name Optional
  211. .Write(Truncate("",2)) 'MI Optional
  212. .Write(Truncate("",50)) 'Last Name Optional
  213. .Write(Truncate("",10)) 'Suffix Optional
  214. .Write(Truncate((KitLabelsRs("CassADDRESS1").Value),100)) 'Full Name Optional
  215. .Write(Truncate("",50)) 'Company Optional
  216. .Write(Truncate("",50)) 'Title Optional
  217. .Write(Truncate(KitLabelsRs("CassADDRESS3").Value,128)) 'Address1 Optional
  218. .Write(Truncate(KitLabelsRs("CassADDRESS4").Value,128)) 'Address2 Optional
  219. .Write(Truncate(Left(KitLabelsRs("CassADDRESS5").Value, _
  220. InStr(KitLabelsRs("CassADDRESS5").Value, ",") - 1),50)) 'City Optional
  221. .Write(Truncate(Mid(KitLabelsRs("CassADDRESS5").Value, _
  222. InStr(KitLabelsRs("CassADDRESS5").Value, ",") + 2, 2),2)) 'State Optional
  223. .Write Truncate(Right(KitLabelsRs("CassADDRESS5").Value,11),11) 'Zip Optional
  224. .Write(Truncate(KitRs("Jcode"),100)) 'UserDefined1 Optional - Summary fields only
  225. .Write(Truncate("",100)) 'UserDefined2 Optional - Summary fields only
  226. .Write(Truncate("",100)) 'UserDefined3 Optional - Summary fields only
  227. .Write(Truncate(KitLabelsRs("PRECINCT").Value &_
  228. KitLabelsRs("BALLOT_NUMBER"),80)) 'UserDefinedIdentifier4 Optional – Allows for unique identifiers
  229. .Write(Truncate(KitLabelsRs("VOTERID").Value,80)) 'UserDefinedIdentifier5 Optional – Allows for unique identifiers
  230. .Write(Truncate("",1)) 'SeedIndicator Optional - if true provide ‘Y’
  231. .Write(Truncate("",80)) 'InductionPoint Optional
  232. .Write(Truncate("",10)) 'InductionDate Optional – Valid date format, ex. MM/DD/YYYY
  233. .Write(Truncate(Choice(IsNull(KitRs("InboundSTID")),"", _
  234. KitLabelsRs("InBoundIMBDigits").Value),31)) 'InboundIMB Optional – numeric IMB for Round trip jobs only
  235. .Write(Truncate("",24)) 'IMCB Optional – Container Barcode
  236. .Write("""""") 'IMTB Optional – Tray Barcode
  237. .Write(vbCrLf)
  238. KitLabelsRs.MoveNext
  239. Wend
  240. .Close
  241. End With
  242. oConn.Execute("UPDATE KIT SET [Status] ='Ready to Proof',[ExportedToSnailWorks] =#" & Now() & "# WHERE [ID] =" & KitID & ";")
  243. If KitRs.State = 1 Then:KitRs.Close:End If
  244. If KitLabelsRs.State = 1 Then:KitLabelsRs.Close: End If
  245. If JurisdictionRs.State = 1 Then:JurisdictionRs.Close:End If
  246. If oConn.State = 1 Then:oConn.Close:End If
  247. End Function
  248. Function createTrackingInfoForKit(KitID)
  249. oConn.Execute("UPDATE Kit SET Status ='Applying Serial Numbers' WHERE ID =" & KitID & ";")
  250. Dim KitRs:set KitRs = oConn.Execute("Select * from Kit Where ID =" & KitID & ";")
  251. Dim InkjetRs:Set InkjetRs = oConn.Execute("Select * from InkjetRecords Where KitID =" & KitID & ";")
  252. Dim JurisRs:set JurisRs = oConn.Execute("Select Right(IMB_Digits,9) as IMBZip FROM Jurisdiction Where JCode ='" & KitRs("Jcode") & "';"):Dim Jcode:Jcode = JurisRs("IMBZip"):JurisRs.Close
  253. Dim SerialNumberStart:SerialNumberStart = GetSetting("SerialNumberStart")
  254. Dim serialOffset:serialOffset = GetSetting("SerialOffset")
  255. Dim serialStart:serialStart = CLng(GetSetting("SerialNumberStart")) + CLng(GetSetting("SerialOffset"))
  256. Dim Counter:Counter=0
  257. Dim KitLabelID
  258. Dim KitLabelRs
  259. Dim Step : If KitRs("InboundSTID") <> "" Then : Step = 2 : Else Step = 1
  260. serialStart = PadLeft(serialStart + CLng(Counter),9,"0")
  261. While Not InkjetRs.EOF
  262. If Step = 1 Then
  263. oConn.Execute("INSERT INTO KitLabels (KitID,OutboundSerial,OutboundIMBDigits) " &_
  264. "VALUES(" & KitID & ",'" & serialStart & "','" & KitRs("OutBoundSTID").Value & serialStart & "000000000" & "');")
  265. Else
  266. oConn.Execute "INSERT INTO KitLabels (KitID,OutboundSerial,InBoundSerial,OutboundIMBDigits,InBoundIMBDigits) " &_
  267. "VALUES(" & KitID & ",'" & serialStart & "','" & serialStart + 1 & "','" & KitRs("OutBoundSTID").Value & serialStart & "000000000" & "','" & KitRs("InboundSTID").Value & serialStart + 1 & Jcode & "');"
  268. End If
  269. Set KitLabelRs = oConn.Execute("SELECT TOP 1 [ID] FROM KitLabels ORDER BY ID DESC"):KitLabelID = KitLabelRs("ID").Value
  270. oConn.Execute("UPDATE InkjetRecords Set [KitLabelID]=" & KitLabelID & " WHERE ID=" & InkjetRs("ID") & ";")
  271. Counter = Counter + Step
  272. serialStart = serialStart + Step
  273. InkjetRs.MoveNext
  274. Wend
  275. oConn.Execute("UPDATE Settings Set [Value]='" & serialOffset + Counter & "' WHERE [Name] = 'SerialOffset';")
  276. oConn.Execute("UPDATE Kit Set [Status]='Ready For Export', LabelsPrinted=#" & Now() & "# WHERE [ID] =" & KitID &";")
  277. End Function
  278. Function GetSetting(settingName)
  279. Dim rs:Set rs = oConn.Execute("Select Value From [Settings] Where [Name] = '" & settingName & "';")
  280. If Not rs.EOF Then
  281. GetSetting = rs(0).value
  282. rs.Close
  283. Else
  284. SetSetting = 0
  285. rs.Close
  286. End If
  287. End Function
  288. Function CheckForFiles()
  289. If objFSO.FolderExists(DataDirectory) Then
  290. Dim objFolder:Set objFolder = objFSO.GetFolder(DataDirectory)
  291. If objFolder.Files.Count > 0 Then
  292. 'WScript.Echo "Files found in directory: " & DataDirectory
  293. Dim objFile
  294. For Each objFile In objFolder.Files
  295. Dim CsvString:CsvString = ConvertCsvToString(objFile.Path)
  296. If ValidImportCSV(CsvString) Then
  297. SetupKit CsvString,objFile.Name
  298. objFSO.MoveFile objFile.Path, DataDirectory & "\import\" & objFile.Name
  299. End If
  300. Next
  301. Else
  302. 'WScript.Echo "No files found in directory: " & DataDirectory
  303. End If
  304. End If
  305. End Function
  306. Function ValidJcode(jcode)
  307. Dim oConn
  308. Set oConn = WScript.CreateObject("ADODB.Connection")
  309. oConn.ConnectionString = ConnectionString
  310. oConn.Open
  311. Dim oRs
  312. set oRs = oConn.Execute("Select * from Jurisdiction Where [JCode] = '" & jcode & "';")
  313. If oRs.EOF Then
  314. ValidJcode = 0
  315. Else
  316. ValidJcode = 1
  317. End If
  318. oRs.Close
  319. oConn.Close
  320. End Function
  321. Function SetupKit(CsvString,FileName)
  322. Dim JobNumber:JobNumber = Mid(FileName,9,6)
  323. Dim JCode:JCode = Left(Filename,5)
  324. If IsNumeric(JobNumber) Then
  325. If ValidJcode(JCode) Then
  326. WScript.Echo FileName & " Is a Valid CSV for Importing"
  327. Dim oConn:Set oConn = WScript.CreateObject("ADODB.Connection")
  328. oConn.ConnectionString = ConnectionString
  329. oConn.Open
  330. oConn.Execute("Insert Into Kit ([JobNumber], [Jcode], [CreatedOn], [JobType],[Filename],[Status]) VALUES ('" & JobNumber & "','" & JCode & "',#" & Now() & "#,'Purple Envelopes','" & FileName & "','Importing');")
  331. Dim rs : set rs = oConn.Execute("Select TOP 1 ID from Kit ORDER BY ID DESC")
  332. Dim kitId : kitId = rs("ID").value
  333. rs.close
  334. Dim i
  335. For i = 1 To objCSV.NumRows -1
  336. oConn.Execute("Insert Into [InkjetRecords] (KitID,VOTERID,LASTNAME,FIRSTNAME,MIDDLENAME" & _
  337. ",SUFFIX,PRECINCT,ADDRESS1,ADDRESS2,ADDRESS3,ADDRESS4,ADDRESS5,APPSENT,APPRETURNED,BALSENT,BALRETURNED" & _
  338. ",CountingBoard,UOCAVASTATUS,EMAILADDRESS,PHONENUMBER,BALLOT_NUMBER) VALUES (" & kitId & _
  339. ",'" & Replace(objCSV.GetCell(i,0),"'","''") & _
  340. "','" & objCsv.GetCell(i,1) & _
  341. "','" & Replace(objCSV.GetCell(i,2),"'","''") & _
  342. "','" & Replace(objCSV.GetCell(i,3),"'","''") & _
  343. "','" & Replace(objCSV.GetCell(i,4),"'","''") & _
  344. "','" & Replace(objCSV.GetCell(i,5),"'","''") & _
  345. "','" & Replace(objCSV.GetCell(i,6),"'","''") & _
  346. "','" & Replace(objCSV.GetCell(i,7),"'","''") & _
  347. "','" & Replace(objCSV.GetCell(i,8),"'","''") & _
  348. "','" & Replace(objCSV.GetCell(i,9),"'","''") & _
  349. "','" & Replace(objCSV.GetCell(i,10),"'","''") & _
  350. "','" & Replace(objCSV.GetCell(i,11),"'","''") & _
  351. "','" & Replace(objCSV.GetCell(i,12),"'","''") & _
  352. "','" & Replace(objCsv.GetCell(i,13),"'","''") & _
  353. "','" & objCsv.GetCell(i,14) & _
  354. "','" & objCsv.GetCell(i,15) & _
  355. "','" & objCsv.GetCell(i,16) & _
  356. "','" & objCsv.GetCell(i,17) & _
  357. "','" & objCsv.GetCell(i,18) & _
  358. "','" & objCsv.GetCell(i,19) & _
  359. "')")
  360. Next
  361. oConn.Execute("Update Kit SET [Status] = 'Ready to Cass' Where ID = " & kitId &";")
  362. 'oConn.Close
  363. End If
  364. End If
  365. End Function
  366. Function ConvertCsvToString(FilePath)
  367. Dim objFSO:Set objFSO = CreateObject("Scripting.FileSystemObject")
  368. Dim objCsvFile:set objCsvFile = objFSO.OpenTextFile(FilePath)
  369. Dim strContent:strContent = ""
  370. Dim intLineCount:intLineCount = 0
  371. Do Until objCsvFile.AtEndOfStream Or intLineCount >= 3
  372. objCsvFile.SkipLine
  373. intLineCount = intLineCount + 1
  374. Loop
  375. ' Read the remaining content into a string
  376. Do Until objCsvFile.AtEndOfStream
  377. Dim strLine:strLine = objCsvFile.ReadLine
  378. strContent = strContent & strLine & vbCrLf
  379. Loop
  380. ConvertCsvToString = strContent
  381. End Function
  382. Function ValidImportCSV(CsvFileAsString)
  383. objCSV.LoadFromString(CsvFileAsString)
  384. If objCSV.NumColumns = 20 Then
  385. ValidImportCSV = True
  386. Else
  387. ValidImportCSV = False
  388. End If
  389. End Function
  390. Sub ImportCass
  391. Dim currentRow
  392. objCsv.LoadFile("\\kci-syn-cl01\PC Transfer\TrackingDataExport\FROM_MM.CSV")
  393. For currentRow = 0 To objCsv.NumRows -1
  394. oConn.Execute("UPDATE InkJetRecords SET CassADDRESS1 = '" & Replace(objCsv.GetCell(currentRow,1),"'","''") & "', " &_
  395. "CassADDRESS2 = '" & Replace(objCSV.GetCell(currentRow,3),"'","''") & "', " &_
  396. "CassADDRESS3 = '" & Replace(objCSV.GetCell(currentRow,4),"'","''") & "', " &_
  397. "CassADDRESS4 = '" & Replace(objCSV.GetCell(currentRow,5),"'","''") & "', " &_
  398. "CassADDRESS5 = '" & Replace(objCsv.GetCell(currentRow,6) & ", " & objCsv.GetCell(currentRow,7) & " " & objCsv.GetCell(currentRow,8),"'","''") & "'" &_
  399. " WHERE ID = " & objCSV.GetCell(currentRow,0) & ";")
  400. Next
  401. oConn.Execute("UPDATE Kit SET Status ='Ready To Assign STIDS' WHERE ID =" & KitID & ";")
  402. oConn.Execute("UPDATE Kit SET [Cass] = 1 WHERE ID =" & KitID & ";")
  403. End Sub
  404. Sub RunMailManager
  405. WshShell.Run "PsExec64.exe -i -e -u ntp\danielc -p SunBrightShine! \\MarkH2 ""\\MM2012\APPS\BCC\MM2010\mailman.exe"" -p -j MMJOB.mjb -u DAN",1,True
  406. End Sub
  407. Sub ExportMMCsv(KitId)
  408. Dim success
  409. objCsv.HasColumnNames = 1
  410. objCSV.EnableQuotes = 1
  411. success = objCsv.SetColumnName(0,"ID")
  412. success = objCsv.SetColumnName(1,"NAME")
  413. success = objCsv.SetColumnName(2,"ADDRESS1")
  414. success = objCsv.SetColumnName(3,"ADDRESS2")
  415. success = objCsv.SetColumnName(4,"ADDRESS3")
  416. success = objCsv.SetColumnName(5,"ADDRESS4")
  417. success = objCsv.SetColumnName(6,"ADDRESS5")
  418. Dim rs : Set rs = oConn.Execute("Select ID," & _
  419. "IIF(FIRSTNAME IS NULL,'',FIRSTNAME & ' ') & " & _
  420. "IIF(MIDDLENAME IS NULL,'',MIDDLENAME & ' ') & " & _
  421. "IIF(LASTNAME IS NULL,'',LASTNAME & ' ') & " & _
  422. "IIF(SUFFIX IS NULL,'',SUFFIX & ' ') " & _
  423. "AS NAME, ADDRESS1,ADDRESS2,ADDRESS3,ADDRESS4,ADDRESS5 FROM InkjetRecords WHERE KitID =" & KitID & " ORDER By ID;")
  424. Dim CurrentRow:CurrentRow = 0
  425. While Not rs.EOF
  426. objCSV.SetCell CurrentRow,0,rs("ID").value
  427. objCSV.SetCell CurrentRow,1,rs("NAME").value
  428. objCSV.SetCell CurrentRow,2,rs("ADDRESS1").value
  429. objCSV.SetCell CurrentRow,3,rs("ADDRESS2").value
  430. objCSV.SetCell CurrentRow,4,rs("ADDRESS3").value
  431. objCSV.SetCell CurrentRow,5,rs("ADDRESS4").value
  432. objCSV.SetCell CurrentRow,6,rs("ADDRESS5").value
  433. rs.MoveNext
  434. CurrentRow = CurrentRow +1
  435. Wend
  436. Dim CsvString:CsvString = objCSV.SaveToString()
  437. outFile.WriteLine CsvString
  438. outFile.Close
  439. End Sub
  440. Function CheckForJobsToCass()
  441. oConn.ConnectionString = ConnectionString
  442. oConn.Open
  443. 'oConn.Open
  444. Dim rs : set rs = oConn.Execute("Select TOP 1 ID from Kit Where Status ='Ready to Cass' ORDER BY ID DESC;")
  445. If Not rs.EOF Then
  446. Dim kitId : kitId = rs("ID").value
  447. rs.Close
  448. CheckForJobsToCass = KitID
  449. oConn.Execute("UPDATE Kit SET Status ='Cassing' WHERE ID =" & KitID & ";")
  450. Else
  451. CheckForJobsToCass = 0
  452. End If
  453. 'oConn.Close
  454. End Function
  455. Public Function PadLeft(originalString,desiredLength,Char)
  456. Dim padLength
  457. padLength = desiredLength - Len(originalString)
  458. If padLength > 0 Then
  459. ' Left pad the string with zeros
  460. PadLeft = String(padLength, Char) & originalString
  461. Else
  462. ' If the original string is already longer or equal to the desired length, no padding is needed
  463. PadLeft = originalString
  464. End If
  465. End Function
  466. Function Truncate(inputString, size)
  467. If Len(inputString) > size Then:Truncate = """" & Left(inputString,size) & """,":Else Truncate = """" & inputString & """,":End If
  468. End Function
  469. Function PadString(inputString, size)
  470. Dim paddedString
  471. Dim inputLength
  472. Dim i
  473. If IsNull(inputString) Then:inputString = ""
  474. ' Get the length of the input string
  475. inputLength = Len(inputString)
  476. ' If the input string is already equal to or longer than the specified size, return it as is
  477. If inputLength >= size Then
  478. PadString = inputString
  479. Exit Function
  480. End If
  481. ' Initialize the padded string with the input string
  482. paddedString = inputString
  483. ' Pad spaces to the right of the input string until it reaches the specified size
  484. For i = 1 To (size - inputLength)
  485. paddedString = paddedString & " "
  486. Next
  487. ' Return the padded string
  488. PadString = paddedString
  489. End Function
  490. Function CleanNull(StringToClean)
  491. If IsNull(StringToClean) Then:CleanNull = "":End If
  492. End Function
  493. Public Sub Assign(ByRef var, ByVal val)
  494. If IsObject(val) Then
  495. Set var = val
  496. Else
  497. var = val
  498. End If
  499. End Sub
  500. Public Function Choice(ByVal cond, ByVal if_true, ByVal if_false)
  501. If cond Then
  502. Assign Choice, if_true
  503. Else
  504. Assign Choice, if_false
  505. End If
  506. End Function

Powered by TurnKey Linux.