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.

469 lines
21KB

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

Powered by TurnKey Linux.