diff --git a/Dependancies/nssm.exe b/Dependancies/nssm.exe new file mode 100644 index 0000000..b81399d Binary files /dev/null and b/Dependancies/nssm.exe differ diff --git a/ImportService/TrackingDataImport.vbs b/ImportService/TrackingDataImport.vbs new file mode 100644 index 0000000..b5f601d --- /dev/null +++ b/ImportService/TrackingDataImport.vbs @@ -0,0 +1,166 @@ +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]) VALUES ('" & JobNumber & "','" & JCode & "',#" & Now() & "#);") + Dim rs : set rs = oConn.Execute("Select TOP 1 ID from Kit ORDER BY ID DESC") + Dim kitId : kitId = rs("ID").value + rs.close + 'objCsv.LoadFromString(CsvString) + Dim i + For i = 1 To objCSV.NumRows + 'debug.WriteLine objCsv.GetCell(i,0) +' debug.WriteLine("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 (" & CInt(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) & _ +' "')") + 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.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 \ No newline at end of file