Advertisement
Guest User

HRMS

a guest
Aug 5th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.49 KB | None | 0 0
  1. Write-Host -ForegroundColor Yellow "Get-HRMSData"
  2.  
  3. $username = 'LEA100ILM'
  4. $password = 'brunswic'
  5. $connectionString = "DSN=HRMS;Uid=$username;Pwd=$password;"
  6. $sqlQuery = @"
  7. select UID AS UID,
  8. EMP_FIRST_NM AS FIRST_NAME,
  9. EMP_MIDDLE_NM AS MIDDLE_NAME,
  10. EMP_LAST_NM AS LAST_NAME,
  11. EMP_NICK_NM AS NICKNAME,
  12. EMP_BIRTH_DTE,
  13. EMP_STATUS_CD,
  14. CES.ESTD_DESC AS EMP_STATUS_DESC,
  15. EMP_HRMS_ID,
  16. EMP_hPhone_ad AS HOME_PHONE,
  17. EMP_cPhone_ad AS CELL_PHONE,
  18. EMP_oPhone_ad AS OFFICE_PHONE,
  19. CP.POS_TITLE_CD AS CURRENT_TITLE_CD,
  20. CP.POS_DESC AS CURRENT_POS_TITLE_DESC,
  21. CP.POS_SITE_CD AS CURRENT_SITE_NUMBER,
  22. CS.STE_SITE_NM AS CURRENT_SITE_NAME,
  23. CA.EAS_PRIMARY_IND AS CURRENT_PRIMARY_IND,
  24. CHAR(CA.EAS_END_DTE,USA) as ASSIGNMENT_END_DATE,
  25. FP.POS_TITLE_CD AS FUTURE_TITLE_CD,
  26. FP.POS_DESC AS FUTURE_POS_TITLE_DESC,
  27. FP.POS_SITE_CD AS FUTURE_SITE_NUMBER,
  28. FS.STE_SITE_NM AS FUTURE_SITE_NAME,
  29. FA.EAS_PRIMARY_IND AS FUTURE_PRIMARY_IND,
  30. CHAR(FA.EAS_START_DTE,USA) as ASSIGNMENT_START_DATE,
  31. PSC_STATUS_CD as PENDING_STATUS_CD,
  32. PES.ESTD_DESC AS PENDING_STATUS_DESC
  33. from HRMSLEA.EMPLOYEE
  34. LEFT OUTER JOIN HRMSLEA.EMPLOYEE_ASSIGNMENT CA ON EMP_SSN_TXT = CA.EAS_SSN_TXT
  35. LEFT OUTER JOIN HRMSLEA.ASSIGNMENT_FUTURE FA ON EMP_SSN_TXT = FA.EAS_SSN_TXT
  36. LEFT OUTER JOIN HRMSLEA.POSITION CP ON CA.EAS_POS_DOCID = CP.POS_DOCID
  37. LEFT OUTER JOIN HRMSLEA.POSITION FP ON FA.EAS_POS_DOCID = FP.POS_DOCID
  38. LEFT OUTER JOIN HRMSSHR.UID ON EMP_SSN_TXT = UID_SSN_TXT
  39. LEFT OUTER JOIN HRMSSHR.SITE CS ON CP.POS_SITE_CD = CS.STE_SITE_CD
  40. LEFT OUTER JOIN HRMSSHR.SITE FS ON FP.POS_SITE_CD = FS.STE_SITE_CD
  41. LEFT OUTER JOIN HRMSSHR.EMPLOYMENT_STATUS_DOM CES ON CES.ESTD_ID = EMP_STATUS_CD
  42. LEFT OUTER JOIN HRMSLEA.PENDING_STATUS_CHG ON EMP_SSN_TXT = PSC_SSN_TXT
  43. LEFT OUTER JOIN HRMSSHR.EMPLOYMENT_STATUS_DOM PES ON PES.ESTD_ID = PSC_STATUS_CD
  44. WHERE CA.EAS_PRIMARY_IND = 1 OR FA.EAS_PRIMARY_IND = 1
  45. "@
  46. $connection = New-Object System.Data.Odbc.OdbcConnection($connectionString)
  47. $connection.open()
  48. $runQuery = New-Object system.Data.Odbc.OdbcCommand($sqlQuery,$connection)
  49. $dataAdapter = New-Object system.Data.Odbc.OdbcDataAdapter($runQuery)
  50. $dataTable = New-Object system.Data.datatable
  51. $null = $dataAdapter.fill($dataTable)
  52. $connection.close()
  53.  
  54. $allData = foreach ( $i in ($dataTable.Where{[string]$_.UID} | group UID) )
  55. {
  56. if ( $i.Count -eq 1 )
  57. {
  58. $i.Group
  59. }
  60. else
  61. {
  62. $i.Group.Where{$_.CURRENT_PRIMARY_IND -and $_.FUTURE_PRIMARY_IND}
  63. }
  64. }
  65.  
  66. $allData | Export-Clixml $HRMSDataFile
  67.  
  68. $IAMData = foreach ( $i in $allData )
  69. {
  70. if ([string]$i.CURRENT_SITE_NUMBER -and [string]$i.FUTURE_SITE_NUMBER)
  71. {
  72. if ([string]$i.ASSIGNMENT_END_DATE)
  73. {
  74. if ($todaysDate -lt [datetime]$i.ASSIGNMENT_END_DATE)
  75. {
  76. $schoolCode = $i.CURRENT_SITE_NUMBER.Trim()
  77. $title = $i.CURRENT_POS_TITLE_DESC.Trim()
  78. $titleCode = $i.CURRENT_TITLE_CD.Trim()
  79. $statusCode = $i.EMP_STATUS_CD.Trim()
  80. $status = $i.EMP_STATUS_DESC.Trim()
  81. }
  82. else
  83. {
  84. $schoolCode = $i.FUTURE_SITE_NUMBER.Trim()
  85. $title = $i.FUTURE_POS_TITLE_DESC.Trim()
  86. $titleCode = $i.FUTURE_TITLE_CD.Trim()
  87. $statusCode = if (![string]$i.PENDING_STATUS_CD){$i.EMP_STATUS_CD.Trim()} else{$i.PENDING_STATUS_CD.Trim()}
  88. $status = if (![string]$i.PENDING_STATUS_DESC){$i.EMP_STATUS_DESC.Trim()} else{$i.PENDING_STATUS_DESC.Trim()}
  89. }
  90. }
  91. else
  92. {
  93. $schoolCode = $i.FUTURE_SITE_NUMBER.Trim()
  94. $title = $i.FUTURE_POS_TITLE_DESC.Trim()
  95. $titleCode = $i.FUTURE_TITLE_CD.Trim()
  96. $statusCode = if (![string]$i.PENDING_STATUS_CD){$i.EMP_STATUS_CD.Trim()} else{$i.PENDING_STATUS_CD.Trim()}
  97. $status = if (![string]$i.PENDING_STATUS_DESC){$i.EMP_STATUS_DESC.Trim()} else{$i.PENDING_STATUS_DESC.Trim()}
  98. }
  99. }
  100. elseif ([string]$i.CURRENT_SITE_NUMBER)
  101. {
  102. $schoolCode = $i.CURRENT_SITE_NUMBER.Trim()
  103. $title = $i.CURRENT_POS_TITLE_DESC.Trim()
  104. $titleCode = $i.CURRENT_TITLE_CD.Trim()
  105. $statusCode = $i.EMP_STATUS_CD.Trim()
  106. $status = $i.EMP_STATUS_DESC.Trim()
  107. }
  108. elseif ([string]$i.FUTURE_SITE_NUMBER)
  109. {
  110. $schoolCode = $i.FUTURE_SITE_NUMBER.Trim()
  111. $title = $i.FUTURE_POS_TITLE_DESC.Trim()
  112. $titleCode = $i.FUTURE_TITLE_CD.Trim()
  113. $statusCode = if (![string]$i.PENDING_STATUS_CD){$i.EMP_STATUS_CD.Trim()} else{$i.PENDING_STATUS_CD.Trim()}
  114. $status = if (![string]$i.PENDING_STATUS_DESC){$i.EMP_STATUS_DESC.Trim()} else{$i.PENDING_STATUS_DESC.Trim()}
  115. }
  116.  
  117. foreach ($p in 'HOME_PHONE','CELL_PHONE','OFFICE_PHONE')
  118. {
  119. if ([string]$i.$p -notmatch '^(|0+)$')
  120. {
  121. [string]$i.$p | sv $p
  122. }
  123. else
  124. {
  125. $null | sv $p
  126. }
  127. }
  128.  
  129. $i | select `
  130. @{l='EmployeeID';e={$_.UID.Trim()}},
  131. @{l='GivenName';e={$_.FIRST_NAME.Trim()}},
  132. @{l='OtherName';e={$_.MIDDLE_NAME.Trim()}},
  133. @{l='Surname';e={$_.LAST_NAME.Trim()}},
  134. @{l='NickName';e={$_.NICKNAME.Trim()}},
  135. @{l='Birthdate';e={$_.EMP_BIRTH_DTE}},
  136. @{l='HomePhone';e={$HOME_PHONE}},
  137. @{l='MobilePhone';e={$CELL_PHONE}},
  138. @{l='OfficePhone';e={$OFFICE_PHONE}},
  139. @{l='SchoolCode';e={$schoolCode}},
  140. @{l='Title';e={$title}},
  141. @{l='TitleCode';e={$titleCode}},
  142. @{l='StatusCode';e={$statusCode}},
  143. @{l='Status';e={$status}},
  144. @{l='EndDate';e={[string]$_.ASSIGNMENT_END_DATE.Trim()}},
  145. @{l='StartDate';e={[string]$_.ASSIGNMENT_START_DATE.Trim()}}
  146. <#@{l='EmployeeID';e={$_.UID.Trim()}},
  147. @{l='GivenName';e={$_.FIRST_NAME.Trim()}},
  148. @{l='OtherName';e={$_.MIDDLE_NAME.Trim()}},
  149. @{l='Surname';e={$_.LAST_NAME.Trim()}},
  150. @{l='NickName';e={$_.NICKNAME.Trim()}},
  151. @{l='Birthdate';e={$_.EMP_BIRTH_DTE}},
  152. @{l='CurrentSchoolCode';e={$_.CURRENT_SITE_NUMBER.Trim()}},
  153. @{l='FutureSchoolCode';e={$_.FUTURE_SITE_NUMBER.Trim()}},
  154. @{l='CurrentTitle';e={$_.CURRENT_POS_TITLE_DESC.Trim()}},
  155. @{l='FutureTitle';e={$_.FUTURE_POS_TITLE_DESC.Trim()}},
  156. @{l='CurrentTitleCode';e={$_.CURRENT_TITLE_CD.Trim()}},
  157. @{l='FutureTitleCode';e={$_.FUTURE_TITLE_CD.Trim()}},
  158. @{l='StatusCode';e={$_.EMP_STATUS_CD.Trim()}},
  159. @{l='FutureStatusCode';e={$_.PENDING_STATUS_CD.Trim()}},
  160. @{l='Status';e={$_.EMP_STATUS_DESC.Trim()}},
  161. @{l='EndDate';e={[string]$_.ASSIGNMENT_END_DATE.Trim()}},
  162. @{l='StartDate';e={[string]$_.ASSIGNMENT_START_DATE.Trim()}}#>
  163. }
  164.  
  165. $IAMData | ? {$_.EmployeeID -match '\d+'} | Export-Clixml $IAMDataFile
  166. <#$dataTable.Where{$_.UID -match '\d+'} | Export-Clixml $HRMSDataFile
  167.  
  168. $IAMData = $dataTable | select `
  169. @{l='EmployeeID';e={$_.UID.Trim()}},
  170. @{l='GivenName';e={$_.FIRST_NAME.Trim()}},
  171. @{l='OtherName';e={$_.MIDDLE_NAME.Trim()}},
  172. @{l='Surname';e={$_.LAST_NAME.Trim()}},
  173. @{l='NickName';e={$_.NICKNAME.Trim()}},
  174. @{l='idautoPersonBirthdate';e={[datetime]$_.EMP_BIRTH_DTE}},
  175. @{l='idautoPersonSchoolCodes';e={$_.CURRENT_SITE_NUMBER.Trim()}},
  176. @{l='Title';e={$_.CURRENT_POS_TITLE_DESC.Trim()}},
  177. @{l='TitleCode';e={$_.CURRENT_TITLE_CD.Trim()}},
  178. @{l='StatusCode';e={$_.EMP_STATUS_CD.Trim()}},
  179. @{l='Status';e={$_.EMP_STATUS_DESC.Trim()}}
  180.  
  181. $IAMData.Where{$_.EmployeeID -match '\d+'} | Export-Clixml $IAMDataFile#>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement