|
- Option Explicit
- Dim dev:dev = True
- Dim DataDirectory
- Dim ConnectionString
- 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;"
- 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;"
- End If
-
-
-
- CheckForFiles
-
- Function CheckForFiles()
- Dim objFSO:Set objFSO = CreateObject("Scripting.FileSystemObject")
-
- 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
-
- 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 & _
- ",'" & objCsv.GetCell(i,0) & _
- "','" & objCsv.GetCell(i,1) & _
- "','" & objCsv.GetCell(i,2) & _
- "','" & objCsv.GetCell(i,3) & _
- "','" & objCsv.GetCell(i,4) & _
- "','" & objCsv.GetCell(i,5) & _
- "','" & objCsv.GetCell(i,6) & _
- "','" & objCsv.GetCell(i,7) & _
- "','" & objCsv.GetCell(i,8) & _
- "','" & objCsv.GetCell(i,9) & _
- "','" & objCsv.GetCell(i,10) & _
- "','" & objCsv.GetCell(i,11) & _
- "','" & objCsv.GetCell(i,12) & _
- "','" & 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
|