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 23KB

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

Powered by TurnKey Linux.