Option Explicit Dim dev:dev = True Dim outFile Dim WaitTime:WaitTime = 15000 Dim DataDirectory Dim WshShell:Set WshShell = WScript.CreateObject("Wscript.Shell") Dim oConn:Set oConn = WScript.CreateObject("ADODB.Connection") Dim ConnectionString Dim objFSO:Set objFSO = CreateObject("Scripting.FileSystemObject") Dim glob:set glob = CreateObject("Chilkat_9_5_0.Global") Dim success:success = glob.UnlockBundle("KENTCM.CB1022025_RGzBPM5J655e") If (success <> 1) Then WriteLine(glob.LastErrorText) WScript.Quit End If Dim objCSV:Set objCsv = CreateObject("Chilkat_9_5_0.Csv") Dim WorkingDirectory:WorkingDirectory = Replace(WScript.ScriptFullName,WScript.ScriptName,"") If dev Then DataDirectory = WorkingDirectory & "test" ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=F:\Development\Tracking_Kits\Data\webdata - Copy.mdb;" set outFile = objFSO.CreateTextFile("\\kci-syn-cl01\PC Transfer\TrackingDataExport\temp.csv",True) Else DataDirectory = "\\kci-syn-cl01\PC Transfer\TrackingDataImport" ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=C:\inetpub\Data\webdata - Copy.mdb;" set outFile = objFSO.CreateTextFile("\\kci-syn-cl01\PC Transfer\TrackingDataExport\temp.csv",True) End If CheckForFiles Dim KitID:KitID = CheckForJobsToCass() If KitID > 0 Then ExportMMCsv(KitID) RunMailManager ImportCass End If WScript.Quit Function CheckForFiles() If objFSO.FolderExists(DataDirectory) Then Dim objFolder:Set objFolder = objFSO.GetFolder(DataDirectory) If objFolder.Files.Count > 0 Then 'WScript.Echo "Files found in directory: " & DataDirectory Dim objFile For Each objFile In objFolder.Files Dim CsvString:CsvString = ConvertCsvToString(objFile.Path) If ValidImportCSV(CsvString) Then SetupKit CsvString,objFile.Name objFSO.MoveFile objFile.Path, DataDirectory & "\import\" & objFile.Name End If Next Else 'WScript.Echo "No files found in directory: " & DataDirectory End If End If End Function Function ValidJcode(jcode) Dim oConn Set oConn = WScript.CreateObject("ADODB.Connection") oConn.ConnectionString = ConnectionString oConn.Open Dim oRs set oRs = oConn.Execute("Select * from Jurisdiction Where [JCode] = '" & jcode & "';") If oRs.EOF Then ValidJcode = 0 Else ValidJcode = 1 End If oRs.Close oConn.Close End Function Function SetupKit(CsvString,FileName) Dim JobNumber:JobNumber = Mid(FileName,9,6) Dim JCode:JCode = Left(Filename,5) If IsNumeric(JobNumber) Then If ValidJcode(JCode) Then WScript.Echo FileName & " Is a Valid CSV for Importing" Dim oConn:Set oConn = WScript.CreateObject("ADODB.Connection") oConn.ConnectionString = ConnectionString oConn.Open oConn.Execute("Insert Into Kit ([JobNumber], [Jcode], [CreatedOn], [JobType],[Filename],[Status]) VALUES ('" & JobNumber & "','" & JCode & "',#" & Now() & "#,'Purple Envelopes','" & FileName & "','Importing');") Dim rs : set rs = oConn.Execute("Select TOP 1 ID from Kit ORDER BY ID DESC") Dim kitId : kitId = rs("ID").value rs.close Dim i For i = 1 To objCSV.NumRows -1 oConn.Execute("Insert Into [InkjetRecords] (KitID,VOTERID,LASTNAME,FIRSTNAME,MIDDLENAME" & _ ",SUFFIX,PRECINCT,ADDRESS1,ADDRESS2,ADDRESS3,ADDRESS4,ADDRESS5,APPSENT,APPRETURNED,BALSENT,BALRETURNED" & _ ",CountingBoard,UOCAVASTATUS,EMAILADDRESS,PHONENUMBER,BALLOT_NUMBER) VALUES (" & kitId & _ ",'" & Replace(objCSV.GetCell(i,0),"'","''") & _ "','" & objCsv.GetCell(i,1) & _ "','" & Replace(objCSV.GetCell(i,2),"'","''") & _ "','" & Replace(objCSV.GetCell(i,3),"'","''") & _ "','" & Replace(objCSV.GetCell(i,4),"'","''") & _ "','" & Replace(objCSV.GetCell(i,5),"'","''") & _ "','" & Replace(objCSV.GetCell(i,6),"'","''") & _ "','" & Replace(objCSV.GetCell(i,7),"'","''") & _ "','" & Replace(objCSV.GetCell(i,8),"'","''") & _ "','" & Replace(objCSV.GetCell(i,9),"'","''") & _ "','" & Replace(objCSV.GetCell(i,10),"'","''") & _ "','" & Replace(objCSV.GetCell(i,11),"'","''") & _ "','" & Replace(objCSV.GetCell(i,12),"'","''") & _ "','" & Replace(objCsv.GetCell(i,13),"'","''") & _ "','" & objCsv.GetCell(i,14) & _ "','" & objCsv.GetCell(i,15) & _ "','" & objCsv.GetCell(i,16) & _ "','" & objCsv.GetCell(i,17) & _ "','" & objCsv.GetCell(i,18) & _ "','" & objCsv.GetCell(i,19) & _ "')") Next oConn.Execute("Update Kit SET [Status] = 'Ready to Cass' Where ID = " & kitId &";") 'oConn.Close End If End If End Function Function ConvertCsvToString(FilePath) Dim objFSO:Set objFSO = CreateObject("Scripting.FileSystemObject") Dim objCsvFile:set objCsvFile = objFSO.OpenTextFile(FilePath) Dim strContent:strContent = "" Dim intLineCount:intLineCount = 0 Do Until objCsvFile.AtEndOfStream Or intLineCount >= 3 objCsvFile.SkipLine intLineCount = intLineCount + 1 Loop ' Read the remaining content into a string Do Until objCsvFile.AtEndOfStream Dim strLine:strLine = objCsvFile.ReadLine strContent = strContent & strLine & vbCrLf Loop ConvertCsvToString = strContent End Function Function ValidImportCSV(CsvFileAsString) objCSV.LoadFromString(CsvFileAsString) If objCSV.NumColumns = 20 Then debug.WriteLine objCsv.GetCell(1,1) ValidImportCSV = True Else ValidImportCSV = False End If End Function Sub ImportCass Dim currentRow objCsv.LoadFile("\\kci-syn-cl01\PC Transfer\TrackingDataExport\FROM_MM.CSV") For currentRow = 0 To objCsv.NumRows -1 oConn.Execute("UPDATE InkJetRecords SET CassADDRESS1 = '" & Replace(objCsv.GetCell(currentRow,1),"'","''") & "', " &_ "CassADDRESS2 = '" & Replace(objCSV.GetCell(currentRow,3),"'","''") & "', " &_ "CassADDRESS3 = '" & Replace(objCSV.GetCell(currentRow,4),"'","''") & "', " &_ "CassADDRESS4 = '" & Replace(objCSV.GetCell(currentRow,5),"'","''") & "', " &_ "CassADDRESS5 = '" & Replace(objCsv.GetCell(currentRow,6) & ", " & objCsv.GetCell(currentRow,7) & " " & objCsv.GetCell(currentRow,8),"'","''") & "'" &_ " WHERE ID = " & objCSV.GetCell(currentRow,0) & ";") Next oConn.Execute("UPDATE Kit SET Status ='Ready To Assign STIDS' WHERE ID =" & KitID & ";") End Sub Sub RunMailManager 'WshShell.Run "\\MM2012\APPS\BCC\MM2010\mailman.exe -p -j MMJOB.mjb -u DAN",1,True 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 End Sub Sub ExportMMCsv(KitId) Dim success objCsv.HasColumnNames = 1 objCSV.EnableQuotes = 1 success = objCsv.SetColumnName(0,"ID") success = objCsv.SetColumnName(1,"NAME") success = objCsv.SetColumnName(2,"ADDRESS1") success = objCsv.SetColumnName(3,"ADDRESS2") success = objCsv.SetColumnName(4,"ADDRESS3") success = objCsv.SetColumnName(5,"ADDRESS4") success = objCsv.SetColumnName(6,"ADDRESS5") Dim rs : Set rs = oConn.Execute("Select ID," & _ "IIF(FIRSTNAME IS NULL,'',FIRSTNAME & ' ') & " & _ "IIF(MIDDLENAME IS NULL,'',MIDDLENAME & ' ') & " & _ "IIF(LASTNAME IS NULL,'',LASTNAME & ' ') & " & _ "IIF(SUFFIX IS NULL,'',SUFFIX & ' ') " & _ "AS NAME, ADDRESS1,ADDRESS2,ADDRESS3,ADDRESS4,ADDRESS5 FROM InkjetRecords WHERE KitID =" & KitID & " ORDER By ID;") Dim CurrentRow:CurrentRow = 0 While Not rs.EOF objCSV.SetCell CurrentRow,0,rs("ID").value objCSV.SetCell CurrentRow,1,rs("NAME").value objCSV.SetCell CurrentRow,2,rs("ADDRESS1").value objCSV.SetCell CurrentRow,3,rs("ADDRESS2").value objCSV.SetCell CurrentRow,4,rs("ADDRESS3").value objCSV.SetCell CurrentRow,5,rs("ADDRESS4").value objCSV.SetCell CurrentRow,6,rs("ADDRESS5").value rs.MoveNext CurrentRow = CurrentRow +1 Wend Dim CsvString:CsvString = objCSV.SaveToString() outFile.WriteLine CsvString outFile.Close End Sub Function CheckForJobsToCass() oConn.ConnectionString = ConnectionString oConn.Open 'oConn.Open Dim rs : set rs = oConn.Execute("Select TOP 1 ID from Kit Where Status ='Ready to Cass' ORDER BY ID DESC;") If Not rs.EOF Then Dim kitId : kitId = rs("ID").value rs.Close CheckForJobsToCass = KitID oConn.Execute("UPDATE Kit SET Status ='Cassing' WHERE ID =" & KitID & ";") Else CheckForJobsToCass = 0 End If 'oConn.Close End Function