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.

TrackingDataImport.vbs 24KB

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

Powered by TurnKey Linux.