{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/account/account.component.ts","./src/app/account/account.component.html","./src/app/account/change-password/changepassword.component.ts","./src/app/account/change-password/changepassword.component.html","./src/app/account/contact-info/contact-info.component.ts","./src/app/account/contact-info/contact-info.component.html","./src/app/app-config.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app/org-select.component.ts","./src/app/app/org-select.component.html","./src/app/callback/callback.component.ts","./src/app/callback/callback.component.html","./src/app/documents/documents.component.ts","./src/app/documents/documents.component.html","./src/app/documents/employer-document-history/employer-document-history.component.ts","./src/app/documents/employer-document-history/employer-document-history.component.html","./src/app/documents/member-doc-upload/member-doc-upload.component.ts","./src/app/documents/member-doc-upload/member-doc-upload.component.html","./src/app/documents/member-document-history/member-document-history.component.ts","./src/app/documents/member-document-history/member-document-history.component.html","./src/app/employees/cutoff-notices/cutoff-notices.component.ts","./src/app/employees/cutoff-notices/cutoff-notices.component.html","./src/app/employees/employees.component.ts","./src/app/employees/employees.component.html","./src/app/employees/enrollments/enroll-member/contact-info/contact-info.component.ts","./src/app/employees/enrollments/enroll-member/contact-info/contact-info.component.html","./src/app/employees/enrollments/enroll-member/enroll-member.component.ts","./src/app/employees/enrollments/enroll-member/enroll-member.component.html","./src/app/employees/enrollments/enroll-member/enrollment-info/enrollment-info.component.ts","./src/app/employees/enrollments/enroll-member/enrollment-info/enrollment-info.component.html","./src/app/employees/enrollments/enroll-member/person-info/person-info.component.ts","./src/app/employees/enrollments/enroll-member/person-info/person-info.component.html","./src/app/employees/enrollments/enrollments.component.ts","./src/app/employees/enrollments/enrollments.component.html","./src/app/employees/enrollments/pending-enrollments/pending-detailed-view/pending-detailed-view.component.ts","./src/app/employees/enrollments/pending-enrollments/pending-detailed-view/pending-detailed-view.component.html","./src/app/employees/enrollments/pending-enrollments/pending-enrollments.component.ts","./src/app/employees/enrollments/pending-enrollments/pending-enrollments.component.html","./src/app/employees/enrollments/processed-enrollments/processed-enrollments.component.ts","./src/app/employees/enrollments/processed-enrollments/processed-enrollments.component.html","./src/app/employees/terminate/terminate.component.ts","./src/app/employees/terminate/terminate.component.html","./src/app/footer/footer.component.ts","./src/app/footer/footer.component.html","./src/app/forbidden/forbidden.component.ts","./src/app/header/header.component.ts","./src/app/header/header.component.html","./src/app/help/help.component.ts","./src/app/help/help.component.html","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/invoice/invoice-details/invoice-details.component.ts","./src/app/invoice/invoice-details/invoice-details.component.html","./src/app/invoice/invoice.component.ts","./src/app/invoice/invoice.component.html","./src/app/landing-page/landing-page.component.ts","./src/app/landing-page/landing-page.component.html","./src/app/login/login.component.ts","./src/app/messages/compose-message/compose-message.component.ts","./src/app/messages/compose-message/compose-message.component.html","./src/app/messages/messages.component.ts","./src/app/messages/messages.component.html","./src/app/messages/view-message/view-message.component.ts","./src/app/messages/view-message/view-message.component.html","./src/app/models/adjustment.ts","./src/app/models/bank-details.model.ts","./src/app/models/enroll.ts","./src/app/models/form-field.ts","./src/app/models/import.ts","./src/app/models/organization.ts","./src/app/models/pay-schedule.model.ts","./src/app/models/payrollRecord.ts","./src/app/models/uploads.ts","./src/app/models/user-edit.model.ts","./src/app/models/user.ts","./src/app/news/news-details/news-details.component.ts","./src/app/news/news-details/news-details.component.html","./src/app/news/news.component.ts","./src/app/news/news.component.html","./src/app/outage-notice/outage-notice.component.ts","./src/app/outage-notice/outage-notice.component.html","./src/app/pay-schedule/create-schedule/create-schedule.component.ts","./src/app/pay-schedule/create-schedule/create-schedule.component.html","./src/app/pay-schedule/delete-schedule/delete-schedule.component.ts","./src/app/pay-schedule/delete-schedule/delete-schedule.component.html","./src/app/pay-schedule/pay-schedule.component.ts","./src/app/pay-schedule/pay-schedule.component.html","./src/app/pay-schedule/schedule-details/schedule-details.component.ts","./src/app/pay-schedule/schedule-details/schedule-details.component.html","./src/app/payroll/adjustment-reports-v2/adjustment-reports-v2.component.ts","./src/app/payroll/adjustment-reports-v2/adjustment-reports-v2.component.html","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/adj-record-add-edit-form/adj-record-add-edit-form.component.ts","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/adj-record-add-edit-form/adj-record-add-edit-form.component.html","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/corresponding-view/corresponding-view.component.ts","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/corresponding-view/corresponding-view.component.html","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/create-adjustment-report.component.ts","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/create-adjustment-report.component.html","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/error-grid/error-detail-view/error-detail-view.component.ts","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/error-grid/error-detail-view/error-detail-view.component.html","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/error-grid/error-grid.component.ts","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/error-grid/error-grid.component.html","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/invalid-grid/invalid-detail-view/invalid-detail-view.component.ts","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/invalid-grid/invalid-detail-view/invalid-detail-view.component.html","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/invalid-grid/invalid-grid.component.ts","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/invalid-grid/invalid-grid.component.html","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/valid-grid/valid-detail-view/valid-detail-view.component.ts","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/valid-grid/valid-detail-view/valid-detail-view.component.html","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/valid-grid/valid-grid.component.ts","./src/app/payroll/adjustment-reports-v2/create-adjustment-report/valid-grid/valid-grid.component.html","./src/app/payroll/adjustment-reports-v2/record-detail-view/record-detail-view.component.ts","./src/app/payroll/adjustment-reports-v2/record-detail-view/record-detail-view.component.html","./src/app/payroll/adjustment-reports-v2/rejected-adjustment-records/rejected-adjustment-records.component.ts","./src/app/payroll/adjustment-reports-v2/rejected-adjustment-records/rejected-adjustment-records.component.html","./src/app/payroll/adjustment-reports-v2/view-adjustment-reports/detailed-view/child-detailed-view/child-detailed-view.component.ts","./src/app/payroll/adjustment-reports-v2/view-adjustment-reports/detailed-view/child-detailed-view/child-detailed-view.component.html","./src/app/payroll/adjustment-reports-v2/view-adjustment-reports/detailed-view/detailed-view.component.ts","./src/app/payroll/adjustment-reports-v2/view-adjustment-reports/detailed-view/detailed-view.component.html","./src/app/payroll/adjustment-reports-v2/view-adjustment-reports/view-adjustment-reports.component.ts","./src/app/payroll/adjustment-reports-v2/view-adjustment-reports/view-adjustment-reports.component.html","./src/app/payroll/adjustment-reports/adjustment-record/adjustment-record.component.ts","./src/app/payroll/adjustment-reports/adjustment-record/adjustment-record.component.html","./src/app/payroll/adjustment-reports/adjustment-reports.component.ts","./src/app/payroll/adjustment-reports/adjustment-reports.component.html","./src/app/payroll/adjustment-reports/adjustment-summary/adjustment-summary.component.ts","./src/app/payroll/adjustment-reports/adjustment-summary/adjustment-summary.component.html","./src/app/payroll/payroll-reports/payroll-record-add-edit-form/payroll-record-add-edit-form.component.ts","./src/app/payroll/payroll-reports/payroll-record-add-edit-form/payroll-record-add-edit-form.component.html","./src/app/payroll/payroll-reports/payroll-record/payroll-record.component.ts","./src/app/payroll/payroll-reports/payroll-record/payroll-record.component.html","./src/app/payroll/payroll-reports/payroll-reports.component.ts","./src/app/payroll/payroll-reports/payroll-reports.component.html","./src/app/payroll/payroll-reports/payroll-summary/payroll-summary.component.ts","./src/app/payroll/payroll-reports/payroll-summary/payroll-summary.component.html","./src/app/payroll/payroll.component.ts","./src/app/payroll/payroll.component.html","./src/app/profiles/manage-banking-info/manage-banking-info.component.ts","./src/app/profiles/manage-banking-info/manage-banking-info.component.html","./src/app/profiles/manage-users-and-contact/add-edit-users-and-contact/add-edit-users-and-contact.component.ts","./src/app/profiles/manage-users-and-contact/add-edit-users-and-contact/add-edit-users-and-contact.component.html","./src/app/profiles/manage-users-and-contact/manage-users-and-contact.component.ts","./src/app/profiles/manage-users-and-contact/manage-users-and-contact.component.html","./src/app/profiles/manage-users/add-edit-users/add-edit-users.component.ts","./src/app/profiles/manage-users/add-edit-users/add-edit-users.component.html","./src/app/profiles/manage-users/manage-users.component.ts","./src/app/profiles/manage-users/manage-users.component.html","./src/app/profiles/profiles.component.ts","./src/app/profiles/profiles.component.html","./src/app/profiles/view-org-info/view-org-info.component.ts","./src/app/profiles/view-org-info/view-org-info.component.html","./src/app/shared/date-range-filter/date-range-filter.component.ts","./src/app/shared/directives/age-validator.directive.ts","./src/app/shared/directives/filter-icon.directive.ts","./src/app/shared/directives/required.directive.ts","./src/app/shared/global.constants.ts","./src/app/shared/message-count/message-count.component.ts","./src/app/shared/message-count/message-count.component.html","./src/app/shared/notification-loading/notification-loading.component.ts","./src/app/shared/notification/notification.component.ts","./src/app/shared/notification/notification.component.html","./src/app/shared/pipes/phone.pipe.ts","./src/app/shared/pipes/ssn.pipe.ts","./src/app/shared/service-error/service-error.component.ts","./src/app/shared/service-error/service-error.component.html","./src/app/shared/services/account/account-endpoint.service.ts","./src/app/shared/services/account/account.service.ts","./src/app/shared/services/adjustments/adjustment.service.ts","./src/app/shared/services/auth/auth-guard.service.ts","./src/app/shared/services/auth/auth-interceptor.service.ts","./src/app/shared/services/auth/auth.service.ts","./src/app/shared/services/auth/configuration.service.ts","./src/app/shared/services/auth/db-keys.ts","./src/app/shared/services/auth/endpoint-factory.service.ts","./src/app/shared/services/auth/local-store-manager.service.ts","./src/app/shared/services/common/animations.ts","./src/app/shared/services/common/common.service.ts","./src/app/shared/services/common/notification.service.ts","./src/app/shared/services/common/read-config.service.ts","./src/app/shared/services/common/user.service.ts","./src/app/shared/services/common/users.service.ts","./src/app/shared/services/documents/document.service.ts","./src/app/shared/services/employees/employees.service.ts","./src/app/shared/services/invoices/invoice.service.ts","./src/app/shared/services/messages/messages.service.ts","./src/app/shared/services/pay-schedules/schedule.service.ts","./src/app/shared/services/payroll/import.service.ts","./src/app/shared/services/profile/payments.service.ts","./src/app/shared/services/uploads/upload.service.ts","./src/app/shared/upload-history/upload-history.component.ts","./src/app/shared/upload-history/upload-history.component.html","./src/app/shared/utility.ts","./src/app/task-tracker/active-task/active-task.component.ts","./src/app/task-tracker/active-task/active-task.component.html","./src/app/task-tracker/completed-task/completed-task.component.ts","./src/app/task-tracker/completed-task/completed-task.component.html","./src/app/task-tracker/task-tracker.component.ts","./src/app/task-tracker/task-tracker.component.html","./src/app/uploads/earnings-limitation/earnings-limitation.component.ts","./src/app/uploads/earnings-limitation/earnings-limitation.component.html","./src/app/uploads/earnings-limitation/exemptions/exemptions.component.ts","./src/app/uploads/earnings-limitation/exemptions/exemptions.component.html","./src/app/uploads/earnings-limitation/wage-file/wage-file.component.ts","./src/app/uploads/earnings-limitation/wage-file/wage-file.component.html","./src/app/uploads/member-documents/member-documents.component.ts","./src/app/uploads/member-documents/member-documents.component.html","./src/app/uploads/other/other.component.ts","./src/app/uploads/other/other.component.html","./src/app/uploads/retiree-deductions/retiree-deductions.component.ts","./src/app/uploads/retiree-deductions/retiree-deductions.component.html","./src/app/uploads/sl-recertification/sl-recertification.component.ts","./src/app/uploads/sl-recertification/sl-recertification.component.html","./src/app/uploads/uploads.component.ts","./src/app/uploads/uploads.component.html","./src/environments/environment.ts","./src/main.ts","ignored|C:\\AzureDevOpsAgent2\\_work\\64\\s\\node_modules\\crypto-js|crypto"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { AuthService } from '../shared/services/auth/auth.service';\nimport { fadeInOut } from '../shared/services/common/animations';\n\n@Component({\n selector: 'account',\n templateUrl: './account.component.html',\n styleUrls: ['./account.component.css'],\n animations: [fadeInOut]\n})\nexport class AccountComponent implements OnInit {\n isProfileActived = true;\n isPreferencesActived = false;\n isUsersActived = false;\n isRolesActived = false;\n displayProfile = false;\n\n fragmentSubscription: any;\n languageChangedSubscription: any;\n rolesChangedSubscription: any;\n\n readonly profileTab = 'profile';\n readonly preferencesTab = 'preferences';\n readonly usersTab = 'users';\n readonly rolesTab = 'roles';\n\n activeTab: string | undefined = this.profileTab;\n\n constructor(private authService: AuthService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n }\n\n onShowTab(event: any) {\n this.setActiveTab(event.target.hash);\n switch (this.activeTab) {\n case this.profileTab:\n this.isProfileActived = true;\n break;\n case this.preferencesTab:\n this.isPreferencesActived = true;\n break;\n case this.usersTab:\n this.isUsersActived = true;\n break;\n case this.rolesTab:\n this.isRolesActived = true;\n break;\n default:\n throw new Error('Selected bootstrap tab is unknown. Selected Tab: ' + this.activeTab);\n }\n }\n\n setActiveTab(tab: string) {\n this.activeTab = tab.split('#', 2).pop();\n }\n}\n","
\n
\n

Account

\n
\n \n \n \n
\n
\n
\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { UserEdit } from '../../models/user-edit.model';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\r\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\r\nimport { UserService } from 'src/app/shared/services/common/user.service';\r\nimport { UsersService } from 'src/app/shared/services/common/users.service';\r\n\r\n@Component({\r\n selector: 'app-changepassword',\r\n templateUrl: './changepassword.component.html',\r\n styleUrls: ['./changepassword.component.css']\r\n})\r\n\r\nexport class ChangePasswordComponent implements OnInit {\r\n userEdit = new UserEdit('', '');\r\n tokencode = '';\r\n tokenValid: boolean;\r\n isLoading = false;\r\n pwUpdated = false;\r\n isError = false;\r\n pwMismatch = false;\r\n pwValid = false;\r\n showRules = false;\r\n samePhrase = false;\r\n isPassUsed = false;\r\n curpassword = '';\r\n password = '';\r\n repassword = '';\r\n passCharcters: string;\r\n passStrength: string;\r\n strength = null;\r\n inputType1 = 'password';\r\n inputType2 = 'password';\r\n inputType3 = 'password';\r\n spChars = '`~!@#$%^&*()-_=+[]{}|\\\\:;\\'\\\",.<>?/';\r\n @Output() changeStatus: EventEmitter = new EventEmitter();\r\n config: any;\r\n\r\n constructor(\r\n private usersService: UsersService,\r\n private userService: UserService,\r\n private readConfigService: ReadConfigService,\r\n private notificationService: DisplayNotificationService) { }\r\n\r\n ngOnInit() {\r\n this.config = this.readConfigService.getContactUpdateText('Password');\r\n }\r\n\r\n changePassword() {\r\n this.isLoading = true;\r\n this.userService.getChangePasswordEndpoint(this.curpassword, this.password).subscribe((ret: any) => {\r\n if (ret.success) {\r\n this.isLoading = false;\r\n this.pwUpdated = ret.success;\r\n this.changeStatus.emit(ret.success);\r\n } else {\r\n this.isLoading = false;\r\n this.isError = true;\r\n this.changeStatus.emit(false);\r\n }\r\n },\r\n error => {\r\n console.log(error);\r\n this.isLoading = false;\r\n this.isError = true;\r\n this.changeStatus.emit(false);\r\n });\r\n }\r\n\r\n displayError(): boolean {\r\n const confirmPswrd = this.repassword;\r\n if (confirmPswrd && confirmPswrd.length > 0) {\r\n return (confirmPswrd !== this.password);\r\n }\r\n return false;\r\n }\r\n\r\n displayMatchingError(): boolean {\r\n const newPswrd = this.password;\r\n const currPswrd = this.curpassword;\r\n if (currPswrd && currPswrd.length > 0 && newPswrd && newPswrd.length > 0) {\r\n return (newPswrd === currPswrd);\r\n }\r\n return false;\r\n }\r\n\r\n disableButton() {\r\n return !(\r\n this.password.length > 0 && this.repassword === this.password && this.curpassword.length > 0\r\n && this.password !== this.curpassword && this.password.length > 7);\r\n }\r\n\r\n scorePassword(pass: any) {\r\n let score = 0;\r\n if (!pass) {\r\n return score;\r\n }\r\n // award every unique letter until 5 repetitions\r\n const letters = new Object();\r\n for (const i of pass) {\r\n letters[i] = (letters[i] || 0) + 1;\r\n score += 5.0 / letters[i];\r\n }\r\n // bonus points for mixing it up\r\n const variations = {\r\n digits: /\\d/.test(pass),\r\n lower: /[a-z]/.test(pass),\r\n upper: /[A-Z]/.test(pass),\r\n nonWords: /\\W/.test(pass),\r\n };\r\n let variationCount = 0;\r\n Object.keys(variations).forEach(element => {\r\n variationCount += (variations[element] === true) ? 1 : 0;\r\n });\r\n score += (variationCount - 1) * 10;\r\n return score;\r\n }\r\n\r\n checkPassStrength(pass: any) {\r\n const score = this.scorePassword(pass);\r\n if (score > 80) {\r\n return 'Strong';\r\n }\r\n if (score > 60) {\r\n return 'Good';\r\n }\r\n if (score >= 5) {\r\n return 'Weak';\r\n }\r\n return null;\r\n }\r\n\r\n textChange() {\r\n if (this.password) {\r\n this.password = this.password.replace(/[+]/g, '').replace(/^\\s+/g, '');\r\n this.repassword = null;\r\n const pass = this.password;\r\n if (pass.length < 8) {\r\n this.passCharcters = 'text-red';\r\n } else {\r\n this.passCharcters = 'text-green';\r\n }\r\n this.strength = this.checkPassStrength(pass);\r\n if (this.strength === 'Weak' || this.strength === null) {\r\n this.passStrength = 'text-red';\r\n } else {\r\n this.passStrength = 'text-green';\r\n }\r\n } else {\r\n this.strength = null;\r\n this.passCharcters = 'text-black';\r\n this.passStrength = 'text-black';\r\n }\r\n }\r\n\r\n onFocus(): void {\r\n this.showRules = true;\r\n }\r\n\r\n onBlur(value: any) {\r\n this.showRules = false;\r\n this.isPassUsed = false;\r\n if (!this.samePhrase && value && value.length > 0) {\r\n this.userService.isPwdUsed(this.usersService.encrypt(value.trim(), 'post')).subscribe((data: any) => {\r\n if (data.result === true) {\r\n this.isPassUsed = true;\r\n } else {\r\n this.isPassUsed = false;\r\n }\r\n },\r\n (err: HttpErrorResponse) => {\r\n console.log(err);\r\n this.isPassUsed = true;\r\n this.notificationService.setErrorNotification();\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
    \r\n
  • {{config.NotMatchingPasswords}}
  • \r\n
  • {{config.SamePasswordMessage}}\r\n
  • \r\n
  • {{config.ExisitingPassword}}\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n
    \r\n
  • * Password Strength: {{strength}}\r\n
  • \r\n
  • * Use 8 to 64 characters
  • \r\n
  • * Password is case sensitive
  • \r\n
  • * Avoid using the same password for multiple sites.
  • \r\n
  • * Avoid using '+' special character.
  • \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { User } from 'src/app/models/user';\nimport { AccountService } from 'src/app/shared/services/account/account.service';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-contact-info',\n templateUrl: './contact-info.component.html',\n styleUrls: ['./contact-info.component.css']\n})\nexport class ContactInfoComponent implements OnInit {\n isEditMode = false;\n isSaving = false;\n opened = false;\n maskValidation = true;\n user = new User();\n currentUserData: any = {};\n operators: any;\n openDialog: boolean;\n config: any;\n\n constructor(\n private router: Router,\n private accountService: AccountService,\n private notificationService: DisplayNotificationService,\n private readConfigService: ReadConfigService,\n private authService: AuthService) { }\n\n ngOnInit() {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n this.operators = this.authService.getAccessOperations(1);\n this.notificationService.setUpLoading(true);\n this.loadCurrentUserData();\n this.config = this.readConfigService.getContactUpdateText('Password');\n }\n\n loadCurrentUserData() {\n this.accountService.getCurrentUser().subscribe(response => {\n this.currentUserData = response;\n this.notificationService.setUpLoading(false);\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n edit() {\n this.isEditMode = true;\n Object.assign(this.user, this.currentUserData);\n }\n\n cancel() {\n this.isEditMode = false;\n }\n\n callChangePw() {\n this.open();\n }\n\n private open() {\n this.opened = true;\n }\n\n save() {\n this.isSaving = true;\n this.notificationService.setUpLoading(true);\n this.accountService.updateUserDetail(this.user).subscribe(\n response => this.saveSuccessHelper(response),\n error => this.saveFailedHelper(error));\n }\n\n checkPw(changeStatus: boolean) {\n this.closePopup();\n if (changeStatus) {\n this.openDialog = true;\n setTimeout(() => {\n sessionStorage.clear();\n this.router.navigate(['/login']);\n }, 5000);\n } else {\n this.notificationService.setUpNotification({\n success: false,\n message: this.config.WrongPasswordMessage\n });\n }\n }\n\n closePopup() {\n this.opened = false;\n }\n\n saveSuccessHelper(response: any) {\n this.isSaving = false;\n this.isEditMode = false;\n this.loadCurrentUserData();\n this.notificationService.setUpNotification(response);\n }\n\n saveFailedHelper(error: any) {\n this.isSaving = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setUpNotification(error);\n }\n\n validations(form: any, field: any) {\n const isDirty = (form && form.controls[field] && form.controls[field].dirty);\n if (isDirty) {\n return !form.controls[field].valid;\n }\n return false;\n }\n\n}\n","
\n
\n
\n
\n

Contact Information

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n Email Address:\n \n \n
\n

{{currentUserData.emailAddress}}

\n
\n
\n \n First Name*:\n \n \n
\n

{{currentUserData.firstName}}

\n
\n \n \n
\n \n Valid First Name is required\n \n
\n
\n
\n \n Middle Initial:\n \n \n
\n

{{currentUserData.middleName}}

\n
\n \n \n
\n \n Valid Middle Initial is required\n \n
\n
\n
\n \n Last Name*:\n \n \n
\n

{{currentUserData.lastName}}

\n
\n \n \n
\n \n Valid Last Name is required\n \n
\n
\n
\n \n Title:\n \n \n
\n

{{currentUserData.jobTitle}}

\n
\n \n \n \n
\n \n Phone Number*:\n \n \n
\n

{{ currentUserData.phoneNumber | phone }}

\n
\n
\n \n
\n \n Valid phone number is required\n \n
\n
\n
\n \n Extension:\n \n \n
\n

{{currentUserData.phoneNumberExtension}}

\n
\n
\n \n \n
\n
\n \n Phone Number 2:\n \n \n
\n

{{currentUserData.phoneNumber2 | phone}}

\n
\n
\n \n
\n
\n \n Extension 2:\n \n \n
\n

{{currentUserData.phoneNumber2Extension}}

\n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n {{config.PasswordChangeSuccess}}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Global } from './shared/global.constants';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppConfigService {\n public appConfig: any;\n darkKeys: any;\n outageNoticeDetails: any;\n regExToSearch: any;\n\n constructor(private http: HttpClient) { }\n\n /**\n * @description\n * This is a loadAppConfig function to return a promise for appConfig.json file\n *\n */\n async loadAppConfig(): Promise {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'No-Auth': 'True'\n });\n const data = await this.http.get('assets/data/appConfig.json', { headers })\n .toPromise();\n this.appConfig = data;\n this.regExToSearch = new RegExp(this.appConfig.EPAppId, 'gi');\n // from UI config\n if (this.appConfig.ServerDown) {\n this.outageNoticeDetails = this.appConfig.OutageOfflineText;\n sessionStorage.setItem('outage', 'true');\n } else {\n this.loadDarkFeatures().then(\n () => { },\n (err) => {\n console.log(err);\n if (err && err.error && err.error.apps && err.error.apps.search(this.regExToSearch) !== -1) {\n this.outageNoticeDetails = {\n startDt: err.error.startDate,\n endDt: err.error.endDate,\n maintenanceFlag: true,\n outageMessage: err.error.outageMessage,\n outageType: err.error.outageType\n };\n sessionStorage.setItem('outage', 'true');\n }\n }\n );\n }\n }\n /**\n * @description\n * This is a loadDarkFeatures function\n */\n async loadDarkFeatures(): Promise {\n const reqHeader = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'No-Auth': 'True'\n });\n const url = this.appConfig.API_URL + Global.BASE_GET_DARK_FEATURE_ENDPOINT;\n const data = await this.http.get(url, { headers: reqHeader })\n .toPromise();\n if (data['statusCode'] === 200 && data['result'] && data['result'].length > 0) {\n this.darkKeys = data['result'];\n this.darkKeys = this.darkKeys.filter((item: any) =>\n item.feature.search(/admin/gi) === -1);\n const account = this.darkKeys.find((x: any) => x.feature === 'Account' && x.enabled);\n const home = this.darkKeys.find((x: any) => x.feature === 'Home' && x.enabled);\n sessionStorage.setItem('DFLoaded', 'true');\n sessionStorage.setItem('uploadsFeature', account && !home ? 'true' : 'false');\n if (this.getDarkKeyValue(this.appConfig.OutageDFName)) {\n this.loadScheduledMaintenance().then(\n () => { },\n (err) => console.log(err)\n );\n } else {\n sessionStorage.setItem('outage', 'false');\n }\n } else if (data && data['statusCode'] === 422) {\n if (data['apps'] && data['apps'].search(this.regExToSearch) !== -1) {\n this.outageNoticeDetails = {\n startDt: data['startDate'],\n endDt: data['endDate'],\n maintenanceFlag: true,\n outageMessage: data['outageMessage'],\n outageType: data['outageType']\n };\n sessionStorage.setItem('outage', 'true');\n }\n }\n }\n\n /**\n * @description\n * This is a getScheduledMaintenance function\n */\n async loadScheduledMaintenance(): Promise {\n const reqHeader = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'No-Auth': 'True'\n });\n const url = this.appConfig.API_URL + Global.BASE_GET_SCHEDULED_MAINTANANCE_ENDPOINT;\n const data = await this.http.get(url, { headers: reqHeader })\n .toPromise();\n if (data && data['statusCode'] === 200 && data['result'] && data['result'].apps.search(this.regExToSearch) !== -1) {\n this.outageNoticeDetails = data['result'];\n sessionStorage.setItem('outage', 'true');\n } else {\n // from UI config\n if (!this.appConfig.ServerDown) {\n sessionStorage.setItem('outage', 'false');\n }\n }\n }\n\n /**\n * @description\n * This is a getConfig function to return appConfig variable value\n *\n */\n getConfig(): any {\n return this.appConfig;\n }\n\n /**\n * @description\n * This is a getScheduledMaintenance function to return outageNoticeDetails Object value\n */\n getScheduledMaintenance() {\n return this.outageNoticeDetails;\n }\n\n /**\n * @description\n * This is a getDarkKeyValue function to return boolean from the key values in dark feature object enabled\n */\n\n getDarkKeyValue(value: string): any {\n let canEnable = false;\n if (this.darkKeys === undefined) {\n return canEnable;\n }\n this.darkKeys.some((element: any) => {\n if (element.feature === value) {\n canEnable = element.enabled;\n }\n });\n return canEnable;\n }\n}\n","import { OtherComponent } from './uploads/other/other.component';\nimport { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { CallbackComponent } from './callback/callback.component';\nimport { DocumentsComponent } from './documents/documents.component';\nimport { EmployerDocumentHistoryComponent } from './documents/employer-document-history/employer-document-history.component';\nimport { HelpComponent } from './help/help.component';\nimport { HomeComponent } from './home/home.component';\nimport { LoginComponent } from './login/login.component';\nimport { NewsDetailsComponent } from './news/news-details/news-details.component';\nimport { PayScheduleComponent } from './pay-schedule/pay-schedule.component';\nimport { PayrollComponent } from './payroll/payroll.component';\nimport { ManageBankingInfoComponent } from './profiles/manage-banking-info/manage-banking-info.component';\nimport { ManageUsersComponent } from './profiles/manage-users/manage-users.component';\nimport { ProfilesComponent } from './profiles/profiles.component';\nimport { ViewOrgInfoComponent } from './profiles/view-org-info/view-org-info.component';\nimport { UploadsComponent } from './uploads/uploads.component';\nimport { LandingPageComponent } from './landing-page/landing-page.component';\nimport { MemberDocUploadComponent } from './documents/member-doc-upload/member-doc-upload.component';\nimport { ContactInfoComponent } from './account/contact-info/contact-info.component';\nimport { AuthGuard } from './shared/services/auth/auth-guard.service';\nimport { InvoiceComponent } from './invoice/invoice.component';\nimport { PayrollReportsComponent } from './payroll/payroll-reports/payroll-reports.component';\nimport { AdjustmentReportsComponent } from './payroll/adjustment-reports/adjustment-reports.component';\nimport { ForbiddenComponent } from './forbidden/forbidden.component';\nimport { ServiceErrorComponent } from './shared/service-error/service-error.component';\nimport { MemberDocumentHistoryComponent } from './documents/member-document-history/member-document-history.component';\nimport { EmployeesComponent } from './employees/employees.component';\nimport { TerminateComponent } from './employees/terminate/terminate.component';\nimport { EarningsLimitationComponent } from './uploads/earnings-limitation/earnings-limitation.component';\nimport { MemberDocumentsComponent } from './uploads/member-documents/member-documents.component';\nimport { SlRecertificationComponent } from './uploads/sl-recertification/sl-recertification.component';\nimport { RetireeDeductionsComponent } from './uploads/retiree-deductions/retiree-deductions.component';\nimport { AdjustmentReportsV2Component } from './payroll/adjustment-reports-v2/adjustment-reports-v2.component';\nimport { CutoffNoticesComponent } from './employees/cutoff-notices/cutoff-notices.component';\nimport { EnrollmentsComponent } from './employees/enrollments/enrollments.component';\n\nconst routes: Routes = [\n { path: 'landing-page', component: LandingPageComponent },\n { path: 'home', component: HomeComponent },\n { path: 'callback', component: CallbackComponent },\n { path: 'news-details/:id', component: NewsDetailsComponent },\n {\n path: 'payroll', component: PayrollComponent, canActivate: [AuthGuard],\n children: [\n { path: 'payroll-reports', component: PayrollReportsComponent },\n { path: 'adjustment-reports', component: AdjustmentReportsComponent },\n { path: 'adjustment-reports-v2', component: AdjustmentReportsV2Component }\n ]\n },\n { path: 'invoice', component: InvoiceComponent, canActivate: [AuthGuard] },\n { path: 'pay-schedule', component: PayScheduleComponent, canActivate: [AuthGuard] },\n {\n path: 'profiles', component: ProfilesComponent, canActivate: [AuthGuard],\n children: [\n { path: 'manage-users', component: ManageUsersComponent },\n { path: 'view-organization-information', component: ViewOrgInfoComponent },\n { path: 'banking-information', component: ManageBankingInfoComponent },\n ]\n },\n {\n path: 'employees', component: EmployeesComponent, canActivate: [AuthGuard],\n children: [\n { path: 'enrollments', component: EnrollmentsComponent },\n { path: 'terminate', component: TerminateComponent },\n { path: 'cutoff-notices', component: CutoffNoticesComponent },\n ]\n },\n {\n path: 'uploads', component: UploadsComponent, canActivate: [AuthGuard], data: { title: 'Uploads' },\n children: [\n { path: 'member-document', component: MemberDocumentsComponent },\n { path: 'sick-leave-recertification', component: SlRecertificationComponent },\n { path: 'earnings-limitation', component: EarningsLimitationComponent },\n { path: 'retiree-deductions', component: RetireeDeductionsComponent },\n { path: 'other', component: OtherComponent }\n ]\n },\n { path: 'employer-documents', component: EmployerDocumentHistoryComponent, canActivate: [AuthGuard] },\n {\n path: 'documents', component: DocumentsComponent, canActivate: [AuthGuard],\n children: [\n { path: 'view-employer-documents', component: EmployerDocumentHistoryComponent },\n { path: 'member-document-history', component: MemberDocumentHistoryComponent },\n { path: 'member-document-upload', component: MemberDocUploadComponent }\n ]\n },\n { path: 'help', component: HelpComponent },\n {\n path: 'account', component: ContactInfoComponent, canActivate: [AuthGuard], data: { title: 'Account' },\n children: [\n { path: '', redirectTo: 'contact-information', pathMatch: 'full' },\n { path: 'contact-information', component: ContactInfoComponent }]\n },\n { path: 'forbidden', component: ForbiddenComponent },\n { path: 'serviceerror', component: ServiceErrorComponent, canActivate: [AuthGuard] },\n { path: '', component: LoginComponent, data: { title: 'Login' } },\n { path: 'login', component: LoginComponent, data: { title: 'Login' } },\n { path: '**', redirectTo: '/login', pathMatch: 'full' }];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { AuthConfig, OAuthService } from 'angular-oauth2-oidc';\nimport { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';\nimport { AppConfigService } from './app-config.service';\nimport { Global } from './shared/global.constants';\nimport { Idle } from 'idlejs';\nimport { AuthService } from './shared/services/auth/auth.service';\nimport { ReadConfigService } from './shared/services/common/read-config.service';\nimport { Router } from '@angular/router';\nimport { OutageNoticeComponent } from './outage-notice/outage-notice.component';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent implements OnInit {\n config: any = undefined;\n public orgOpened = true;\n singleOrg = true;\n disableOrgChange = false;\n loggedInUser: any = '';\n loggedIn = false;\n selectedOrg: any;\n orgCount = 0;\n currentYear: any;\n appName = '';\n orgName = '';\n orgAbbr = '';\n openLogOut = false;\n timeLeft: any;\n displayTime = '';\n private Claims: any;\n currPerm: any[];\n loadingIcon: boolean;\n logoutTimer: number;\n maxTimeOut: number;\n idle = new Idle()\n .whenNotInteractive();\n outageMethodTimeout: any;\n googleAnalyticsKey: any;\n\n constructor(\n private router: Router,\n private authService: AuthService,\n private oauthService: OAuthService,\n private appConfig: AppConfigService,\n private readConfigService: ReadConfigService) {\n this.config = this.appConfig.getConfig();\n this.googleAnalyticsKey = this.config !== undefined ? this.config.GA_ID : '';\n this.appendGaTrackingCode();\n this.verifyScheduledOutage();\n }\n\n // UPLOAD CHANGES START\n ngOnInit(): void {\n this.logoutTimer = this.config ? this.config.LogoutTimer : 15;\n this.maxTimeOut = this.config !== undefined ? this.config.autoLogoutTime : 10;\n this.outageMethodTimeout = this.config !== undefined ? this.config.OutageMethodTimeout : 1000;\n this.idle.within(this.maxTimeOut).do(() => this.logOutConfirm()).start();\n this.orgOpened = true;\n this.appName = Global.ApplicationName;\n this.orgName = Global.OrganizationName;\n this.orgAbbr = Global.OrgAbbr;\n this.currentYear = new Date().getFullYear();\n this.authService.checkorgCount$.subscribe(\n count => {\n this.orgCount = parseInt(count, 0);\n });\n this.authService.checkLoggedIn$.subscribe(\n status => {\n this.loggedIn = status;\n });\n this.authService.checkUser$.subscribe(user => {\n if (user != null) {\n this.loggedIn = true;\n }\n });\n }\n\n verifyScheduledOutage() {\n setTimeout(() => {\n if (sessionStorage.getItem('outage') === null) {\n this.verifyScheduledOutage();\n } else {\n if (JSON.parse(sessionStorage.getItem('outage'))) {\n this.loadingIcon = true;\n const outageDetails = this.appConfig.getScheduledMaintenance();\n if (outageDetails && outageDetails.maintenanceFlag) {\n this.loggedIn = false;\n this.router.config = [];\n this.router.config.push(\n { path: 'outagenotice', component: OutageNoticeComponent },\n { path: '', redirectTo: '/outagenotice', pathMatch: 'full' },\n { path: '**', redirectTo: '/outagenotice', pathMatch: 'full' }\n );\n this.router.navigate(['/outagenotice']);\n } else {\n this.saCallback();\n }\n this.loadingIcon = false;\n } else {\n this.saCallback();\n }\n }\n }, this.outageMethodTimeout);\n }\n\n saCallback() {\n const authUrl = this.config !== undefined ? this.config.AuthUrl : '';\n const originUrl = this.config !== undefined ? this.config.OriginUrl : '';\n const authScope = this.config !== undefined ? this.config.AuthScope : '';\n const clientInfo = this.config !== undefined ? this.config.ClientId : '';\n const clientSecret = this.config !== undefined ? this.config.ClientSecret : '';\n const tokenUrl = this.config !== undefined ? this.config.TokenEndPoint : '';\n const authConfig: AuthConfig = {\n issuer: authUrl,\n redirectUri: originUrl,\n tokenEndpoint: tokenUrl,\n responseType: 'code',\n dummyClientSecret: clientSecret,\n clientId: clientInfo,\n scope: authScope\n };\n\n this.oauthService.configure(authConfig);\n this.oauthService.tokenValidationHandler = new JwksValidationHandler();\n if (!this.oauthService.hasValidAccessToken()) {\n this.oauthService.loadDiscoveryDocument().then(() => {\n this.oauthService.tryLogin({\n disableOAuth2StateCheck: true\n });\n });\n }\n }\n\n selectedOrganization(args: any) {\n this.selectedOrg = args;\n }\n\n setActiveClass(link: string) {\n const paths = location.pathname.replace(/\\//g, ',').split(',');\n return paths.length > 1 && link === paths[1] ? 'text-red' : 'text-black';\n }\n\n logOutConfirm(): void {\n if (!this.loggedIn) { return; }\n this.openLogOut = true;\n this.timeLeft = this.logoutTimer;\n this.displayTime = '00:' + this.logoutTimer;\n this.timeOut();\n }\n\n timeOut(): void {\n if (this.openLogOut) {\n setTimeout(() => {\n this.timeLeft = this.timeLeft - 1;\n const minutes = Math.floor(this.timeLeft / 60);\n const seconds = this.timeLeft - minutes * 60;\n\n this.displayTime = '0' + minutes + ':' + ('0' + seconds).slice(-2);\n if (this.timeLeft === 0) {\n // Task 1277:If schedule is in edit mode, redirect doesnt work for timeout.\n this.authService.formChanged(true);\n this.logout(false);\n }\n this.timeOut();\n }, 1000);\n }\n }\n\n logOutClose(): void {\n this.timeLeft = -1;\n this.openLogOut = false;\n }\n\n logout(isManual: boolean) {\n this.logOutClose();\n this.orgOpened = true;\n this.loggedIn = false;\n sessionStorage.setItem('logout', 'true');\n this.authService.logout(isManual);\n this.authService.redirectLogoutUser();\n }\n\n private appendGaTrackingCode() {\n try {\n const gaScript = document.createElement('script');\n gaScript.setAttribute('async', 'true');\n gaScript.setAttribute('src', `https://www.googletagmanager.com/gtag/js?id=` + this.googleAnalyticsKey);\n\n const gaScript2 = document.createElement('script');\n gaScript2.innerText = `window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}` +\n `gtag(\\'js\\', new Date());gtag(\\'config\\', \\'` + this.googleAnalyticsKey + ` \\');`;\n\n document.documentElement.firstChild.appendChild(gaScript);\n document.documentElement.firstChild.appendChild(gaScript2);\n } catch (ex) {\n console.error('Error appending google analytics');\n console.error(ex);\n }\n }\n}\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n

Due to inactivity, session is about to expire in {{displayTime}}

\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { PayrollComponent } from './payroll/payroll.component';\r\nimport { PayScheduleComponent } from './pay-schedule/pay-schedule.component';\r\nimport { ProfilesComponent } from './profiles/profiles.component';\r\nimport { ManageUsersComponent } from './profiles/manage-users/manage-users.component';\r\nimport { ManageBankingInfoComponent } from './profiles/manage-banking-info/manage-banking-info.component';\r\nimport { UploadInterceptor, UploadsComponent } from './uploads/uploads.component';\r\nimport { DocumentsComponent } from './documents/documents.component';\r\nimport { EmployerDocumentHistoryComponent } from './documents/employer-document-history/employer-document-history.component';\r\nimport { MessagesComponent } from './messages/messages.component';\r\nimport { HelpComponent } from './help/help.component';\r\nimport { ExcelModule, GridModule } from '@progress/kendo-angular-grid';\r\nimport { NewsComponent } from './news/news.component';\r\nimport { NewsDetailsComponent } from './news/news-details/news-details.component';\r\nimport { HttpClientJsonpModule, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { LayoutModule } from '@progress/kendo-angular-layout';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NotificationModule } from '@progress/kendo-angular-notification';\r\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\nimport { DialogsModule } from '@progress/kendo-angular-dialog';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { AddEditUsersComponent } from './profiles/manage-users/add-edit-users/add-edit-users.component';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { ViewOrgInfoComponent } from './profiles/view-org-info/view-org-info.component';\r\nimport { NotificationLoadingComponent } from './shared/notification-loading/notification-loading.component';\r\nimport { PhonePipe } from './shared/pipes/phone.pipe';\r\nimport { CallbackComponent } from './callback/callback.component';\r\nimport { OAuthModule } from 'angular-oauth2-oidc';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { AccountComponent } from './account/account.component';\r\nimport { OrgSelectComponent } from './app/org-select.component';\r\nimport { PopupModule } from '@progress/kendo-angular-popup';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { DateInputsModule, DatePickerModule } from '@progress/kendo-angular-dateinputs';\r\nimport { TooltipModule } from '@progress/kendo-angular-tooltip';\r\nimport { ChangePasswordComponent } from './account/change-password/changepassword.component';\r\nimport { FilterIconDirective } from './shared/directives/filter-icon.directive';\r\nimport { UploadModule, UploadService } from '@progress/kendo-angular-upload';\r\nimport { LandingPageComponent } from './landing-page/landing-page.component';\r\nimport { SSNPipe } from './shared/pipes/ssn.pipe';\r\nimport { MemberDocUploadComponent } from './documents/member-doc-upload/member-doc-upload.component';\r\nimport { ScheduleDetailsComponent } from './pay-schedule/schedule-details/schedule-details.component';\r\nimport { CreateScheduleComponent } from './pay-schedule/create-schedule/create-schedule.component';\r\nimport { ContactInfoComponent } from './account/contact-info/contact-info.component';\r\nimport { DeleteScheduleComponent } from './pay-schedule/delete-schedule/delete-schedule.component';\r\nimport { AccountEndpoint } from './shared/services/account/account-endpoint.service';\r\nimport { AccountService } from './shared/services/account/account.service';\r\nimport { AuthGuard } from './shared/services/auth/auth-guard.service';\r\nimport { AuthInterceptor } from './shared/services/auth/auth-interceptor.service';\r\nimport { AuthService } from './shared/services/auth/auth.service';\r\nimport { ConfigurationService } from './shared/services/auth/configuration.service';\r\nimport { DBkeys } from './shared/services/auth/db-keys';\r\nimport { EndpointFactory } from './shared/services/auth/endpoint-factory.service';\r\nimport { LocalStoreManager } from './shared/services/auth/local-store-manager.service';\r\nimport { CommonService } from './shared/services/common/common.service';\r\nimport { DisplayNotificationService } from './shared/services/common/notification.service';\r\nimport { ReadConfigService } from './shared/services/common/read-config.service';\r\nimport { UserService } from './shared/services/common/user.service';\r\nimport { UsersService } from './shared/services/common/users.service';\r\nimport { ScheduleService } from './shared/services/pay-schedules/schedule.service';\r\nimport { ImportService } from './shared/services/payroll/import.service';\r\nimport { ProgressBarModule } from '@progress/kendo-angular-progressbar';\r\nimport { InvoiceDetailsComponent } from './invoice/invoice-details/invoice-details.component';\r\nimport { InvoiceComponent } from './invoice/invoice.component';\r\nimport { AdjustmentService } from './shared/services/adjustments/adjustment.service';\r\nimport { PayrollReportsComponent } from './payroll/payroll-reports/payroll-reports.component';\r\nimport { PayrollSummaryComponent } from './payroll/payroll-reports/payroll-summary/payroll-summary.component';\r\nimport { PayrollRecordComponent } from './payroll/payroll-reports/payroll-record/payroll-record.component';\r\nimport {\r\n PayrollRecordAddEditFormComponent\r\n} from './payroll/payroll-reports/payroll-record-add-edit-form/payroll-record-add-edit-form.component';\r\nimport { AdjustmentReportsComponent } from './payroll/adjustment-reports/adjustment-reports.component';\r\nimport { AdjustmentSummaryComponent } from './payroll/adjustment-reports/adjustment-summary/adjustment-summary.component';\r\nimport { AdjustmentRecordComponent } from './payroll/adjustment-reports/adjustment-record/adjustment-record.component';\r\nimport { DateRangeFilterComponent } from './shared/date-range-filter/date-range-filter.component';\r\nimport { MessagesService } from './shared/services/messages/messages.service';\r\nimport { ViewMessageComponent } from './messages/view-message/view-message.component';\r\nimport { ComposeMessageComponent } from './messages/compose-message/compose-message.component';\r\nimport { MessageCountComponent } from './shared/message-count/message-count.component';\r\nimport { NoticeComponent } from './shared/notification/notification.component';\r\nimport { ForbiddenComponent } from './forbidden/forbidden.component';\r\nimport { ServiceErrorComponent } from './shared/service-error/service-error.component';\r\nimport { ManageUsersAndContactComponent } from './profiles/manage-users-and-contact/manage-users-and-contact.component';\r\nimport {\r\n AddEditUsersAndContactComponent\r\n} from './profiles/manage-users-and-contact/add-edit-users-and-contact/add-edit-users-and-contact.component';\r\nimport { OutageNoticeComponent } from './outage-notice/outage-notice.component';\r\nimport { MemberDocumentHistoryComponent } from './documents/member-document-history/member-document-history.component';\r\nimport { EmployeesComponent } from './employees/employees.component';\r\nimport { TerminateComponent } from './employees/terminate/terminate.component';\r\nimport { EmployeesService } from './shared/services/employees/employees.service';\r\nimport { EarningsLimitationComponent } from './uploads/earnings-limitation/earnings-limitation.component';\r\nimport { WageFileComponent } from './uploads/earnings-limitation/wage-file/wage-file.component';\r\nimport { ExemptionsComponent } from './uploads/earnings-limitation/exemptions/exemptions.component';\r\nimport { MemberDocumentsComponent } from './uploads/member-documents/member-documents.component';\r\nimport { SlRecertificationComponent } from './uploads/sl-recertification/sl-recertification.component';\r\nimport { RetireeDeductionsComponent } from './uploads/retiree-deductions/retiree-deductions.component';\r\nimport { UploadHistoryComponent } from './shared/upload-history/upload-history.component';\r\nimport { AdjustmentReportsV2Component } from './payroll/adjustment-reports-v2/adjustment-reports-v2.component';\r\nimport { CreateAdjustmentReportComponent } from './payroll/adjustment-reports-v2/create-adjustment-report/create-adjustment-report.component';\r\nimport { ViewAdjustmentReportsComponent } from './payroll/adjustment-reports-v2/view-adjustment-reports/view-adjustment-reports.component';\r\nimport { RejectedAdjustmentRecordsComponent } from './payroll/adjustment-reports-v2/rejected-adjustment-records/rejected-adjustment-records.component';\r\nimport { AdjRecordAddEditFormComponent } from './payroll/adjustment-reports-v2/create-adjustment-report/adj-record-add-edit-form/adj-record-add-edit-form.component';\r\nimport { RequiredValidator } from './shared/directives/required.directive';\r\nimport { DetailedViewComponent } from './payroll/adjustment-reports-v2/view-adjustment-reports/detailed-view/detailed-view.component';\r\nimport { RecordDetailViewComponent } from './payroll/adjustment-reports-v2/record-detail-view/record-detail-view.component';\r\nimport { InvalidGridComponent } from './payroll/adjustment-reports-v2/create-adjustment-report/invalid-grid/invalid-grid.component';\r\nimport { ValidGridComponent } from './payroll/adjustment-reports-v2/create-adjustment-report/valid-grid/valid-grid.component';\r\nimport { ValidDetailViewComponent } from './payroll/adjustment-reports-v2/create-adjustment-report/valid-grid/valid-detail-view/valid-detail-view.component';\r\nimport { InvalidDetailViewComponent } from './payroll/adjustment-reports-v2/create-adjustment-report/invalid-grid/invalid-detail-view/invalid-detail-view.component';\r\nimport { ChildDetailedViewComponent } from './payroll/adjustment-reports-v2/view-adjustment-reports/detailed-view/child-detailed-view/child-detailed-view.component';\r\nimport { ErrorGridComponent } from './payroll/adjustment-reports-v2/create-adjustment-report/error-grid/error-grid.component';\r\nimport { ErrorDetailViewComponent } from './payroll/adjustment-reports-v2/create-adjustment-report/error-grid/error-detail-view/error-detail-view.component';\r\nimport { TaskTrackerComponent } from './task-tracker/task-tracker.component';\r\nimport { ActiveTaskComponent } from './task-tracker/active-task/active-task.component';\r\nimport { CompletedTaskComponent } from './task-tracker/completed-task/completed-task.component';\r\nimport { CorrespondingViewComponent } from './payroll/adjustment-reports-v2/create-adjustment-report/corresponding-view/corresponding-view.component';\r\nimport { OtherComponent } from './uploads/other/other.component';\r\nimport { CutoffNoticesComponent } from './employees/cutoff-notices/cutoff-notices.component';\r\nimport { EnrollmentsComponent } from './employees/enrollments/enrollments.component';\r\nimport { EnrollMemberComponent } from './employees/enrollments/enroll-member/enroll-member.component';\r\nimport { PersonInfoComponent } from './employees/enrollments/enroll-member/person-info/person-info.component';\r\nimport { EnrollmentInfoComponent } from './employees/enrollments/enroll-member/enrollment-info/enrollment-info.component';\r\nimport { EnrollmentContactInfoComponent } from './employees/enrollments/enroll-member/contact-info/contact-info.component';\nimport { PendingEnrollmentsComponent } from './employees/enrollments/pending-enrollments/pending-enrollments.component';\nimport { ProcessedEnrollmentsComponent } from './employees/enrollments/processed-enrollments/processed-enrollments.component';\nimport { PendingDetailedViewComponent } from './employees/enrollments/pending-enrollments/pending-detailed-view/pending-detailed-view.component';\r\n\r\n\r\nconst appInitializerFn = (appConfig: AppConfigService) => {\r\n return () => {\r\n return appConfig.loadAppConfig();\r\n };\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n HomeComponent,\r\n PayrollComponent,\r\n InvoiceComponent,\r\n PayScheduleComponent,\r\n ProfilesComponent,\r\n ContactInfoComponent,\r\n ManageUsersComponent,\r\n ManageBankingInfoComponent,\r\n UploadsComponent,\r\n DocumentsComponent,\r\n EmployerDocumentHistoryComponent,\r\n MessagesComponent,\r\n HelpComponent,\r\n NewsComponent,\r\n NewsDetailsComponent,\r\n AddEditUsersComponent,\r\n PhonePipe,\r\n ViewOrgInfoComponent,\r\n NotificationLoadingComponent,\r\n CallbackComponent,\r\n LoginComponent,\r\n AccountComponent,\r\n OrgSelectComponent,\r\n ChangePasswordComponent,\r\n FilterIconDirective,\r\n RequiredValidator,\r\n LandingPageComponent,\r\n MemberDocUploadComponent,\r\n SSNPipe,\r\n ScheduleDetailsComponent,\r\n CreateScheduleComponent,\r\n DeleteScheduleComponent,\r\n PayrollReportsComponent,\r\n PayrollSummaryComponent,\r\n PayrollRecordComponent,\r\n PayrollRecordAddEditFormComponent,\r\n InvoiceDetailsComponent,\r\n AdjustmentSummaryComponent,\r\n AdjustmentRecordComponent,\r\n AdjustmentReportsComponent,\r\n DateRangeFilterComponent,\r\n ViewMessageComponent,\r\n ComposeMessageComponent,\r\n MessageCountComponent,\r\n NoticeComponent,\r\n ForbiddenComponent,\r\n ServiceErrorComponent,\r\n ManageUsersAndContactComponent,\r\n AddEditUsersAndContactComponent,\r\n OutageNoticeComponent,\r\n MemberDocumentHistoryComponent,\r\n EmployeesComponent,\r\n TerminateComponent,\r\n EarningsLimitationComponent,\r\n WageFileComponent,\r\n ExemptionsComponent,\r\n MemberDocumentsComponent,\r\n SlRecertificationComponent,\r\n RetireeDeductionsComponent,\r\n UploadHistoryComponent,\r\n AdjustmentReportsV2Component,\r\n CreateAdjustmentReportComponent,\r\n ViewAdjustmentReportsComponent,\r\n RejectedAdjustmentRecordsComponent,\r\n AdjRecordAddEditFormComponent,\r\n DetailedViewComponent,\r\n RecordDetailViewComponent,\r\n InvalidGridComponent,\r\n ValidGridComponent,\r\n ValidDetailViewComponent,\r\n InvalidDetailViewComponent,\r\n ChildDetailedViewComponent,\r\n ErrorGridComponent,\r\n ErrorDetailViewComponent,\r\n TaskTrackerComponent,\r\n ActiveTaskComponent,\r\n CompletedTaskComponent,\r\n CorrespondingViewComponent,\r\n OtherComponent,\r\n CutoffNoticesComponent,\r\n EnrollmentsComponent,\r\n EnrollMemberComponent,\r\n PersonInfoComponent,\r\n EnrollmentInfoComponent,\r\n EnrollmentContactInfoComponent,\r\n PendingEnrollmentsComponent,\r\n ProcessedEnrollmentsComponent,\r\n PendingDetailedViewComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n NoopAnimationsModule,\r\n HttpClientJsonpModule,\r\n FormsModule,\r\n CommonModule,\r\n ButtonsModule,\r\n ReactiveFormsModule,\r\n DropDownsModule,\r\n InputsModule,\r\n GridModule,\r\n ExcelModule,\r\n DialogsModule,\r\n PopupModule,\r\n LayoutModule,\r\n DateInputsModule,\r\n DatePickerModule,\r\n OAuthModule.forRoot(),\r\n NotificationModule,\r\n HttpClientModule,\r\n UploadModule,\r\n TooltipModule,\r\n ProgressBarModule\r\n ],\r\n providers: [\r\n AppConfigService,\r\n CommonService,\r\n ReadConfigService,\r\n ConfigurationService,\r\n AuthService,\r\n UsersService,\r\n UploadService,\r\n AccountService,\r\n UserService,\r\n EndpointFactory,\r\n DBkeys,\r\n AuthGuard,\r\n LocalStoreManager,\r\n DisplayNotificationService,\r\n AccountEndpoint,\r\n ImportService,\r\n AdjustmentService,\r\n ScheduleService,\r\n EmployeesService,\r\n MessagesService,\r\n { provide: 'Window', useValue: window },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: UploadInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: appInitializerFn,\r\n multi: true,\r\n deps: [AppConfigService]\r\n }\r\n ],\r\n bootstrap: [AppComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class AppModule { }\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Utility } from '../shared/utility';\r\nimport { AuthService } from '../shared/services/auth/auth.service';\r\nimport { DBkeys } from '../shared/services/auth/db-keys';\r\nimport { ReadConfigService } from '../shared/services/common/read-config.service';\r\nimport { UserService } from '../shared/services/common/user.service';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'app-org-select',\r\n templateUrl: './org-select.component.html',\r\n styleUrls: ['./org-select.component.css']\r\n})\r\n\r\nexport class OrgSelectComponent implements OnInit {\r\n dataLoading = true;\r\n orgOpened: boolean;\r\n message: any;\r\n public organizations: any;\r\n public events: string[] = [];\r\n public source: Array = [];\r\n public data: any;\r\n public defaultOrg: any;\r\n multipleOrg = false;\r\n msg: any;\r\n private Claims: any;\r\n @Input() selectedOrg: any;\r\n @Output() orgValue = new EventEmitter();\r\n @Output() closeOrgDialog = new EventEmitter();\r\n @Output() singleOrg = new EventEmitter();\r\n @Input() public set manual(args) {\r\n if (args) {\r\n this.orgPopUp();\r\n }\r\n }\r\n\r\n constructor(\r\n private router: Router,\r\n private userService: UserService,\r\n private authService: AuthService,\r\n private readConfigService: ReadConfigService,\r\n private cdRef: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {\r\n this.loadOrganizations();\r\n }\r\n\r\n loadOrganizations() {\r\n this.dataLoading = true;\r\n const inputData = {\r\n userInfo: {\r\n encryptOrg: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_ORGID)),\r\n encryptUsr: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_USER))\r\n }\r\n };\r\n this.userService.getUserOrganizations(inputData)\r\n .subscribe(organizations => {\r\n if (organizations && organizations.length > 0) {\r\n this.data = [];\r\n organizations.filter((value: any) => {\r\n if (this.data.filter((x: any) => x.orgId === value.orgId).length !== 1) {\r\n this.data.push(value);\r\n }\r\n return this.data;\r\n });\r\n this.multipleOrg = this.data.length > 1;\r\n if (this.selectedOrg === undefined) {\r\n const currOrgId = this.authService.currentOrg;\r\n if (currOrgId === undefined || currOrgId === null) {\r\n this.defaultOrg = this.data[0];\r\n } else {\r\n const currOrg = this.data.filter((x: any) => x.orgId === currOrgId);\r\n this.defaultOrg = currOrg[0];\r\n }\r\n this.authService.saveCurrentOrg(this.defaultOrg.orgId);\r\n this.orgValue.emit(this.defaultOrg);\r\n this.authService.setCurrentOrgName(this.defaultOrg.orgName);\r\n this.selectedOrg = this.defaultOrg;\r\n if (!this.multipleOrg) {\r\n this.closeOrgDialog.emit();\r\n }\r\n this.singleOrg.emit(!this.multipleOrg);\r\n } else {\r\n this.defaultOrg = this.selectedOrg;\r\n }\r\n this.authService.saveCurrentOrg(this.defaultOrg.orgId);\r\n this.authService.allowChangeDDwn(true);\r\n }\r\n this.dataLoading = false;\r\n },\r\n (err: HttpErrorResponse) => {\r\n console.log(err);\r\n this.dataLoading = false;\r\n });\r\n }\r\n\r\n selectionChange(value: any): void {\r\n this.authService.saveCurrentOrg(value.orgId);\r\n this.authService.sendMessage(value.orgId);\r\n this.authService.getLoggedInUserInfo().subscribe(data => {\r\n if (data && data.values && data.values.encryptOrg) {\r\n this.authService.setEncCurrentOrg(data.values.encryptOrg);\r\n this.authService.processInitialResponse(data);\r\n this.authService.getDarkFeatureValue();\r\n this.authService.setCurrentOrgName(value.orgName);\r\n this.orgValue.emit(value);\r\n const paths = location.pathname.replace(/\\//g, ',').split(',');\r\n if (paths.length > 1 && paths[1].toLowerCase() === 'home') {\r\n location.reload();\r\n } else {\r\n this.router.navigate(['/home']);\r\n }\r\n this.authService.loggedInChecker(true);\r\n setTimeout(() => {\r\n this.closeOrgDialog.emit();\r\n }, 300);\r\n }\r\n }, (err: HttpErrorResponse) => {\r\n console.log(err);\r\n this.closeOrgDialog.emit();\r\n });\r\n }\r\n\r\n close() {\r\n this.closeOrgDialog.emit();\r\n this.message = null;\r\n }\r\n\r\n orgPopUp() {\r\n const allowChange = sessionStorage.getItem(DBkeys.ALLOW_CHG);\r\n if (allowChange && allowChange === 'false') {\r\n // avoid user from changing organization when in edit mode\r\n this.message = this.readConfigService.getEditModeOrgSelect();\r\n } else {\r\n this.message = null;\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n {{message}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n","import { OAuthService } from 'angular-oauth2-oidc';\nimport { AfterContentChecked, AfterViewInit, ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AppConfigService } from '../app-config.service';\n\n@Component({\n selector: 'app-callback',\n templateUrl: './callback.component.html',\n styleUrls: ['./callback.component.css']\n})\nexport class CallbackComponent implements OnInit, AfterViewInit {\n loadingIcon: boolean;\n iCounter: any;\n accesToken: any;\n idToken: any;\n maxCounter = 6;\n initialTimeout = 2000;\n maxCounterTimeout = 1500;\n\n constructor(\n private router: Router,\n private appConfig: AppConfigService,\n private oauthService: OAuthService,\n private cdRef: ChangeDetectorRef) {\n const config = this.appConfig.getConfig() ? this.appConfig.getConfig().CallbackSettings : null;\n if (config) {\n this.maxCounter = config.MaxCounter;\n this.initialTimeout = config.InitialTimeout;\n this.maxCounterTimeout = config.MaxCounterTimeout;\n }\n }\n\n ngOnInit() {\n this.loadingIcon = true;\n this.iCounter = 0;\n const url = window.location.href;\n const params = this.getAllUrlParams(url);\n if (params && params.length > 0) {\n setTimeout(() => {\n this.isNotAuthorized();\n }, this.initialTimeout);\n }\n }\n\n ngAfterViewInit() {\n this.cdRef.detectChanges();\n }\n\n isNotAuthorized(): any {\n if (this.iCounter === this.maxCounter) {\n this.router.navigate(['/forbidden'], { queryParams: { usererror: true } });\n return;\n }\n this.iCounter++;\n setTimeout(() => {\n this.accesToken = this.oauthService.getAccessToken();\n this.idToken = this.oauthService.getIdToken();\n if (sessionStorage.getItem('access_token') === null) {\n if (this.accesToken !== null && this.accesToken !== undefined) {\n sessionStorage.setItem('access_token', this.accesToken);\n sessionStorage.setItem('id_token', this.idToken);\n } else {\n this.isNotAuthorized();\n }\n } else {\n this.goToLandingPage();\n }\n }, this.maxCounterTimeout);\n }\n\n goToLandingPage(): void {\n this.loadingIcon = false;\n this.iCounter = 0;\n this.router.navigate(['/landing-page']);\n }\n\n getAllUrlParams(url: any): any {\n // get query string from url (optional) or window\n const queryString = url.split('?')[1];\n // we'll store the parameters here\n const obj = {};\n // if query string exists\n if (queryString) {\n // split our query string into its component parts\n const arr = queryString.split('&');\n return arr;\n }\n return obj;\n }\n}\n","
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from '../shared/services/auth/auth.service';\n\n@Component({\n selector: 'app-documents',\n templateUrl: './documents.component.html',\n styleUrls: ['./documents.component.css']\n})\nexport class DocumentsComponent implements OnInit {\n\n constructor(private authService: AuthService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n }\n}\n","","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { process, SortDescriptor } from '@progress/kendo-data-query';\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { DocumentService } from 'src/app/shared/services/documents/document.service';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\n\n@Component({\n selector: 'app-employer-document-history',\n templateUrl: './employer-document-history.component.html',\n styleUrls: ['./employer-document-history.component.css']\n})\nexport class EmployerDocumentHistoryComponent implements OnInit {\n @ViewChild(DataBindingDirective, { static: true }) dataBinding: DataBindingDirective;\n public gridData: any;\n public gridView: any;\n public sort: SortDescriptor[] = [{\n field: 'modifiedDate',\n dir: 'desc'\n }];\n\n constructor(\n private router: Router,\n private authService: AuthService,\n private documentService: DocumentService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n this.notificationService.setUpLoading(true);\n this.loadMyDocuments();\n }\n\n loadMyDocuments() {\n this.documentService.getMyDocuments().subscribe((data: any) => {\n if (data.statusCode === 200 && data.result) {\n this.gridData = data.result;\n this.gridView = this.gridData;\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n viewDoc(data: any) {\n this.documentService.getMyDocument(data.uniqueId, data.docName).subscribe(() => {\n data.isClicked = !data.isClicked;\n }, (error: HttpErrorResponse) => {\n console.log(error);\n data.isClicked = !data.isClicked;\n this.notificationService.setErrorNotification();\n });\n }\n\n onFilter(inputValue: string): void {\n this.gridView = process(this.gridData, {\n filter: {\n logic: 'or',\n filters: [\n {\n field: 'docName',\n operator: 'contains',\n value: inputValue\n },\n {\n field: 'title',\n operator: 'contains',\n value: inputValue\n },\n {\n field: 'docCategory',\n operator: 'contains',\n value: inputValue\n },\n {\n field: 'docType',\n operator: 'contains',\n value: inputValue\n },\n {\n field: 'modifiedDate',\n operator: 'contains',\n value: inputValue\n }\n ],\n }\n }).data;\n this.dataBinding.skip = 0;\n }\n}\n","
\n
\n

View Employer Documents

\n
\n
\n \n \n \n \n \n \n \n \n
\n \n
\n
\n Document Name\n
\n
\n
\n
\n {{ dataItem.docName }}\n
\n
\n \n
\n
\n Description\n
\n
\n
\n
\n {{ dataItem.title }}\n
\n
\n \n
\n
\n Category\n
\n
\n
\n
\n {{ dataItem.docCategory }}\n
\n
\n \n
\n
\n Document Type\n
\n
\n
\n
\n {{ dataItem.docType }}\n
\n
\n \n
\n
\n Modified\n
\n
\n
\n
\n {{ dataItem.modifiedDate | date:'MM/dd/yyyy hh:mm a'}}\n
\n
\n
\n
\n \n \n View\n \n \n
\n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n
\n {{dataItem.modifiedDate | date:'MM/dd/yyyy hh:mm a'}}\n
\n
\n
\n \n \n
\n \n \n View\n \n \n
\n
\n
\n
\n
\n
\n \n
\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { SelectEvent } from '@progress/kendo-angular-upload';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { DocumentService } from 'src/app/shared/services/documents/document.service';\n\n@Component({\n selector: 'app-member-doc-upload',\n templateUrl: './member-doc-upload.component.html',\n styleUrls: ['./member-doc-upload.component.css']\n})\nexport class MemberDocUploadComponent implements OnInit {\n fileRestrictions: any;\n config: any;\n maxFiles: any;\n errorMessages = [];\n allFiles = [];\n currentSelection = [];\n show = false;\n maxFilesMessage: any;\n selectedFilesCount = 0;\n operators: any;\n value = 0;\n chunkCount = 1;\n disableSubmitBtn: boolean;\n validationErrors: boolean;\n\n constructor(\n private authService: AuthService,\n private usersService: UsersService,\n private documentService: DocumentService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.config = this.readConfigService.getMemberDocFileUpload();\n this.fileRestrictions = this.config.BatchFileRestrictions;\n this.operators = this.authService.getAccessOperations(2);\n this.maxFiles = this.config.MaxFilesAllowed ? this.config.MaxFilesAllowed : 10;\n }\n\n onFileSelect(e: SelectEvent) {\n this.value = 0;\n if (e && e.files && e.files.length > 0) {\n this.selectedFilesCount = this.selectedFilesCount + e.files.length;\n this.chunkCount = this.selectedFilesCount > 10 ? 10 : this.selectedFilesCount;\n this.allFiles = this.allFiles.concat(e.files);\n this.value = this.allFiles.length > 0 ? this.value : 0;\n this.validationErrors = this.allFiles.find((s: any) => s.validationErrors);\n this.checkNumberofFiles(e.files, true);\n }\n }\n\n checkNumberofFiles(files: any, addToCurrent: boolean) {\n this.maxFilesMessage = null;\n if (this.selectedFilesCount > this.config.MaxFilesAllowed) {\n this.maxFilesMessage = this.config.MaxFilesMessage.replace('{0}', this.selectedFilesCount)\n .replace('{1}', this.config.MaxFilesAllowed);\n } else {\n if (addToCurrent) {\n this.currentSelection = files;\n }\n }\n this.checkDuplicateFileName();\n }\n\n checkDuplicateFileName() {\n // check duplicate file name\n this.errorMessages = [];\n this.allFiles.forEach((element: any) => {\n const tempArr = this.allFiles.filter((s: any) => s.name === element.name);\n if (tempArr.length > 1) {\n this.currentSelection = this.currentSelection.filter((s: any) => s.name !== element.name);\n this.errorMessages.push({ fileName: element.name, validationId: 4 });\n }\n });\n }\n\n getValidationMessage(id: number) {\n return this.config.ValidationMessages.find((s: any) => s.id === id).text;\n }\n\n uploadBatch(upload: any) {\n this.disableSubmitBtn = true;\n this.show = true;\n this.notificationService.setUpLoading(true);\n this.documentService.uploadMemberDocBatch(JSON.stringify(this.usersService.UserInfo()), this.allFiles).subscribe((response: any) => {\n if (response && response.statusCode === 200 && response.result) {\n const result = response.result;\n if (result.length > 0) {\n this.value = this.value - (result.length * 10);\n result.forEach((element: any) => {\n if (element.validationId > 0) {\n this.errorMessages.push(element);\n }\n });\n } else {\n this.onClearButtonClick(upload);\n this.value = 100;\n this.notificationService.setUpNotification({ message: 'Upload successful.', success: true });\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n this.disableSubmitBtn = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.disableSubmitBtn = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n removeEventHandler(e: any) {\n const removedFiles = e.files;\n if (removedFiles.length > 0) {\n this.selectedFilesCount--;\n this.chunkCount = this.selectedFilesCount > 10 ? 10 : this.selectedFilesCount;\n this.allFiles.forEach((element: any, index: number) => {\n if (removedFiles[0].uid === element.uid) {\n this.allFiles.splice(index, 1);\n }\n });\n this.validationErrors = this.allFiles.find((s: any) => s.validationErrors);\n this.checkNumberofFiles(this.allFiles, false);\n }\n }\n\n onClearButtonClick(upload: any) {\n this.allFiles = [];\n this.errorMessages = [];\n this.selectedFilesCount = 0;\n this.chunkCount = 1;\n this.maxFilesMessage = null;\n upload.clearFiles();\n }\n}\n","
\n
\n

Member Document Upload

\n
\n
\n \n
\n
\n \n
\n
\n \n \n
0\" class=\"row\">\n
\n \n
\n
\n \n
\n
\n
\n
\n {{maxFilesMessage}}\n
\n
0\">\n

Errors

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
File NamePagesError
{{message.fileName}}{{message.pages}}{{getValidationMessage(message.validationId)}}
\n
\n
\n
\n \n
\n
\n
\n
\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { process, SortDescriptor } from '@progress/kendo-data-query';\nimport { Router } from '@angular/router';\nimport { DocumentService } from 'src/app/shared/services/documents/document.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\n\n@Component({\n selector: 'app-member-document-history',\n templateUrl: './member-document-history.component.html',\n styleUrls: ['./member-document-history.component.css']\n})\nexport class MemberDocumentHistoryComponent implements OnInit {\n @ViewChild(DataBindingDirective, { static: true }) dataBinding: DataBindingDirective;\n public gridView: any;\n public sort: SortDescriptor[] = [{\n field: 'created',\n dir: 'desc'\n }];\n public gridHeight = {\n height: 'calc(100vh - 185px)'\n };\n\n constructor(\n private router: Router,\n private documentService: DocumentService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.notificationService.setUpLoading(true);\n this.loadMemDocHistory();\n }\n\n loadMemDocHistory() {\n this.documentService.getMemDocHistory().subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n data.result.forEach((element) => {\n element.created = new Date(element.created);\n });\n this.gridView = data.result;\n } else if (data && data.statusCode === 204) {\n this.gridView = [];\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","
\n
\n

Member Document History

\n
\n
\n \n\n \n \n \n
\n
\n
\n Date:\n {{ dataItem.created | date:'MM/dd/yyyy hh:mm a' }}\n
\n
\n
\n
\n User Name:\n {{ dataItem.createdBy }}\n
\n
\n
\n
\n File Name:\n {{ dataItem.fileName }}\n
\n
\n
\n
\n
\n\n \n \n \n
\n {{dataItem.created | date:'MM/dd/yyyy hh:mm a'}}\n
\n
\n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n
\n","import { ReadConfigService } from './../../shared/services/common/read-config.service';\nimport { EmployeesService } from './../../shared/services/employees/employees.service';\nimport { DisplayNotificationService } from './../../shared/services/common/notification.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { Component, OnInit } from '@angular/core';\nimport { State } from '@progress/kendo-data-query';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-cutoff-notices',\n templateUrl: './cutoff-notices.component.html',\n styleUrls: ['./cutoff-notices.component.css']\n})\nexport class CutoffNoticesComponent implements OnInit {\n initialLoading = false;\n config: any;\n gridData = [];\n state: State = {\n skip: 0,\n take: 10,\n sort: []\n };\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private employeesService: EmployeesService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit(): void {\n this.config = this.readConfigService.getCutoffNoticesText();\n this.notificationService.setUpLoading(true);\n this.initialLoading = true;\n this.getCutoffData();\n }\n\n getCutoffData() {\n this.gridData = [];\n const inputData = { userInfo: this.usersService.UserInfo() };\n this.employeesService.getCutoffNoticesData(inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n if(response.data && response.data.length > 0) {\n const cutoffData = response.data;\n cutoffData.forEach(element => {\n element.effectiveDate = new Date(element.effectiveDate);\n element.processDate = new Date(element.processDate);\n });\n this.gridData = cutoffData;\n } else {\n this.gridData = [];\n }\n } else if (response && response.statusCode === 204) {\n this.gridData = [];\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.initialLoading = false;\n this.notificationService.setUpLoading(false);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.initialLoading = false;\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","
\n
\n

Cutoff Notices

\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n SSN4:\n {{ dataItem.ssn4 }}\n
\n
\n
\n
\n Last Name:\n {{ dataItem.lastName }}\n
\n
\n
\n
\n First Name:\n {{ dataItem.firstName }}\n
\n
\n
\n
\n MI:\n {{ dataItem.middleInitial }}\n
\n
\n
\n
\n Effective Date:\n {{ dataItem.effectiveDate | date: 'MM/dd/yyyy' }}\n
\n
\n
\n
\n Date Processed:\n {{ dataItem.processDate | date: 'MM/dd/yyyy' }}\n
\n
\n
\n
\n
\n\n \n \n
\n \n {{dataItem.ssn4}}\n \n
\n
\n
\n \n \n
\n \n {{dataItem.lastName}}\n \n
\n
\n
\n \n \n
\n \n {{dataItem.firstName}}\n \n
\n
\n
\n \n \n
\n \n {{dataItem.middleInitial}}\n \n
\n
\n
\n \n \n
\n {{dataItem.effectiveDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n \n \n
\n {{dataItem.processDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n
\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from '../shared/services/auth/auth.service';\n\n@Component({\n selector: 'app-employees',\n templateUrl: './employees.component.html',\n styleUrls: ['./employees.component.css']\n})\nexport class EmployeesComponent implements OnInit {\n\n constructor(private authService: AuthService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n }\n\n}\n","\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { FileRestrictions, SelectEvent } from '@progress/kendo-angular-upload';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { EmployeesService } from 'src/app/shared/services/employees/employees.service';\nimport { ImportService } from 'src/app/shared/services/payroll/import.service';\n\n@Component({\n selector: 'contact-info',\n templateUrl: './contact-info.component.html',\n styleUrls: ['./contact-info.component.css']\n})\nexport class EnrollmentContactInfoComponent implements OnInit {\n identifierMask = 'LLLLLLLLLLLLL';\n rules: { [key: string]: RegExp } = {\n 'L': /^[a-zA-Z0-9]+$/\n };\n phoneMask = '000-000-0000';\n states: any;\n value: any;\n phoneValue: any;\n summaryData: any;\n config: any;\n proofofBirthOptions: any;\n displayload: boolean;\n isIdentifireVisible: boolean;\n isFileInvalid = false;\n isOldRecord: boolean;\n isUploadFileExist: boolean;\n fileUploadData = [];\n zipMask = '00000';\n zip4Mask = '0000';\n contactInfoForm: FormGroup;\n speCharPattern = /^[a-zA-Z\\s.'\\-,`]+$/;\n defaultProofofBirth: { name: string; id: string } = {\n name: 'Select...',\n id: ''\n };\n defaultState: { name: string; abbreviation: string } = {\n name: 'Select...',\n abbreviation: ''\n }\n fileRestrictions: FileRestrictions = {\n allowedExtensions: [\".jpg\", \".pdf\", \".tif\", \".tiff\", \".png\", \".docx\", \".doc\"]\n };\n @Output() goTo = new EventEmitter();\n\n @Input() set personInfo(wizardData: any) {\n if (wizardData) {\n this.summaryData = wizardData;\n if (wizardData.isContactInfo) {\n this.setContactInfo(this.summaryData.wizardData);\n }\n }\n }\n\n constructor(\n private router: Router,\n private fb: FormBuilder,\n private importService: ImportService,\n private usersService: UsersService,\n private employeesService: EmployeesService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) {\n this.config = this.readConfigService.getEnrollmentMemberText();\n }\n\n ngOnInit(): void {\n this.newForm();\n this.loadStates();\n }\n\n loadStates() {\n this.importService.getStates(false)\n .subscribe(states => {\n this.states = states;\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n\n newForm() {\n this.contactInfoForm = this.fb.group({\n proofOfBirthType: ['', Validators.required],\n customerIdentifierNo: [''],\n addressLine1: ['', Validators.required],\n addressLine2: [''],\n city: ['', [Validators.required, Validators.pattern(this.speCharPattern)]],\n state: ['', Validators.required],\n zip: ['', Validators.required],\n zip4: [''],\n phoneNo: ['', Validators.required],\n workEmail: ['', [Validators.required, Validators.maxLength(200), Validators.email]],\n personalEmail: ['', [Validators.maxLength(200), Validators.email]]\n });\n }\n\n setContactInfo(data: any) {\n this.isUploadFileExist = data.contactDetails ? (data.contactDetails.uploadedFileName !== null && data.contactDetails.uploadedFile !== null) : false;\n if (data.contactDetails) {\n this.isOldRecord = true;\n const contactInfo = data.contactDetails;\n this.newForm();\n this.isIdentifireVisible\n const proofType = this.config.ProofofBirthOptions.filter(ele => ele.name.toLowerCase() === contactInfo.proofOfBirthType.toLowerCase());\n this.selectionChange(proofType[0]);\n setTimeout(() => {\n this.contactInfoForm.patchValue({\n proofOfBirthType: proofType[0].id,\n customerIdentifierNo: contactInfo.customerIdentifierNo,\n addressLine1: contactInfo.addressLine1,\n addressLine2: contactInfo.addressLine2,\n city: contactInfo.city,\n state: contactInfo.state,\n zip: contactInfo.zip,\n zip4: contactInfo.zip4,\n phoneNo: contactInfo.phoneNo,\n personalEmail: contactInfo.personalEmail,\n workEmail: contactInfo.workEmail\n });\n }, 100);\n }\n }\n\n selectionChange(value: any) {\n if (value.id.toString() === '1') {\n this.isIdentifireVisible = true;\n this.contactInfoForm.controls.customerIdentifierNo.setValidators([Validators.required]);\n } else {\n this.isIdentifireVisible = false;\n this.contactInfoForm.get('customerIdentifierNo').setValidators(null);\n this.contactInfoForm.patchValue({ customerIdentifierNo: '' });\n }\n }\n\n onSelectEvent(e: SelectEvent) {\n if (e && e.files && e.files.length > 0) {\n if (e.files[0]?.validationErrors?.length > 0) {\n this.isFileInvalid = true;\n } else {\n this.fileUploadData = e.files;\n this.isFileInvalid = false;\n }\n }\n }\n\n onRemoveEvent(e: any) {\n this.fileUploadData = [];\n }\n\n goToPreviousPage(option: number) {\n this.previous(option);\n }\n\n previous(option: number) {\n this.goTo.emit({\n option, isEnrollmentInfo: true, wizardData: {\n personDetails: this.summaryData.wizardData.personDetails, ssn: this.summaryData.wizardData.ssn,\n empSSN: this.summaryData.wizardData.empSSN, enrollmentsId: this.summaryData.wizardData.enrollmentsId,\n enrollmentDetails: this.summaryData.wizardData.enrollmentDetails, contactDetails: this.summaryData.wizardData.contactDetails\n }\n });\n }\n\n submitBtnDisable() {\n return this.contactInfoForm.invalid\n || (this.isUploadFileExist ? false : this.fileUploadData.length === 0)\n || (this.isUploadFileExist ? false : this.isFileInvalid)\n }\n\n downloadUploadedFile(data: any) {\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n id: data.wizardData.contactDetails.id,\n type: 'contact',\n fileName: data.wizardData.contactDetails.uploadedFileName\n };\n this.employeesService.downloadUploadedFile(inputData).subscribe(() => {\n data.docClicked = !data.docClicked;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n data.docClicked = !data.docClicked;\n });\n }\n\n submitContactData(option: number) {\n this.displayload = true;\n const proofType = this.config.ProofofBirthOptions.filter(ele => ele.id === this.contactInfoForm.getRawValue().proofOfBirthType);\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n contactInfo: {\n id: this.isOldRecord ? this.summaryData.wizardData.contactDetails.id : 0,\n enrollmentsId: this.summaryData.wizardData.enrollmentsId,\n proofOfBirthType: proofType[0].name,\n customerIdentifierNo: this.contactInfoForm.getRawValue().customerIdentifierNo,\n addressLine1: this.contactInfoForm.getRawValue().addressLine1,\n addressLine2: this.contactInfoForm.getRawValue().addressLine2,\n city: this.contactInfoForm.getRawValue().city,\n state: this.contactInfoForm.getRawValue().state,\n zip: this.contactInfoForm.getRawValue().zip,\n zip4: this.contactInfoForm.getRawValue().zip4,\n phoneNo: this.contactInfoForm.getRawValue().phoneNo,\n personalEmail: this.contactInfoForm.getRawValue().personalEmail,\n workEmail: this.contactInfoForm.getRawValue().workEmail\n },\n uploadedFile: this.fileUploadData[0],\n fileName: this.fileUploadData[0] ? null : this.summaryData.wizardData.contactDetails.uploadedFileName\n }\n this.employeesService.saveContactInfo(inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n this.notificationService.setUpNotification({ message: response.message, success: true });\n this.goTo.emit({\n option, isFinalSubmit: true\n });\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (response && response.statusCode === 400) {\n this.notificationService.setUpNotification({ message: response.message, success: false });\n } else {\n this.notificationService.setErrorNotification();\n }\n this.displayload = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.displayload = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","
\n \n
\n
\n
SSN
\n
{{summaryData?.wizardData?.empSSN}}
\n
\n
\n
Last Name
\n
{{summaryData?.wizardData?.personDetails?.lastName}}
\n
\n
\n
Date of Birth
\n
{{summaryData?.wizardData?.personDetails?.dateOfBirth | date: 'MM/dd/yyyy'}}\n
\n
\n
\n

Contact Information

\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n \n Address1 is required\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n \n City is required\n \n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n \n State is required\n \n
\n
\n
\n \n \n \n
\n \n Zip is required\n \n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n \n Phone no. is required\n \n
\n
\n
\n
\n
\n
\n
\n \n \n
\n \n Work\n email is required\n Enter valid\n email address\n Email must\n be at most 200 characters long\n
\n
\n
\n
\n \n \n
\n \n Enter valid\n email address\n Email must\n be at most 200 characters long\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n {{summaryData?.wizardData?.contactDetails?.uploadedFileName}}\n \n \n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n","import { NewFormDetails } from 'src/app/models/enroll';\nimport { ReadConfigService } from './../../../shared/services/common/read-config.service';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { StepperComponent, TabStripComponent } from '@progress/kendo-angular-layout';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { HttpErrorResponse } from '@angular/common/http';\n\n@Component({\n selector: 'app-enroll-member',\n templateUrl: './enroll-member.component.html',\n styleUrls: ['./enroll-member.component.css']\n})\nexport class EnrollMemberComponent implements OnInit {\n @ViewChild('stepper', { static: true })\n public stepper: StepperComponent;\n currentStep = 1;\n dataLoading = true;\n steps: any;\n current = 0;\n progressValue: number;\n labelSettings = { format: 'percent', position: 'center', visible: false };\n fPersonalInfoData: NewFormDetails;\n currentScreen: any;\n wizardData: any;\n @ViewChild('tabstrip') tabstrip: TabStripComponent;\n @Input() set enrollmentDataItem(enrollData: any) {\n if(enrollData) {\n this.pendingEnrollInfo(enrollData);\n }\n }\n @Output() formDirtyOrTouched = new EventEmitter();\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private readConfigService: ReadConfigService,\n private cdRef: ChangeDetectorRef,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.steps = this.readConfigService.getStepperLabels();\n this.dataLoading = false;\n }, 500);\n this.fPersonalInfoData = new NewFormDetails;\n this.getOrganizationInfo();\n }\n\n ngDoCheck() {\n this.cdRef.detectChanges();\n }\n\n getOrganizationInfo() {\n this.usersService.getOrgProfile().subscribe((response) => {\n if (response && response.success) {\n const organizationType = response.data.organizationType.trim();\n const orgId = response.data.id;\n sessionStorage.setItem('orgType', organizationType);\n sessionStorage.setItem('orgId', orgId);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n pendingEnrollInfo(data: any) {\n this.wizardData = data;\n }\n\n disableHistory(value: boolean) {\n this.formDirtyOrTouched.emit(value);\n }\n\n setCurrentScreen(e: any) {\n this.currentScreen = e.option;\n this.wizardData = e;\n this.current = this.currentScreen;\n this.progressValue = this.currentScreen * 33.3;\n this.labelSettings = this.progressValue > 0 ? { format: 'percent', position: 'center', visible: false }\n : { format: 'percent', position: 'center', visible: false };\n this.tabstrip.selectTab(this.currentScreen);\n }\n\n}\n","
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
","import { EmployeesService } from './../../../../shared/services/employees/employees.service';\nimport { UsersService } from './../../../../shared/services/common/users.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { FileRestrictions, SelectEvent } from '@progress/kendo-angular-upload';\nimport { Router } from '@angular/router';\nimport { Utility } from 'src/app/shared/utility';\n\n@Component({\n selector: 'app-enrollment-info',\n templateUrl: './enrollment-info.component.html',\n styleUrls: ['./enrollment-info.component.css']\n})\nexport class EnrollmentInfoComponent implements OnInit {\n summaryData: any;\n config: any;\n electType = '';\n positionType = '';\n tenMonthEmpType = '';\n jobCode = '';\n isYesSelected: boolean;\n isNoSelected: boolean;\n isYesPositionSelected: boolean;\n isNoPositionSelected: boolean;\n displayload: boolean;\n isSaveButtonDisabled: boolean;\n isUploadVisible: boolean;\n isScheduleSearching: boolean;\n isOldRecord: boolean;\n isTenMonthEmployee: boolean;\n isUploadFileExist: boolean;\n enrollmentInfoForm: FormGroup;\n userLocations: any;\n userSystems: any;\n paySchedulesList: any;\n organizationType: any;\n selectedPayScheduleInfo: any;\n fiscalYear2017: Date;\n selectedFY: Date;\n min = new Date('01/01/1924');\n fileUploadData = [];\n defaultLocation: { name: string; code: string } = {\n name: 'Select...',\n code: ''\n };\n defaultSystem: { description: string; code: string } = {\n description: 'Select...',\n code: ''\n };\n defaultSchedule: { name: string; payScheduleID: number } = {\n name: 'Select...',\n payScheduleID: null\n };\n fileRestrictions: FileRestrictions = {\n allowedExtensions: [\".jpg\", \".pdf\", \".tif\", \".tiff\", \".png\", \".docx\", \".doc\"]\n };\n @Output() goTo = new EventEmitter();\n\n @Input() set personInfo(wizardData: any) {\n if (wizardData) {\n this.summaryData = wizardData;\n if (wizardData.isEnrollmentInfo) {\n this.setEnrollmentInfo(this.summaryData.wizardData);\n };\n }\n }\n\n constructor(\n private router: Router,\n private fb: FormBuilder,\n private usersService: UsersService,\n private employeesService: EmployeesService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) {\n this.organizationType = sessionStorage.getItem('orgType');\n this.config = this.readConfigService.getEnrollmentMemberText();\n }\n\n ngOnInit(): void {\n this.notificationService.setUpLoading(true);\n this.getLoactionAndSystem();\n if (!this.summaryData.isEnrollmentInfo) {\n this.newForm();\n }\n }\n\n newForm() {\n this.enrollmentInfoForm = this.fb.group({\n employementDate: ['', Validators.required],\n locationCode: ['', Validators.required],\n systemCode: ['', Validators.required],\n paySchedule: ['']\n });\n }\n\n setEnrollmentInfo(data: any) {\n this.isUploadFileExist = data.enrollmentDetails ? (data.enrollmentDetails.uploadedFileName !== null) : false;\n this.isOldRecord = true;\n const emnrollmentInfo = data.enrollmentDetails;\n this.electType = emnrollmentInfo.electType;\n this.isYesSelected = (this.electType === 'Yes');\n this.isNoSelected = !(this.electType === 'Yes');\n this.positionType = emnrollmentInfo.positionType;\n if (this.positionType === 'Yes') {\n this.isYesPositionSelected = true;\n this.isNoPositionSelected = false;\n if (emnrollmentInfo.jobCode !== 'X' && emnrollmentInfo.jobCode !== '' && emnrollmentInfo.jobCode !== null) {\n const combineJobCode = emnrollmentInfo.systemCode + emnrollmentInfo.jobCode;\n emnrollmentInfo.systemCode = combineJobCode;\n }\n this.newForm();\n this.enrollmentInfoForm.patchValue({\n employementDate: new Date(emnrollmentInfo.enrollmentDate),\n locationCode: emnrollmentInfo.locationCode,\n systemCode: emnrollmentInfo.systemCode,\n paySchedule: emnrollmentInfo.payScheduleId\n });\n const fiscalYear = this.config.minYear;\n this.fiscalYear2017 = new Date(fiscalYear - 1, 6, 1);\n this.selectedFY = Utility.removeTimeFromJSDate(new Date(emnrollmentInfo.enrollmentDate));\n if ((this.organizationType === 'PGU' || this.organizationType === 'QST' || this.organizationType === 'ST') && (this.selectedFY >= this.fiscalYear2017)) {\n if (emnrollmentInfo.locationCode && emnrollmentInfo.systemCode && emnrollmentInfo.enrollmentDate) {\n this.enrollmentInfoForm.controls.paySchedule.setValidators([Validators.required]);\n this.getEnrollmentPayschedule(true);\n if (emnrollmentInfo.systemCode === '7' && emnrollmentInfo.tenMonthEmpType !== '') {\n this.isTenMonthEmployee = true;\n this.tenMonthEmpType = emnrollmentInfo.tenMonthEmpType;\n this.selectedPayScheduleInfo = { contributoryPays: emnrollmentInfo.contributoryPays, totalPays: emnrollmentInfo.totalPays };\n }\n }\n }\n this.isUploadVisible = emnrollmentInfo.systemCode === '6'\n || emnrollmentInfo.systemCode === '9' || emnrollmentInfo.systemCode === '3'\n || emnrollmentInfo.systemCode === '2C';\n } else {\n this.isNoPositionSelected = true;\n this.isYesPositionSelected = false;\n }\n }\n\n getLoactionAndSystem() {\n const inputData = { userInfo: this.usersService.UserInfo() };\n this.employeesService.getEnrollmentInput(inputData).subscribe((response: any) => {\n if (response && response.success && response.locations && response.locations.length > 0\n && response.systemCodes && response.systemCodes.length > 0) {\n response.locations.forEach(element => {\n element.name = element.code.concat('-', element.name);\n });\n this.userLocations = response.locations.sort((a: any, b: any) => a.code - b.code);\n const orgId = sessionStorage.getItem('orgId');\n if (orgId === '247' && this.summaryData.wizardData.personDetails.isLegislativePlan) {\n this.userSystems = response.systemCodes.filter(ele => ele.code === '5');\n } else {\n this.userSystems = response.systemCodes;\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n })\n }\n\n saveBtnDisable() {\n return this.enrollmentInfoForm.invalid\n || ((this.isUploadVisible && !this.isUploadFileExist) ? this.fileUploadData.length === 0 : false)\n || (this.isTenMonthEmployee ? this.tenMonthEmpType === '' : false);\n }\n\n onEmployementDateChange() {\n this.isTenMonthEmployee = false;\n this.tenMonthEmpType = '';\n this.fileUploadData = [];\n const fiscalYear = this.config.minYear;\n this.fiscalYear2017 = new Date(fiscalYear - 1, 6, 1);\n this.selectedFY = this.enrollmentInfoForm.getRawValue().employementDate ? Utility.removeTimeFromJSDate(this.enrollmentInfoForm.getRawValue().employementDate) : null;\n if ((this.organizationType === 'PGU' || this.organizationType === 'QST' || this.organizationType === 'ST') && (this.selectedFY >= this.fiscalYear2017)) {\n if (this.enrollmentInfoForm.getRawValue().employementDate !== ''\n && this.enrollmentInfoForm.getRawValue().employementDate?.getFullYear() > '1924'\n && this.enrollmentInfoForm.getRawValue().locationCode !== ''\n && this.enrollmentInfoForm.getRawValue().systemCode !== '') {\n this.getEnrollmentPayschedule(false);\n } else {\n this.enrollmentInfoForm.patchValue({ paySchedule: null });\n this.enrollmentInfoForm.controls.paySchedule.setValidators([Validators.required]);\n this.enrollmentInfoForm.controls['paySchedule'].disable();\n this.enrollmentInfoForm.get('employementDate').setErrors({ 'invalid': true });\n }\n } else {\n this.isUploadVisible = this.enrollmentInfoForm.getRawValue().systemCode === '6'\n || this.enrollmentInfoForm.getRawValue().systemCode === '9' || this.enrollmentInfoForm.getRawValue().systemCode === '3'\n || this.enrollmentInfoForm.getRawValue().systemCode === '2C';\n this.enrollmentInfoForm.get('paySchedule').setValidators(null);\n this.enrollmentInfoForm.patchValue({ paySchedule: null });\n this.enrollmentInfoForm.controls['paySchedule'].disable();\n }\n }\n\n selectionChange(value: any, actionFrom: string) {\n this.fileUploadData = [];\n this.isTenMonthEmployee = false;\n this.tenMonthEmpType = '';\n if (actionFrom === 'location') {\n this.enrollmentInfoForm.patchValue({ locationCode: value.code });\n } else {\n this.enrollmentInfoForm.patchValue({ systemCode: value.code });\n }\n const fiscalYear = this.config.minYear;\n this.fiscalYear2017 = new Date(fiscalYear - 1, 6, 1);\n if (this.enrollmentInfoForm.getRawValue().employementDate !== ''\n && this.enrollmentInfoForm.getRawValue().employementDate?.getFullYear() > '1924') {\n this.selectedFY = Utility.removeTimeFromJSDate(this.enrollmentInfoForm.getRawValue().employementDate);\n }\n if ((this.organizationType === 'PGU' || this.organizationType === 'QST' || this.organizationType === 'ST') && (this.selectedFY >= this.fiscalYear2017)) {\n if (this.enrollmentInfoForm.getRawValue().employementDate !== ''\n && this.enrollmentInfoForm.getRawValue().employementDate?.getFullYear() > '1924'\n && this.enrollmentInfoForm.getRawValue().locationCode !== ''\n && this.enrollmentInfoForm.getRawValue().systemCode !== '') {\n this.getEnrollmentPayschedule(false);\n } else {\n this.enrollmentInfoForm.controls.paySchedule.setValidators([Validators.required]);\n this.enrollmentInfoForm.controls['paySchedule'].disable();\n }\n } else {\n this.isUploadVisible = this.enrollmentInfoForm.getRawValue().systemCode === '6'\n || this.enrollmentInfoForm.getRawValue().systemCode === '9' || this.enrollmentInfoForm.getRawValue().systemCode === '3'\n || this.enrollmentInfoForm.getRawValue().systemCode === '2C';\n this.enrollmentInfoForm.get('paySchedule').setValidators(null);\n this.enrollmentInfoForm.patchValue({ paySchedule: null });\n this.enrollmentInfoForm.controls['paySchedule'].disable();\n }\n }\n\n selectionPaySchedule(value: any) {\n if (value) {\n this.enrollmentInfoForm.patchValue({ paySchedule: value.payScheduleID });\n this.enrollmentInfoForm.get('employementDate').setErrors(null);\n this.selectedPayScheduleInfo = value;\n this.isUploadVisible = this.enrollmentInfoForm.getRawValue().systemCode === '6'\n || this.enrollmentInfoForm.getRawValue().systemCode === '9' || this.enrollmentInfoForm.getRawValue().systemCode === '3'\n || this.enrollmentInfoForm.getRawValue().systemCode === '2C';\n const firstCondition = parseInt(this.enrollmentInfoForm.getRawValue().locationCode.substring(0, 4)) > this.config.FirstFourLocationCode\n && this.config.Position3and4LocationCode.includes(this.enrollmentInfoForm.getRawValue().locationCode.substring(2, 4));\n const secondCondition = this.config.StateFirstFourLocationCode.includes(this.enrollmentInfoForm.getRawValue().locationCode.substring(0, 4));\n const totalPayCondition = this.config.TotalNumberOfPay.includes(value?.totalPays?.toString());\n if (this.enrollmentInfoForm.getRawValue().systemCode === '7' && (firstCondition || secondCondition) && totalPayCondition) {\n this.isTenMonthEmployee = true;\n this.tenMonthEmpType = '';\n } else {\n this.isTenMonthEmployee = false;\n }\n }\n }\n\n getEnrollmentPayschedule(isExistingRecord: boolean) {\n this.paySchedulesList = [];\n this.isUploadVisible = false;\n if (!isExistingRecord) { this.enrollmentInfoForm.patchValue({ paySchedule: null }); }\n this.isScheduleSearching = true;\n const summaryDetails = this.summaryData.wizardData;\n const inputData = {\n userInfo: this.usersService.UserInfo(), ssn: summaryDetails.ssn,\n locationCode: isExistingRecord ? summaryDetails.enrollmentDetails.locationCode : this.enrollmentInfoForm.getRawValue().locationCode,\n systemCode: isExistingRecord ? summaryDetails.enrollmentDetails.systemCode : this.enrollmentInfoForm.getRawValue().systemCode,\n enrollmentDate: isExistingRecord ? summaryDetails.enrollmentDetails.enrollmentDate : this.enrollmentInfoForm.getRawValue().employementDate\n };\n this.employeesService.getEnrollmentPayschedule(inputData).subscribe((response: any) => {\n if (response && response.success) {\n if (response.data && response.data.length > 0) {\n const concatDate = response.data.map(item => ({ ...item, originalName: item.name, name: `${item.payScheduleID}-${item.name}` }));\n if (this.organizationType === 'ST' && (this.enrollmentInfoForm.getRawValue().systemCode === '4' || this.enrollmentInfoForm.getRawValue().systemCode === '5')) {\n this.paySchedulesList = concatDate.filter(item => item.originalName === this.config.PayScheduleForState[2].name);\n } else if (this.organizationType === 'ST' && this.enrollmentInfoForm.getRawValue().locationCode.startsWith('3602')) {\n this.paySchedulesList = concatDate.filter(item => item.originalName === this.config.PayScheduleForState[1].name);\n } else if (this.organizationType === 'ST') {\n this.paySchedulesList = concatDate.filter(item => item.originalName === this.config.PayScheduleForState[0].name);\n } else {\n this.paySchedulesList = concatDate;\n }\n } else {\n this.paySchedulesList = [];\n this.notificationService.setUpNotification({ message: 'No Schedule found', success: true });\n }\n this.enrollmentInfoForm.controls.paySchedule.setValidators([Validators.required]);\n this.enrollmentInfoForm.controls['paySchedule'].enable();\n } else {\n this.notificationService.setErrorNotification();\n }\n this.isScheduleSearching = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.isScheduleSearching = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n onEnrollInfoChange() {\n if (this.electType === 'Yes') {\n this.isYesSelected = true;\n this.isNoSelected = false;\n } else {\n this.isNoSelected = true;\n this.isYesSelected = false;\n }\n this.positionType = '';\n this.tenMonthEmpType = '';\n this.isNoPositionSelected = false;\n this.isYesPositionSelected = false;\n this.newForm();\n }\n\n onPositionInfoChange() {\n if (this.positionType === 'Yes') {\n this.isYesPositionSelected = true;\n this.isNoPositionSelected = false;\n this.newForm();\n if (this.organizationType === 'PGU' || this.organizationType === 'QST' || this.organizationType === 'ST') {\n this.enrollmentInfoForm.controls.paySchedule.setValidators([Validators.required]);\n this.enrollmentInfoForm.controls['paySchedule'].disable();\n const orgId = sessionStorage.getItem('orgId');\n if (orgId === '247' && this.summaryData.wizardData.personDetails.isLegislativePlan) {\n this.enrollmentInfoForm.patchValue({ systemCode: '5' });\n }\n }\n this.isSaveButtonDisabled = true;\n } else {\n this.isNoPositionSelected = true;\n this.isYesPositionSelected = false;\n }\n this.isTenMonthEmployee = false;\n this.tenMonthEmpType = '';\n }\n\n onTenMonthEmpInfoChange() {\n this.jobCode = this.tenMonthEmpType === 'Yes' ? 'X' : '';\n }\n\n onSelectEvent(e: SelectEvent, upload) {\n if (e && e.files && e.files.length > 0) {\n this.fileUploadData = e.files;\n this.scrollIntoView();\n }\n }\n\n scrollIntoView() {\n document.getElementById('save-btn').scrollIntoView();\n }\n\n onRemoveEvent(e: any) {\n this.fileUploadData = [];\n }\n\n goToContactInfo(option: number) {\n this.displayload = true;\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n enrollmentInfo: {\n id: this.isOldRecord ? this.summaryData.wizardData.enrollmentDetails.id : 0,\n locationCode: this.enrollmentInfoForm.getRawValue().locationCode,\n systemCode: this.enrollmentInfoForm.getRawValue().systemCode.length > 1 ? this.enrollmentInfoForm.getRawValue().systemCode.slice(0, 1) : this.enrollmentInfoForm.getRawValue().systemCode,\n enrollmentDate: Utility.formatDate(this.enrollmentInfoForm.getRawValue().employementDate),\n enrollmentsId: this.summaryData.wizardData.enrollmentsId,\n payScheduleId: this.enrollmentInfoForm.getRawValue().paySchedule,\n electType: this.electType,\n positionType: this.positionType,\n tenMonthEmpType: this.tenMonthEmpType,\n jobCode: this.enrollmentInfoForm.getRawValue().systemCode.length > 1 ? this.enrollmentInfoForm.getRawValue().systemCode.slice(1, 2) : this.jobCode,\n contributoryPays: this.selectedPayScheduleInfo?.contributoryPays,\n totalPays: this.selectedPayScheduleInfo?.totalPays\n },\n uploadedFile: (this.enrollmentInfoForm.getRawValue().systemCode === '6' || this.enrollmentInfoForm.getRawValue().systemCode === '9' || this.enrollmentInfoForm.getRawValue().systemCode === '3'\n || this.enrollmentInfoForm.getRawValue().systemCode === '2C') ? this.fileUploadData[0] : null,\n fileName: this.fileUploadData[0] ? null : this.summaryData.wizardData?.enrollmentDetails?.uploadedFileName\n };\n this.employeesService.saveEnrollmentInfo(inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n this.notificationService.setUpNotification({ message: response.message, success: true });\n inputData.enrollmentInfo.id = response.id;\n inputData.enrollmentInfo['uploadedFileName'] = inputData.fileName ? inputData?.fileName : inputData?.uploadedFile?.name;\n this.goTo.emit({\n option, isFinalSubmit: false, isContactInfo: true, wizardData: {\n personDetails: this.summaryData.wizardData.personDetails, ssn: this.summaryData.wizardData.ssn,\n empSSN: this.summaryData.wizardData.empSSN, enrollmentDetails: inputData.enrollmentInfo,\n enrollmentsId: response.enrollmentsId, contactDetails: this.isOldRecord ? this.summaryData.wizardData.contactDetails : null\n }\n });\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.displayload = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.displayload = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n goToPreviousPage(option: number) {\n this.next(option);\n }\n\n startNewEnrollment(option: number) {\n this.next(option);\n }\n\n next(option: number) {\n this.goTo.emit({\n option, isFinalSubmit: false, wizardData: {\n personDetails: this.summaryData.wizardData.personDetails, ssn: this.summaryData.wizardData.ssn,\n empSSN: this.summaryData.wizardData.empSSN, enrollmentsId: this.summaryData.wizardData.enrollmentsId\n }\n });\n }\n\n downloadUploadedFile(data: any) {\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n id: data.wizardData.enrollmentDetails.id,\n type: 'enrollment',\n fileName: data.wizardData.enrollmentDetails.uploadedFileName\n };\n this.employeesService.downloadUploadedFile(inputData).subscribe(() => {\n data.docClicked = !data.docClicked;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n data.docClicked = !data.docClicked;\n });\n }\n}\n","
\n \n
\n
\n
SSN
\n
{{summaryData?.wizardData?.empSSN}}
\n
\n
\n
Last Name
\n
{{summaryData?.wizardData?.personDetails?.lastName}}
\n
\n
\n
Date of Birth
\n
{{summaryData?.wizardData?.personDetails?.dateOfBirth | date: 'MM/dd/yyyy'}}
\n
\n
\n

Enrollment Information

\n
\n
\n {{config.Question1}}\n
\n
\n \n \n \n \n
\n
\n
\n
    \n
  • {{choice}}
  • \n
\n
\n
\n
\n {{config.YesSelectionMsg}}\n
\n
\n
\n {{config.NoSelectionMsg}}\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n {{config.NoMsg}}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
= fiscalYear2017)\">\n \n \n \n
\n \n
\n
\n
\n
\n
\n \n
\n
\n {{config.Question3}}\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n {{summaryData?.wizardData?.enrollmentDetails?.uploadedFileName}}\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
","import { Utility } from './../../../../shared/utility';\nimport { ReadConfigService } from './../../../../shared/services/common/read-config.service';\nimport { DisplayNotificationService } from './../../../../shared/services/common/notification.service';\nimport { EmployeesService } from './../../../../shared/services/employees/employees.service';\nimport { UsersService } from './../../../../shared/services/common/users.service';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ageRangeValidator } from 'src/app/shared/directives/age-validator.directive';\n\n@Component({\n selector: 'app-person-info',\n templateUrl: './person-info.component.html',\n styleUrls: ['./person-info.component.css']\n})\nexport class PersonInfoComponent implements OnInit {\n ssnMask = '000-00-0000';\n ssnPattern = /^(?!666|000\\d{2})\\d{3}(?!00)\\d{2}(?!0{4})\\d{4}$/;\n ssn: number;\n value: any;\n personInfo: any;\n encryptedSSN: any;\n config: any;\n enrollmentInfo: any;\n enrollmentId: Number;\n personalInfoId: Number;\n validSSNMsg: boolean;\n isEmpDetailValid: boolean;\n searchBtnEnable: boolean;\n isPersonInfoVisible: boolean;\n isRecordAlreadyFatched: boolean;\n displayload: boolean;\n isNewPerson: boolean;\n isRetireeInfoVisible: boolean;\n isProcessing = false;\n isNoLegislativeEnrolledSelected = false;\n isLegislativePlan = null;\n personForm: FormGroup;\n defaultItem: { name: string; code: string } = {\n name: 'Select...',\n code: ''\n };\n gendersData = [{ name: 'Male', code: 'M' }, { name: 'Female', code: 'F' }, { name: 'Non-Binary', code: 'X' }];\n speCharPattern = /^[a-zA-Z\\s.'\\-,`]+$/;\n\n @Input() set personScreenInfo(wizardData: any) {\n if (wizardData && (wizardData.action === 'edit' ? true : !wizardData.isFinalSubmit)) {\n this.setPersonalInfo((wizardData.action === 'edit' ? wizardData.dataItem : wizardData.wizardData), true, (wizardData.action === 'edit'));\n }\n }\n\n @Output() goTo = new EventEmitter();\n @Output() formDirtyOrTouched = new EventEmitter();\n\n constructor(\n private router: Router,\n private fb: FormBuilder,\n private readConfigService: ReadConfigService,\n private usersService: UsersService,\n private employeesService: EmployeesService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit(): void {\n this.config = this.readConfigService.getEnrollmentMemberText();\n this.searchBtnEnable = true;\n this.displayload = false;\n this.isProcessing = false;\n this.personInfoForm();\n }\n\n personInfoForm() {\n this.personForm = this.fb.group({\n id: [Number],\n ssn: [{ value: '', disabled: true }],\n firstName: ['', [Validators.required, Validators.pattern(this.speCharPattern)]],\n MI: [''],\n lastName: ['', [Validators.required, Validators.pattern(this.speCharPattern)]],\n dateOfBirth: ['', [Validators.required, ageRangeValidator()]],\n gender: ['', [Validators.required, this.validateGender.bind(this)]],\n });\n }\n\n validateGender(control: AbstractControl): { [key: string]: any } | null {\n const valid = this.gendersData.some(option => option.code === control.value);\n return valid ? null : { invalidGender: true };\n }\n\n setPersonalInfo(data: any, isPreviousInfo: boolean, isEdit: boolean) {\n const personalData = data;\n if (isPreviousInfo) {\n this.value = isEdit ? personalData.ssn : personalData.personDetails.ssn;\n this.ssn = this.value;\n this.employmentInfoSearch(isPreviousInfo, isEdit);\n } else {\n this.isPersonInfoVisible = true;\n this.encryptedSSN = this.encryptedSSN;\n this.enrollmentId = personalData.enrollmentsId;\n if (personalData.personalInfo) {\n setTimeout(() => {\n this.personForm.patchValue({\n id: Number(personalData.personalInfo.id),\n ssn: this.ssn,\n firstName: personalData.personalInfo.firstName.trim(),\n MI: personalData.personalInfo.mi,\n lastName: personalData.personalInfo.lastName.trim(),\n dateOfBirth: new Date(personalData.personalInfo.dateOfBirth),\n gender: personalData.personalInfo.gender\n });\n }, 100);\n if (personalData.personalInfo.isLegislativePlan !== null) {\n const orgId = sessionStorage.getItem('orgId')\n if (orgId === '247') {\n this.isRetireeInfoVisible = true;\n this.isLegislativePlan = personalData.personalInfo.isLegislativePlan;\n this.isNoLegislativeEnrolledSelected = (!personalData.personalInfo.isLegislativePlan);\n } else {\n this.isRetireeInfoVisible = false;\n this.isNoLegislativeEnrolledSelected = true;\n }\n } else {\n this.isRetireeInfoVisible = false;\n this.isNoLegislativeEnrolledSelected = false;\n this.isLegislativePlan = null;\n }\n } else {\n this.searchEmployeeSsn(personalData, true);\n }\n }\n }\n\n isFormTouched() {\n this.formDirtyOrTouched.emit(this.personForm.dirty || this.personForm.touched);\n }\n\n selectionChange(value: boolean) {\n this.formDirtyOrTouched.emit(value);\n }\n\n onSsnChange(input: any) {\n this.isEmpDetailValid = false;\n this.isRecordAlreadyFatched = false;\n this.value = input.trim();\n if (this.value.length > 8) {\n if (this.ssnPattern.test(this.value)) {\n this.searchBtnEnable = false;\n this.validSSNMsg = false;\n this.ssn = this.value;\n } else {\n this.validSSNMsg = true;\n this.searchBtnEnable = true;\n }\n } else {\n this.searchBtnEnable = true;\n }\n this.isPersonInfoVisible = false;\n }\n\n exitForm() {\n this.value = '';\n this.personForm.reset();\n this.isPersonInfoVisible = false;\n this.displayload = false;\n this.isRetireeInfoVisible = false;\n this.isLegislativePlan = null;\n this.isNoLegislativeEnrolledSelected = false;\n this.formDirtyOrTouched.emit(false);\n }\n\n employmentInfoSearch(isPreviousInfo: boolean, isEdit: boolean) {\n this.isProcessing = true;\n this.encryptedSSN = this.usersService.encrypt(this.ssn, 'post');\n const inputData = { userInfo: this.usersService.UserInfo(), ssn: this.encryptedSSN };\n this.employeesService.getEmploymentInfo(inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n this.enrollmentInfo = response;\n if (response.enrollmentsId && response.contactInfo && (isEdit ? true : !isPreviousInfo)) {\n this.goToContactInfoScreen(response);\n } else if (response.enrollmentsId && response.scheduleInfo && (isEdit ? true : !isPreviousInfo)) {\n this.goToEnrollmentInfoScreen(response);\n } else {\n this.setPersonalInfo(response, false, false);\n }\n this.isProcessing = false;\n this.searchBtnEnable = true;\n } else {\n this.searchEmployeeSsn(response.personalInfo, true);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.isProcessing = false;\n this.notificationService.setErrorNotification();\n });\n }\n\n goToContactInfoScreen(data: any) {\n const enrollmentData = data.scheduleInfo;\n const personData = data.personalInfo;\n const contactData = data.contactInfo;\n personData.ssn = this.ssn;\n this.goTo.emit({\n option: 2, isContactInfo: true, wizardData: {\n personDetails: personData, ssn: this.encryptedSSN, empSSN: Utility.formatSSN(this.ssn),\n enrollmentsId: data.enrollmentsId, enrollmentDetails: enrollmentData, contactDetails: contactData\n }\n });\n }\n\n goToEnrollmentInfoScreen(data: any) {\n const enrollmentData = data.scheduleInfo;\n const personData = data.personalInfo;\n personData.ssn = this.ssn;\n this.goTo.emit({\n option: 1, isEnrollmentInfo: true, wizardData: {\n personDetails: personData, ssn: this.encryptedSSN, empSSN: Utility.formatSSN(this.ssn),\n enrollmentsId: data.enrollmentsId, enrollmentDetails: enrollmentData\n }\n });\n }\n\n searchEmployeeSsn(data: any, isNewPerson: boolean) {\n this.isProcessing = true;\n this.displayload = false;\n this.personInfo = {};\n this.enrollmentInfo = null;\n this.isNewPerson = isNewPerson;\n this.encryptedSSN = this.isNewPerson ? this.usersService.encrypt(this.ssn, 'post') : data.ssn;\n const inputData = { userInfo: this.usersService.UserInfo(), ssn: this.encryptedSSN };\n this.employeesService.getPersonInfo(inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n if (response.data) {\n this.personInfo = response.data;\n this.enrollmentId = response.enrollmentId;\n this.personForm.patchValue({\n id: this.personInfo.id,\n ssn: this.isNewPerson ? this.ssn : data.personDetails.ssn,\n firstName: this.personInfo.firstName.trim(),\n MI: this.personInfo.mi,\n lastName: this.personInfo.lastName.trim(),\n dateOfBirth: new Date(this.personInfo.dateOfBirth),\n gender: this.isNewPerson ? this.personInfo.sex : data.personDetails.gender\n });\n this.ssn = this.isNewPerson ? this.ssn : data.personDetails.ssn;\n this.isPersonInfoVisible = true;\n if (this.personInfo.isRetiree) {\n const orgId = sessionStorage.getItem('orgId')\n if (orgId === '247') {\n this.isRetireeInfoVisible = true;\n this.isLegislativePlan = null;\n this.isNoLegislativeEnrolledSelected = false;\n } else {\n this.isRetireeInfoVisible = false;\n this.isNoLegislativeEnrolledSelected = true;\n }\n } else {\n this.isRetireeInfoVisible = false;\n this.isNoLegislativeEnrolledSelected = false;\n this.isLegislativePlan = null;\n }\n } else if (response.id > 0) {\n this.isPersonInfoVisible = false;\n this.isRecordAlreadyFatched = true;\n } else {\n this.personForm.patchValue({ ssn: this.ssn });\n this.isPersonInfoVisible = true;\n };\n } else if (response && response.statusCode === 204) {\n this.personForm.reset();\n this.personForm.patchValue({ ssn: this.ssn });\n this.isPersonInfoVisible = true;\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n this.isPersonInfoVisible = false;\n }\n this.searchBtnEnable = true;\n this.isProcessing = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setErrorNotification();\n this.displayload = false;\n this.isProcessing = false;\n this.searchBtnEnable = false;\n this.isPersonInfoVisible = false;\n });\n }\n\n onRetireeEnrolledInfoChange() {\n if (this.isLegislativePlan) {\n this.isNoLegislativeEnrolledSelected = false;\n } else {\n this.isNoLegislativeEnrolledSelected = true;\n }\n }\n\n next(option: number) {\n this.displayload = true;\n const enrollmentData = this.enrollmentInfo?.scheduleInfo;\n const personData = this.enrollmentInfo?.personalInfo;\n const contactData = this.enrollmentInfo?.contactInfo;\n if (this.enrollmentInfo?.scheduleInfo && !this.personForm.dirty) {\n personData.ssn = this.ssn;\n this.goTo.emit({\n option: 1, isEnrollmentInfo: true, wizardData: {\n personDetails: personData, ssn: this.encryptedSSN, empSSN: Utility.formatSSN(this.ssn),\n enrollmentsId: this.enrollmentInfo.enrollmentsId, enrollmentDetails: enrollmentData,\n contactDetails: contactData\n }\n });\n this.displayload = false;\n } else {\n const parsonInfo = {\n Id: this.isNewPerson ? 0 : this.personForm.getRawValue().id, firstName: this.personForm.getRawValue().firstName, mi: this.personForm.getRawValue().MI,\n lastName: this.personForm.getRawValue().lastName, dateOfBirth: Utility.formatDate(this.personForm.getRawValue().dateOfBirth),\n Gender: this.personForm.getRawValue().gender, isLegislativePlan: this.isLegislativePlan, EnrollmentsId: this.enrollmentId ? this.enrollmentId : 0\n }\n const inputData = { userInfo: this.usersService.UserInfo(), ssn: this.encryptedSSN, personalInfo: parsonInfo };\n this.employeesService.savePersonInfo(inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n this.notificationService.setUpNotification({ message: response.message, success: true });\n this.personForm.addControl('isLegislativePlan', new FormControl(parsonInfo.isLegislativePlan));\n this.goTo.emit({\n option, isEnrollmentInfo: (this.enrollmentInfo?.scheduleInfo ? true : false), wizardData: {\n personDetails: this.personForm.getRawValue(), ssn: this.encryptedSSN, empSSN: Utility.formatSSN(this.ssn),\n enrollmentsId: response.enrollmentsId, enrollmentDetails: enrollmentData, contactDetails: contactData\n }\n });\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.displayload = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.displayload = false;\n this.notificationService.setErrorNotification();\n });\n }\n }\n\n}\n","
\n

Person Information

\n
\n

Employee Details

\n
\n
\n Employee SSN:\n
\n
\n \n \n
\n \n Valid SSN is required\n \n
\n
\n
\n \n
\n
\n
\n {{config.RecordAlreadyFatchedMsg}}\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n
\n \n Valid First Name is required\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n \n Valid Last Name is required\n \n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n Date of Birth is required
\n
Age must be between 16 and 100
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n \n
\n
\n {{config.RetireeQuestion}}\n
\n
\n \n \n \n \n
\n
\n
\n
\n {{config.RetireeNoSelectionMsg}}\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
","import { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { AfterViewChecked, Component, OnInit, ViewChild } from '@angular/core';\nimport { SelectEvent, TabStripComponent } from '@progress/kendo-angular-layout';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\n\n@Component({\n selector: 'app-enrollments',\n templateUrl: './enrollments.component.html',\n styleUrls: ['./enrollments.component.css']\n})\nexport class EnrollmentsComponent implements OnInit, AfterViewChecked {\n adminOperators: any;\n operators: any;\n editEnrollmentData: any;\n initialLoading = false;\n isHistoryDisable: boolean;\n @ViewChild('enrolltabstrip') tabstrip: TabStripComponent;\n\n constructor(\n private authService: AuthService,\n private readConfigService: ReadConfigService,\n ) { }\n\n ngOnInit(): void {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n const accessRole = this.authService.getAccessId('Enrollments');\n if (accessRole && accessRole.role === \"administrator\") {\n this.adminOperators = this.authService.getAccessOperations(2);\n } else {\n this.operators = this.authService.getAccessOperations(2);\n }\n }\n\n ngAfterViewChecked() {\n this.setTabStripStyle();\n }\n\n setTabStripStyle() {\n const allDetails = document.querySelectorAll('.k-tabstrip');\n if (allDetails && allDetails.length > 0) {\n allDetails.forEach(details => {\n const firstChild = details.firstElementChild.children[0];\n if (firstChild && firstChild.children && firstChild.children.length > 1) {\n const elArr = Array.from(firstChild.children) as Array;\n const tabFirstEl = Array.from(elArr[0].children) as Array;\n const tabSecEl = Array.from(elArr[1].children) as Array;\n tabFirstEl[0].style.marginRight = '5px';\n tabSecEl[0].style.marginRight = '5px';\n elArr.forEach(element => {\n element.style.width = 100 / firstChild.children.length + '%';\n });\n }\n });\n }\n }\n\n onSelect(e: SelectEvent): void {\n // TODO: write history click event\n // this.isHistoryDisable = (e.index === 0);\n this.getEnrollmentRecord(null);\n }\n\n disableHistory(value: boolean) {\n this.isHistoryDisable = value;\n }\n\n getEnrollmentRecord(event: any) {\n this.tabstrip.tabs.forEach(x => {\n switch (x.title) {\n case 'Enroll Member':\n x.selected = true;\n this.editEnrollmentData = event;\n break;\n case 'In-Progress/Pending':\n x.selected = false;\n break;\n case 'Processed':\n x.selected = false;\n break;\n }\n });\n }\n\n}\n","
\n
\n

Enrollments

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { EmployeesService } from 'src/app/shared/services/employees/employees.service';\n\n@Component({\n selector: 'app-pending-detailed-view',\n templateUrl: './pending-detailed-view.component.html',\n styleUrls: ['./pending-detailed-view.component.css']\n})\nexport class PendingDetailedViewComponent implements OnInit {\n personInfo: any = {};\n enrollmentInfo: any = {};\n contactInfo: any = {};\n userLocations: any;\n userSystems: any;\n config: any;\n dataLoading: boolean;\n @Input()\n set data(dataItem: any) {\n if (dataItem) {\n this.dataLoading = true;\n this.getLoactionAndSystem(dataItem);\n }\n }\n\n constructor(\n private usersService: UsersService,\n private employeesService: EmployeesService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) {\n this.config = this.readConfigService.getEnrollmentMemberText();\n }\n\n ngOnInit(): void {\n }\n\n getLoactionAndSystem(data: any) {\n const inputData = { userInfo: this.usersService.UserInfo() };\n this.employeesService.getEnrollmentInput(inputData).subscribe((response: any) => {\n if (response && response.success && response.locations && response.locations.length > 0\n && response.systemCodes && response.systemCodes.length > 0) {\n response.locations.forEach(element => {\n element.name = element.code.concat('-', element.name);\n });\n this.userLocations = response.locations.sort((a: any, b: any) => a.code - b.code);\n this.userSystems = response.systemCodes;\n } else {\n this.notificationService.setErrorNotification();\n }\n this.getPendingEnrollmentDetails(data);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.dataLoading = false;\n this.notificationService.setErrorNotification();\n })\n }\n\n getPendingEnrollmentDetails(dataItem: any) {\n this.personInfo = {};\n this.enrollmentInfo = {};\n this.contactInfo = {};\n const inputData = { userInfo: this.usersService.UserInfo(), enrollmentId: dataItem.id, isDetailView: true };\n this.employeesService.getEmploymentInfo(inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n this.personInfo = response.personalInfo;\n if (response.scheduleInfo !== null) {\n response.scheduleInfo.locationName = this.userLocations.find(ele => ele.code === response?.scheduleInfo?.locationCode);\n response.scheduleInfo.systemName = this.userSystems.find(ele => ele.code === response?.scheduleInfo?.systemCode);\n this.enrollmentInfo = response.scheduleInfo;\n }\n this.contactInfo = response.contactInfo;\n } else {\n this.notificationService.setErrorNotification();\n }\n this.dataLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.dataLoading = false;\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","
\n
\n

Person Information

\n
\n
First Name: {{personInfo?.firstName}}
\n
MI: {{personInfo?.mi}}
\n
Last Name: {{personInfo?.lastName}}
\n
DOB: {{personInfo?.dateOfBirth | date:\n 'MM/dd/yyyy'}}
\n
Gender: {{personInfo?.gender}}
\n
\n
\n
\n

Enrollment Information

\n
\n
{{config.Question1}}\n {{enrollmentInfo?.electType}}
\n
{{config.NoSelectionMsg}}\n {{enrollmentInfo?.positionType}}
\n
Employment Start Date:\n {{enrollmentInfo?.enrollmentDate | date:'MM/dd/yyyy'}}
\n
Location:\n {{enrollmentInfo?.locationName?.name}}
\n
\n System:\n {{enrollmentInfo?.systemName?.description}}\n
\n
\n Pay Schedule Id:\n {{enrollmentInfo?.payScheduleId}}\n
\n
\n
Job\n Description:\n {{enrollmentInfo?.uploadedFileName}}
\n
{{config.Question3}}\n {{enrollmentInfo?.tenMonthEmpType}}
\n
\n
\n
\n
\n

Contact Information

\n
\n
\n
Proof of Birth:\n {{contactInfo?.proofOfBirthType}}
\n
Customer Identifier:\n {{contactInfo?.customerIdentifierNo}}
\n
\n
\n
Address1:\n {{contactInfo?.addressLine1}}
\n
Address2:\n {{contactInfo?.addressLine2}}
\n
City: {{contactInfo?.city}}\n
\n
\n
\n
State: {{contactInfo?.state}}
\n
Zip: {{contactInfo?.zip}}
\n
Zip+4: {{contactInfo?.zip4}}
\n
Phone No:\n {{contactInfo?.phoneNo}}
\n
Work Email: {{contactInfo?.workEmail}}
\n
Personal Email:\n {{contactInfo?.personalEmail}}
\n
\n\n
\n
\n
\n
","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { State } from '@progress/kendo-data-query';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { EmployeesService } from 'src/app/shared/services/employees/employees.service';\nimport { Utility } from 'src/app/shared/utility';\n\n@Component({\n selector: 'app-pending-enrollments',\n templateUrl: './pending-enrollments.component.html',\n styleUrls: ['./pending-enrollments.component.css']\n})\nexport class PendingEnrollmentsComponent implements OnInit {\n gridView = [];\n operators: any;\n config: any;\n removeRecord: any;\n dataLoading = true;\n loading: boolean;\n deleteEnrollmentDialog: boolean;\n state: State = {\n skip: 0,\n take: 13,\n sort: []\n };\n @Output() loadPendingEnrollment: EventEmitter = new EventEmitter();\n\n constructor(\n private router: Router,\n private authService: AuthService,\n private usersService: UsersService,\n private employeesService: EmployeesService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit(): void {\n this.operators = this.authService.getAccessOperations(2);\n this.config = this.readConfigService.getEnrollmentMemberText();\n this.getPendingEnrollmentsData();\n }\n\n getPendingEnrollmentsData() {\n this.gridView = [];\n const inputData = { userInfo: this.usersService.UserInfo(), tabName: 'InProgress' };\n this.employeesService.getPendingEnrollData(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n const orgValue = JSON.parse(this.authService.decryptText(Utility.removeQuotes(sessionStorage.getItem('current_user'))));\n response.data.forEach((element: any) => {\n element.lastFourSSN = element.ssn.substr(5);\n element.isAuthorizedOwner = (element.ownerID === Number(orgValue.Id));\n this.gridView.push(element);\n });\n } else if (response && response.statusCode === 204) {\n this.gridView = [];\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.dataLoading = false;\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.dataLoading = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n assignToYourself(data: any) {\n this.dataLoading = true;\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n enrollmentID: data.id,\n };\n this.employeesService.updateEnrollmentRecordOwner(inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n this.notificationService.setUpNotification({ message: response.message, success: true });\n } else {\n this.notificationService.setUpNotification({ message: response.message, success: false });\n }\n this.getPendingEnrollmentsData();\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.dataLoading = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n editHandler(editEvent: any) {\n this.loadPendingEnrollment.emit(editEvent);\n }\n\n removeHandler(removeEvent: any) {\n this.removeRecord = removeEvent;\n this.deleteEnrollmentDialog = true;\n }\n\n deleteEnrollmentRecord() {\n this.loading = true;\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n enrollmentId: this.removeRecord.dataItem.id\n };\n this.employeesService.deletePendingEnrollRecord(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n this.dataLoading = true;\n this.getPendingEnrollmentsData();\n this.notificationService.setUpNotification({ message: response.message, success: true });\n } else {\n this.notificationService.setUpNotification({ message: response.message, success: false });\n }\n this.deleteEnrollmentDialog = false;\n this.notificationService.setUpLoading(false);\n this.loading = false;\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.loading = false;\n this.deleteEnrollmentDialog = false;\n this.dataLoading = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","
\n
\n \n \n
\n

Add/Edit adjustment will\n not be available on Mobile Devices

\n
\n
\n \n \n \n
\n
\n
\n SSN4: \n {{ dataItem.lastFourSSN }}\n
\n
\n
\n
\n First Name: \n {{ dataItem.firstName }}\n
\n
\n
\n
\n Middle Initial: \n {{ dataItem.MI }}\n
\n
\n
\n
\n Last Name: \n {{ dataItem.lastName }}\n
\n
\n
\n
\n Submitted On: \n {{ dataItem.dateSubmitted | date: 'MM/dd/yyyy' }}\n
\n
\n
\n
\n Last Modified: \n {{ dataItem.lastModified | date: 'MM/dd/yyyy' }}\n
\n
\n
\n
\n Submitted By: \n {{ dataItem.submittedBy }}\n
\n
\n
\n
\n Status: \n {{ dataItem.status }}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n \n \n
\n {{dataItem.lastFourSSN}}\n
\n
\n
\n \n \n \n \n \n
\n \n {{dataItem.mi}}\n \n
\n
\n
\n \n \n \n \n \n
\n \n {{dataItem.submittedDate | date: 'MM/dd/yyyy'}}\n \n
\n
\n
\n \n \n \n \n \n
\n \n {{dataItem.modifiedDate | date: 'MM/dd/yyyy'}}\n \n
\n
\n
\n \n \n \n \n \n
\n {{dataItem.status}}\n
\n
\n
\n
\n
\n\n
\n\n
\n\n\n\n

{{config.DeletePendingEnrollMsg}}

\n \n \n \n \n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-processed-enrollments',\n templateUrl: './processed-enrollments.component.html',\n styleUrls: ['./processed-enrollments.component.css']\n})\nexport class ProcessedEnrollmentsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

processed-enrollments works!

\n","import { AuthService } from './../../shared/services/auth/auth.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { DisplayNotificationService } from './../../shared/services/common/notification.service';\nimport { EmployeesService } from './../../shared/services/employees/employees.service';\nimport { UsersService } from './../../shared/services/common/users.service';\nimport { Component, OnInit } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-terminate',\n templateUrl: './terminate.component.html',\n styleUrls: ['./terminate.component.css']\n})\nexport class TerminateComponent implements OnInit {\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private authService: AuthService,\n private employeesService: EmployeesService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ssnMask = '000-00-0000';\n ssnPattern = /^(?!666|000\\d{2})\\d{3}(?!00)\\d{2}(?!0{4})\\d{4}$/;\n ssn: number;\n value: any;\n operators: any;\n gridData: any;\n employeeName: any;\n personId: any;\n config: any;\n noContectMsg: any;\n selectedElements = [];\n searchBtnEnable: boolean;\n validSSNMsg: boolean;\n isEmpDetailValid: boolean;\n empNotFound: boolean;\n submitTerEmpDialog: boolean;\n displayload: boolean;\n termDateNotValid: boolean;\n isSubmitBtnDisable = false;\n\n ngOnInit() {\n this.searchBtnEnable = true;\n this.isSubmitBtnDisable = false;\n setTimeout(() => {\n this.notificationService.setUpLoading(false);\n }, 200);\n this.config = this.readConfigService.getTerminateText();\n this.operators = this.authService.getAccessOperations(2);\n const decryptValue = sessionStorage.getItem('terminateUser');\n if (decryptValue) {\n this.value = this.authService.decryptText(decryptValue);\n this.ssn = this.value;\n sessionStorage.removeItem('terminateUser');\n this.serachEmployeeSsn();\n }\n }\n\n onSsnChange(input: any) {\n this.isEmpDetailValid = false;\n this.value = input.trim();\n if (this.value.length > 8) {\n if (this.ssnPattern.test(this.value)) {\n this.searchBtnEnable = false;\n this.validSSNMsg = false;\n this.ssn = this.value;\n } else {\n this.validSSNMsg = true;\n this.searchBtnEnable = true;\n }\n } else {\n this.searchBtnEnable = true;\n }\n }\n\n cancelChanges() {\n this.isEmpDetailValid = false;\n this.selectedElements = [];\n this.value = '';\n }\n\n closeDialog() {\n this.displayload = false;\n this.submitTerEmpDialog = false;\n }\n\n onDateChange(dataItem: any, value: any) {\n if (value < dataItem.min || value > dataItem.max) {\n dataItem.termDateNotValid = true;\n this.isSubmitBtnDisable = false;\n return;\n } else {\n dataItem.termDateNotValid = false;\n }\n this.selectedElements.forEach(element => {\n if (element && element.encryptedEmploymentId === dataItem.encryptedEmploymentId) {\n element.terminateDt = value;\n }\n });\n this.isSubmitBtnDisable = this.selectedElements.every(obj => (obj.isTerminated && obj.terminateDt && !obj.termDateNotValid) || (!obj.isTerminated && obj.terminateDt === null && !obj.termDateNotValid));\n }\n\n onSwitchChange(value: any, dataItem: any) {\n dataItem.termDateNotValid = false;\n this.selectedElements.forEach(element => {\n if (element && element.encryptedEmploymentId === dataItem.encryptedEmploymentId) {\n element.isTerminated = value;\n element.terminateDt = null;\n }\n });\n this.isSubmitBtnDisable = this.selectedElements.every(obj => (obj.isTerminated && obj.terminateDt && !obj.termDateNotValid) || (!obj.isTerminated && obj.terminateDt === null && !obj.termDateNotValid));\n }\n\n setMinMaxDate(element: any) {\n if (element.status === 'A' || element.status === 'AE' || element.status === 'JS' || element.status === 'LS') {\n element.minDate = element.lastPayrollDate ? new Date(new Date(element.lastPayrollDate).setDate(new Date(element.lastPayrollDate).getDate() - 30)) : null;\n element.maxDate = element.lastPayrollDate ? new Date(new Date(element.lastPayrollDate).setDate(new Date(element.lastPayrollDate).getDate() + 60)) : null;\n } else if (element.status === 'I' || element.status === 'T' || element.status === 'DR') {\n element.minDate = element.lastPayrollDate ? new Date(new Date(element.lastPayrollDate).setDate(new Date(element.lastPayrollDate).getDate() - 30)) : null;\n element.maxDate = element.lastPayrollDate ? new Date(element.lastPayrollDate) : null;\n } else if (element.status === 'AL') {\n element.minDate = element.lastPayrollDate ? new Date(new Date(element.lastPayrollDate).setDate(new Date(element.lastPayrollDate).getDate() - 30)) : null;\n element.maxDate = new Date(new Date().setDate(new Date().getDate() + 60));\n }\n return element;\n }\n\n serachEmployeeSsn() {\n this.isSubmitBtnDisable = false;\n this.empNotFound = false;\n this.selectedElements = [];\n this.notificationService.setUpLoading(true);\n const inputData = { userInfo: this.usersService.UserInfo(), ssn: this.usersService.encrypt(this.ssn, 'post') };\n this.employeesService.getEmployeeInfo(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n this.isEmpDetailValid = true;\n this.employeeName = data.result.employeeName;\n this.personId = data.result.encryptedPersonId;\n if (data.result.employmentData.length > 0) {\n data.result.employmentData.forEach(element => {\n if (element && element.lastPayrollDate) {\n this.setMinMaxDate(element);\n }\n });\n this.selectedElements = data.result.employmentData.map(e => ({\n employmentId: e.employmentId,\n terminateDt: e.terminateDt !== null ? new Date(e.terminateDt) : null,\n encryptedEmploymentId: e.encryptedEmploymentId,\n encryptedTransferEmployerId: e.encryptedTransferEmployerId,\n location: e.location,\n status: e.status,\n systemPlan: e.systemPlan,\n isTerminated: true,\n lastPayrollDate: e.lastPayrollDate ? new Date(e.lastPayrollDate) : null,\n min: e.minDate,\n max: e.maxDate,\n isEdit: true,\n termDateNotValid: false\n }));\n }\n this.gridData = this.selectedElements.slice(0);\n } else if (data && data.statusCode === 204) {\n this.empNotFound = true;\n this.noContectMsg = data.message;\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.searchBtnEnable = true;\n this.notificationService.setUpLoading(false);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setErrorNotification();\n this.notificationService.setUpLoading(false);\n });\n }\n\n afterSuccessResponse(response: any) {\n this.notificationService.setUpNotification({ message: response.message, success: true });\n this.isEmpDetailValid = false;\n this.value = '';\n this.selectedElements = [];\n }\n\n updateEmpTerminateTask(successResponse: any) {\n const inputDate = {\n userInfo: this.usersService.UserInfo(),\n taskTypeID: 1,\n uniqueID: this.usersService.encrypt(this.ssn, 'post')\n };\n this.employeesService.updateTempTask(inputDate).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n this.afterSuccessResponse(successResponse);\n }\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.afterSuccessResponse(successResponse);\n });\n }\n\n terminateEmployee() {\n this.displayload = true;\n const selectedData = JSON.parse(JSON.stringify(this.selectedElements));\n const removeKeys = ['location', 'status', 'systemPlan', 'min', 'max', 'termDateNotValid'];\n selectedData.forEach((element) => {\n element.terminateDt = element.terminateDt ? element.terminateDt.slice(0, 10) : null;\n removeKeys.forEach((key) => {\n delete element[key];\n });\n });\n const inputDate = {\n userInfo: this.usersService.UserInfo(),\n EmployeeModel: { EncryptedPersonId: this.personId, EmploymentData: selectedData }\n };\n this.employeesService.postTerEmpData(inputDate).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n this.updateEmpTerminateTask(response);\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.submitTerEmpDialog = false;\n this.displayload = false;\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.displayload = false;\n this.submitTerEmpDialog = false;\n this.notificationService.setErrorNotification();\n });\n }\n}\n","
\n
\n

Terminate Employee

\n
\n \n

Employee Details

\n
\n
\n Employee SSN:\n
\n
\n \n \n
\n \n Valid SSN is required\n \n
\n
\n
\n \n
\n
\n
\n {{noContectMsg}}\n
\n
\n
\n
\n Employee Name:\n
\n
{{employeeName}}
\n
\n \n
\n

Employment Information

\n
\n

\n

\n
\n \n \n \n \n
\n
\n
\n System/Plan:\n {{ dataItem.systemPlan }}\n
\n
\n
\n
\n Location:\n {{ dataItem.location }}\n
\n
\n
\n
\n Last Reported PPED:\n {{ dataItem.LastPayrollDate | date: 'MM/dd/yyyy' }}\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n {{dataItem.lastPayrollDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n \n \n \n
\n \n \n
\n
\n \n {{config.DateError}}\n \n
\n
\n
\n
\n
\n\n \n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n\n\n\n

Do you want to terminate {{employeeName}}?

\n
\n
\n \n Submitting\n
\n \n \n \n \n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ReadConfigService } from '../shared/services/common/read-config.service';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.css']\n})\nexport class FooterComponent implements OnInit {\n @Input() selectedOrg: any;\n helpDeskPhone: any;\n\n constructor(\n private readConfigService: ReadConfigService\n ) { }\n\n ngOnInit() {\n const config = this.readConfigService.getHelpText();\n this.helpDeskPhone = config.HelpDeskPhone;\n }\n}\n","\n","import { Component, OnInit } from '@angular/core';\nimport { ReadConfigService } from '../shared/services/common/read-config.service';\nimport { AuthService } from '../shared/services/auth/auth.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { OutageNoticeComponent } from '../outage-notice/outage-notice.component';\n\n@Component({\n selector: 'app-forbidden',\n template: `\n
\n \"Maryland\n
\n
Employer
\n
Portal (Sandbox)
\n
\n
\n
\n
\n
\n
\n \"Maryland\n
\n
\n {{message}}\n
\n
\n
\n
\n
\n `\n})\n\nexport class ForbiddenComponent implements OnInit {\n\n message: any;\n currentStage: any;\n\n constructor(\n private router: Router,\n private authService: AuthService,\n private activatedRoute: ActivatedRoute,\n private readConfigService: ReadConfigService) {\n }\n\n ngOnInit() {\n this.currentStage = this.readConfigService.getCurrentStage();\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n const usererror = this.activatedRoute.snapshot.queryParams.usererror;\n const errorCode = this.activatedRoute.snapshot.queryParams.error;\n const config = this.readConfigService.getForbiddenText();\n if (errorCode === '401') {\n this.message = config.Unauthorized;\n }\n this.message = usererror ? config.UserError : config.Forbidden;\n this.verifyOutage();\n }\n\n verifyOutage() {\n const outage = sessionStorage.getItem('outage');\n setTimeout(() => {\n if (outage === null) {\n this.verifyOutage();\n } else {\n const outageSettings = this.readConfigService.getOutageScheduledDetails();\n if (outage === 'true' && outageSettings && outageSettings.maintenanceFlag &&\n this.readConfigService.getDarkFeatureFlag(this.readConfigService.getOutageDFName())) {\n sessionStorage.clear();\n this.router.navigate(['/login']);\n } else {\n this.redirectToLogIn();\n }\n }\n }, 2000);\n }\n\n redirectToLogIn() {\n const loginRedirectTime = this.readConfigService.getLoginRedirectTime();\n setTimeout(() => {\n sessionStorage.setItem('logout', 'true');\n this.authService.logout(false);\n this.authService.redirectLogoutUser();\n }, loginRedirectTime);\n }\n}\n","import { Utility } from 'src/app/shared/utility';\nimport { AfterViewInit, Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthService } from '../shared/services/auth/auth.service';\nimport { DBkeys } from '../shared/services/auth/db-keys';\nimport { ReadConfigService } from '../shared/services/common/read-config.service';\nimport { MessagesService } from '../shared/services/messages/messages.service';\nimport { UsersService } from '../shared/services/common/users.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css']\n})\n\nexport class HeaderComponent implements OnInit, AfterViewInit {\n isMobileMenu = false;\n @Input() currentTab: any;\n @Output() selectedOrganization = new EventEmitter();\n links = [];\n subLinks = {};\n menuItems = [];\n subTasks: any;\n disableOrgChange = false;\n orgCount = 0;\n claims: any;\n currPerm: any[];\n showAccountTab: boolean;\n multiOrg: boolean;\n hideOrgPopup = true;\n manual: boolean;\n isRefreshed: boolean;\n unreadMsgCount = 0;\n showMsgDialog: boolean;\n messageBody: string;\n minutes: number;\n inputData: { userInfo: any; };\n showNavigation = true;\n currentStage: any;\n showNotification: boolean;\n omessageBody: any;\n theOtherUploads = false;\n @HostListener('window:load')\n unloadHandler() {\n this.isRefreshed = true;\n }\n\n constructor(\n private router: Router,\n private authService: AuthService,\n private usersService: UsersService,\n private messagesService: MessagesService,\n public readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n this.menuItems = this.readConfigService.getMenuItems();\n this.subTasks = this.readConfigService.getSubTasks();\n this.currentStage = this.readConfigService.getCurrentStage();\n this.getOrgCount();\n const paths = location.pathname.replace(/\\//g, ',').split(',');\n this.showNavigation = paths.length > 1 && paths[1].toLowerCase() !== 'forbidden';\n }\n\n ngAfterViewInit(): void {\n this.authService.isInEditMode$().forEach(message => { this.disableOrgChange = !message; });\n }\n\n getOrgCount() {\n setTimeout(() => {\n const orgCount = sessionStorage.getItem(DBkeys.ORG_CNT);\n if (orgCount !== null) {\n if (orgCount !== '0') {\n this.multiOrg = parseInt(orgCount, 0) > 1;\n this.hideOrgPopup = this.isRefreshed;\n this.isRefreshed = false;\n this.selectedOrganization.emit(this.authService.getInitialOrg());\n this.getTopNavMenu();\n } else {\n this.router.navigate(['/forbidden']);\n this.showNavigation = false;\n }\n } else {\n this.getOrgCount();\n }\n }, 500);\n }\n\n getUnreadMsgCount() {\n this.messagesService.getUnreadMessageCount(this.inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200) {\n this.unreadMsgCount = data.result;\n this.messagesService.setMsgCount(this.unreadMsgCount.toString());\n this.setUnreadMsgCount();\n }\n },\n (err: HttpErrorResponse) => {\n if (sessionStorage.getItem('unreadMsgCount') !== null) {\n console.log(err.error);\n }\n });\n }\n\n getOutageNotif() {\n const outageDetails = this.readConfigService.getOutageScheduledDetails();\n const outageConfig = this.readConfigService.getOutageText();\n if (outageDetails && !outageDetails.maintenanceFlag && sessionStorage.getItem('showOutageNotif') === null) {\n this.showNotification = true;\n const datePipe = new DatePipe('en-US');\n this.omessageBody = outageConfig.Notification.replace('{0}', datePipe.transform(outageDetails.startDt, 'EEEE, MMMM d, y, h:mm a'));\n this.omessageBody = this.omessageBody.replace('{1}', datePipe.transform(outageDetails.endDt, 'EEEE, MMMM d, y, h:mm a'));\n }\n }\n\n closeOutage() {\n this.showNotification = false;\n sessionStorage.setItem('showOutageNotif', 'true');\n }\n\n setUnreadMsgCount() {\n setTimeout(() => {\n this.getUnreadMsgCount();\n }, (this.minutes * 60000));\n }\n\n /**\n * @description\n * Function to set padding for messages number\n */\n setPaddingClass() {\n let paddingClass = '';\n if (this.unreadMsgCount < 11) {\n paddingClass = 'num-padding-single';\n } else {\n paddingClass = 'num-padding-double';\n }\n return paddingClass;\n }\n\n getTopNavMenu() {\n setTimeout(() => {\n if (sessionStorage.getItem('DFLoaded') === 'true') {\n this.links = [];\n this.subLinks = [];\n this.usersService.setLoginTime();\n this.theOtherUploads = !this.authService.getDarkKeyValue('Uploads');\n this.menuItems.forEach((element: any) => {\n // remove member related tasks which were previously under documents for the uploads dropdown menu\n if (this.theOtherUploads && element === 'Documents') {\n this.subTasks[element] = null;\n }\n if ((this.subTasks[element] && element !== 'Uploads') || (this.theOtherUploads && element === 'Uploads')) {\n const arr = [];\n this.subTasks[element].forEach((ele: any) => {\n if (this.authService.getDarkKeyValue(ele)) {\n arr.push(ele);\n }\n });\n if (arr.length > 0) {\n const obj = {};\n obj[element] = arr;\n this.subLinks[element] = arr;\n this.links.push(element);\n }\n } else {\n if ((element === 'Home' && this.authService.getDarkKeyValue('Home')) ||\n (element === 'Pay Schedule' && this.authService.getDarkKeyValue('Pay Schedule')) ||\n (element === 'Invoice' && this.authService.getDarkKeyValue('Invoice')) ||\n (element === 'Uploads' && this.authService.getDarkKeyValue('Uploads') && !this.theOtherUploads) ||\n (element === 'Employer Documents' && this.theOtherUploads && this.authService.getDarkKeyValue('Employer Documents')) ||\n (element === 'Help' && this.authService.getDarkKeyValue('Help'))) {\n this.links.push(element);\n }\n }\n });\n if (this.authService.getDarkKeyValue('Messages')) {\n this.inputData = { userInfo: this.usersService.UserInfo() };\n this.minutes = this.readConfigService.getSecuMessagesText().MessageTimeoutMin;\n if (sessionStorage.getItem('unreadMsgCount') !== null) {\n this.unreadMsgCount = JSON.parse(sessionStorage.getItem('unreadMsgCount'));\n this.setUnreadMsgCount();\n } else {\n this.getUnreadMsgCount();\n }\n this.messagesService.collection$.subscribe(response => {\n this.unreadMsgCount = response;\n });\n this.messagesService.setMsgCount(this.unreadMsgCount.toString());\n }\n this.showAccountTab = this.authService.getDarkKeyValue('Account');\n if (this.readConfigService.getDarkFeatureFlag(this.readConfigService.getOutageDFName())) {\n this.getOutageNotif();\n }\n }\n }, 500);\n }\n\n /**\n * @description\n * Function to control mobile menu show and hide\n */\n showMobileMenu() {\n window.scrollTo(0, 0);\n const appFooter = document.getElementById('app-footer');\n const middleContent = document.getElementById('middle-content');\n if (appFooter !== null && middleContent !== null) {\n if (!this.isMobileMenu) {\n this.isMobileMenu = true;\n appFooter.classList.add('conditional-display');\n middleContent.classList.add('conditional-display');\n } else {\n this.isMobileMenu = false;\n appFooter.classList.remove('conditional-display');\n middleContent.classList.remove('conditional-display');\n }\n }\n }\n\n /**\n * @description\n * Function to set class for mobile hamburger icon\n */\n setClass() {\n let retClass: any;\n if (this.isMobileMenu) {\n retClass = 'close';\n }\n return retClass;\n }\n\n /**\n * @description\n * Function to toggle class for active route\n */\n setActiveClass(link: string) {\n const paths = location.pathname.replace(/\\//g, ',').split(',');\n return paths.length > 1 && this.replaceSpace(link).toLocaleLowerCase() === paths[1] ? 'text-red' : 'text-black';\n }\n\n setChildActiveClass(parent: any, child: any, isMobile: boolean) {\n child = this.replaceSpace(this.updatedLink(child));\n const paths = location.pathname.replace(/\\//g, ',').split(',');\n return paths.length > 1 && location.pathname === `/${parent}/${child}`.toLowerCase() ?\n isMobile ? 'text-red' : 'background-red' : 'text-black';\n }\n\n displayIcon(parent: string) {\n const value = this.subLinks[parent];\n return value && value.length > 0;\n }\n\n getChildLinks(parent: any, isMobile: boolean) {\n const value = this.subLinks[parent];\n let childLinks = value && value.length > 0 ? value : [];\n if (isMobile && parent === 'Documents') {\n childLinks = childLinks.filter((s: any) => s !== 'Member Document Upload');\n }\n return childLinks;\n }\n\n parentRouterLink(parent: any, isMobile: boolean) {\n if (this.getChildLinks(parent, isMobile).length === 0) {\n const link = this.replaceSpace(parent);\n this.router.navigate([link]);\n this.showMobileMenu();\n }\n }\n\n getRouterLink(parent: any, link: any): any {\n if (parent !== 'Account') {\n link = this.updatedLink(link);\n this.showMobileMenu();\n this.router.navigate(['/' + parent.toLowerCase() + '/' + this.replaceSpace(link)]);\n }\n }\n\n updatedLink(link: any) {\n if (link.indexOf('(') > 1) {\n link = link.substring(0, link.indexOf('(')).trim();\n } else if (link.indexOf('/') > 1) {\n link = link.substring(0, link.indexOf('/')).trim();\n }\n return link;\n }\n\n replaceSpace(link: any) {\n return Utility.lowerString(link).replace(/ /g, '-');\n }\n\n close() {\n this.hideOrgPopup = true;\n this.manual = false;\n }\n\n orgValue(args: any) {\n if (args) {\n this.selectedOrganization.emit(args.orgName);\n this.getTopNavMenu();\n }\n }\n\n // if we need user permissions on refresh\n // 1. uncomment the code\n // 2. Use userinfo in API\n // getUserPermissions() {\n // if (this.currentOrg) {\n // this.accountService.getPermissionsEndpoint()\n // .subscribe(claims => {\n // this.claims = claims.result;\n // this.currPerm = this.claims;\n // this.authService.saveCurrentPermissions(this.claims);\n // // this.authService.getDarkFeatureValue();\n // this.getTopNavMenu();\n // });\n // }\n // }\n\n logout() {\n this.hideOrgPopup = true;\n sessionStorage.setItem('logout', 'true');\n this.authService.logout(true);\n this.authService.redirectLogoutUser();\n }\n\n selectOrg() {\n this.isRefreshed = false;\n this.hideOrgPopup = false;\n this.manual = true;\n }\n}\n","
\n
\n
\n
\n \"Maryland\n
\n
Employer
\n
Portal (Sandbox)
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\n
\n \n \n \n {{parent}}\n
0 && parent === 'Home'\">\n \n
\n \n \n \n
\n
\n
\n \n \n \n
\n \n \n Account\n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n\n
\n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from '../shared/services/auth/auth.service';\nimport { ReadConfigService } from '../shared/services/common/read-config.service';\nimport { GridDataResult } from '@progress/kendo-angular-grid';\n\n@Component({\n selector: 'app-help',\n templateUrl: './help.component.html',\n styleUrls: ['./help.component.css']\n})\nexport class HelpComponent implements OnInit {\n videoGridView: GridDataResult;\n docGridView: GridDataResult;\n helpDeskPhone: any;\n businessHoursMsg: any;\n\n constructor(\n private authService: AuthService,\n private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n const config = this.readConfigService.getHelpText();\n this.videoGridView = config.HelpVideoContant;\n this.docGridView = config.HelpDocContant;\n this.helpDeskPhone = config.HelpDeskPhone;\n this.businessHoursMsg = config.BusinessHoursMsg;\n }\n}\n","
\r\n
\r\n

Help

\r\n
\r\n How To Videos:\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Name:\r\n {{ dataItem.Name }}\r\n
\r\n
\r\n
\r\n
\r\n Description:\r\n {{ dataItem.Description }}\r\n
\r\n
\r\n
\r\n
\r\n Link:\r\n \r\n \r\n View\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
{{ dataItem.Name }}
\r\n
\r\n
\r\n \r\n \r\n
{{ dataItem.Description }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n Other Resources:\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Name:\r\n {{ dataItem.Name }}\r\n
\r\n
\r\n
\r\n
\r\n Description:\r\n {{ dataItem.Description }}\r\n
\r\n
\r\n
\r\n
\r\n Link:\r\n \r\n \r\n View\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
{{ dataItem.Name }}
\r\n
\r\n
\r\n \r\n \r\n
{{ dataItem.Description }}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n Phone Support:\r\n
\r\n

{{businessHoursMsg}}
{{helpDeskPhone}}

\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { AuthService } from '../shared/services/auth/auth.service';\nimport { TabStripComponent } from '@progress/kendo-angular-layout';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.css']\n})\nexport class HomeComponent implements OnInit {\n showMessages: any;\n showNews: any;\n showTracker: any;\n\n initialLoading = false;\n @ViewChild('hometabstrip') tabstrip: TabStripComponent;\n\n constructor(private authService: AuthService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n setTimeout(() => {\n this.showMessages = this.authService.getDarkKeyValue('Messages');\n this.showNews = this.authService.getDarkKeyValue('News');\n this.showTracker = this.authService.getDarkKeyValue('Task Tracker');\n }, 500);\n }\n\n ngAfterViewChecked() {\n this.setTabStripStyle();\n }\n\n setTabStripStyle() {\n const allDetails = document.querySelectorAll('.k-tabstrip');\n if (allDetails && allDetails.length > 0) {\n allDetails.forEach(details => {\n const firstChild = details.firstElementChild.children[0];\n if (firstChild && firstChild.children && firstChild.children.length > 1) {\n const elArr = Array.from(firstChild.children) as Array;\n const tabFirstEl = Array.from(elArr[0].children) as Array;\n const tabSecEl = Array.from(elArr[1].children) as Array;\n tabFirstEl[0].style.marginRight = '5px';\n tabSecEl[0].style.marginRight = '5px';\n elArr.forEach(element => {\n element.style.width = 100 / firstChild.children.length + '%';\n });\n }\n });\n }\n }\n}\n","
\n
\n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n","import { Utility } from 'src/app/shared/utility';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { GridComponent, RowArgs } from '@progress/kendo-angular-grid';\nimport { State, CompositeFilterDescriptor, process } from '@progress/kendo-data-query';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { DocumentService } from 'src/app/shared/services/documents/document.service';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { EmployeesService } from 'src/app/shared/services/employees/employees.service';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\n\n@Component({\n selector: 'app-invoice-details',\n templateUrl: './invoice-details.component.html',\n styleUrls: ['./invoice-details.component.css']\n})\nexport class InvoiceDetailsComponent implements OnInit {\n dataItem: any;\n gridData: any;\n type: any;\n cssId: string;\n state: State = {\n skip: 0,\n take: 10,\n sort: [],\n filter: {\n logic: \"and\",\n filters: [],\n },\n group: [{ field: \"groupType\" }]\n };\n filters: CompositeFilterDescriptor;\n sort: any;\n show: boolean;\n selectedIds = [];\n @Output() selected = new EventEmitter();\n @Output() dateChange = new EventEmitter();\n @ViewChild(GridComponent) grid: GridComponent;\n isRowSelected: (e: RowArgs) => boolean;\n errorLoading: boolean;\n selectedItems = [];\n showDifferedDt: boolean;\n showDateValidation: boolean;\n dateError: any;\n paymentCutOffTime: any;\n currentDate: any;\n minDifDt: any;\n showScheduledColumn: boolean;\n\n @Input() set invoiceDetails(data: any) {\n if (data) {\n this.dataItem = data;\n this.setDataItem();\n }\n }\n @Input() set reset(record: any) {\n if (record) {\n this.resetSelection();\n }\n }\n @Input() canSelect: boolean;\n @Input() set configTxt(msg: any) {\n this.dateError = msg.DateError;\n this.paymentCutOffTime = msg.PaymentCutOffTime;\n }\n showDialog = false;\n dialogData: any;\n constructor(\n private notificationService: DisplayNotificationService,\n private authService: AuthService,\n private usersService: UsersService,\n private documentService: DocumentService,\n private employeeService: EmployeesService) {\n this.allData = this.allData.bind(this);\n }\n\n ngOnInit() {\n this.showScheduledColumn = this.authService.getDarkKeyValue('Invoice Schedule Date');\n setTimeout(() => this.setStyle(), 2000);\n }\n\n allData(): ExcelExportData {\n const result: ExcelExportData = {\n data: this.dialogData\n };\n return result;\n }\n\n setStyle() {\n const cells = document.querySelectorAll('.k-group-cell');\n cells.forEach(\n e => {\n e.classList.add('border-none');\n }\n )\n }\n\n setDataItem() {\n this.gridData = this.dataItem.data;\n this.gridData.data.forEach((element) => {\n element.formatAmount = Utility.checkNegativeAmount(element.amount);\n });\n this.type = this.dataItem.invoiceType;\n if (this.type === 'Due') {\n this.selectedItems = [];\n this.gridData.data.forEach(x => {x.scheduledDate = undefined; x.showDateError = false; });\n }\n this.cssId = this.dataItem.id;\n this.errorLoading = this.dataItem.error;\n this.show = true;\n this.currentDate = new Date();\n this.minDifDt = new Date();\n this.isRowSelected = (e: RowArgs) => this.selectedIds.indexOf(e.dataItem.id) >= 0;\n }\n\n viewInvoice(data: any) {\n if (this.type === 'Paid') {\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n fileName: data.invoiceNumber + '.pdf',\n Id: data.id\n };\n this.documentService.viewPaidInvoice(inputData).subscribe(() => {\n data.isClicked = !data.isClicked;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n data.isClicked = !data.isClicked;\n });\n } else {\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n Id: data.id\n };\n this.documentService.viewInvoice(inputData, data.invoiceNumber).subscribe(() => {\n data.isClicked = !data.isClicked;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n data.isClicked = !data.isClicked;\n });\n }\n }\n\n onSelectionChange(event: any) {\n let selectedItem;\n if (event.selectedRows.length > 0) {\n selectedItem = event.selectedRows[0].dataItem;\n this.selectedItems.push(selectedItem);\n this.selectedIds.push(selectedItem.id);\n } else if (event.deselectedRows.length > 0) {\n const deSelectedId = event.deselectedRows[0].dataItem.id;\n const index = this.selectedIds.indexOf(deSelectedId);\n this.gridData.data.forEach(x => {\n if (x.id === deSelectedId) {\n x.scheduledDate = undefined;\n x.showDateError = false;\n }\n }\n );\n this.selectedIds.splice(index, 1);\n this.selectedItems.splice(index, 1);\n this.selectedItems.forEach(element => {\n if (element.amount > 0) {\n this.showDifferedDt = this.selectedItems.length > 0;\n }\n });\n this.showDifferedDt = false;\n }\n if (this.type === 'Due' && this.selectedItems.length > 0) {\n this.selectedItems.forEach((element: any) => {\n if (element.amount > 0) {\n const dueDate: any = new Date(element.dueDate);\n const todayDate = new Date();\n let tmrwDate = new Date();\n tmrwDate = new Date(tmrwDate.setDate(this.currentDate.getDate() + 1));\n if ((dueDate - this.currentDate) > 60000) {\n if (dueDate.toLocaleDateString() !== tmrwDate.toLocaleDateString()) {\n this.showDifferedDt = true;\n if (selectedItem && selectedItem.id === element.id) {\n if (this.currentDate.getHours() < this.paymentCutOffTime) {\n element.scheduledDate = this.currentDate;\n } else {\n element.scheduledDate = tmrwDate;\n this.minDifDt = new Date(todayDate.setDate(this.currentDate.getDate() + 1));\n }\n }\n } else {\n if (this.currentDate.getHours() < this.paymentCutOffTime) {\n this.showDifferedDt = true;\n element.scheduledDate = this.currentDate;\n } else {\n element.scheduledDateAfterCutoff = tmrwDate;\n }\n }\n }\n } else {\n element.dueDate = this.currentDate;\n }\n });\n }\n this.showDateValidation = this.selectedItems.some(x => x.showDateError);\n this.selected.emit({ selectionEvent: event, isDateError: this.showDateValidation });\n this.isRowSelected = (e: RowArgs) => this.selectedIds.indexOf(e.dataItem.id) >= 0;\n }\n\n onDateChange(e: any) {\n if (e.isSchedulable && e.scheduledDate !== null) {\n const value = new Date(e.scheduledDate.toLocaleDateString());\n const isValidDate = (value !== null && (value.valueOf() > 0 &&\n value.valueOf() >= new Date(this.minDifDt.toDateString()).valueOf() && value.valueOf() <= new Date(e.dueDate).valueOf()));\n e.showDateError = !isValidDate;\n this.showDateValidation = this.selectedItems.some(x => x.showDateError);\n this.dateChange.emit({selectionEvent: e, isDateError: this.showDateValidation });\n }\n }\n\n getMaxDt(date: any) {\n return this.minDifDt > new Date(date) ? this.minDifDt : new Date(date);\n }\n\n resetSelection() {\n this.selectedIds = [];\n this.selectedItems = [];\n this.showDifferedDt = this.selectedItems.length > 0;\n this.gridData.data.forEach(x => {x.scheduledDate = undefined; x.showDateError = false; });\n this.isRowSelected = (e: RowArgs) => this.selectedIds.indexOf(e.dataItem.id) >= 0;\n }\n\n openDialog(id: any) {\n this.showDialog = true;\n this.employeeService.getEnrollmentSalaryData({ userInfo: this.usersService.UserInfo(), invoiceId: id }).subscribe(res => {\n if (res && res.success == true) {\n this.dialogData = res.salaryData;\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n this.notificationService.setErrorNotification();\n console.log(err);\n });\n }\n\n onCancel() {\n this.showDialog = false;\n }\n}\n","
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Invoice #: \r\n \r\n \r\n {{dataItem.invoiceNumber}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Invoice Date: \r\n {{ dataItem.invoiceDate | date: 'MM/dd/yyyy' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n Due Date: \r\n {{ dataItem.dueDate | date: 'MM/dd/yyyy' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Scheduled Date:\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n \r\n {{dateError}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Payment Initiated: \r\n {{dataItem.paidDate | date: 'MM/dd/yyyy'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Paid: \r\n {{dataItem.paidDate | date: 'MM/dd/yyyy'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Type: \r\n {{ dataItem.invoiceType }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Reference: \r\n {{ dataItem.reference }}\r\n
\r\n
\r\n Reference: \r\n \r\n {{dataItem.reference}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Penalty: \r\n {{dataItem.penalty | currency:'USD'}} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Interest: \r\n {{dataItem.interest | currency:'USD'}} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Amount: \r\n dataItem.amount ? 'neg-amount' : ''\">\r\n {{dataItem.formatAmount}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {{dataItem.invoiceNumber}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.invoiceDate | date: 'MM/dd/yyyy'}}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
0\">\r\n \r\n {{dataItem.dueDate | date: 'MM/dd/yyyy'}}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n Scheduled Date\r\n
\r\n
\r\n \r\n
0\">\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {{dateError}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.paidDate | date: 'MM/dd/yyyy'}}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.paidDate | date: 'MM/dd/yyyy'}}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.invoiceType}}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.reference}}\r\n \r\n {{ dataItem.reference }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.penalty | currency:'USD'}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.interest | currency:'USD'}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n dataItem.amount ? 'neg-amount' : ''\">\r\n {{dataItem.formatAmount}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{group.value}}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Quarterly Billing Details\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{dataItem.ssn}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.firstName}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.mi}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.lastName}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.locationCode}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.system}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.currentSalary | currency: 'USD' : 'symbol' : '1.0-0'}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.birthDate | date: 'MM/dd/yyyy'}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.enrollmentDate | date: 'MM/dd/yyyy'}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.jobCode}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.lastActiveDate | date: 'MM/dd/yyyy'}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.percentFullTime}}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Utility } from './../shared/utility';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { State, process, aggregateBy } from '@progress/kendo-data-query';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { InvoiceService } from 'src/app/shared/services/invoices/invoice.service';\nimport { PaymentsService } from 'src/app/shared/services/profile/payments.service';\n\n@Component({\n selector: 'app-invoice',\n templateUrl: './invoice.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./invoice.component.css']\n})\n\nexport class InvoiceComponent implements OnInit {\n pastDueInvoices: any[];\n dueInvoices: any[];\n state: State = {\n skip: 0,\n sort: []\n };\n operators: any;\n paidInvoices: any[];\n expandedDetailKeys: any[];\n currencyFormatter: Intl.NumberFormat;\n enablePayBtn: boolean;\n config: any;\n resetSelection: boolean;\n openDialog: boolean;\n loading: boolean;\n total: any;\n pendingInvoices: any[];\n inputData: { userInfo: any; };\n ids = [];\n gridLoaded: any;\n noInfo: any;\n selectedTab: number;\n invoiceData: {\n tabTitle: string; data: {\n title: string; invoiceType: string;\n data: { data: any[]; total: number; }; id: string; error: boolean; shouldDisplay: boolean;\n }[]; show: boolean;\n }[];\n initialLoading: boolean;\n disclaimer: any;\n\n constructor(\n private router: Router,\n private authService: AuthService,\n private usersService: UsersService,\n private invoiceService: InvoiceService,\n private paymentsService: PaymentsService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n this.notificationService.setUpLoading(true);\n this.inputData = {\n userInfo: this.usersService.UserInfo()\n };\n this.config = this.readConfigService.getInvoiceText();\n this.getAllInvoices();\n }\n\n getAllInvoices() {\n this.notificationService.setUpLoading(true);\n this.initialLoading = true;\n this.invoiceData = [{\n tabTitle: 'Unpaid Payments',\n data: [\n { title: 'Past Due', invoiceType: 'Past Due', data: { data: [], total: 0 }, id: 'past-due', error: false, shouldDisplay: true },\n { title: 'Due', invoiceType: 'Due', data: { data: [], total: 0 }, id: 'due', error: false, shouldDisplay: true }],\n show: false\n }, {\n tabTitle: 'Initiated Payments',\n data: [\n {\n title: 'Initiated Payments', invoiceType: 'Initiated Payments',\n data: { data: [], total: 0 }, id: 'initiated', error: false, shouldDisplay: true\n }\n ],\n show: false\n }, {\n tabTitle: 'Paid Payments',\n data: [\n { title: 'Paid', invoiceType: 'Paid', data: { data: [], total: 0 }, id: 'paid', error: false, shouldDisplay: true }\n ],\n show: false\n }];\n this.selectedTab = 0;\n this.total = 0;\n this.enablePayBtn = false;\n this.resetSelection = true;\n this.gridLoaded = { a: false, b: false, c: false, d: false };\n this.dueInvoices = [];\n this.pastDueInvoices = [];\n this.pendingInvoices = [];\n this.paidInvoices = [];\n this.expandedDetailKeys = ['Past Due', 'Due'];\n this.getEmpACHStatus();\n }\n\n getPastDueInvoices() {\n this.invoiceService.getPastDueInvoices(this.inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n data.result.forEach((element) => {\n element.dueDate = Utility.removeTimeFromDate(element.dueDate);\n element.invoiceDate = new Date(element.invoiceDate);\n });\n this.pastDueInvoices = data.result.filter((s: any) => s.amount !== 0);\n this.invoiceData[0].data[0].data = process(data.result, this.state);\n const result = aggregateBy(this.pastDueInvoices, [\n { aggregate: 'sum', field: 'amount' }\n ]);\n if (result && result.amount && result.amount.sum) {\n this.invoiceData[0].data[0].title = this.invoiceData[0].data[0].title + ' ' + Utility.checkNegativeAmount(result.amount.sum);\n } else {\n this.invoiceData[0].data[0].title = this.invoiceData[0].data[0].title + ' ' + '$0.00';\n }\n } else if (data && data.statusCode === 204) {\n this.pastDueInvoices = [];\n this.invoiceData[0].data[0].shouldDisplay = false;\n this.invoiceData[0].data[0].data = process(this.pastDueInvoices, this.state);\n this.invoiceData[0].data[0].title = this.invoiceData[0].data[0].title + ' ' + '$0.00';\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.invoiceData[0].data[0].error = true;\n }\n this.gridLoaded.a = true;\n this.getDueInvoices();\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.gridLoaded.a = true;\n this.invoiceData[0].data[0].error = true;\n this.getDueInvoices();\n });\n }\n\n getDueInvoices() {\n this.invoiceService.getDueInvoices(this.inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n data.result.forEach((element) => {\n element.dueDate = element.amount < 0 ? null : Utility.removeTimeFromDate(element.dueDate);\n element.invoiceDate = new Date(element.invoiceDate);\n });\n this.dueInvoices = data.result.filter((s: any) => s.amount !== 0);\n this.invoiceData[0].data[1].data = process(this.dueInvoices, this.state);\n const result = aggregateBy(this.dueInvoices, [\n { aggregate: 'sum', field: 'amount' }\n ]);\n if (result && result.amount && result.amount.sum) {\n this.invoiceData[0].data[1].title = this.invoiceData[0].data[1].title + ' ' + Utility.checkNegativeAmount(result.amount.sum);\n } else {\n this.invoiceData[0].data[1].title = this.invoiceData[0].data[1].title + ' ' + '$0.00';\n }\n } else if (data && data.statusCode === 204) {\n this.dueInvoices = [];\n this.invoiceData[0].data[1].data = process(this.dueInvoices, this.state);\n this.invoiceData[0].data[1].title = this.invoiceData[0].data[1].title + ' ' + '$0.00';\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.invoiceData[0].data[1].error = true;\n }\n this.notificationService.setUpLoading(false);\n this.setTabStripStyle();\n this.gridLoaded.b = true;\n this.invoiceData[0].show = true;\n this.initialLoading = false;\n this.checkPastDueEmpty();\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.gridLoaded.b = true;\n this.invoiceData[0].data[1].error = true;\n this.notificationService.setUpLoading(false);\n this.setTabStripStyle();\n this.invoiceData[0].show = true;\n this.initialLoading = false;\n });\n }\n\n checkPastDueEmpty() {\n if (this.pastDueInvoices.length === 0) {\n setTimeout(() => {\n const mainGrid = document.querySelectorAll('#invoice-grid');\n if (mainGrid.length > 0) {\n const pastGrid = document.querySelectorAll('#invoice-grid tbody tr')[0] as HTMLElement;\n pastGrid.style.display = 'none';\n }\n }, 50);\n }\n }\n\n getPendingInvoices() {\n this.invoiceService.getPendingInvoices(this.inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n data.result.forEach((element) => {\n element.invoiceDate = new Date(element.invoiceDate);\n element.paidDate = new Date(element.paidDate);\n });\n this.pendingInvoices = data.result.filter((s: any) => s.amount !== 0);\n this.invoiceData[1].data[0].data = process(this.pendingInvoices, this.state);\n } else if (data && data.statusCode === 204) {\n this.pendingInvoices = [];\n this.invoiceData[1].data[0].data = process(this.pendingInvoices, this.state);\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.invoiceData[1].data[0].error = true;\n }\n this.gridLoaded.c = true;\n this.invoiceData[1].show = true;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.gridLoaded.c = true;\n this.invoiceData[1].data[0].error = true;\n this.invoiceData[1].show = true;\n });\n }\n\n getPaidInvoices() {\n this.invoiceService.getPaidInvoices(this.inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n data.result.forEach((element) => {\n element.invoiceDate = new Date(element.invoiceDate);\n element.paidDate = new Date(element.paidDate);\n });\n this.paidInvoices = data.result.filter((s: any) => s.amount !== 0);\n this.invoiceData[2].data[0].data = process(this.paidInvoices, this.state);\n } else if (data && data.statusCode === 204) {\n this.paidInvoices = [];\n this.invoiceData[2].data[0].data = process(this.paidInvoices, this.state);\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.invoiceData[2].data[0].error = true;\n }\n this.gridLoaded.d = true;\n this.invoiceData[2].show = true;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.gridLoaded.d = true;\n this.invoiceData[2].data[0].error = true;\n this.invoiceData[2].show = true;\n });\n }\n\n setTabStripStyle() {\n const allDetails = document.querySelectorAll('.k-tabstrip');\n if (allDetails && allDetails.length > 0) {\n allDetails.forEach(details => {\n const firstChild = details.firstElementChild.children[0];\n if (firstChild && firstChild.children && firstChild.children.length > 1) {\n const elArr = Array.from(firstChild.children) as Array;\n const tabFirstEl = Array.from(elArr[0].children) as Array;\n const tabSecEl = Array.from(elArr[1].children) as Array;\n tabFirstEl[0].style.marginRight = '5px';\n tabSecEl[0].style.marginRight = '5px';\n elArr.forEach(element => {\n element.style.width = 100 / firstChild.children.length + '%';\n });\n }\n });\n }\n }\n\n negativeAmount(amount) {\n return Utility.checkNegativeAmount(amount);\n }\n\n selectionEvent(e: any) {\n if (e && e.selectionEvent) {\n const event = e.selectionEvent;\n if (event.selectedRows.length > 0) {\n const dataItem = event.selectedRows[0].dataItem;\n const index = this.ids.findIndex(x => x.id === dataItem.id);\n if (index > -1) {\n this.ids.splice(index, 1);\n }\n this.ids.push({\n id: dataItem.id, InvoiceId: dataItem.id,\n ScheduledDate: dataItem.scheduledDate || dataItem.scheduledDateAfterCutoff,\n ShowDateError: dataItem.showDateError,\n DueDate: dataItem.dueDate, SubmitDate: new Date(), InvoiceNo: dataItem.invoiceNumber, InvoiceAmount: dataItem.amount\n });\n this.total = Math.round((this.total + dataItem.amount) * 100) / 100;\n } else if (event.deselectedRows.length > 0) {\n const dataItem = event.deselectedRows[0].dataItem;\n const index = this.ids.findIndex(x => x.id === dataItem.id);\n this.ids.splice(index, 1);\n this.total = Math.round((this.total - dataItem.amount) * 100) / 100;\n }\n if (this.ids.some(x => x.ShowDateError)) {\n this.enablePayBtn = false;\n } else {\n this.enablePayBtn = this.ids && this.ids.length > 0;\n }\n this.resetSelection = false;\n }\n if (this.ids.length === 0) {\n this.total = 0;\n }\n }\n\n onDateChange(event: any) {\n if (event) {\n const e = event.selectionEvent;\n this.enablePayBtn = !(e && e.showDateError);\n for (const item of this.ids) {\n if (e.id === item.id) {\n item.ScheduledDate = e.scheduledDate;\n item.ShowDateError = e.showDateError;\n }\n }\n if (this.enablePayBtn && event.isDateError) {\n this.enablePayBtn = false;\n }\n }\n }\n\n onTabSelect(e: any) {\n if (e) {\n this.selectedTab = e.index;\n switch (this.selectedTab) {\n case 0:\n this.checkPastDueEmpty();\n break;\n case 1:\n this.resetSelection = true;\n this.total = 0;\n this.enablePayBtn = false;\n if (!this.gridLoaded.c) {\n this.getPendingInvoices();\n }\n break;\n case 2:\n this.resetSelection = true;\n this.total = 0;\n this.enablePayBtn = false;\n if (!this.gridLoaded.d) {\n this.getPaidInvoices();\n }\n break;\n }\n }\n }\n\n showDialog() {\n if (this.ids) {\n this.getBankName();\n }\n }\n\n getEmpACHStatus() {\n this.invoiceService.getEmpACHStatus(this.inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result !== undefined && data.result !== null && data.result > -1) {\n this.operators = this.authService.getAccessOperations(1);\n switch (data.result) {\n case 0:\n // bank info not found\n this.resetSelection = true;\n this.total = 0;\n this.noInfo = this.config.NoBankInfo;\n break;\n case 1:\n // ach debit\n break;\n // ach credit\n case 2:\n this.resetSelection = true;\n this.total = 0;\n this.noInfo = this.config.ACHCreditInfo;\n break;\n }\n this.getPastDueInvoices();\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.total = 0;\n this.resetSelection = true;\n this.notificationService.setErrorNotification();\n }\n this.loading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.total = 0;\n this.loading = false;\n this.resetSelection = true;\n this.notificationService.setErrorNotification();\n });\n }\n\n getBankName() {\n this.paymentsService.getEmpBankInfo(this.inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n this.disclaimer =\n this.config.AuthorizePayment.replace('{0}', this.authService.getCurrentOrgName())\n .replace('{1}', data.result.bankName)\n .replace('{2}', Utility.checkNegativeAmount(this.total))\n .replace('{3}', this.total < 0 ? 'neg-amount' : '');\n this.openDialog = true;\n } else {\n this.total = 0;\n this.loading = false;\n this.enablePayBtn = false;\n this.resetSelection = true;\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.total = 0;\n this.loading = false;\n this.enablePayBtn = false;\n this.resetSelection = true;\n this.notificationService.setErrorNotification();\n });\n }\n\n closeDialog(status: string) {\n if (status === 'yes') {\n this.confirmPayment();\n this.enablePayBtn = false;\n } else {\n this.resetSelection = true;\n this.ids = [];\n this.openDialog = false;\n this.total = 0;\n this.enablePayBtn = false;\n }\n }\n\n confirmPayment() {\n this.loading = true;\n const submitPaymentData: any = { ...this.inputData };\n submitPaymentData.PaymentData = this.ids.sort((a: any, b: any) => a.id - b.id);\n const removeKeys = ['ShowDateError'];\n submitPaymentData.PaymentData.forEach((element, index) => {\n element.DueDate = Utility.formatHourDate(element.DueDate);\n removeKeys.forEach((key) => {\n delete element[key];\n });\n element.ScheduledDate = Utility.UTCTimestmpChange(new Date((new Date(element.ScheduledDate)).toDateString()));\n submitPaymentData.PaymentData[index] = element;\n });\n this.invoiceService.submitPayment(submitPaymentData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n this.getAllInvoices();\n this.selectedTab = 0;\n if (data.result.length > 0) {\n data.result.forEach((element: any) => {\n this.notificationService.setErrorNotification(this.config.SubmitError + element);\n });\n } else {\n this.notificationService.setUpNotification({ message: this.config.SubmitSuccess, success: true });\n }\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.resetInvoiceSelection();\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.resetInvoiceSelection();\n this.notificationService.setErrorNotification();\n });\n }\n\n resetInvoiceSelection() {\n this.total = 0;\n this.loading = false;\n this.openDialog = false;\n this.resetSelection = true;\n this.ids = [];\n this.enablePayBtn = false;\n }\n\n expandDetailsBy = (dataItem: any): any => {\n return dataItem.invoiceType;\n }\n\n shouldDisplay(dataItem: any): boolean {\n return dataItem.shouldDisplay;\n }\n\n expandedDetailKeysChange(e: any) {\n if (e.length === 0) {\n this.ids = [];\n this.total = 0;\n } else if (e.length === 1 && e[0] === 'Due') {\n this.pastDueInvoices.forEach(element => {\n const pastdueIndex = this.ids.findIndex(x => x.id === element.id);\n if (pastdueIndex > -1) {\n this.ids.splice(pastdueIndex, 1);\n this.total = Math.round((this.total - element.amount) * 100) / 100;\n }\n });\n } else if (e.length === 1 && e[0] === 'Past Due') {\n this.dueInvoices.forEach(element => {\n const dueIndex = this.ids.findIndex(x => x.id === element.id);\n if (dueIndex > -1) {\n this.ids.splice(dueIndex, 1);\n this.total = Math.round((this.total - element.amount) * 100) / 100;\n }\n });\n }\n this.enablePayBtn = !(this.total === 0 || this.ids.some(x => x.ShowDateError));\n }\n}\n","
\n
\n

Invoice

\n
\n
\n
\n \n \n \n
\n {{config.ScheduleInvoiceMsg}}\n
\n
\n {{config.MultipleInvoiceMsg}}\n
\n
1; else singleRecord\">\n
\n \n \n \n \n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n {{noInfo}}\n
\n
\n \n
\n
\n
\n
\n
\n
\n\n\n

\n \n \n \n \n
\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { AfterViewInit, Component, Input, OnInit } from '@angular/core';\nimport { AuthService } from '../shared/services/auth/auth.service';\n\n@Component({\n selector: 'app-landing-page',\n templateUrl: './landing-page.component.html',\n styleUrls: ['./landing-page.component.css']\n})\nexport class LandingPageComponent implements OnInit, AfterViewInit {\n loadingIcon = true;\n singleOrg = true;\n @Input() loggedIn: any;\n disableOrgChange = false;\n loggedInUser: any = '';\n orgCount = 0;\n orgOpened = false;\n selectedOrg: any;\n currPerm: any[];\n\n constructor(\n private authService: AuthService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n this.authService.checkorgCount$.subscribe(\n count => {\n this.orgCount = parseInt(count);\n });\n this.setUserInfo();\n } else {\n this.authService.redirectToUserError();\n }\n }\n\n ngAfterViewInit(): void {\n this.authService.isInEditMode$().forEach(message => { this.disableOrgChange = !message; });\n }\n\n setUserInfo() {\n this.authService.getLoggedInUserInfo().subscribe(response => {\n if (response && response.claims && response.values) {\n this.authService.processInitialResponse(response);\n this.authService.getDarkFeatureValue();\n }\n this.loadingIcon = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.loadingIcon = false;\n });\n }\n\n setActiveClass(link: string) {\n const paths = location.pathname.replace(/\\//g, ',').split(',');\n return paths.length > 1 && link === paths[1] ? 'text-red' : 'text-black';\n }\n}\n","\n
\n","import { Component, OnInit } from '@angular/core';\nimport { OAuthService } from 'angular-oauth2-oidc';\n\n@Component({\n selector: 'app',\n template: `\n
`,\n styleUrls: ['./login.component.css']\n})\nexport class LoginComponent implements OnInit {\n\n\n constructor(private oauthService: OAuthService) { }\n\n ngOnInit() {\n const logout = sessionStorage.getItem('logout');\n if (logout === 'true') {\n this.logoff();\n } else {\n this.login();\n }\n }\n\n login() {\n sessionStorage.clear();\n this.oauthService.initCodeFlow();\n }\n\n logoff() {\n sessionStorage.clear();\n window.location.reload();\n }\n}\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { MessagesService } from 'src/app/shared/services/messages/messages.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { Utility } from 'src/app/shared/utility';\nimport { UserService } from 'src/app/shared/services/common/user.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\n\n@Component({\n selector: 'app-compose-message',\n templateUrl: './compose-message.component.html',\n styleUrls: ['./compose-message.component.css']\n})\nexport class ComposeMessageComponent implements OnInit {\n\n public listItems: any[];\n selectedValue: any;\n messageVal: any;\n subject: any;\n defaultItem = { name: 'Select Topic', id: null };\n @Output() closeModel: EventEmitter = new EventEmitter();\n composeIntroduction: any;\n maxLength: any;\n @Input() inputData: any;\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private msgService: MessagesService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit() {\n const config = this.readConfigService.getSecuMessagesText();\n this.composeIntroduction = config.ComposeMessage;\n this.maxLength = config.BodyMaxLength;\n this.msgService.getMessageTopics().subscribe((data: any) => {\n if (data && data.statusCode === 200) {\n this.listItems = data.result;\n this.selectedValue = this.defaultItem.id;\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.notificationService.setErrorNotification();\n });\n }\n\n send() {\n const data: any = { ...this.inputData };\n data.message = {\n topicId: this.selectedValue,\n subject: this.subject,\n message: this.usersService.encrypt(this.messageVal.trim(), 'post'),\n messageType: 'Secure Message',\n parentId: ''\n };\n this.msgService.sendMessage(data).subscribe((response: any) => {\n if (response && response.statusCode === 201) {\n this.closeModel.emit(false);\n this.notificationService.setUpNotification({ message: response.message, success: true });\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.notificationService.setErrorNotification();\n });\n }\n\n isDisabled(): boolean {\n return !this.selectedValue || this.messageVal === undefined || this.messageVal === ''\n || this.subject === undefined || this.subject === '';\n }\n\n keyup(value: any, option: any) {\n if (value) {\n option === 1 ? this.subject = value.replace(/^\\s+/g, '') : this.messageVal = value.replace(/^\\s+/g, '');\n }\n }\n}\n","
\n {{composeIntroduction}}\n
\n
\n
\n
\n Subject:\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
Topic:
\n
\n
\n \n \n
\n
\n
\n
\n
Message:
\n
\n
\n \n
\n {{messageVal.length}}/{{maxLength}}\n
\n
\n
\n
\n
\n \n
\n
\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MessagesService } from '../shared/services/messages/messages.service';\nimport { ReadConfigService } from '../shared/services/common/read-config.service';\nimport { DisplayNotificationService } from '../shared/services/common/notification.service';\nimport { GridDataResult, SelectableSettings, PageChangeEvent } from '@progress/kendo-angular-grid';\nimport { CompositeFilterDescriptor, SortDescriptor, orderBy, filterBy } from '@progress/kendo-data-query';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { UsersService } from '../shared/services/common/users.service';\nimport { AuthService } from '../shared/services/auth/auth.service';\n\n@Component({\n selector: 'app-messages',\n templateUrl: './messages.component.html',\n styleUrls: ['./messages.component.css']\n})\nexport class MessagesComponent implements OnInit {\n\n messagesData: any;\n selectedData = new Array();\n gridData: GridDataResult;\n filters: CompositeFilterDescriptor;\n sort: SortDescriptor[] = [{\n field: 'receivedDt',\n dir: 'desc'\n }];\n pageSize = 10;\n skip = 0;\n gridView: any[];\n gridLoading: boolean;\n messageCount = 0;\n composeMessage: boolean;\n winHandle: Window;\n openMessage = false;\n selectedValue = 'Received Messages';\n listItems: Array = ['Received Messages', 'Sent Messages', 'Archived Messages'];\n allMessages = [];\n selectedSubject: any;\n selectedTopic: any;\n opened = false;\n selectableSettings: SelectableSettings;\n sentMessage = false;\n msgData: any;\n deleteDisabled = true;\n hiddenColumns: string[] = [];\n @Output() updateMsgCount: EventEmitter = new EventEmitter();\n scrollMessage: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n inputData: { userInfo: any; };\n\n constructor(\n private router: Router,\n private authService: AuthService,\n private usersService: UsersService,\n private messagesService: MessagesService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n this.inputData = { userInfo: this.usersService.UserInfo() };\n this.loadData();\n this.selectableSettings = { checkboxOnly: true, mode: 'multiple' };\n }\n\n compose() {\n this.composeMessage = true;\n }\n\n close() {\n this.composeMessage = false;\n this.openMessage = false;\n this.opened = false;\n }\n\n closeDialog() {\n this.composeMessage = false;\n this.openMessage = false;\n this.opened = false;\n this.loadData();\n }\n\n updateGrid() {\n const updatedCount = this.messageCount - 1;\n this.messagesService.setMsgCount(updatedCount.toString());\n this.messageCount = updatedCount;\n this.loadData();\n }\n\n loadData() {\n this.notificationService.setUpLoading(true);\n this.messagesService.getSecureMessages(this.inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200) {\n this.popuplateGridData(data.result);\n } else if (data && data.statusCode === 204) {\n this.popuplateGridData([]);\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.notificationService.setErrorNotification();\n this.notificationService.setUpLoading(false);\n });\n }\n\n delete() {\n this.opened = true;\n }\n\n deleteMessage() {\n this.opened = false;\n const data: any = { ...this.inputData };\n data.msgIds = this.selectedData.toString();\n this.messagesService.deleteMessage(data).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n this.popuplateGridData(response.result);\n } else if (data && data.statusCode === 204) {\n this.popuplateGridData([]);\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.notificationService.setErrorNotification();\n });\n }\n\n popuplateGridData(data: any) {\n this.deleteDisabled = true;\n this.allMessages = data;\n this.filterGridView(this.selectedValue);\n }\n\n filterGridView(value: any) {\n this.selectedData = [];\n this.deleteDisabled = true;\n if (this.allMessages.length < 0) {\n return;\n }\n if (value === 'Sent Messages') {\n this.messagesData = this.allMessages.filter((x: any) => x.sendDt !== null && !x.deleted);\n this.sort = [{\n field: 'sendDt',\n dir: 'desc'\n }];\n } else if (value === 'Received Messages') {\n this.messagesData = this.allMessages.filter((x: any) => x.receivedDt !== null && !x.deleted);\n this.messageCount = this.messagesData.filter((x: any) => !x.read).length;\n this.messagesService.collection$.subscribe(response => {\n this.messageCount = response;\n });\n this.messagesService.setMsgCount(this.messageCount.toString());\n this.sort = [{\n field: 'receivedDt',\n dir: 'desc'\n }];\n } else {\n this.messagesData = this.allMessages.filter((x: any) => x.receivedDt !== null && x.deleted);\n this.sort = [{\n field: 'receivedDt',\n dir: 'desc'\n }];\n }\n this.gridView = orderBy(this.messagesData, this.sort);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n viewMessage(dataItem: any) {\n this.msgData = dataItem;\n this.openMessage = true;\n }\n\n pageChange(event: PageChangeEvent): void {\n this.skip = event.skip;\n this.gridView = this.messagesData;\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n sortChange(sort: SortDescriptor[]): void {\n this.sort = sort;\n this.gridView = orderBy(this.messagesData, this.sort);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n searchGrid(e: any) {\n const optionswithtime = { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' } as const;\n this.messagesData.forEach((data: any) => {\n data.id = data.id.toString();\n if (data.receivedDt !== null) {\n data.receivedDt = new Date(data.receivedDt).toLocaleString('en-US', optionswithtime);\n }\n if (data.sendDt !== null) {\n data.sendDt = new Date(data.sendDt).toLocaleString('en-US', optionswithtime);\n }\n });\n this.filters = {\n filters: [\n { field: 'id', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'subject', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'topic', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'receivedDt', value: e.target.value, operator: 'contains' },\n { field: 'sendDt', value: e.target.value, operator: 'contains' }\n ], logic: 'or'\n };\n this.gridView = filterBy(this.messagesData, this.filters);\n this.skip = 0;\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n /**\n * @description\n * Function to navigate to respective component depending on role\n */\n changeMenu(value: any) {\n this.hiddenColumns = [];\n this.sentMessage = value === 'Sent Messages';\n this.sentMessage ? this.hiddenColumns.push('receivedDt') : this.hiddenColumns.push('sendDt');\n this.filterGridView(value);\n }\n\n clickedPage(event: any) {\n this.deleteDisabled = true;\n if (event.selectedRows.length > 0) {\n this.selectedData.push(event.selectedRows[0].dataItem.id);\n } else if (event.deselectedRows.length > 0) {\n const index = this.selectedData.indexOf(event.deselectedRows[0].dataItem.id);\n this.selectedData.splice(index, 1);\n }\n if (this.selectedData.length > 0) { this.deleteDisabled = false; }\n }\n\n /**\n * @description\n * Function to set padding for messages number\n */\n setPaddingClass() {\n let paddingClass = '';\n if (this.messageCount < 11) {\n paddingClass = 'num-padding-single';\n } else {\n paddingClass = 'num-padding-double';\n }\n return paddingClass;\n }\n}\n","

Secure Messages

\r\n
\r\n
\r\n
\r\n
1\">\r\n \r\n Unread Messages \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n

Are you sure you want to delete these records?

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Message Subject:\r\n \r\n {{dataItem.subject}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Message Topic:\r\n {{dataItem.topic}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Received Date Time:\r\n {{dataItem.receivedDt | date:'MM/dd/yyyy hh:mm a'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Sent Date Time:\r\n {{dataItem.sendDt | date:'MM/dd/yyyy hh:mm a'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{dataItem.subject}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
{{dataItem.topic}}
\r\n
\r\n
\r\n \r\n \r\n
{{dataItem.receivedDt | date:'MM/dd/yyyy hh:mm a'}}
\r\n
\r\n
\r\n \r\n \r\n
{{dataItem.sendDt | date:'MM/dd/yyyy hh:mm a'}}
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { MessagesService } from 'src/app/shared/services/messages/messages.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { Utility } from 'src/app/shared/utility';\nimport { UserService } from 'src/app/shared/services/common/user.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\n\n@Component({\n selector: 'app-view-message',\n templateUrl: './view-message.component.html',\n styleUrls: ['./view-message.component.css']\n})\nexport class ViewMessageComponent implements OnInit {\n\n maxLength: any;\n setSubject: any;\n setTopic: any;\n origMsg: any;\n messageVal: any;\n reply: any;\n showReply = false;\n deletedMsg: any;\n @Input() msgData: any;\n @Output() closeModel: EventEmitter = new EventEmitter();\n @Output() updateGrid: EventEmitter = new EventEmitter();\n @Input() inputData: any;\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private msgService: MessagesService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.setSubject = this.msgData.subject;\n this.setTopic = this.msgData.topic;\n this.origMsg = this.msgData.message;\n this.deletedMsg = this.msgData.deleted;\n this.maxLength = this.readConfigService.getSecuMessagesText().BodyMaxLength;\n if (this.msgData.receivedDt !== null && this.msgData.read !== true) {\n this.readMessage();\n }\n if (this.msgData.receivedDt !== null && this.msgData.parentId === 0) {\n this.showReply = true;\n }\n }\n\n sendMessage() {\n const data: any = { ...this.inputData };\n data.message = {\n topicId: this.msgData.topicId,\n subject: this.msgData.subject,\n message: this.usersService.encrypt(this.messageVal.trim(), 'post'),\n messageType: 'Secure Message',\n parentId: ''\n };\n this.msgService.sendMessage(data).subscribe((response: any) => {\n if (response && response.statusCode === 201) {\n this.closeModel.emit(response);\n this.notificationService.setUpNotification({ message: response.message, success: true });\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.notificationService.setErrorNotification();\n });\n }\n\n readMessage() {\n this.msgService.readMessage(this.msgData.id).subscribe((data: any) => {\n if (data && data.statusCode === 200) {\n this.updateGrid.emit();\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.notificationService.setErrorNotification();\n });\n }\n\n replyMessage() {\n this.reply = true;\n }\n\n isDisabled(): boolean {\n return !!this.messageVal;\n }\n}\n","
\n
\n
\n Subject:\n
\n
\n
\n
\n {{setSubject}}\n
\n
\n
\n
\n
\n Topic:\n
\n
\n {{setTopic}}\n
\n
\n
\n
\n
\n Message:\n
\n
\n
\n
\n \n
\n {{messageVal.length}}/{{maxLength}}\n
\n
\n
\n \n {{origMsg}}\n \n
\n
\n
\n
\n
\n \n \n
\n
\n","export class Adjustment {\r\n id: number;\r\n actionDate: string;\r\n actionBy: string;\r\n amount: number;\r\n contributionWithheld: boolean;\r\n createdBy: string;\r\n creatorId: number;\r\n fileName: string;\r\n isApproved: boolean;\r\n isArchived: boolean;\r\n isDeletable: boolean;\r\n submittedDate: string;\r\n}\r\n\r\nexport class AdjustmentFileData {\r\n userInfo: any;\r\n adjustmentEntryId: number;\r\n}\r\n\r\nexport class EditAdjRecords {\r\n fiscalYear: number;\r\n fullSSN: string;\r\n employementInfo: [];\r\n fiscalYearScheduleList: [];\r\n}\r\n\r\nexport class AdjustmentRecord {\r\n id: number;\r\n adjustmentImportId: number;\r\n ssn: string;\r\n fullSSN: string;\r\n fiscalYear: number;\r\n lastFourSSN: string;\r\n firstName: string;\r\n middleInitials: string;\r\n lastName: string;\r\n locationCode: string;\r\n systemCode: string;\r\n payrollSchedule: string;\r\n payPeriodBeginningDate: Date;\r\n payPeriodEndDate: Date;\r\n actualAnnualCompensation: number;\r\n actualEarnableCompensation: number;\r\n payPeriodBaseSalary: number;\r\n employeeContribution: number;\r\n hoursWorked: number;\r\n standardHours: number;\r\n percentFullTime: number;\r\n employementInfo: [];\r\n fiscalYearScheduleList: [];\r\n isInvalid: boolean;\r\n}\r\n\r\nexport class SaveAdjustmentPayload {\r\n id: number;\r\n payrollAdjustmentsId: number;\r\n ssn: string;\r\n firstName: string;\r\n lastName: string;\r\n middleInitials: string;\r\n systemCode: string;\r\n locationCode: string;\r\n payScheduleId: number;\r\n reasonCodes: string;\r\n ppedstart: Date;\r\n ppedend: Date;\r\n actualAnnualCompensation: number;\r\n employeeContribution: number;\r\n hoursWorked: number;\r\n standardHours: number;\r\n percentFullTime: number;\r\n payPeriodBaseSalary: number;\r\n actualEarnableCompensation: number;\r\n payPeriodStartDate: Date;\r\n payPeriodEndDate: Date;\r\n payPeriodBeginningDate: Date;\r\n review: boolean;\r\n}\r\n","export class BankDetails {\r\n public id: number;\r\n public bankName: string;\r\n public bankId: number;\r\n public routingNumber: number;\r\n public bankAcctNumber: string;\r\n}\r\n","export class NewFormDetails {\r\n public SSN: any;\r\n public firstName: any;\r\n public middleInitial: any;\r\n public lastName: any;\r\n public DOB: Date;\r\n public gender: any;\r\n}\r\n","export class NewUserFormData {\r\n public id: any;\r\n public firstName: any;\r\n public lastName: any;\r\n public middleName: any;\r\n public fullName: any;\r\n public emailAddress: any;\r\n public phoneNumber: any;\r\n public phoneNumberExtension: any;\r\n public phoneNumber2Extension: any;\r\n public passwordResetTokenCode: any;\r\n public passwordResetTokenExpires: any;\r\n public resetPasswordDate: any;\r\n public phoneNumber2: any;\r\n public title: any;\r\n public isActive: boolean;\r\n public isExternal: boolean;\r\n public isLocked: boolean;\r\n public resetPassword: boolean;\r\n public roles: any[] = [];\r\n public contactTypes: any[] = [];\r\n public organizations: any;\r\n public activeOrgUser: boolean;\r\n public isExistingUser: boolean;\r\n public isEPUser: boolean;\r\n public accountType: string;\r\n}\r\n\r\nexport class UserEmails {\r\n public NewEmailAddress: any;\r\n public ConfirmEmailAddress: any;\r\n public ExistingUser: boolean;\r\n public CreateUser: string;\r\n}\r\n","export class Import {\r\n id: number;\r\n organization: string;\r\n locationCodes: any;\r\n orgId: number;\r\n pped: string;\r\n payDate: string;\r\n records: number;\r\n user: string;\r\n submitted: Date;\r\n systems: string;\r\n contribution: any;\r\n remittanceReconciliationId: number;\r\n revenueControlTransmittalId: number;\r\n paymentStatus: number;\r\n}\r\nexport class ImportResult {\r\n anyUnsubmittedImport: boolean;\r\n result: Import[];\r\n success: boolean;\r\n}\r\n\r\nexport class ImportFileData {\r\n userInfo: any;\r\n scheduleEntryId: number;\r\n}\r\n","import { PayScheduleLocations } from './pay-schedule.model';\r\n\r\nexport class UserOrgs {\r\n id: number;\r\n userId: number;\r\n orgId: number;\r\n roleId = '';\r\n isPrimary = true;\r\n orgName = '';\r\n roleName = '';\r\n}\r\n\r\nexport class OrgLocation {\r\n id: number;\r\n code: string;\r\n organizationId: number;\r\n name: string;\r\n description: string;\r\n legacyRowId: number;\r\n legacyOrganizationId: number;\r\n organization: Organization;\r\n payScheduleLocation: PayScheduleLocations[];\r\n}\r\n\r\nexport class Organization {\r\n id: number;\r\n name: string;\r\n addressLine1: string;\r\n addressLine2: string;\r\n city: string;\r\n state: string;\r\n zip: string;\r\n zip4: string;\r\n isActive: boolean;\r\n legacyRowId: number;\r\n country: string;\r\n emailDomain: string;\r\n location: OrgLocation;\r\n}\r\n","import { Organization, OrgLocation } from './organization';\r\n\r\n// Edit and partial schedule\r\nexport class PaySchedule {\r\n actionType: string;\r\n locations: CheckModel[];\r\n systems: CheckModel[];\r\n payFrequencyDesc: string;\r\n initialPayPeriodEndDate: Date;\r\n initialPayDate: Date;\r\n employerScheduleID: string;\r\n payScheduleId: number;\r\n payFrequencyId: number;\r\n organizationId: number;\r\n payCount: number;\r\n contributoryCount: number;\r\n name: string;\r\n description: string;\r\n comments: string;\r\n isActive: boolean;\r\n isPartial: boolean;\r\n fiscalYear: string;\r\n createdFrom: number;\r\n createdBy: string;\r\n createdDatetime: Date;\r\n modifiedBy: string;\r\n modifiedDatetime: Date;\r\n organization: Organization;\r\n lastPayDate: Date;\r\n isCurrentFiscalYear: boolean;\r\n payFrequency: PayFrequency;\r\n payScheduleEntrys: PayScheduleEntry[];\r\n selectedPayFrequencyText: string;\r\n schedPartialFlag: string;\r\n}\r\n\r\nexport class PayFrequency {\r\n id: number;\r\n type: string;\r\n description: string;\r\n comments: string;\r\n createdBy: string;\r\n createdDatetime: Date;\r\n modifiedBy: string;\r\n modifiedDatetime: Date;\r\n paySchedules: PaySchedule;\r\n}\r\n\r\nexport class PayScheduleLocations {\r\n id: number;\r\n locationCodeId: number;\r\n payScheduleId: number;\r\n comments: string;\r\n isActive: boolean;\r\n createdBy: string;\r\n createdDatetime: Date;\r\n modifiedBy: string;\r\n modifiedDatetime: Date;\r\n\r\n location: OrgLocation;\r\n paySchedule: PaySchedule;\r\n}\r\n\r\n// multiple select check boxes\r\nexport class CheckModel {\r\n value: string;\r\n text: string;\r\n checked: boolean;\r\n}\r\n\r\n// Create schedule\r\nexport class CreateSchedule {\r\n isCurrentFiscalYear: boolean;\r\n lastPayDate: Date;\r\n locations: Array;\r\n systems: Array;\r\n payScheduleEntrys: Array;\r\n initialPayPeriodEndDate: Date;\r\n initialPayDate: Date;\r\n selectedPayFrequencyText: string;\r\n SelectedPayFrequencyId: number;\r\n payCount: number;\r\n initialContributoryCount: number;\r\n contributoryCount: number;\r\n actionType: string;\r\n fiscalYear: number;\r\n name: string;\r\n createdFrom: number;\r\n organizationId: number;\r\n organizationName: string;\r\n isSchedulePartial: boolean;\r\n}\r\n\r\nexport class PayScheduleEntry {\r\n id: number;\r\n payDate: Date;\r\n payPeriodEndDate: Date;\r\n isHolidayOrWeekend: boolean;\r\n holidayOrWeekendName: string;\r\n isContributory: boolean;\r\n isSubmitted: boolean;\r\n isActive: boolean;\r\n isLocked: boolean;\r\n remarks: string;\r\n pdValid: boolean;\r\n}\r\n\r\n// Parent component to child component communication\r\nexport class ScheduleInput {\r\n locs: Array;\r\n systems: Array;\r\n payFrequencies: Array;\r\n orgName: string;\r\n orgId: number;\r\n cfy: any;\r\n nfy: any;\r\n}\r\n\r\n// History display in Parent component\r\nexport class PayScheduleHistory {\r\n id: number;\r\n payScheduleName: string;\r\n payCount: number;\r\n contributoryCount: number;\r\n isPartial: boolean;\r\n fiscalYear: number;\r\n createdFrom: number;\r\n createdBy: string;\r\n modifiedBy: string;\r\n partialFlag: number;\r\n createdDetails: string;\r\n modifiedDetails: string;\r\n createdDatetime: string;\r\n modifiedDatetime: string;\r\n finalPPED: string;\r\n comments: string;\r\n frequency: string;\r\n systems: string;\r\n locations: string;\r\n organizationId: number;\r\n employerScheduleID: string;\r\n oldEmpSchId: string;\r\n actionType: string;\r\n}\r\n\r\n","export interface IPayrollRecord {\r\n id: number;\r\n payrollImportId: number;\r\n ssn: string;\r\n lastFourSSN: string;\r\n name: string;\r\n firstName: string;\r\n lastName: string;\r\n middleInitials: string;\r\n addressLine1: string;\r\n addressLine2: string;\r\n city: string;\r\n state: string;\r\n zip: string;\r\n zip4: string;\r\n systemCode: string;\r\n payPeriodEndDate: Date;\r\n locationCode: string;\r\n planCode: string;\r\n departmentCode: string;\r\n actualAnnualCompensation: number;\r\n employeeContribution: number;\r\n actualEarnableCompensation: number;\r\n hoursWorked: number;\r\n standardHours: number;\r\n percentFullTime: number;\r\n payPeriodBaseSalary: number;\r\n issue: string;\r\n}\r\n\r\nexport class PayrollRecord {\r\n Id: number;\r\n PayrollImportId: number;\r\n SSN: string;\r\n LastFourSSN: string;\r\n Name: string;\r\n FirstName: string;\r\n LastName: string;\r\n MiddleInitials: string;\r\n AddressLine1: string;\r\n AddressLine2: string;\r\n City: string;\r\n State: string;\r\n Zip: string;\r\n Zip4: string;\r\n SystemCode: string;\r\n PayPeriodEndDate: Date;\r\n LocationCode: string;\r\n PlanCode: string;\r\n DepartmentCode: string;\r\n ActualAnnualCompensation: number;\r\n EmployeeContribution: number;\r\n ActualEarnableCompensation: number;\r\n HoursWorked: number;\r\n StandardHours: number;\r\n PercentFullTime: number;\r\n PayPeriodBaseSalary: number;\r\n Issue: string;\r\n}\r\nexport class StagingPayrollRecord {\r\n Id: number;\r\n PayrollImportId: number;\r\n SSN: string;\r\n FirstName: string;\r\n LastName: string;\r\n MiddleInitials: string;\r\n AddressLine1: string;\r\n AddressLine2: string;\r\n City: string;\r\n State: string;\r\n Zip: string;\r\n Zip4: string;\r\n SystemCode: string;\r\n PayPeriodEndDate: string;\r\n LocationCode: string;\r\n PlanCode: string;\r\n DepartmentCode: string;\r\n ActualAnnualCompensation: number;\r\n EmployeeContribution: number;\r\n ActualEarnableCompensation: number;\r\n HoursWorked: number;\r\n StandardHours: number;\r\n PercentFullTime: number;\r\n PayPeriodBaseSalary: number;\r\n IsAddressChange = false;\r\n IsLocationChange = false;\r\n IsNameChange = false;\r\n IsNewMemberEnrollment = false;\r\n IsUnexpectedAmount = false;\r\n IsInvalid = false;\r\n Validated = true;\r\n PayrollImport: any;\r\n PayrollRecordErrors: any;\r\n}\r\n","\r\nexport class UploadFileData {\r\n location: string;\r\n notes: string;\r\n pped: string;\r\n recordCount: number;\r\n totalAmount: number;\r\n fileType: string;\r\n emailList: string;\r\n userId: string;\r\n userInfo: any;\r\n}\r\n","import { User } from './user';\r\n\r\n\r\nexport class UserEdit extends User {\r\n constructor(newPassword: string, confirmPassword: string) {\r\n super();\r\n\r\n this.newPassword = newPassword;\r\n this.confirmPassword = confirmPassword;\r\n }\r\n\r\n public newPassword: string;\r\n public confirmPassword: string;\r\n public tokenCode: string;\r\n public currentPassword: string;\r\n\r\n}","import { UserOrgs } from './organization';\r\nimport { Role } from './role';\r\n\r\n\r\nexport interface IUser {\r\n Id: number;\r\n FirstName: string;\r\n LastName: string;\r\n Gender: string;\r\n}\r\n\r\nexport class User {\r\n public Id: number;\r\n public firstName = '';\r\n public lastName = '';\r\n public middleName = '';\r\n public jobTitle = '';\r\n public phoneNumber = '';\r\n public phoneNumberExtension = '';\r\n public Roles: Role[];\r\n public Organizations: UserOrgs[];\r\n public orgsList = '';\r\n public rolesList = '';\r\n public fax = '';\r\n public faxExtension = '';\r\n public emailAddress = '';\r\n public phoneNumber2 = '';\r\n public phoneNumber2Extension = '';\r\n public IsActive = false;\r\n public IsEnabled = false;\r\n public note = '';\r\n public userName = '';\r\n public currentOrg: number;\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CommonService } from 'src/app/shared/services/common/common.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\n\n@Component({\n selector: 'app-news-details',\n templateUrl: './news-details.component.html',\n styleUrls: ['./news-details.component.css']\n})\nexport class NewsDetailsComponent implements OnInit {\n newsContent: any;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private router: Router,\n private usersService: UsersService,\n private commonService: CommonService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n const newsId = +this.activatedRoute.snapshot.params.id;\n this.getNewsById(newsId);\n }\n\n getNewsById(id: number) {\n this.notificationService.setUpLoading(true);\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n id\n };\n this.commonService.getNewsById(inputData).subscribe((data: any) => {\n if (data.statusCode === 200 && data.result) {\n this.newsContent = data.result;\n this.newsContent.newsDetails = this.newsContent.newsDetails ? this.newsContent.newsDetails.replace(//g, '')\n : this.newsContent.newsDetails;\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n goToHome() {\n this.router.navigate(['/home']);\n }\n\n scrollToTop() {\n window.scrollTo(0, 0);\n }\n}\n","
\n
\n
\n

{{newsContent.title}}

\n

\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CommonService } from '../shared/services/common/common.service';\nimport { DisplayNotificationService } from '../shared/services/common/notification.service';\nimport { ReadConfigService } from '../shared/services/common/read-config.service';\nimport { UsersService } from '../shared/services/common/users.service';\n\n@Component({\n selector: 'app-news',\n templateUrl: './news.component.html',\n styleUrls: ['./news.component.css']\n})\nexport class NewsComponent implements OnInit {\n newsContent: any;\n noNewsText: any;\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private commonService: CommonService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n const config = this.readConfigService.getSPNews();\n this.noNewsText = config.NoNewsText;\n this.getNews();\n }\n\n getNews() {\n this.notificationService.setUpLoading(true);\n const inputData = {\n userInfo: this.usersService.UserInfo()\n };\n this.commonService.getNews(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n this.newsContent = data.result;\n if (this.newsContent.length > 0) {\n this.newsContent.forEach((element: any) => {\n element.newsDetails = element.newsDetails ?\n element.newsDetails.replace(/
/g, '')\n : element.newsDetails;\n });\n }\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n showDialog(id: number) {\n this.router.navigate(['/news-details', id]);\n }\n}\n","

News

\n
\n
\n {{noNewsText}}\n
\n
0\">\n
\n
\n
\n
{{news.title}}
\n

\n
\n
\n Read more \n
\n
\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport { ReadConfigService } from '../shared/services/common/read-config.service';\n\n@Component({\n selector: 'app-outage-notice',\n templateUrl: './outage-notice.component.html',\n styleUrls: ['./outage-notice.component.css']\n})\n\nexport class OutageNoticeComponent implements OnInit {\n outageMessage: any;\n outageTitle: any;\n currentStage: any;\n\n constructor(private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n this.currentStage = this.readConfigService.getCurrentStage();\n const outageSettings = this.readConfigService.getOutageScheduledDetails();\n if (outageSettings) {\n this.outageMessage = outageSettings.outageMessage;\n this.outageTitle = outageSettings.outageType;\n } else {\n const outageConfig = this.readConfigService.getOutageText();\n this.outageMessage = outageConfig.Message;\n this.outageTitle = outageConfig.Title;\n }\n sessionStorage.removeItem('outage');\n }\n}\n","
\n \"Maryland\n
\n
Employer
\n
Portal (Sandbox)
\n
\n
\n
\n
\n
\n
\n
\n

{{outageTitle}}

\n
\n \"Maryland\n
\n \n {{outageMessage}}\n \n
\n
\n
\n
\n
\n
\n","import { Utility } from 'src/app/shared/utility';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport {\n AfterViewChecked, ChangeDetectorRef, DoCheck, EventEmitter,\n Input, OnChanges, Output, SimpleChanges, ViewChild\n} from '@angular/core';\nimport { Component, OnInit } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormBuilder, UntypedFormControl, Validators, UntypedFormArray, ValidationErrors } from '@angular/forms';\nimport {\n PayScheduleEntry, CheckModel, PayFrequency, PaySchedule,\n ScheduleInput, PayScheduleHistory, CreateSchedule\n} from 'src/app/models/pay-schedule.model';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { ScheduleService } from 'src/app/shared/services/pay-schedules/schedule.service';\n\n// tslint:disable-next-line: no-conflicting-lifecycle\n@Component({\n selector: 'app-create-schedule',\n templateUrl: './create-schedule.component.html',\n styleUrls: ['./create-schedule.component.css']\n})\n\nexport class CreateScheduleComponent implements OnInit, OnChanges, AfterViewChecked, DoCheck {\n @ViewChild('PPEDate') ppeDatePicker: any;\n yr = 0;\n payScheduleEntrys: Array;\n locs: Array;\n systems: Array;\n payFrequencyList: PayFrequency[];\n errorlist: string[] = [];\n schedulemsg = '';\n errorMsg = '';\n min: Date;\n max: Date;\n maxPaydate: Date;\n cfy: any;\n nfy: any;\n generated = false;\n readonly defaulttotalPays: number = 52;\n totalPaysList: Array = [52, 53];\n selectedFrequency: any;\n totalPays: any;\n ipped: Date = new Date();\n pped: Date = new Date();\n ipd: Date = new Date();\n checkedBx = 0;\n requiresRegeneration = false;\n holidayList: any;\n schedule: PaySchedule;\n loadPage = false;\n allChecked = false;\n // Edit Schedule Functionality\n createdDetails: string;\n modifiedDetails: string;\n isEdit = false;\n isCreate = false;\n isContinue = false;\n orgName = '';\n payFrequency: PayFrequency;\n // kendo-dialog variable\n openChangesDialog = false;\n openSchedule = false;\n opened = false;\n @Input() scheduleInput: ScheduleInput;\n @Output() closeCreateSchedule = new EventEmitter();\n @Input() type: string;\n @Input() scheduleId = 0;\n @Input() scheduleHistory: PayScheduleHistory;\n @Output() changed = new EventEmitter();\n isSubmitted = false;\n cancelType = '';\n generateModel: any;\n beforeFormChange: any;\n toRegenerate: any;\n mainDiv: any;\n form: UntypedFormGroup;\n config: any;\n ppedErrorMsg: any;\n payDateErrorMsg: string[];\n ppedGreaterMsg: string;\n maxLengthRemarks = 250;\n defaultPF: any = { id: 0, type: '0', description: 'Select frequency' };\n defaultTP = 'Select total pays';\n generateBtnErrorMsg: any;\n submitBtnErrorMessage: any;\n isEmpScheduleId: boolean;\n hideEmpScheduleSection = false;\n inputValidationPattern = /^[A-Za-z0-9]+$/;\n\n constructor(\n private fb: UntypedFormBuilder,\n private cdRef: ChangeDetectorRef,\n private scheduleService: ScheduleService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngAfterViewChecked() {\n this.mainDiv = document.getElementById('scheduleDetails');\n this.disableOrgChange();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.isSubmitted = false;\n if (this.form && this.form.touched) {\n this.cancel('Change');\n } else {\n setTimeout(() => {\n this.newForm();\n this.loadSchedule();\n }, 200);\n }\n document.getElementById('scheduleDetails').scrollIntoView();\n }\n\n ngOnInit() {\n this.config = this.readConfigService.getPayScheduleText();\n this.ppedErrorMsg = this.config.PPEDErrorMsg;\n this.payDateErrorMsg = this.config.PayDateErrorMsg;\n this.ppedGreaterMsg = this.config.PPEDGreaterMsg;\n document.getElementById('scheduleDetails').scrollIntoView();\n }\n\n ngDoCheck() {\n this.cdRef.detectChanges();\n }\n\n newForm(): void {\n this.form = this.fb.group({\n type: new UntypedFormControl(this.type),\n fiscalYear: new UntypedFormControl('', Validators.required),\n locations: this.fb.array([{}]),\n systems: this.fb.array([{}]),\n payFrequency: new UntypedFormControl('', Validators.required),\n totalPays: new UntypedFormControl('', Validators.required),\n contributoryCount: new UntypedFormControl(''),\n initialPayPeriodEndDate: new UntypedFormControl('', Validators.required),\n initialPayDate: new UntypedFormControl('', Validators.required),\n name: new UntypedFormControl('', [Validators.required, Validators.minLength(3), Validators.maxLength(50)]),\n employerScheduleId: new UntypedFormControl('', [Validators.maxLength(10), Utility.invalidAlphaNumeric]),\n comments: new UntypedFormControl('', [Validators.maxLength(250)]),\n payScheduleEntrys: this.fb.array([{}])\n }, { validator: Validators.compose([FormValidatorUtils.formValidators]) });\n }\n\n isValidDates(): boolean {\n const maxDate = new Date(this.max);\n let diffDates = 0;\n let idValid = true;\n const dates = this.form.controls.payScheduleEntrys['controls'];\n for (const date of dates) {\n const paydate = new Date(date.value.payDate);\n diffDates = paydate.getTime() - maxDate.getTime();\n if (diffDates > 0) {\n idValid = false;\n }\n }\n return idValid;\n }\n\n disableOrgChange(): void {\n // IN IE, WHEN KENDO DIALOG IS SHOWN AND OVERFLOW IS AUTO KENDO DISPLAY IS NOT AS EXPECTED\n if (this.mainDiv) {\n const isDialogOpened = this.openChangesDialog || this.openSchedule || this.opened;\n if (isDialogOpened) {\n if (this.mainDiv.style.overflow !== 'inherit') {\n this.mainDiv.style.overflow = 'inherit';\n }\n } else {\n if (this.mainDiv.style.overflow !== 'auto') {\n this.mainDiv.style.overflow = 'auto';\n }\n }\n }\n if (this.form && (this.form.touched || this.form.dirty) && !this.isSubmitted) {\n this.isSubmitted = true;\n this.changed.emit(true);\n }\n }\n\n // Create/Edit/continue Functionality\n loadSchedule(): void {\n this.startLoading();\n this.isSubmitted = false;\n this.resetValues();\n this.selectedFrequency = { id: 1, type: '7', description: 'Weekly' };\n\n this.payFrequencyList = this.scheduleInput.payFrequencies;\n this.payFrequency = this.payFrequencyList[0];\n\n if (this.type !== 'Edit') {\n this.cfy = this.scheduleInput.cfy;\n this.nfy = this.scheduleInput.nfy;\n this.locs = this.scheduleInput.locs;\n this.systems = this.scheduleInput.systems;\n }\n this.orgName = this.scheduleInput.orgName;\n\n if (this.type === 'Create') {\n this.createSchedule();\n } else if (this.type === 'Edit') {\n this.editSchedule();\n } else if (this.type === 'ContinuePartial') {\n this.continuePartial();\n } else {\n this.continueSchedule();\n }\n }\n\n createSchedule(): void {\n this.payFrequency = this.defaultPF;\n this.totalPays = this.defaultTP;\n this.isCreate = true;\n this.generated = false;\n this.isEmpScheduleId = false;\n this.form.patchValue({ payFrequency: this.defaultPF });\n this.populateArrays('systems', this.systems);\n this.populateArrays('locations', this.locs);\n this.loadPage = true;\n this.stopLoading();\n }\n\n editSchedule(): void {\n this.isEdit = true;\n this.getSchedule(this.scheduleId, this.type);\n }\n\n continuePartial(): void {\n this.isContinue = true;\n this.getPartial(this.scheduleHistory);\n }\n\n continueSchedule(): void {\n this.isContinue = true;\n this.getSchedule(this.scheduleId, this.type);\n }\n\n formReset(): void {\n this.loadPage = false;\n this.newForm();\n }\n\n // Populate Data to form\n populateArrays(type: string, arry: any) {\n const frmArray = this.form.get(type) as UntypedFormArray;\n while (frmArray.length > 0) { frmArray.removeAt(0); }\n let item: CheckModel;\n if (arry.length > 0) {\n for (item of arry) {\n const grp = this.fb.group({\n checked: [item.checked],\n text: [item.text],\n value: [item.value]\n });\n frmArray.push(grp);\n }\n // tslint:disable-next-line: no-use-before-declare\n frmArray.setValidators(FormValidatorUtils.atleastOneChecked);\n }\n }\n\n populateSchedules(arry: any) {\n const frmArray = this.clearPayscheduleEntry();\n let item: PayScheduleEntry;\n if (arry.length > 0) {\n for (item of arry) {\n const grp = this.fb.group({\n holidayOrWeekendName: [item.holidayOrWeekendName],\n id: [item.id],\n isActive: [item.isActive],\n isContributory: [item.isContributory],\n isHolidayOrWeekend: [item.isHolidayOrWeekend],\n isSubmitted: [item.isSubmitted],\n payDate: [item.payDate, Validators.required],\n payPeriodEndDate: [item.payPeriodEndDate, Validators.required],\n isLocked: [item.isLocked],\n remarks: [item.remarks],\n pdValid: [item.pdValid, Validators.required]\n });\n frmArray.push(grp);\n }\n }\n }\n\n selectionChange(value: any): void {\n switch (value.description) {\n case 'Weekly':\n this.totalPaysList = [52, 53];\n break;\n case 'Biweekly':\n this.totalPaysList = [18, 19, 20, 21, 22, 23, 24, 26, 27];\n break;\n case 'Semimonthly (Pay 15th & last day of month)':\n this.totalPaysList = [18, 19, 20, 21, 22, 23, 24];\n break;\n case 'Monthly':\n this.totalPaysList = [10, 12];\n break;\n case 'Quarterly':\n this.totalPaysList = [4];\n break;\n case 'Semiannually':\n this.totalPaysList = [2];\n break;\n }\n this.totalPays = this.defaultTP;\n }\n\n // PopUps/modals\n cancel(args: string): void {\n this.cancelType = args;\n if (this.form.touched) {\n this.opened = true;\n this.stopLoading();\n } else {\n this.loadPage = false;\n this.closeConfirm('yes');\n }\n }\n\n closeConfirm(status: string): void {\n if (status === 'yes') {\n if (this.form.touched) {\n this.startLoading();\n this.resetValues();\n this.formReset();\n if (this.cancelType !== 'cancel') {\n this.loadSchedule();\n } else {\n this.closeCreateSchedule.emit(false);\n }\n this.isSubmitted = false;\n this.changed.emit(false);\n this.stopLoading();\n } else {\n this.closeCreateSchedule.emit(false);\n this.changed.emit(false);\n }\n }\n this.opened = false;\n }\n\n displayResult(response: any) {\n if (response.success) {\n this.changed.emit(false);\n }\n this.notificationService.setUpNotification(response);\n }\n\n // Data modifying\n clearPayscheduleEntry() {\n const frmArray = this.form.get('payScheduleEntrys') as UntypedFormArray;\n while (frmArray.length > 0) { frmArray.removeAt(0); }\n return frmArray;\n }\n\n nonContrib(args) {\n if (this.isEdit) {\n const value = this.form.value;\n this.form.controls.NonContr.setValue(value.totalPays - value.contributoryCount);\n }\n }\n\n unCheckAll(args: any): void {\n const checked = args;\n const formcontrol = (this.form.controls.payScheduleEntrys as UntypedFormArray).controls;\n for (const form of formcontrol) {\n (form as UntypedFormGroup).controls.isContributory.setValue(checked);\n }\n this.countCheckBoxes();\n }\n\n addDays(date: Date, days: number): Date {\n if (date && days) {\n const tempDate = new Date(date.getFullYear(), date.getMonth(), date.getDay());\n tempDate.setDate(days);\n return tempDate;\n }\n }\n\n // Data validation while Create/Edit\n fiscalYearChange() {\n this.generated = false;\n const fiscalYear = this.yr;\n // hours 4 for avoiding kendo compare issue\n this.min = new Date(fiscalYear - 1, 6, 1);\n this.max = new Date(fiscalYear, 5, 30);\n this.maxPaydate = new Date(fiscalYear, 6, 31);\n this.getHolidays(fiscalYear);\n }\n\n getErrorMessage(dt: Date, type: string): string {\n let errMsg = '';\n if (this.isWeekend(dt) && this.ppedErrorMsg && this.payDateErrorMsg) {\n errMsg = type === 'PPED' ? this.ppedErrorMsg[0] : this.payDateErrorMsg[0];\n } else if (this.isHoliday(dt)) {\n errMsg = type === 'PPED' ? this.ppedErrorMsg[1] : this.payDateErrorMsg[1];\n }\n return errMsg;\n }\n\n validatePPED(model: any, index: number) {\n if (this.isInValidDate(model.payPeriodEndDate)) {\n model.isHolidayOrWeekend = true;\n model.holidayOrWeekendName = this.getErrorMessage(model.payPeriodEndDate, 'PPED');\n\n }\n this.form.controls.payScheduleEntrys['controls'][index].controls.isHolidayOrWeekend.setValue(model.isHolidayOrWeekend);\n this.form.controls.payScheduleEntrys['controls'][index].controls.holidayOrWeekendName.setValue(model.holidayOrWeekendName);\n }\n\n validatePayDate(model: any, index: number) {\n if (this.isInValidDate(model.payDate)) {\n model.isHolidayOrWeekend = true;\n model.holidayOrWeekendName = this.getErrorMessage(model.payDate, 'PayDate');\n }\n this.form.controls.payScheduleEntrys['controls'][index].controls.isHolidayOrWeekend.setValue(model.isHolidayOrWeekend);\n this.form.controls.payScheduleEntrys['controls'][index].controls.holidayOrWeekendName.setValue(model.holidayOrWeekendName);\n }\n\n isHoliday(args: Date): boolean {\n if (args) {\n const holidays = this.holidayList;\n for (const holiday of holidays) {\n if (args.toDateString() === new Date(holiday).toDateString()) {\n return true;\n }\n }\n }\n return false;\n }\n\n isWeekend(args: Date): boolean {\n return args && (args.getDay() % 6) === 0;\n }\n\n isInValidDate(args: any) {\n if (args) {\n if (this.isHoliday(args)) { return true; }\n if (this.isWeekend(args)) { return true; }\n }\n return false;\n }\n\n countCheckBoxes(): void {\n const entrys = this.form.controls.payScheduleEntrys.value;\n this.checkedBx = entrys.filter((x: any) => x.isContributory).length;\n this.allChecked = (this.checkedBx === entrys.length);\n }\n\n isEnabled(args: any) {\n if (args && this.isInValidDate(args)) {\n return 'k-state-disabled disableDate';\n }\n }\n\n onNameChange(name: string) {\n name = name.trim();\n this.form.controls['name'].setValue(name);\n let exists = false;\n if (name.length > 0) {\n const obj = {\n userInfo: this.scheduleService.UserInfo(),\n name,\n fiscalYear: this.yr.toString()\n };\n this.scheduleService.nameExists(obj)\n .subscribe((response) => {\n exists = response;\n if (exists) {\n this.form.controls.name.setErrors({ nameExists: true });\n } else {\n this.form.controls.name.setErrors(null);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setErrorNotification();\n });\n }\n }\n\n onEmpIdChange(empScheduleId: string) {\n empScheduleId = empScheduleId.trim();\n const invalidAlphaNumeric = (empScheduleId && this.inputValidationPattern.test(empScheduleId));\n this.form.controls['employerScheduleId'].setValue(empScheduleId);\n if (invalidAlphaNumeric && !(empScheduleId.length > 10)) {\n let empScheduleIdExists = false;\n if (empScheduleId.length > 0) {\n const obj = {\n userInfo: this.scheduleService.UserInfo(),\n EmployerScheduleID: empScheduleId,\n fiscalYear: this.yr.toString()\n };\n this.scheduleService.empScheduleIdExists(obj)\n .subscribe((response) => {\n empScheduleIdExists = response.isExists;\n if (empScheduleIdExists) {\n this.form.controls.employerScheduleId.setErrors({ empScheduleIdExists: true });\n } else {\n this.form.controls.employerScheduleId.setErrors(null);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setErrorNotification();\n });\n }\n }\n }\n\n isPDOutOfRange(payDate: Date, payPeriodEndDate: Date) {\n const originalPD: any = new Date(payDate);\n const originalPPED: any = new Date(payPeriodEndDate);\n const dayDiff: any = Math.abs((originalPD - originalPPED) / (1000 * 60 * 60 * 24));\n if (dayDiff >= 32) {\n return null;\n } else {\n return true;\n }\n }\n\n onDateChange(model: any, type: string, index: number) {\n model.isHolidayOrWeekend = false;\n model.pdValid = this.isPDOutOfRange(model.payDate, model.payPeriodEndDate);\n if (this.form && this.form.controls && this.form.controls.payScheduleEntrys && this.form.controls.payScheduleEntrys['controls']) {\n this.form.controls.payScheduleEntrys['controls'][index].controls.pdValid.setValue(model.pdValid);\n }\n if (model.payPeriodEndDate > model.payDate) {\n model.isHolidayOrWeekend = true;\n model.holidayOrWeekendName = this.ppedGreaterMsg;\n return;\n }\n if (model.pdValid) {\n if (type === 'PPED') {\n this.validatePPED(model, index);\n if (!model.isHolidayOrWeekend) { this.validatePayDate(model, index); }\n } else {\n this.validatePayDate(model, index);\n if (!model.isHolidayOrWeekend) { this.validatePPED(model, index); }\n }\n }\n }\n\n resetValues(): void {\n this.loadPage = false;\n this.isEdit = false;\n this.isCreate = false;\n this.isContinue = false;\n this.generated = false;\n this.payScheduleEntrys = [];\n this.schedule = new PaySchedule();\n this.yr = 0;\n this.createdDetails = '';\n this.modifiedDetails = '';\n }\n\n // Service Calls\n generate(model: any, valid: any): void {\n this.beforeFormChange = null;\n model.isSchedulePartial = false;\n const payCount = model.totalPays;\n const initialPped = new Date(model.initialPayPeriodEndDate);\n const cFyed = new Date(this.yr, 5, 30, 0, 0, 0);\n if (payCount === 52 || payCount === 26) {\n const expectedPayCounts = this.totalPayDates(initialPped, cFyed, payCount);\n if (payCount !== expectedPayCounts) {\n model.isSchedulePartial = true;\n this.generateModel = model;\n this.schedulemsg = this.config.ScheduleMsg.replace('{0}', expectedPayCounts)\n .replace('{1}', expectedPayCounts).replace('{2}', payCount);\n this.openSchedule = true;\n return;\n }\n }\n this.scheduleGenerate(model);\n }\n\n continueGenerate() {\n this.openSchedule = false;\n this.scheduleGenerate(this.generateModel);\n }\n\n scheduleGenerate(model: any) {\n const paySchedule: any = new CreateSchedule();\n paySchedule.actionType = 'Create';\n paySchedule.payCount = model.totalPays;\n paySchedule.systems = model.systems;\n paySchedule.contributoryCount = model.contributoryCount || 0;\n paySchedule.isCurrentFiscalYear = this.yr === this.cfy;\n paySchedule.selectedPayFrequencyText = model.payFrequency.description;\n paySchedule.SelectedPayFrequencyId = model.payFrequency.id;\n paySchedule.isSchedulePartial = model.isSchedulePartial;\n paySchedule.initialPayPeriodEndDate = model.initialPayPeriodEndDate;\n paySchedule.fiscalYear = this.yr;\n paySchedule.name = model.name;\n const payDays = this.selectedFrequency.type * this.totalPays;\n const lastPayDate = this.addDays(model.initialPayDate, payDays);\n paySchedule.initialPayDate = model.initialPayDate;\n paySchedule.lastPayDate = lastPayDate;\n this.beforeFormChange = paySchedule;\n paySchedule.userInfo = this.scheduleService.UserInfo();\n this.scheduleService.generateScheduleEntrys(paySchedule)\n .subscribe(payScheduleEntr => {\n this.payscheduleGenerated(payScheduleEntr);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setErrorNotification();\n });\n }\n\n payscheduleGenerated(args: any) {\n this.generateBtnErrorMsg = null;\n if (args) {\n if (args.success) {\n const paySchedule = args.message;\n this.payScheduleEntrys = paySchedule.payScheduleEntrys;\n if (this.payScheduleEntrys !== undefined) {\n this.generated = false;\n this.checkedBx = this.payScheduleEntrys.length;\n for (let i = 0; i < this.checkedBx; i++) {\n this.payScheduleEntrys[i].payPeriodEndDate = new Date(this.payScheduleEntrys[i].payPeriodEndDate);\n this.payScheduleEntrys[i].payDate = new Date(this.payScheduleEntrys[i].payDate);\n const originalPD: any = new Date(this.payScheduleEntrys[i].payDate);\n const originalPPED: any = new Date(this.payScheduleEntrys[i].payPeriodEndDate);\n this.payScheduleEntrys[i].pdValid = this.isPDOutOfRange(originalPD, originalPPED);\n }\n this.allChecked = !(this.payScheduleEntrys.filter(x => !x.isContributory).length > 0);\n if (this.payScheduleEntrys.length > 0) {\n this.populateSchedules(this.payScheduleEntrys);\n this.generated = true;\n }\n }\n if (document.getElementById('scrollToEntries') && this.isCreate) {\n document.getElementById('scrollToEntries').scrollIntoView();\n }\n } else {\n if (args.message) {\n this.generateBtnErrorMsg = args.message;\n }\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n }\n\n getSchedule(id: number, action: string): void {\n const obj = { id, actionType: action, userInfo: this.scheduleService.UserInfo() };\n this.scheduleService.getSchedules(obj)\n .subscribe(response => {\n if (response) {\n if (response.success) {\n const paySchedule = response.model;\n this.schedule = paySchedule;\n this.payScheduleEntrys = paySchedule.payScheduleEntrys;\n this.yr = paySchedule.fiscalYear;\n this.fiscalYearChange();\n this.getHolidays(this.yr);\n this.createdDetails = this.scheduleHistory.createdDetails;\n this.modifiedDetails = this.scheduleHistory.modifiedDetails;\n this.systems = paySchedule.systems;\n this.locs = paySchedule.locations;\n this.payFrequency = this.payFrequencyList.filter(x => x.id === paySchedule.selectedPayFrequencyId)[0];\n this.totalPays = paySchedule.payCount;\n if (action === 'ContinueSchedule') {\n this.isEmpScheduleId = false;\n } else {\n this.isEmpScheduleId = paySchedule.employerScheduleID ? true : false;\n }\n this.form.patchValue({\n fiscalYear: this.yr,\n totalPays: paySchedule.payCount,\n contributoryCount: paySchedule.contributoryCount,\n name: paySchedule.name,\n employerScheduleId: (action === 'ContinueSchedule') ? '' : paySchedule.employerScheduleID,\n comments: paySchedule.comments,\n payFrequency: this.payFrequency\n });\n if (this.type === 'Edit') {\n this.form.addControl('selectedScheduleId', new UntypedFormControl(paySchedule.selectedScheduleId));\n this.form.addControl('NonContr', new UntypedFormControl(paySchedule.payCount - paySchedule.contributoryCount));\n this.form.controls.initialPayPeriodEndDate.setValidators(null);\n this.form.controls.initialPayDate.setValidators(null);\n this.form.controls.payFrequency.setValidators(null);\n } else {\n if (paySchedule.initialPayDate && paySchedule.initialPayPeriodEndDate) {\n this.form.patchValue({\n initialPayPeriodEndDate: new Date(paySchedule.initialPayPeriodEndDate),\n initialPayDate: new Date(paySchedule.initialPayDate)\n });\n }\n }\n this.populateArrays('systems', this.systems);\n this.populateArrays('locations', this.locs);\n if (this.payScheduleEntrys !== null) {\n for (const payScheduleEntry of this.payScheduleEntrys) {\n payScheduleEntry.payPeriodEndDate = new Date(payScheduleEntry.payPeriodEndDate);\n payScheduleEntry.payDate = new Date(payScheduleEntry.payDate);\n }\n this.payscheduleGenerated({ success: true, message: paySchedule });\n } else {\n this.generated = false;\n }\n this.loadPage = true;\n } else {\n this.notificationService.setErrorNotification(response.message);\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n this.stopLoading();\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.stopLoading();\n this.notificationService.setErrorNotification();\n });\n }\n\n totalPayDates(date1: any, date2: any, frequency: any) {\n let givenDate = date1;\n const fiscalDt = date2;\n let payCount = 0;\n while (givenDate <= fiscalDt) {\n switch (frequency) {\n case 52:\n givenDate = new Date(givenDate.setDate(givenDate.getDate() + 7));\n break;\n case 26:\n givenDate = new Date(givenDate.setDate(givenDate.getDate() + 14));\n break;\n }\n payCount++;\n }\n return payCount || 0;\n }\n\n saveScheduleData(model: any, valid: boolean, type: string): void {\n this.errorlist = [];\n this.requiresRegeneration = false;\n if (valid) {\n if (this.beforeFormChange.initialPayPeriodEndDate !== model.initialPayPeriodEndDate) {\n this.errorlist.push('Pay period end date');\n }\n if (this.beforeFormChange.initialPayDate !== model.initialPayDate) {\n this.errorlist.push('Initial Pay date');\n }\n if (this.beforeFormChange.SelectedPayFrequencyId !== model.payFrequency.id) {\n this.errorlist.push('Pay frequency');\n this.requiresRegeneration = true;\n }\n if (!this.requiresRegeneration && this.beforeFormChange.fiscalYear !== model.fiscalYear) {\n this.errorlist.push('Fiscal Year');\n this.requiresRegeneration = true;\n }\n if (this.errorlist.length < 1) {\n this.saveNewSchedule(model, valid, type);\n } else {\n this.toRegenerate = model;\n this.openChangesDialog = true;\n }\n }\n }\n\n changesDialog(changeType: string): void {\n this.openChangesDialog = false;\n const model = this.toRegenerate;\n if (changeType === 'Regenerate') {\n this.generated = false;\n this.generate(model, true);\n } else {\n this.saveNewSchedule(model, true, 'Create');\n }\n this.toRegenerate = null;\n }\n\n saveNewSchedule(model: any, valid: boolean, type: string): void {\n const scheduleRecords = model;\n this.startLoading();\n if (scheduleRecords !== null && scheduleRecords !== undefined) {\n const saveSchedule: any = new CreateSchedule();\n saveSchedule.actionType = type;\n saveSchedule.payCount = model.totalPays;\n saveSchedule.systems = model.systems;\n saveSchedule.initialContributoryCount = model.contributoryCount;\n saveSchedule.contributoryCount = model.contributoryCount;\n saveSchedule.isCurrentFiscalYear = this.yr === this.cfy;\n saveSchedule.initialPayPeriodEndDate = model.initialPayPeriodEndDate;\n saveSchedule.fiscalYear = this.yr;\n saveSchedule.name = model.name;\n saveSchedule.employerScheduleId = model.employerScheduleId;\n saveSchedule.comments = model.comments;\n saveSchedule.selectedPayFrequencyText = model.payFrequency.description;\n saveSchedule.SelectedPayFrequencyId = model.payFrequency.id;\n const payDays = this.selectedFrequency.type * this.totalPays;\n const lastPayDate = this.addDays(model.initialPayDate, payDays);\n saveSchedule.initialPayDate = model.initialPayDate;\n saveSchedule.lastPayDate = lastPayDate;\n saveSchedule.payScheduleEntrys = model.payScheduleEntrys;\n saveSchedule.locations = model.locations;\n saveSchedule.createdFrom = (type !== 'Create') ? this.schedule.createdFrom : 0;\n saveSchedule.organizationId = this.scheduleInput.orgId;\n saveSchedule.organizationName = this.scheduleInput.orgName;\n saveSchedule.selectedScheduleId = this.scheduleId;\n saveSchedule.userInfo = this.scheduleService.UserInfo();\n const scheduleYear = saveSchedule.fiscalYear;\n this.scheduleService.createSchedule(saveSchedule)\n .subscribe((response) => {\n if (response) {\n this.closeCreateSchedule.emit({ response, type, scheduleYear });\n if (response.success) {\n this.notificationService.setUpNotification(response);\n } else {\n this.notificationService.setErrorNotification(response.message);\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n this.stopLoading();\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.stopLoading();\n this.notificationService.setErrorNotification();\n });\n }\n }\n\n getPartial(model: any) {\n model.userInfo = this.scheduleService.UserInfo();\n this.scheduleService.getPartialSch(model)\n .subscribe(response => {\n if (response) {\n if (response.success) {\n const paySchedule = response.model;\n this.schedule = paySchedule;\n this.yr = paySchedule.fiscalYear;\n this.fiscalYearChange();\n this.getHolidays(this.yr);\n this.createdDetails = model.createdDetails;\n this.modifiedDetails = model.modifiedDetails;\n this.systems = paySchedule.systems;\n this.locs = paySchedule.locations;\n this.payFrequency = this.payFrequencyList.filter(x => x.id === paySchedule.selectedPayFrequencyId)[0];\n this.isEmpScheduleId = false;\n this.selectionChange(this.payFrequency);\n this.form.patchValue({\n fiscalYear: this.yr,\n totalPays: paySchedule.payCount,\n contributoryCount: paySchedule.contributoryCount,\n employerScheduleId: '',\n name: paySchedule.name,\n comments: paySchedule.comments,\n payFrequency: this.payFrequency\n });\n this.populateArrays('systems', this.systems);\n this.populateArrays('locations', this.locs);\n this.generated = false;\n this.loadPage = true;\n } else {\n this.notificationService.setErrorNotification(response.message);\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n this.stopLoading();\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.stopLoading();\n this.notificationService.setErrorNotification();\n });\n }\n\n getHolidays(fiscalYear: number) {\n const obj = {\n fiscalYear,\n userInfo: this.scheduleService.UserInfo(),\n };\n this.scheduleService.getHolidays(obj)\n .subscribe(holidays => {\n if (holidays) {\n this.holidayList = holidays;\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setErrorNotification();\n });\n }\n\n saveEditSchedule(model: any, valid: boolean): void {\n this.submitBtnErrorMessage = null;\n if (valid) {\n this.startLoading();\n const schedule: any = this.schedule;\n schedule.userInfo = this.scheduleService.UserInfo();\n schedule.name = model.name;\n schedule.locations = model.locations;\n schedule.systems = model.systems;\n schedule.payScheduleEntrys = model.payScheduleEntrys;\n schedule.contributoryCount = model.contributoryCount;\n schedule.employerScheduleID = model.employerScheduleId;\n schedule.comments = model.comments;\n model.actionType = 'Edit';\n this.scheduleService.post(schedule)\n .subscribe((response) => {\n if (response) {\n this.closeCreateSchedule.emit({ response, type: this.type, editScheduleYear: Number(schedule.fiscalYear) });\n if (response.success) {\n this.notificationService.setUpNotification(response);\n } else {\n if (response.message) {\n this.submitBtnErrorMessage = response.message;\n }\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n this.stopLoading();\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.stopLoading();\n this.notificationService.setErrorNotification();\n });\n }\n }\n\n ppedPaydate(): boolean {\n const payDate = this.form.controls.initialPayDate;\n const pped = this.form.controls.initialPayPeriodEndDate;\n if (!payDate.touched || !pped.touched) { return false; }\n if (payDate.errors && pped.errors) { return false; }\n return (payDate.value instanceof Date && pped.value instanceof Date && payDate.value < pped.value);\n }\n\n onValueChange(date: Date) {\n const inputdt = this.form.controls.initialPayPeriodEndDate.value;\n if (this.isDateDisabled(date)) {\n this.form.controls.initialPayPeriodEndDate.setValue(inputdt);\n this.ppeDatePicker.toggle(true);\n } else {\n this.form.controls.initialPayPeriodEndDate.setValue(date);\n this.ppeDatePicker.toggle(false);\n }\n }\n\n isDateDisabled(date: Date) {\n const desc = this.form.controls.payFrequency.value.description;\n const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n if (desc === 'Semimonthly (Pay 15th & last day of month)') {\n return !(date.getTime() === lastDay.getTime() || date.getDate() === 15);\n }\n return false;\n }\n\n startLoading() {\n this.notificationService.setUpLoading(true);\n }\n\n stopLoading() {\n setTimeout(() => { this.notificationService.setUpLoading(false); }, 200);\n }\n}\n\nexport class FormValidatorUtils {\n static atleastOneChecked(control: any) {\n let isAtLeastOne = false;\n isAtLeastOne = control.value.filter(x => x.checked).length > 0;\n if (isAtLeastOne) {\n return null;\n }\n return { required: true };\n }\n\n static formValidators(control: any): ValidationErrors | null {\n if (control.value.contributoryCount > control.value.totalPays) {\n control.controls.contributoryCount.setErrors({ totalPayComparison: true });\n } else {\n control.controls.contributoryCount.setErrors(null);\n }\n if (!control.dirty) {\n control.controls.initialPayDate.disable = true;\n control.controls.initialPayPeriodEndDate.disable = true;\n }\n if (control.value.fiscalYear === undefined) {\n control.controls.fiscalYear.setErrors({ fiscalYr: true });\n return null;\n } else {\n control.controls.fiscalYear.setErrors(null);\n control.controls.initialPayDate.disable = false;\n control.controls.initialPayPeriodEndDate.disable = false;\n const desc = control.controls.payFrequency.value.description;\n const startDate = new Date(control.value.fiscalYear - 1, 6, 1);\n const endDate = new Date(control.value.fiscalYear, 5, 30);\n const ipd = control.value.initialPayDate;\n const pped = control.value.initialPayPeriodEndDate;\n if (pped instanceof Date) {\n let isValid = true;\n const lastppedDay = new Date(pped.getFullYear(), pped.getMonth() + 1, 0);\n if (pped < startDate || pped > endDate) {\n control.controls.initialPayPeriodEndDate.setErrors({ ppedNotInFY: true });\n } else {\n control.controls.initialPayPeriodEndDate.setErrors(null);\n }\n if (control.controls.initialPayPeriodEndDate.errors === null) {\n if (desc === 'Semimonthly (Pay 15th & last day of month)') {\n isValid = (pped.getTime() === lastppedDay.getTime() || pped.getDate() === 15);\n }\n if (!isValid) {\n control.controls.initialPayPeriodEndDate.setErrors({ notInPFreq: true });\n }\n }\n }\n if (ipd instanceof Date) {\n const originalPD: any = new Date(ipd);\n const originalPPED: any = new Date(pped);\n const dayDiff: any = Math.abs((originalPD - originalPPED) / (1000 * 60 * 60 * 24));\n if (ipd < startDate || ipd > endDate) {\n control.controls.initialPayDate.setErrors({ pdNotInFY: true });\n } else if (dayDiff && dayDiff >= 32) {\n control.controls.initialPayDate.setErrors({ pdGreater32Days: true });\n } else {\n control.controls.initialPayDate.setErrors(null);\n }\n }\n if (control.value.systems.filter(s => s.checked).length < 1) {\n control.controls.systems.setErrors({ systemNotChecked: true });\n } else {\n control.controls.systems.setErrors(null);\n }\n if (control.value.locations.filter(s => s.checked).length < 1) {\n control.controls.locations.setErrors({ locNotChecked: true });\n } else {\n control.controls.locations.setErrors(null);\n }\n }\n if (control.value.payScheduleEntrys.length > 1) {\n if (control.value.contributoryCount !== control.value.payScheduleEntrys.filter(x => x.isContributory).length) {\n control.controls.contributoryCount.setErrors({ checkBoxComparison: true });\n } else {\n control.controls.contributoryCount.setErrors(null);\n }\n }\n return null;\n }\n}\n\n","
\n
\n
\n
\n
\n

Create New Pay Schedule

\n

{{config.CreateInstructions}}

\n
\n
\n

Edit Pay schedule

\n

Instructions

\n

\n {{config.EditAlreadyExisting}}\n

\n
\n
\n

{{config.ContinueLastYear}}

\n

Instructions

\n

\n {{config.QuickContiniue}}\n

\n
\n
\n
\n

Schedule Information

\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n\n \n \n \n \n
Fiscal Year*:\n \n \n\n \n \n
\n {{config.FYSelectionError}}\n
\n
\n {{fyear.value}}\n
Schedule Name *:\n \n
\n {{config.MinCharName}}\n {{config.MaxCharName}}\n {{config.EmptyName}}\n {{config.NameExists}}\n
\n
Employer Payroll Schedule ID(Optional):\n \n {{employerPayScheduleId.value}}\n \n \n \n
\n {{config.MaxEmpIdLength}}\n {{config.EmpIdExists}}\n \n {{config.EmpIdAlNum}}\n \n
\n
\n
Payroll Schedule ID:{{schedId.value}}
Location(s)*:\n
\n
\n
    \n
  • {{orgName}}
  • \n
  • \n
    \n \n \n
    \n
  • \n
\n
\n
\n
\n {{config.MinLocation}}\n
\n
System(s)*:\n
\n
\n
    \n
  • \n
    \n \n \n
    \n
  • \n
\n
\n
\n
\n {{config.MinSystem}}\n
\n
Pay Frequency*:\n \n \n
\n {{config.SelectFrequency}}\n
\n
Created:{{createdDetails}}
Modified:{{modifiedDetails}}
Frequency:{{schedule?.selectedPayFrequencyText}}
Total Annual Pays*:\n \n \n
\n {{config.SelectFrequency}}\n
\n
{{tp.value}}
Non-Contributory Pays:{{ncpays.value}}
Contributory Pays*:\n \n \n
\n {{config.ContPayLTTotalPay}}\n {{config.ContCountEQContFlag}}\n
\n
Initial Pay Period End Date*:\n \n \n {{date.getDate()}}\n \n \n
\n {{config.PPEDFY}}\n {{config.InvalidDate}}\n
\n
\n {{config.PPEDAfterPD}}\n
Initial Pay Date*:\n \n \n
\n {{config.PayDateinFY}}\n
\n
\n {{config.PDGreater32Days}}\n
\n
Comments (optional):\n
\n {{config.MinCommentLength}}\n
\n
\n
\n {{generateBtnErrorMsg}}\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n

Schedule Entries

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
#PPED Pay Date\n
\n \n \n
\n
Remarks
\n {{row_no + 1}}\n \n \n \n \n {{date.getDate()}}\n \n \n \n \n \n \n {{date.getDate()}}\n \n \n \n \n \n \n \n \n
\n Invalid PPED\n
\n
\n Invalid Pay Date\n
\n
\n PPED\n and PD diff is greater than 32d\n
\n \n \n {{item.value.holidayOrWeekendName}}\n \n
{{config.NoScheduleEntry}}
\n
\n
\n
\n
Contributory pays entered: {{ccCount.value}}
\n
\n Contributory pays selected:{{checkedBx}}\n \n {{config.ReviewCont}}\n \n
\n
\n
\n
\n {{submitBtnErrorMessage}}\n
\n
\n
\n
\n
\n \n \n \n \n
\n\n \n

All unsaved changes will be lost. Continue?

\n \n \n \n \n
\n\n \n

{{schedulemsg}}

\n \n \n \n \n
\n\n \n

\n {{config.ReGenerate}}\n {{config.ReGenerateConfirm}}\n

\n
    \n
  1. {{item}}
  2. \n
\n \n \n \n \n
\n
\n
\n
\n\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ScheduleService } from 'src/app/shared/services/pay-schedules/schedule.service';\n\n@Component({\n selector: 'app-delete-schedule',\n templateUrl: './delete-schedule.component.html',\n styleUrls: ['./delete-schedule.component.css']\n})\nexport class DeleteScheduleComponent {\n msg = '';\n loading = false;\n result: any;\n @Input() scheduleId = 0;\n @Input() configText: any;\n @Output() closedeleteDialog = new EventEmitter();\n\n constructor(private scheduleService: ScheduleService,\n private notificationService: DisplayNotificationService) { }\n\n deleteSchedule(status: any): void {\n if (status === 'yes') {\n this.loading = true;\n const obj = { id: this.scheduleId, userInfo: this.scheduleService.UserInfo() };\n this.scheduleService.delete(obj)\n .subscribe((response) => {\n if (response) {\n this.closedeleteDialog.emit(response);\n if (response.success) {\n this.notificationService.setUpNotification(response);\n } else {\n this.notificationService.setErrorNotification(response.message);\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n this.loading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.loading = false;\n this.notificationService.setErrorNotification();\n });\n } else {\n this.closedeleteDialog.emit(false);\n }\n }\n}\n","\n

{{configText}}

\n \n \n \n \n
\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { AfterContentChecked, ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { TabStripComponent } from '@progress/kendo-angular-layout';\nimport { PayScheduleHistory, ScheduleInput } from '../models/pay-schedule.model';\nimport { AuthService } from '../shared/services/auth/auth.service';\nimport { LocalStoreManager } from '../shared/services/auth/local-store-manager.service';\nimport { DisplayNotificationService } from '../shared/services/common/notification.service';\nimport { ReadConfigService } from '../shared/services/common/read-config.service';\nimport { ScheduleService } from '../shared/services/pay-schedules/schedule.service';\n\n@Component({\n selector: 'app-pay-schedule',\n templateUrl: './pay-schedule.component.html',\n styleUrls: ['./pay-schedule.component.css']\n})\n\nexport class PayScheduleComponent implements OnInit, OnChanges, OnDestroy, AfterContentChecked {\n\n lastPaySchedule: Array = [];\n currentPaySchedule: Array = [];\n nextPaySchedule: Array = [];\n scheduleInput: ScheduleInput;\n selectedScheduleId = 0;\n actionType = '';\n orgName: string;\n isLoadScheduleValid = false;\n isDeleteScheduleValid = false;\n displayChild = false;\n schedulehistry: PayScheduleHistory;\n payScheduleHistory: PayScheduleHistory[] = [];\n success = false;\n changed = false;\n activeOrg = '';\n readonly todaysDate: Date = new Date();\n readonly cfy: number = this.todaysDate.getFullYear() + (this.todaysDate.getMonth() + 1 > 6 ? 1 : 0);\n lfy: number;\n readonly nfy: number = (this.cfy + 1);\n fySchedule: any;\n // DEFAULT PANEL OPEN\n selectedid = 0;\n @Input() isNewScheduleValid = false;\n isChanged = false;\n createIntro: any;\n intro: any;\n configText: any;\n operators: any;\n fiscalYearList: any;\n currentFy: any;\n initialLoading = true;\n empScheduleId: any;\n accessData: any;\n items: {id: number; heading: string; data: any[], isTabVisible: boolean}[];\n\n constructor(\n private cd: ChangeDetectorRef,\n private authService: AuthService,\n private localStorage: LocalStoreManager,\n private scheduleService: ScheduleService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n this.operators = this.authService.getAccessOperations(1);\n const showEmpScheduleChanges: boolean = this.authService.getDarkKeyValue('Employer Schedule Id');\n this.accessData = { operators: this.operators, showEmpScheduleChanges };\n const config = this.readConfigService.getPayScheduleText();\n this.createIntro = config.CreateIntro;\n this.intro = config.Instructions;\n this.configText = config.DeleteSchedule;\n this.changeDDwnStage(true);\n this.isChanged = false;\n this.getFiscalYearList();\n this.getItems();\n }\n\n getItems() {\n this.items = [\n { id: this.lfy, heading: 'Previous Fiscal Year - ', data: [], isTabVisible: false },\n { id: this.cfy, heading: 'Current Fiscal Year - ', data: [], isTabVisible: false },\n { id: this.nfy, heading: 'Next Fiscal Year - ', data: [], isTabVisible: false }];\n }\n\n setTabStripStyle() {\n const elArr = [];\n const tabstripEls = document.querySelectorAll('.k-tabstrip>.k-tabstrip-items .k-item');\n if (tabstripEls.length > 1) {\n tabstripEls.forEach(element => { elArr.push(element as HTMLElement); });\n elArr.forEach(element => {\n element.style.width = 100 / this.items.length + '%';\n });\n }\n }\n\n ngOnDestroy(): void {\n this.localStorage.deleteData('CurrentComponent');\n }\n\n ngAfterContentChecked() {\n this.cd.detectChanges();\n }\n\n ngOnChanges(): void {\n this.loadSchedules(this.authService.currentOrg, this.currentFy);\n }\n\n getFiscalYearList() {\n this.notificationService.setUpLoading(true);\n const obj = { userInfo: this.scheduleService.UserInfo() };\n this.scheduleService.getFYList(obj).subscribe(response => {\n if (response && response.success) {\n const fyList = JSON.parse(`[${response.fys}]`);\n this.fiscalYearList = fyList;\n this.currentFy = this.fiscalYearList.find(element => element === this.cfy);\n this.loadSchedules(this.authService.currentOrg, this.currentFy);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n loadSchedules(orgId: string, selectedFiscalYear: number): void {\n this.notificationService.setUpLoading(true);\n this.displayChild = false;\n this.activeOrg = orgId;\n const inputData = { fiscalYear: selectedFiscalYear, userInfo: this.scheduleService.UserInfo() };\n this.scheduleService.getScheduleList(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n const result = response.result;\n this.payScheduleHistory = result.schedules;\n this.items[0].data = [];\n this.items[0].isTabVisible = false;\n this.items[1].data = [];\n this.items[1].isTabVisible = false;\n this.items[2].data = [];\n this.items[2].isTabVisible = false;\n this.orgName = result.organization;\n if (this.payScheduleHistory.length > 0) {\n this.payScheduleHistory.forEach((element: any) => {\n element.oldEmpSchId = element.employerScheduleID;\n if (this.cfy > element.fiscalYear) {\n this.lfy = element.fiscalYear;\n }\n switch (element.fiscalYear) {\n case this.lfy:\n this.items[0].id = this.lfy;\n this.items[0].isTabVisible = this.cfy > this.lfy;\n this.items[0].data.push(element);\n break;\n case this.cfy:\n this.items[1].isTabVisible = (this.cfy === this.currentFy);\n this.items[1].data.push(element);\n break;\n case this.nfy:\n this.items[2].isTabVisible = this.cfy < this.nfy;\n this.items[2].data.push(element);\n break;\n }\n });\n this.fySchedule = this.items.filter(x => x.isTabVisible);\n } else {\n this.items[0].id = (this.cfy > this.currentFy) ? this.currentFy : this.items[0].id;\n const payScheduleFY = this.items.filter(x => x.id === this.currentFy)[0];\n payScheduleFY.isTabVisible = true;\n this.fySchedule = [payScheduleFY];\n }\n if (this.success) {\n const selectData = result.schedules.filter((x: any) => x.id === this.selectedScheduleId)[0];\n this.selectedid = this.selectedScheduleId;\n this.loadScheduleDetails(selectData, 'View');\n this.success = false;\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n this.setTabStripStyle();\n this.notificationService.setUpLoading(false);\n this.initialLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.setTabStripStyle();\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n this.initialLoading = false;\n });\n }\n\n fiscalYearChange(value: any) {\n if (value) {\n this.currentFy = value;\n this.loadSchedules(this.authService.currentOrg, this.currentFy);\n }\n }\n\n createNewSchedule(): void {\n this.notificationService.setUpLoading(true);\n this.newSchedule('Create');\n document.getElementById('scheduleDetails').scrollIntoView();\n }\n\n newSchedule(actionType: string): void {\n this.notificationService.setUpLoading(true);\n const scheduleInput = new ScheduleInput();\n scheduleInput.cfy = this.cfy;\n scheduleInput.nfy = this.nfy;\n const id = (actionType === 'Create') ? 0 : this.schedulehistry.id;\n const obj = { userInfo: this.scheduleService.UserInfo() };\n this.scheduleService.getScheduleInputs(obj)\n .subscribe(data => {\n if (data && data.statusCode === 200) {\n const scheduleInputResult = data.result;\n scheduleInput.locs = scheduleInputResult.locations;\n scheduleInput.systems = scheduleInputResult.systems;\n scheduleInput.payFrequencies = scheduleInputResult.payFrequencies;\n scheduleInput.orgId = this.authService.currentOrg;\n scheduleInput.orgName = this.orgName;\n this.actionType = actionType;\n this.scheduleInput = scheduleInput;\n this.isNewScheduleValid = true;\n this.isLoadScheduleValid = false;\n this.selectedScheduleId = id;\n this.displayChild = true;\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n continueSchedule(psHistory: PayScheduleHistory, action: string): void {\n this.schedulehistry = psHistory;\n this.newSchedule(action);\n }\n\n loadScheduleDetails(psHistory: PayScheduleHistory, action: string): any {\n const id = psHistory.id;\n const filterRecord = this.payScheduleHistory.filter(x => x.id === id);\n if (action === 'View' && filterRecord[0].oldEmpSchId === filterRecord[0].employerScheduleID) {\n this.empScheduleId = filterRecord[0].oldEmpSchId;\n } else {\n this.empScheduleId = filterRecord[0].oldEmpSchId;\n }\n if (id !== this.selectedScheduleId || this.success) {\n this.selectedScheduleId = id;\n this.actionType = action;\n this.schedulehistry = psHistory;\n }\n this.isLoadScheduleValid = true;\n this.isDeleteScheduleValid = action === 'Delete';\n this.isNewScheduleValid = false;\n this.displayChild = true;\n }\n\n EditSchedule(psHistory: PayScheduleHistory): void {\n this.schedulehistry = psHistory;\n this.notificationService.setUpLoading(true);\n this.newSchedule('Edit');\n }\n\n displayResult(event: any) {\n if (event.response.success) {\n this.loadSchedules(this.authService.currentOrg, event.fiscalYear);\n }\n }\n\n scheduleUpdate(event: any): void {\n const args = event.response;\n this.changeDDwnStage(true);\n if (!args) {\n this.displayChild = args;\n } else {\n if (args.success) {\n this.selectedScheduleId = parseInt(args.id, 0);\n this.success = args.success;\n if (event.type.toLowerCase() === 'create') {\n this.currentFy = event.scheduleYear;\n } else if (event.type.toLowerCase() === 'continue') {\n this.currentFy = this.nfy;\n } else if (event.type.toLowerCase() === 'edit') {\n this.currentFy = event.editScheduleYear;\n }\n this.loadSchedules(this.authService.currentOrg, this.currentFy);\n if (document.getElementById('k-panelbar-0-item-' + args.id)) {\n document.getElementById('k-panelbar-0-item-' + args.id).scrollIntoView();\n }\n }\n }\n }\n\n createScheduleCancel(args: any) {\n if (args === false) {\n this.notificationService.setUpLoading(true);\n }\n }\n\n recieveDeleteEvent(args: any): void {\n this.isDeleteScheduleValid = false;\n if (args === false) { return; }\n if (args.success) {\n this.isLoadScheduleValid = !args.success;\n this.loadSchedules(this.authService.currentOrg, this.currentFy);\n }\n }\n\n changesMade(args: any): void {\n if (args !== this.isChanged) {\n this.changeDDwnStage(!args);\n }\n }\n\n changeDDwnStage(args: boolean) {\n this.isChanged = !args;\n this.authService.formChanged(args);\n }\n}\n","
\n\n","import { AuthService } from './../../shared/services/auth/auth.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Component, Input, OnChanges, OnInit, EventEmitter, Output } from '@angular/core';\nimport { PayScheduleHistory } from 'src/app/models/pay-schedule.model';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { ScheduleService } from 'src/app/shared/services/pay-schedules/schedule.service';\n\n@Component({\n selector: 'app-schedule-details',\n templateUrl: './schedule-details.component.html',\n styleUrls: ['./schedule-details.component.css']\n})\nexport class ScheduleDetailsComponent implements OnInit, OnChanges {\n todaysDate: Date = new Date();\n cfy: number = this.todaysDate.getFullYear() + (this.todaysDate.getMonth() + 1 > 6 ? 1 : 0);\n config: any;\n operators: any;\n isSchChangesVisible: boolean;\n hideEmpScheduleSection = false;\n msg = '';\n fY = 0;\n @Input() scheduleId = 0;\n @Input() actionType = '';\n @Input() orgName = '';\n @Input() scheduleHistory: PayScheduleHistory;\n @Input() employerSchId;\n @Input()\n set userActionData(action: any) {\n if (action) {\n this.operators = action.operators;\n this.isSchChangesVisible = action.showEmpScheduleChanges;\n }\n }\n @Output() successResult = new EventEmitter();\n schedule: PayScheduleHistory;\n scheduleEntry: any[];\n noScheduleEntryText: any;\n btnDisable: boolean;\n isInputVisible = false;\n empScheduleIdExists: boolean;\n isProcessing = false;\n invalidAlphaNumeric = false;\n inputValidationPattern = /^[A-Za-z0-9]+$/;\n\n constructor(\n private scheduleService: ScheduleService,\n private readConfigService: ReadConfigService,\n private authService: AuthService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.config = this.readConfigService.getPayScheduleText();\n this.noScheduleEntryText = this.config.NoScheduleEntry;\n document.getElementById('scheduleDetails').scrollIntoView();\n this.authService.formChanged(true);\n }\n\n ngOnChanges() {\n this.loadSchedule(this.scheduleId);\n document.getElementById('scheduleDetails').scrollIntoView();\n }\n\n onEmpIdInput(value: any) {\n const empScheduleId = value && value.trim();\n this.invalidAlphaNumeric = (empScheduleId && !this.inputValidationPattern.test(empScheduleId)) ? true : false;\n this.empScheduleIdExists = false;\n this.btnDisable = false;\n this.authService.formChanged(false);\n }\n\n onEmpIdChange(schedule: any, value: any) {\n const empScheduleId = value.trim();\n if (empScheduleId.length > 0) {\n const obj = {\n userInfo: this.scheduleService.UserInfo(),\n EmployerScheduleID: empScheduleId,\n fiscalYear: schedule.fiscalYear.toString()\n };\n this.scheduleService.empScheduleIdExists(obj)\n .subscribe((response) => {\n if (response) {\n this.empScheduleIdExists = response.isExists;\n if (this.empScheduleIdExists) {\n this.isProcessing = false;\n return;\n } else {\n this.updateEmpId(schedule);\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setErrorNotification();\n });\n }\n }\n\n updateEmpId(scheduleValues: any) {\n const obj = {\n userInfo: this.scheduleService.UserInfo(),\n EmployerScheduleID: scheduleValues.employerScheduleID,\n msraScheduleId: scheduleValues.id\n };\n this.scheduleService.updateEmpSchId(obj)\n .subscribe((response) => {\n if (response && response.statusCode === 200) {\n const fiscalYear = scheduleValues.fiscalYear;\n this.successResult.emit({ response, fiscalYear });\n this.notificationService.setUpNotification(response);\n this.isInputVisible = true;\n this.btnDisable = true;\n } else {\n this.notificationService.setErrorNotification();\n }\n this.isProcessing = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.isProcessing = false;\n this.notificationService.setErrorNotification();\n });\n }\n\n onSaveClick(scheduleValues: any, value: any) {\n this.isProcessing = true;\n this.onEmpIdChange(scheduleValues, value);\n }\n\n editClick() {\n this.isInputVisible = false;\n }\n\n cancelClick() {\n this.scheduleHistory.employerScheduleID = this.employerSchId;\n this.isInputVisible = true;\n this.btnDisable = true;\n this.empScheduleIdExists = false;\n }\n\n loadSchedule(id: number): void {\n this.empScheduleIdExists = false;\n this.invalidAlphaNumeric = false;\n this.btnDisable = true;\n this.scheduleHistory.employerScheduleID = this.employerSchId;\n this.notificationService.setUpLoading(true);\n const obj = { userInfo: this.scheduleService.UserInfo(), id };\n this.scheduleService.getScheduleEntries(obj).subscribe(response => {\n if (response && response.success) {\n this.isInputVisible = true;\n this.schedule = this.scheduleHistory;\n this.scheduleEntry = response.message;\n }\n this.notificationService.setUpLoading(false);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n });\n }\n print(): void {\n const details = document.getElementById('print-section1');\n const schedules = document.getElementById('print-section2');\n if (details && schedules) {\n const printdetails = details.innerHTML;\n const printschedules = schedules.innerHTML;\n const popupWin = window.open('', '_blank', 'width=880,height=600,toolbar=0,scrollbars=1,resizable=1');\n popupWin.document.open();\n popupWin.document.write(`\n \n \n Print tab\n \n \n \n
${printdetails}
\n
${printschedules}
\n
\n \n `\n );\n }\n }\n}\n","
\n
\n

Schedule Details for {{schedule.payScheduleName}} ({{schedule.fiscalYear}})

\n

{{orgName}}

\n
\n
\n
Fiscal Year:
\n
{{schedule.fiscalYear}}
\n
\n
\n
Schedule Name:
\n
{{schedule.payScheduleName}}
\n
\n \n
\n
Employer Payroll Schedule ID(Optional):
\n
\n {{schedule.employerScheduleID}}\n
\n
\n
= cfy; else editEmpSchedule\">\n {{schedule.employerScheduleID}}\n
\n \n {{schedule.employerScheduleID}}\n
\n \n
\n \n \n \n
\n
\n
\n
\n 10; else invalidString\">{{config.MaxEmpIdLength}}\n {{config.EmpIdExists}}\n \n {{config.EmpIdAlNum}}\n \n
\n\n
\n
Payroll Schedule ID:
\n
{{schedule.id}}
\n
\n
\n
Location(s):
\n
{{schedule.locations}}
\n
\n
\n
System(s):
\n
{{schedule.systems}}
\n
\n
\n
Comments:
\n
{{schedule.comments}}
\n
\n
\n
Created:
\n
\n {{schedule.createdDatetime | date: 'MM/dd/yyyy'}} by\n {{schedule.createdBy}}\n
\n
\n {{schedule.createdDetails}}\n
\n
\n
\n
Modified:
\n
{{schedule.modifiedDetails}}
\n
\n
\n
Frequency:
\n
{{schedule.frequency}}
\n
\n
\n
Total Annual Pays:
\n
{{schedule.payCount}}
\n
\n
\n
Contributory Pays:
\n
{{schedule.contributoryCount}}
\n
\n
\n
Non-Contributory Pays:
\n
\n {{schedule.payCount - schedule.contributoryCount}}\n
\n
\n
\n
0\">Created From:
\n
{{schedule.createdFrom}}
\n
\n
\n
\n
\n \n
\n

Schedule Entries

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
#PPED Pay DateContributoryRemarks
\n {{row_no + 1}}\n {{item.payPeriodEndDate | date: 'MM/dd/yyyy'}}{{item.payDate | date: 'MM/dd/yyyy'}}\n \n {{item.isContributory ? 'Yes' : ''}}\n {{item.remarks}}\n
\n \n {{item.holidayOrWeekendName}}\n
\n
{{noScheduleEntryText}}
\n
\n
\n
\n\n","import { AdjustmentService } from 'src/app/shared/services/adjustments/adjustment.service';\nimport { AuthService } from './../../shared/services/auth/auth.service';\nimport { Component, OnInit, AfterViewChecked, ViewChild } from '@angular/core';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { TabStripComponent, SelectEvent } from '@progress/kendo-angular-layout';\n\n@Component({\n selector: 'app-adjustment-reports-v2',\n templateUrl: './adjustment-reports-v2.component.html',\n styleUrls: ['./adjustment-reports-v2.component.css']\n})\nexport class AdjustmentReportsV2Component implements OnInit, AfterViewChecked {\n operators: any;\n initialLoading = false;\n ownersList: any;\n editAdjustmentData: any;\n isRecordSaved: boolean;\n @ViewChild('adjtabstrip') tabstrip: TabStripComponent;\n\n constructor(\n private authService: AuthService,\n private usersService: UsersService,\n private adjustmentService: AdjustmentService,\n private notificationService: DisplayNotificationService,\n ) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n this.operators = this.authService.getAccessOperations(2);\n this.getAdjOwnerList();\n }\n\n ngAfterViewChecked() {\n this.setTabStripStyle();\n }\n\n adjustmentDataSaved(event: boolean) {\n this.isRecordSaved = event;\n }\n\n onSelect(e: SelectEvent): void {\n if (this.isRecordSaved) {\n this.getViewReport(null);\n }\n this.isRecordSaved = false;\n }\n\n\n getViewReport(event: any) {\n this.tabstrip.tabs.forEach(x => {\n switch (x.title) {\n case 'Create New Report':\n x.selected = true;\n this.editAdjustmentData = event;\n break;\n case 'View Reports':\n x.selected = false;\n break;\n case 'Rejected Reports':\n x.selected = false;\n break;\n }\n });\n }\n\n getAdjOwnerList() {\n const userData = { userInfo: this.usersService.UserInfo() };\n this.adjustmentService.getOwnerList(userData).subscribe((data: any) => {\n if (data && data.statusCode === 200) {\n this.ownersList = data.userList;\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n setTabStripStyle() {\n const allDetails = document.querySelectorAll('.k-tabstrip');\n if (allDetails && allDetails.length > 0) {\n allDetails.forEach(details => {\n const firstChild = details.firstElementChild.children[0];\n if (firstChild && firstChild.children && firstChild.children.length > 1) {\n const elArr = Array.from(firstChild.children) as Array;\n const tabFirstEl = Array.from(elArr[0].children) as Array;\n const tabSecEl = Array.from(elArr[1].children) as Array;\n tabFirstEl[0].style.marginRight = '5px';\n tabSecEl[0].style.marginRight = '5px';\n elArr.forEach(element => {\n element.style.width = 100 / firstChild.children.length + '%';\n });\n }\n });\n }\n }\n\n}\n","
\n
\n

Adjustment Reports

\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n","import { SaveAdjustmentPayload } from './../../../../models/adjustment';\nimport { AdjustmentService } from './../../../../shared/services/adjustments/adjustment.service';\nimport { requiredValidatorLogic } from './../../../../shared/directives/required.directive';\nimport { Utility } from './../../../../shared/utility';\nimport { ScheduleService } from './../../../../shared/services/pay-schedules/schedule.service';\nimport { UsersService } from './../../../../shared/services/common/users.service';\nimport { DisplayNotificationService } from './../../../../shared/services/common/notification.service';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { RowArgs, SelectableSettings } from '@progress/kendo-angular-grid';\n\n@Component({\n selector: 'app-adj-record-add-edit-form',\n templateUrl: './adj-record-add-edit-form.component.html',\n styleUrls: ['./adj-record-add-edit-form.component.css']\n})\nexport class AdjRecordAddEditFormComponent implements OnInit {\n isProcessing = false;\n isErr = false;\n isIssue = false;\n isConfirmOpened: boolean;\n scheduleSelected: boolean;\n scheduleDetailDialog: boolean;\n isInvalid: boolean;\n isStartDateValid = true;\n isEndDateValid = true;\n ssn: number;\n adjRecordId: number;\n gridData: any;\n selectedFYSchedules: any;\n fiscalYearGridData: any;\n scheduleEntry: any;\n adjModelDataItem: any;\n adjData: any;\n ssnNumber: any;\n selectedElements = [];\n\n recordErrors: any;\n recordIssues: any;\n config: any;\n noContectMsg: any;\n userLocations: any;\n userSystems: any;\n paySchedules: any;\n locationCode: any;\n systemCode: any;\n reasonCodesList: any;\n reasonCode = [];\n minDate = new Date();\n maxDate = new Date();\n payrollAdjId: any;\n min = 0.0;\n ssnMask = '000-00-0000';\n reviewFlag: boolean;\n ssnPattern = /^(?!666|000\\d{2})\\d{3}(?!00)\\d{2}(?!0{4})\\d{4}$/;\n speCharPattern = /^[a-zA-Z\\s.'\\-,`]+$/;\n onlyNumberPattern = /^[0-9]*$/;\n selectableSettings: SelectableSettings = {\n enabled: true, checkboxOnly: true, mode: 'single'\n };\n addEditForm: UntypedFormGroup;\n personalDetailsForm: UntypedFormGroup;\n isRowSelected: (e: RowArgs) => boolean;\n\n isAdjEdit: boolean;\n isEditAdj: boolean;\n\n @Input() isNew = false;\n @Input() set adjustmentInputs(inputData: any) {\n if (inputData) {\n this.userLocations = inputData.locations;\n this.userSystems = inputData.systemCodes;\n this.paySchedules = inputData.payschedules;\n const newArray = inputData.reasonCodes.map(item => ({\n ...item,\n reasonCode: item.id + '-' + item.reason\n }));\n this.reasonCodesList = newArray;\n }\n }\n @Input() set configData(config: any) {\n if (config) {\n this.config = config;\n }\n }\n @Input() set model(record: any) {\n if (record) {\n this.adjData = this.isNew ? record : record.dataItem;\n this.ssnNumber = !this.isNew ? Utility.formatSSN(record.dataItem.ssn) : null;\n this.adjModelDataItem = record;\n this.isInvalid = record.isInvalid;\n this.reviewFlag = record.dataItem ? record.dataItem.review : false;\n // Todo change after discussion\n // if (record.isInvalid) {\n // this.fiscalYearGridData = (record.fiscalYearScheduleList && record.fiscalYearScheduleList.schedules\n // && record.fiscalYearScheduleList.schedules.length > 0) ? record.fiscalYearScheduleList.schedules : [];\n // }\n this.addEditRecord(record);\n }\n }\n @Input() set editModel(editRecord: any) {\n if (editRecord) {\n this.editInvalidAdjRecords(editRecord);\n }\n }\n @Output() saveResponse: EventEmitter = new EventEmitter();\n @Output() closeAddEditForm: EventEmitter = new EventEmitter();\n @Output() editInvalidAdj: EventEmitter = new EventEmitter();\n\n constructor(\n private usersService: UsersService,\n private scheduleService: ScheduleService,\n private adjustmentService: AdjustmentService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit() {\n this.isRowSelected = (e: RowArgs) => this.selectedElements.indexOf(e.dataItem) >= 0;\n }\n\n getNewForm() {\n this.addEditForm = new UntypedFormGroup({\n id: new UntypedFormControl(''),\n adjustmentImportId: new UntypedFormControl(''),\n fullSSN: new UntypedFormControl('', [Validators.required, Validators.pattern(this.ssnPattern)]),\n fiscalYear: new UntypedFormControl(''),\n firstName: new UntypedFormControl('', [Validators.required, Validators.pattern(this.speCharPattern)]),\n middleInitials: new UntypedFormControl(''),\n lastName: new UntypedFormControl('', [Validators.required, Validators.pattern(this.speCharPattern)]),\n locationCode: new UntypedFormControl('', [Validators.required]),\n systemCode: new UntypedFormControl('', [Validators.required]),\n reasonCode: new UntypedFormControl('', [Validators.required]),\n payPeriodEndDate: new UntypedFormControl('', [Validators.required, requiredValidatorLogic]),\n actualAnnualCompensation: new UntypedFormControl('', [Validators.required, Validators.pattern(this.onlyNumberPattern),\n Validators.min(0), Validators.max(this.config.maxAEC)]),\n actualEarnableCompensation: new UntypedFormControl('', [Validators.required, Validators.pattern(this.onlyNumberPattern),\n Validators.min(0), Validators.max(this.config.maxAEC)]),\n payPeriodBaseSalary: new UntypedFormControl('', [Validators.required, Validators.min(0), Validators.max(this.config.maxPBS)]),\n employeeContribution: new UntypedFormControl('', Validators.required),\n hoursWorked: new UntypedFormControl('', [Validators.required, Validators.min(0), Validators.max(288)]),\n standardHours: new UntypedFormControl('', [Validators.required, Validators.min(0), Validators.max(288)]),\n percentFullTime: new UntypedFormControl('', [Validators.required, Validators.min(0), Validators.max(100)])\n });\n if (this.isNew || this.isInvalid) {\n this.addEditForm.addControl('payPeriodStartDate', new UntypedFormControl('', [Validators.required, requiredValidatorLogic]));\n }\n }\n\n addEditRecord(record: any) {\n this.getNewForm();\n this.recordIssues = [];\n this.recordErrors = [];\n this.isErr = false;\n this.isIssue = false;\n if (record && record.dataItem && record.action === 'edit') {\n if (record && record.dataItem.error) {\n this.isErr = true;\n this.recordErrors = record.dataItem.error.split(',');\n }\n if (record.dataItem.issue) {\n this.isIssue = true;\n const issues = record.dataItem.issue.split(',');\n this.recordIssues = Utility.getIssues(issues);\n }\n this.adjRecordId = record.dataItem.id;\n this.locationCode = this.userLocations ? (this.userLocations.filter(x => x.code === record.dataItem.locationCode)[0]\n ? this.userLocations.filter(x => x.code === record.dataItem.locationCode)[0] : record.dataItem.locationCode) :\n this.userLocations[0];\n this.systemCode = this.userSystems ? this.userSystems.filter(x => x.code === record.dataItem.systemCode)[0] :\n this.userSystems[0];\n const codesArray = record.dataItem.reasonCodes ? record.dataItem.reasonCodes.split(',').map(Number) : '';\n this.reasonCode = this.reasonCodesList.filter(item => codesArray.includes(item.id));\n if (!record.isInvalid && record.dataItem.fiscalYear > 2016) {\n this.fiscalYearGridData = record.fiscalYearScheduleList.schedules.filter(x => x.id === record.dataItem.payScheduleId);\n this.fiscalYearGridData.forEach(element => {\n this.selectedElements.push(element);\n });\n }\n this.addEditForm.patchValue({\n fullSSN: record.dataItem.ssn,\n fiscalYear: record.dataItem.fiscalYear,\n firstName: record.dataItem.firstName,\n middleInitials: record.dataItem.middleInitials,\n lastName: record.dataItem.lastName,\n locationCode: this.locationCode,\n systemCode: this.systemCode,\n reasonCode: this.reasonCode,\n payPeriodStartDate: record.dataItem.payPeriodBeginningDate,\n payPeriodEndDate: record.dataItem.payPeriodEndDate,\n actualAnnualCompensation: record.dataItem.actualAnnualCompensation,\n actualEarnableCompensation: record.dataItem.actualEarnableCompensation,\n payPeriodBaseSalary: record.dataItem.payPeriodBaseSalary,\n employeeContribution: record.dataItem.employeeContribution,\n hoursWorked: record.dataItem.hoursWorked,\n standardHours: record.dataItem.standardHours,\n percentFullTime: record.dataItem.percentFullTime,\n });\n this.addEditForm.controls['fullSSN'].disable();\n this.addEditForm.controls['fiscalYear'].disable();\n this.addEditForm.controls['firstName'].disable();\n this.addEditForm.controls['middleInitials'].disable();\n this.addEditForm.controls['lastName'].disable();\n if (!record.isInvalid) {\n this.addEditForm.controls['payPeriodEndDate'].disable();\n this.fiscalYearDateRange();\n } else {\n this.fiscalYearDateRange();\n // TODO set the min and max date after discussion with Harris\n this.addEditForm.patchValue({ payPeriodStartDate: null });\n this.addEditForm.patchValue({ payPeriodEndDate: null });\n this.addEditForm.controls['payPeriodStartDate'].disable();\n this.addEditForm.controls['payPeriodEndDate'].disable();\n }\n this.scheduleSelected = true;\n } else {\n this.isErr = false;\n this.locationCode = this.userLocations ? this.userLocations.filter(x => x.code === record.location)[0] :\n this.userLocations[0];\n this.systemCode = this.userSystems ? this.userSystems.filter(x => x.code === record.system)[0] :\n this.userSystems[0];\n this.fiscalYearGridData = (record.fiscalYearScheduleList && record.fiscalYearScheduleList.schedules\n && record.fiscalYearScheduleList.schedules.length > 0) ? record.fiscalYearScheduleList.schedules : [];\n this.addEditForm.patchValue({\n fullSSN: record.fullSSN,\n fiscalYear: record.fiscalYear,\n firstName: record.firstName,\n middleInitials: record.mi,\n lastName: record.lastName,\n locationCode: this.locationCode,\n systemCode: this.systemCode,\n });\n this.addEditForm.controls['fullSSN'].disable();\n this.addEditForm.controls['fiscalYear'].disable();\n this.addEditForm.controls['firstName'].disable();\n this.addEditForm.controls['middleInitials'].disable();\n this.addEditForm.controls['lastName'].disable();\n if (record && record.fiscalYear > 2016) {\n this.addEditForm.controls['payPeriodStartDate'].disable();\n this.addEditForm.controls['payPeriodEndDate'].disable();\n } else {\n this.addEditForm.controls['payPeriodStartDate'].enable();\n this.addEditForm.controls['payPeriodEndDate'].enable();\n }\n // Todo change after discussion\n this.fiscalYearDateRange();\n }\n this.payrollAdjId = this.isNew ? record.adjustmentImportId : record.dataItem.payrollAdjustmentsId;\n }\n\n editInvalidAdjRecords(record: any) {\n this.adjData = record;\n this.adjModelDataItem = record;\n this.isStartDateValid = true;\n this.addEditForm.patchValue({ payPeriodStartDate: null });\n this.addEditForm.patchValue({ payPeriodEndDate: null });\n if (record.fiscalYear > 2016) {\n this.addEditForm.controls['payPeriodStartDate'].disable();\n this.addEditForm.controls['payPeriodEndDate'].disable();\n } else {\n this.addEditForm.controls['payPeriodStartDate'].enable();\n this.addEditForm.controls['payPeriodEndDate'].enable();\n }\n this.ssnNumber = Utility.formatSSN(record.fullSSN);\n this.locationCode = this.userLocations ? (this.userLocations.filter(x => x.code === record.location)[0]\n ? this.userLocations.filter(x => x.code === record.location)[0] : record.location) :\n this.userLocations[0];\n this.systemCode = this.userSystems ? this.userSystems.filter(x => x.code === record.system)[0] :\n this.userSystems[0];\n this.fiscalYearGridData = (record.fiscalYearScheduleList && record.fiscalYearScheduleList.schedules\n && record.fiscalYearScheduleList.schedules.length > 0) ? record.fiscalYearScheduleList.schedules : [];\n this.isEditAdj = true;\n this.addEditForm.patchValue({\n fullSSN: record.fullSSN,\n fiscalYear: record.fiscalYear,\n firstName: record.firstName,\n middleInitials: record.mi,\n lastName: record.lastName,\n locationCode: this.locationCode,\n systemCode: this.systemCode,\n reasonCode: this.reasonCode\n });\n this.addEditForm.controls['reasonCode'].setErrors(null);\n }\n\n onSelectionChange(event: any) {\n if (event.selectedRows.length > 0) {\n this.scheduleSelected = true;\n event.selectedRows[0].dataItem.isScheduleSelected = true;\n this.addEditForm.controls['payPeriodStartDate'].enable();\n this.addEditForm.controls['payPeriodEndDate'].enable();\n this.addEditForm.patchValue({ payrollSchedule: event.selectedRows[0].dataItem.id });\n this.fiscalYearDateRange();\n this.selectedElements.push(event.selectedRows[0].dataItem);\n }\n if (event.deselectedRows.length > 0) {\n event.deselectedRows[0].dataItem.isScheduleSelected = false;\n const index = this.selectedElements.indexOf(event.deselectedRows[0].dataItem);\n this.selectedElements.splice(index, 1);\n }\n if (this.selectedElements.length === 0) {\n this.scheduleSelected = false;\n this.isStartDateValid = true;\n this.isEndDateValid = true;\n this.addEditForm.patchValue({ payPeriodStartDate: null });\n this.addEditForm.patchValue({ payPeriodEndDate: null });\n this.addEditForm.controls['payPeriodStartDate'].disable();\n this.addEditForm.controls['payPeriodEndDate'].disable();\n }\n }\n\n editClick(formData: any, flag: boolean) {\n this.isAdjEdit = flag;\n this.editInvalidAdj.emit(flag);\n }\n\n onCodeChange(e: any, name: string) {\n if (e && e.length > 0) {\n this.addEditForm.controls[name].patchValue(e);\n this.addEditForm.controls[name].setErrors(null);\n }\n }\n\n fiscalYearDateRange() {\n const fiscalYear = Number(this.addEditForm.getRawValue().fiscalYear);\n this.minDate = new Date(fiscalYear - 1, 6, 1);\n this.maxDate = new Date(fiscalYear, 5, 30);\n }\n\n trimContent(data: any) {\n if (data.target.value) {\n const replaceInput = data.target.value.replace(/[^a-zA-Z]/g, '');\n this.addEditForm.controls.middleInitials.setValue(replaceInput);\n }\n }\n\n onLocSysChanges(e: any, name: string) {\n const id = e.id ? e.id : e.code;\n this.addEditForm.controls[name].patchValue(id);\n }\n\n setIntMaxVal(name) {\n if (this.addEditForm.get(name).value) {\n let value = this.addEditForm.get(name).value.toString();\n if (value.length > this.config.charLimit) {\n value = value.substr(0, this.config.charLimit);\n }\n const setValue = parseInt(value, 0);\n this.addEditForm.controls[name].setValue(setValue);\n }\n }\n\n setDecMaxVal(name) {\n if (this.addEditForm.get(name).value) {\n let value = this.addEditForm.get(name).value.toString();\n const char = name === 'employeeContribution' ? this.config.contrCharLimit : this.config.baseSalCharLimit;\n if (value.length > char) {\n value = value.substr(0, char);\n this.addEditForm.controls[name].setValue(parseFloat(value));\n }\n }\n }\n\n onCancel(formData: any): void {\n if (formData.dirty || this.isNew ? this.selectedElements.length > 0 : false) {\n this.isConfirmOpened = true;\n } else {\n this.isConfirmOpened = false;\n this.close();\n }\n }\n\n close() {\n this.selectedElements = [];\n this.isConfirmOpened = false;\n const payrollAdjId = this.isNew ? ((this.adjModelDataItem && this.adjModelDataItem.adjustmentImportId)\n ? this.adjModelDataItem.adjustmentImportId : 0) : this.payrollAdjId;\n this.closeAddEditForm.emit({ payrollAdjustmentsId: payrollAdjId });\n this.addEditForm = null;\n }\n\n onSave(e: any) {\n this.notificationService.setUpLoading(true);\n this.isProcessing = true;\n const adjInputData = this.prepareInputData(this.isNew);\n const inputData = { userInfo: this.usersService.UserInfo(), adjustment: adjInputData };\n this.adjustmentService.saveAdjustmentRecord(inputData, this.isNew)\n .subscribe(response => {\n if (response && response.statusCode === 200) {\n if (!this.isNew) {\n response.payrollAdjustmentsId = this.payrollAdjId;\n }\n this.saveResponse.emit(response);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.isProcessing = false;\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.isProcessing = false;\n this.notificationService.setErrorNotification();\n this.notificationService.setUpLoading(false);\n });\n }\n\n prepareInputData(isNew: boolean) {\n const adjustmentFormData = new SaveAdjustmentPayload();\n const record = this.addEditForm.getRawValue();\n const additionalData = this.selectedElements[0];\n const reasonCodes = record.reasonCode.map(item => item.id).join(',');\n adjustmentFormData.payrollAdjustmentsId = this.payrollAdjId ? this.payrollAdjId : 0;\n adjustmentFormData.ssn = record.fullSSN;\n adjustmentFormData.firstName = record.firstName;\n adjustmentFormData.lastName = record.lastName;\n adjustmentFormData.middleInitials = record.middleInitials;\n adjustmentFormData.systemCode = record.systemCode.code;\n adjustmentFormData.locationCode = record.locationCode.code;\n adjustmentFormData.reasonCodes = reasonCodes;\n adjustmentFormData.actualAnnualCompensation = record.actualAnnualCompensation;\n adjustmentFormData.employeeContribution = record.employeeContribution;\n adjustmentFormData.hoursWorked = record.hoursWorked;\n adjustmentFormData.standardHours = record.standardHours;\n adjustmentFormData.percentFullTime = record.percentFullTime;\n adjustmentFormData.payPeriodBaseSalary = record.payPeriodBaseSalary;\n adjustmentFormData.actualEarnableCompensation = record.actualEarnableCompensation;\n adjustmentFormData.payScheduleId = (this.adjModelDataItem && this.adjModelDataItem.fiscalYear > 2016) ? additionalData.id : null;\n if (isNew) {\n adjustmentFormData.ppedstart = record.payPeriodStartDate;\n adjustmentFormData.ppedend = record.payPeriodEndDate;\n } else {\n adjustmentFormData.id = this.adjRecordId;\n adjustmentFormData.payPeriodBeginningDate = this.isInvalid ? record.payPeriodStartDate : this.adjModelDataItem.dataItem.payPeriodBeginningDate;\n adjustmentFormData.payPeriodEndDate = record.payPeriodEndDate;\n adjustmentFormData.review = this.isInvalid ? this.reviewFlag : this.adjModelDataItem.dataItem.review;\n }\n return adjustmentFormData;\n }\n\n onStartDateChange(value: any) {\n if (this.adjModelDataItem && this.adjModelDataItem.fiscalYear > 2016) {\n if ((value && value.valueOf() > 0 && value >= this.minDate && value <= this.maxDate)) {\n if (this.addEditForm.value.payPeriodEndDate && value > this.addEditForm.value.payPeriodEndDate) {\n this.isStartDateValid = false;\n } else {\n this.isStartDateValid = true;\n this.isEndDateValid = true;\n this.scheduleSelected = true;\n if (this.reasonCode.length > 0) {\n this.addEditForm.controls['reasonCode'].setErrors(null);\n }\n }\n } else {\n this.isStartDateValid = false;\n }\n } else {\n this.isStartDateValid = true;\n this.scheduleSelected = true;\n if (this.reasonCode.length > 0) {\n this.addEditForm.controls['reasonCode'].setErrors(null);\n }\n }\n }\n\n onEndDateChange(value: any) {\n if (this.adjModelDataItem && this.adjModelDataItem.fiscalYear > 2016) {\n if ((value && value.valueOf() > 0 && value >= this.minDate && value <= this.maxDate)) {\n if (this.addEditForm.value.payPeriodStartDate && value < this.addEditForm.value.payPeriodStartDate) {\n this.isEndDateValid = false;\n } else {\n this.isEndDateValid = true;\n this.isStartDateValid = true;\n this.scheduleSelected = true;\n if (this.reasonCode.length > 0) {\n this.addEditForm.controls['reasonCode'].setErrors(null);\n }\n }\n } else {\n this.isEndDateValid = false;\n }\n } else {\n this.isEndDateValid = true;\n this.scheduleSelected = true;\n if (this.reasonCode.length > 0) {\n this.addEditForm.controls['reasonCode'].setErrors(null);\n }\n }\n }\n\n loadScheduleDetails(dataItem: any) {\n const obj = { userInfo: this.usersService.UserInfo(), id: dataItem.id };\n this.scheduleService.getScheduleEntries(obj).subscribe(response => {\n dataItem.isClicked = !dataItem.isClicked;\n if (response && response.success && response.message.length > 0) {\n this.scheduleEntry = response.message;\n this.scheduleDetailDialog = true;\n } else {\n this.notificationService.setErrorNotification();\n }\n this.isProcessing = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n dataItem.isClicked = !dataItem.isClicked;\n this.notificationService.setErrorNotification();\n this.notificationService.setUpLoading(false);\n });\n }\n\n}\n","
\n

{{ isNew ? 'Add New Record' : 'Edit Record' }}

\n
\n \n
0\" id=\"record-error\" class=\"bottom-margin-10\">\n

Errors:

\n
    \n
  • \n {{error}}\n
  • \n
\n
\n \n
0\" class=\"issue-container\" id=\"record-issue\">\n

Warnings:

\n
    \n
  • \n {{issue}}\n
  • \n
\n
\n \n
\n

Personal Details

\n
\n
\n
\n
\n
\n
\n \n {{ssnNumber}}\n \n \n \n
\n \n {{config.ValidSSNMsg}}\n \n {{config.InfoNotFoundMsg}}\n
\n
\n
\n \n {{adjData?.fiscalYear}}\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n {{adjData?.firstName}}\n \n
\n \n {{config.ValidFnameMsg}}\n \n
\n
\n
\n
\n \n {{adjData?.middleInitials}}\n \n
\n
\n
\n \n {{adjData?.lastName}}\n \n
\n \n {{config.ValidLnameMsg}}\n \n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n

Membership

\n
\n
\n
\n
\n
\n
\n
\n \n {{locationCode.name}}\n
\n
\n
\n
\n \n {{systemCode?.description}}\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n

Reason Code(s)

\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n

Schedule

\n
\n
2016\">\n
\n

\n \n \n \n \n
\n
\n
\n Schedule Name: \n {{ dataItem.payScheduleName }}\n
\n
\n
\n
\n Frequency: \n {{ dataItem.frequency }}\n
\n
\n
\n
\n Pay Count: \n {{ dataItem.payCount }}\n
\n
\n
\n
\n
\n \n \n
\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n
\n \n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n \n {{config.StartDateError}}\n \n
\n
\n
\n\n
\n
\n \n \n {{adjData?.payPeriodEndDate | date: 'MM/dd/yyyy'}}\n \n \n
\n \n {{config.EndDateError}}\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n

Pay

\n
\n
\n
\n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n
\n (Dollars\n only, no cents)*\n \n
\n \n \n
\n \n Max\n AAC limit is {{config.maxAEC}}\n {{config.InvalidAAC}}\n \n
\n
\n
\n (Dollars\n only, no cents)*\n \n
\n \n \n
\n \n Max\n AEC limit is {{config.maxAEC}}\n {{config.InvalidAEC}}\n \n
\n
\n
\n (Dollars\n and cents, with decimal)*\n \n
\n \n \n
\n \n {{config.InvalidContribution}}\n \n
\n
\n
\n (Dollars\n and cents, with decimal)*\n \n
\n \n
\n \n {{config.InvalidPPBaseSalary}}\n \n
\n
\n
\n (To one decimal\n point, ex. 80.0)*\n \n
\n \n \n
\n \n {{config.InvalidHoursWork}}\n \n
\n
\n
\n (To one\n decimal point, ex. 80.0)*\n \n
\n \n \n
\n \n {{config.InvalidStandardHours}}\n \n
\n
\n
\n \n (No decimal or percent sign)*\n %\n \n
\n \n \n
\n \n {{config.InvalidFTRange}}\n {{config.InvalidFT}}\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
#PPED Pay Date
\n {{row_no + 1}}\n {{item.payPeriodEndDate | date: 'MM/dd/yyyy'}}{{item.payDate | date: 'MM/dd/yyyy'}}
\n
\n
\n\n\n\n

All unsaved changes will be lost.
Are you sure you want to\n continue?

\n \n \n \n \n
\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { AdjustmentService } from '../../../../shared/services/adjustments/adjustment.service';\nimport { UsersService } from '../../../../shared/services/common/users.service';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { Utility } from 'src/app/shared/utility';\n\n@Component({\n selector: 'app-corresponding-view',\n templateUrl: './corresponding-view.component.html',\n styleUrls: ['./corresponding-view.component.css']\n})\nexport class CorrespondingViewComponent implements OnInit {\n gridData = [];\n\n @Input()\n set data(dataItem: any) {\n if (dataItem) {\n this.getCorrespondingDetails(dataItem);\n }\n }\n\n constructor(\n private usersService: UsersService,\n private adjustmentService: AdjustmentService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit(): void {\n }\n\n getCorrespondingDetails(dataItem: any) {\n this.notificationService.setUpLoading(true);\n const empData = {\n Ssn: this.usersService.encrypt(dataItem.ssn, 'post'), LocationCode: dataItem.locationCode,\n EmployerId: dataItem.employeeId, PayPeriodEndDate: Utility.formatDate(dataItem.payPeriodEndDate)\n }\n const inputData = {\n userInfo: this.usersService.UserInfo(), employmentData: empData\n };\n this.adjustmentService.getCorrespondingAdjDetails(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n if (response.data) {\n response.data.forEach((element: any) => {\n element.payPeriodEndDate = new Date(element.payPeriodEndDate);\n element.formatAmount = Utility.checkNegativeAmount(element.contributionAmount);\n element.payrollType = 'Payroll';\n });\n this.gridData = response.data;\n if (this.gridData && this.gridData.length === 0) {\n this.gridData.unshift({\n fiscalYear: '--', payPeriodEndDate: null, contributionAmount: null, hoursWorked: '--', standardHours: '--',\n percentage: '--', actualAnnualCompensation: null, actualEarnableCompensation: null, payrollType: 'Payroll'\n });\n }\n dataItem.contributionAmount = dataItem.employeeContribution;\n dataItem.percentage = dataItem.percentFullTime;\n this.gridData[1] = dataItem;\n }\n } else if (response && response.statusCode === 204) {\n this.gridData = [];\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","
\n \n \n \n \n
\n
\n
\n Type: \n {{ dataItem.payrollType }}\n
\n
\n
\n
\n Fiscal Year: \n {{ dataItem.fiscalYear }}\n
\n
\n
\n
\n PPED: \n \n {{ dataItem.payPeriodEndDate | date: 'MM/dd/yyyy'}}\n \n \n --\n \n \n
\n
\n
\n
\n Contribution: \n dataItem.contributionAmount ? 'neg-amount' : ''\"\n *ngIf=\"dataItem.contributionAmount; else noContribution\">\n {{ dataItem.formatAmount }}\n \n \n --\n \n \n
\n
\n
\n
\n HW: \n {{ dataItem.hoursWorked}}\n
\n
\n
\n
\n SH: \n {{ dataItem.standardHours}}\n
\n
\n
\n
\n PCT: \n {{ dataItem.percentage}}\n
\n
\n
\n
\n AAComp: \n \n {{ dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}\n \n \n --\n \n \n
\n
\n
\n
\n AEComp: \n \n {{ dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}\n \n \n --\n \n \n
\n
\n
\n
\n
\n \n \n \n\n \n \n \n
\n \n {{dataItem.fiscalYear}}\n \n
\n
\n
\n\n \n \n \n
\n {{dataItem.payPeriodEndDate | date: 'MM/dd/yyyy'}}\n
\n \n
\n --\n
\n
\n
\n
\n\n \n \n \n
\n dataItem.contributionAmount ? 'neg-amount' : ''\">\n {{dataItem.formatAmount}}\n \n
\n \n
\n --\n
\n
\n
\n
\n\n \n \n\n \n \n\n \n \n\n \n \n \n
\n {{dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}
\n \n
\n --\n
\n
\n
\n
\n\n \n \n \n
\n {{dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}
\n \n
\n --\n
\n
\n
\n
\n
\n
\n","import { Utility } from './../../../shared/utility';\nimport { EditAdjRecords } from './../../../models/adjustment';\nimport { ScheduleService } from './../../../shared/services/pay-schedules/schedule.service';\nimport { AuthService } from './../../../shared/services/auth/auth.service';\nimport { AdjustmentService } from 'src/app/shared/services/adjustments/adjustment.service';\nimport { UsersService } from './../../../shared/services/common/users.service';\nimport { ReadConfigService } from './../../../shared/services/common/read-config.service';\nimport { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { UploadEvent, SuccessEvent, SelectEvent, UploadProgressEvent } from '@progress/kendo-angular-upload';\nimport { AdjustmentFileData, AdjustmentRecord } from 'src/app/models/adjustment';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { PanelBarExpandMode } from '@progress/kendo-angular-layout';\n\n@Component({\n selector: 'app-create-adjustment-report',\n templateUrl: './create-adjustment-report.component.html',\n styleUrls: ['./create-adjustment-report.component.css']\n})\nexport class CreateAdjustmentReportComponent implements OnInit {\n adjustmentInputData: any;\n summaryData: any;\n config: any;\n operators: any;\n adjModelDataItem: any;\n saveForLaterMsg: any;\n payrollAdjId: any;\n editAdjDataItem: any;\n fileErrorMsg: any;\n ssnValue: any;\n yearArray: any;\n allFiscalYears: any;\n selectedFYSchedules: any;\n gridData: any;\n noContectMsg: any;\n selectedElements = [];\n isError = false;\n savedAdjustmentId: number;\n adjustmetRecordId: number;\n ssn: number;\n adjutmentsId: number;\n submitAdjDialog: boolean;\n loading: boolean;\n createAdjDialog: boolean;\n isNew: boolean;\n saveForLaterDialog: boolean;\n isFileError: boolean;\n isNextVisible: boolean;\n ssnVerifiationDialog: boolean;\n isEmpDetailValid = false;\n maxErrorExceeded = false;\n searchBtnEnable: boolean;\n empNotFound: boolean;\n isProcessing = false;\n disableClose = false;\n personalDetailsForm: UntypedFormGroup;\n ssnMask = '000-00-0000';\n ssnPattern = /^(?!666|000\\d{2})\\d{3}(?!00)\\d{2}(?!0{4})\\d{4}$/;\n fileNameErrorMsg = '';\n msg = '';\n inputData: { userInfo: any; };\n readonly uploadRemoveUrl: string = 'removeUrl';\n uploadSaveUrl: string;\n enableMasterDeleteBtn: boolean;\n enableInvalidDeleteBtn: boolean;\n deleteMasterAdjDialog: boolean;\n\n isEditInvalidAdj: boolean;\n editAdjData: any;\n\n selectedData = [];\n panelbarData = [\n { panel: 0, name: 'Invalid', load: true, expanded: false, id: 'invalid' },\n { panel: 1, name: 'Errored', load: true, expanded: false, id: 'error' },\n { panel: 2, name: 'Validated', load: true, expanded: false, id: 'valid' }\n ];\n expandMode = PanelBarExpandMode.Multiple;\n invalidAdjData = [];\n errorAdjData = [];\n validAdjData = [];\n @Input() set adjustmentDataItem(adjData: any) {\n this.editAdjDataItem = {};\n if (adjData && adjData.isRejectedRecord) {\n this.editAdjDataItem = adjData;\n } else {\n this.editAdjDataItem = (adjData && adjData.action === 'edit') ? adjData : '';\n }\n }\n @Output() isDataSaved: EventEmitter = new EventEmitter();\n\n constructor(\n private router: Router,\n private authService: AuthService,\n private usersService: UsersService,\n private adjustmentService: AdjustmentService,\n private scheduleService: ScheduleService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit() {\n this.config = this.readConfigService.getAdjustmentv2Text();\n this.operators = this.authService.getAccessOperations(2);\n this.notificationService.setUpLoading(true);\n this.inputData = {\n userInfo: this.usersService.UserInfo()\n };\n this.getAdjustmentLocSys();\n this.getAdjustmentRecords(false);\n this.uploadSaveUrl = this.adjustmentService.getAdjUploadUrl();\n this.panelbarData.forEach((element: any) => {\n if (element.name === 'Validated') {\n element.expanded = true;\n }\n });\n }\n\n onPanelChange(event: any): void {\n if (event) {\n const currPanel = this.panelbarData[event.items.find((item: any) => item.selected).id];\n if (currPanel.load) {\n const data = JSON.parse(JSON.stringify(currPanel));\n // TODO LOAD REQUIRED DATA\n // this.notificationService.setUpLoading(true);\n currPanel.load = false;\n }\n }\n }\n\n getPersonalDetailForm() {\n this.personalDetailsForm = new UntypedFormGroup({\n ssn: new UntypedFormControl('', [Validators.required, Validators.pattern(this.ssnPattern)]),\n fiscalYear: new UntypedFormControl('', [Validators.required]),\n });\n }\n\n getAdjustmentLocSys() {\n this.adjustmentService.getAdjustmentInputs(this.inputData).subscribe(response => {\n if (response && response.success) {\n if (response.locations && response.locations.length > 0) {\n response.locations.forEach(element => {\n element.name = element.code.concat('-', element.name);\n });\n }\n this.adjustmentInputData = response;\n } else {\n this.notificationService.setErrorNotification();\n this.notificationService.setUpLoading(false);\n }\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n getAdjustmentRecords(isCreated: any) {\n this.summaryData = {};\n const adjustmentRecordId = this.editAdjDataItem.isRejectedRecord ? this.savedAdjustmentId = this.editAdjDataItem.adjId : (this.editAdjDataItem && this.editAdjDataItem.action === 'edit') ?\n this.savedAdjustmentId = this.editAdjDataItem.dataItem.id : (isCreated ? this.savedAdjustmentId : 0);\n const inputData = { userInfo: this.usersService.UserInfo(), adjustmentId: adjustmentRecordId };\n this.adjustmentService.getAdjustmentV2Records(inputData).subscribe(response => {\n if (response && response.statusCode === 200 && response.adjMetaData) {\n if (response.erroredAdjustment && response.erroredAdjustment.length > 0) {\n this.adjutmentsId = response.erroredAdjustment[0].payrollAdjustmentsId;\n } else if (response.invalidAdjustment && response.invalidAdjustment.length > 0) {\n this.adjutmentsId = response.invalidAdjustment[0].payrollAdjustmentsId;\n } else {\n this.adjutmentsId = response.validAdjustment[0].payrollAdjustmentsId;\n }\n this.summaryData = {\n adjustmentId: this.adjutmentsId,\n totalRecords: response.adjMetaData[0].totalRecords,\n totalErrorRecords: response.adjMetaData[0].totalErrorRecords,\n totalContributions: response.adjMetaData[0].totalContributions,\n formatContribution: Utility.checkNegativeAmount(response.adjMetaData[0].totalContributions)\n };\n if (response.invalidAdjustment && response.invalidAdjustment.length > 0) {\n this.isError = response.invalidAdjustment.some(x => x.errorCount > 0);\n response.invalidAdjustment.forEach((element: any) => {\n element.lastFourSSN = element.ssn.substr(5);\n });\n this.invalidAdjData = response.invalidAdjustment;\n this.panelbarData[0].expanded = true;\n } else {\n this.invalidAdjData = [];\n }\n\n if (response.erroredAdjustment && response.erroredAdjustment.length > 0) {\n this.isError = response.erroredAdjustment.some(x => x.errorCount > 0);\n response.erroredAdjustment.forEach((element: any) => {\n element.lastFourSSN = element.ssn.substr(5);\n });\n this.errorAdjData = response.erroredAdjustment;\n this.panelbarData[1].expanded = true;\n } else {\n this.errorAdjData = [];\n }\n\n if (response.validAdjustment && response.validAdjustment.length > 0) {\n this.isError = false;\n response.validAdjustment.forEach((element: any) => {\n element.lastFourSSN = element.ssn.substr(5);\n });\n this.validAdjData = response.validAdjustment;\n this.panelbarData[2].expanded = true;\n } else {\n this.validAdjData = [];\n }\n } else if (response && response.statusCode === 204) {\n this.savedAdjustmentId = 0;\n this.invalidAdjData = [];\n this.errorAdjData = [];\n this.validAdjData = [];\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n openUploadDialog() {\n this.createAdjDialog = true;\n }\n\n uploadEventHandler(e: UploadEvent) {\n const data = new AdjustmentFileData();\n data.userInfo = JSON.stringify(this.usersService.UserInfo());\n e.data = data;\n const token = sessionStorage.getItem('access_token');\n e.headers = e.headers.append('Authorization', 'Bearer ' + token);\n }\n\n uploadProgressEventHandler(e: UploadProgressEvent) {\n this.disableClose = true;\n }\n\n uploadSuccess(e: SuccessEvent) {\n const response = e.response;\n if (response && response.body && response.body.statusCode === 200) {\n this.isFileError = false;\n if (response.body.maxErrorExceeded) {\n this.maxErrorExceeded = true;\n this.adjustmetRecordId = response.body.payrollAdjId;\n } else {\n this.uploadComplete(response.body);\n }\n } else if (response && response.body && response.body.statusCode === 400) {\n this.createAdjDialog = false;\n this.fileErrorMsg = response.body.messageObj;\n this.isFileError = true;\n } else {\n this.notificationService.setErrorNotification();\n }\n this.disableClose = false;\n this.notificationService.setUpLoading(false);\n }\n\n continueUpload(action: any) {\n if (action === 'yes') {\n this.loading = true;\n this.savedAdjustmentId = this.adjustmetRecordId;\n this.uploadComplete('');\n this.notificationService.setUpLoading(true);\n this.getAdjustmentRecords(true);\n } else {\n this.deleteAdjReport();\n }\n this.maxErrorExceeded = false;\n this.createAdjDialog = false;\n this.loading = false;\n }\n\n selectEventHandler(e: SelectEvent) {\n const fileName = (e.files[0].name).substring(0, e.files[0].name.lastIndexOf('.') + 1);\n if (fileName.length > 200) {\n this.fileNameErrorMsg = this.config.MaxAdjFileNameErrorMsg;\n this.notificationService.setUpNotification({ success: false, message: this.fileNameErrorMsg });\n e.preventDefault();\n }\n }\n\n uploadComplete(uploadValue: any) {\n if (!this.maxErrorExceeded && uploadValue.payrollAdjId) {\n this.savedAdjustmentId = uploadValue.payrollAdjId;\n this.getAdjustmentRecords(true);\n }\n this.createAdjDialog = false;\n this.disableClose = false;\n }\n\n errorEventHandler() {\n this.msg = this.config.ErrorMessage;\n this.notificationService.setUpNotification({ success: false, message: this.msg });\n this.notificationService.setUpLoading(false);\n this.createAdjDialog = false;\n }\n\n closeCreateAdjDialog() {\n this.createAdjDialog = false;\n this.disableClose = false;\n }\n\n displayNotification(response: any, isCreated = false) {\n this.notificationService.setUpLoading(true);\n this.editAdjDataItem = {};\n this.isDataSaved.emit(true);\n this.savedAdjustmentId = response.payrollAdjustmentsId ? response.payrollAdjustmentsId : 0;\n if (response && response.message) {\n this.notificationService.setUpNotification({ success: true, message: response.message });\n }\n this.isNextVisible = false;\n this.getAdjustmentRecords(isCreated);\n }\n\n onAddEditClose(response: any, isCreated = false) {\n this.savedAdjustmentId = response.payrollAdjustmentsId ? response.payrollAdjustmentsId : 0;\n this.isNextVisible = false;\n this.getAdjustmentRecords(isCreated);\n }\n\n getFiscalYearList() {\n this.yearArray = [];\n this.allFiscalYears = [];\n const cfy: number = new Date().getFullYear() + (new Date().getMonth() + 1 > 6 ? 1 : 0);\n for (let i = this.config.minYear; i <= cfy; i++) {\n this.yearArray.push(i);\n }\n const arrOfStr = this.yearArray.map(num => {\n return String(num);\n });\n this.yearArray = arrOfStr.sort((a, b) => b - a);\n this.allFiscalYears = arrOfStr.slice();\n }\n\n addHandler(value: any) {\n this.getFiscalYearList();\n this.getPersonalDetailForm();\n this.isEditInvalidAdj = false;\n this.ssnVerifiationDialog = true;\n this.isEmpDetailValid = false;\n this.isNew = true;\n }\n\n handleFilter(value: any) {\n this.allFiscalYears = value ? this.yearArray.filter((s: any) => s.indexOf(value) !== -1)\n : this.yearArray;\n }\n\n onNewSsnChange(input: any) {\n this.isEmpDetailValid = false;\n this.ssnValue = input ? input.trim() : '';\n if (this.ssnValue.length === 9) {\n if (this.ssnPattern.test(this.ssnValue)) {\n this.searchBtnEnable = false;\n this.ssn = this.ssnValue;\n }\n }\n this.empNotFound = false;\n }\n\n FYChange(value: any) {\n if (value && this.personalDetailsForm.value.fiscalYear) {\n this.isEmpDetailValid = false;\n this.searchBtnEnable = false;\n this.selectedElements = [];\n }\n }\n\n async getFYSchedules(fy: number) {\n const inputData = { userInfo: this.usersService.UserInfo(), fiscalYear: +fy };\n await this.scheduleService.getScheduleList(inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200 && response.result) {\n if (response.result.schedules && (response.result.schedules.length > 0 || response.result.schedules.length === 0)) {\n this.selectedFYSchedules = response.result;\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n this.isEmpDetailValid = true;\n this.isProcessing = false;\n this.searchBtnEnable = true;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.isProcessing = false;\n this.searchBtnEnable = false;\n this.notificationService.setErrorNotification();\n this.notificationService.setUpLoading(false);\n });\n }\n\n searchEmployeeSsn() {\n this.isProcessing = true;\n const selectedFY = this.personalDetailsForm.value.fiscalYear;\n const inputData = { userInfo: this.usersService.UserInfo(), ssn: this.usersService.encrypt(this.ssn, 'post'), fiscalYear: selectedFY };\n this.adjustmentService.getEmployeeInfo(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n if (data.result.length > 0) {\n this.gridData = data.result;\n } else {\n this.gridData = [];\n }\n } else if (data && data.statusCode === 204) {\n this.empNotFound = true;\n this.noContectMsg = data.message;\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.isProcessing = false;\n this.searchBtnEnable = true;\n this.notificationService.setErrorNotification();\n }, () => {\n this.getFYSchedules(selectedFY);\n }\n );\n }\n\n editHandler(data: any, isInvalid: boolean) {\n if (!isInvalid) {\n const fy = data.event.dataItem.fiscalYear;\n if (fy > 2016) {\n const inputData = { userInfo: this.usersService.UserInfo(), fiscalYear: fy };\n this.scheduleService.getScheduleList(inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200 && response.result && response.result.schedules.length > 0) {\n this.selectedFYSchedules = response.result;\n this.adjModelDataItem = new AdjustmentRecord();\n this.adjModelDataItem = data.event;\n this.adjModelDataItem.fiscalYearScheduleList = this.selectedFYSchedules;\n this.adjModelDataItem.isInvalid = isInvalid;\n this.isNew = false;\n this.isNextVisible = true;\n } else {\n this.notificationService.setErrorNotification('No schedule found');\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setErrorNotification();\n this.notificationService.setUpLoading(false);\n });\n } else {\n this.adjModelDataItem = new AdjustmentRecord();\n this.adjModelDataItem = data.event;\n this.adjModelDataItem.fiscalYearScheduleList = [];\n this.adjModelDataItem.isInvalid = isInvalid;\n this.isNew = false;\n this.isNextVisible = true;\n }\n } else {\n this.adjModelDataItem = new AdjustmentRecord();\n this.adjModelDataItem = data.event;\n this.adjModelDataItem.fiscalYearScheduleList = !isInvalid ? this.selectedFYSchedules : [];\n this.adjModelDataItem.isInvalid = isInvalid;\n this.isNew = false;\n this.isNextVisible = true;\n }\n this.editAdjData = null;\n }\n\n editInvalidAdjRecords(value: boolean) {\n this.isEditInvalidAdj = value;\n this.getFiscalYearList();\n this.getPersonalDetailForm();\n this.ssnVerifiationDialog = true;\n this.isEmpDetailValid = false;\n }\n\n onEditNextClick(formData: any) {\n this.editAdjData = new EditAdjRecords();\n this.editAdjData = this.selectedElements[0];\n this.editAdjData.fullSSN = formData.value.ssn;\n this.editAdjData.fiscalYear = formData.value.fiscalYear;\n this.editAdjData.fiscalYearScheduleList = this.selectedFYSchedules;\n this.ssnVerifiationDialog = false;\n }\n\n onSelectionChange(event: any) {\n if (event.selectedRows.length > 0) {\n this.selectedElements.push(event.selectedRows[0].dataItem);\n }\n if (event.deselectedRows.length > 0) {\n const index = this.selectedElements.indexOf(event.deselectedRows[0].dataItem);\n this.selectedElements.splice(index, 1);\n }\n }\n\n onCancelClick(formData: any): void {\n this.ssnVerifiationDialog = false;\n this.isEmpDetailValid = false;\n this.isEditInvalidAdj = false;\n this.selectedElements = [];\n }\n\n onNextClick(formData: any) {\n this.adjModelDataItem = new AdjustmentRecord();\n this.adjModelDataItem.fiscalYear = formData.value.fiscalYear;\n this.adjModelDataItem = this.selectedElements[0];\n this.adjModelDataItem.adjustmentImportId = this.summaryData.adjustmentId;\n this.adjModelDataItem.fullSSN = formData.value.ssn;\n this.adjModelDataItem.fiscalYearScheduleList = this.selectedFYSchedules;\n this.ssnVerifiationDialog = false;\n this.isNextVisible = true;\n }\n\n deleteAdjReport() {\n this.notificationService.setUpLoading(true);\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n adjustmentId: this.adjustmetRecordId\n };\n this.adjustmentService.deleteAdjReport(inputData).subscribe(response => {\n if (response && response.success) {\n this.getAdjustmentRecords(true);\n this.notificationService.setUpNotification(response);\n } else if (response && !response.success) {\n this.notificationService.setUpNotification(response);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n deleteSelectedRecords(value: any) {\n this.deleteMasterAdjDialog = true;\n this.selectedData = value.selectedRecords;\n }\n\n deleteMasterAdjRecord() {\n this.loading = true;\n const allAdjRecordIds = this.selectedData.map(x => x.adjustmentRecordIds).join(\",\")\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n adjustmentId: this.savedAdjustmentId,\n adjRecordIds: allAdjRecordIds\n };\n this.adjustmentService.deleteAdjRecord(inputData).subscribe(response => {\n if (response && response.success) {\n this.deleteMasterAdjDialog = false;\n response.payrollAdjustmentsId = this.summaryData.adjustmentId;\n this.enableMasterDeleteBtn = false;\n this.displayNotification(response, true);\n } else {\n this.deleteMasterAdjDialog = false;\n this.notificationService.setUpNotification({ success: false, message: response.message });\n }\n this.loading = false;\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.loading = false;\n this.deleteMasterAdjDialog = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n onSave4LaterClick() {\n this.saveForLaterMsg = this.config.SaveForLaterMsg.replace('{0}', this.summaryData.adjustmentId);\n this.saveForLaterDialog = true;\n }\n\n onSaveAdjustmentClick() {\n this.loading = true;\n const response = { success: true, message: 'Adjustment is successfully Saved.' };\n setTimeout(() => {\n this.saveForLaterDialog = false;\n this.loading = false;\n }, 500);\n this.displayNotification(response, false);\n }\n\n submitAdjustment() {\n this.loading = true;\n const inputData = { userInfo: this.usersService.UserInfo(), adjustmentId: this.summaryData.adjustmentId };\n this.adjustmentService.submitV2Adjustments(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n this.submitAdjDialog = false;\n this.displayNotification(response, false);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.loading = false;\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.loading = false;\n this.submitAdjDialog = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","
\n
\n
\n
\n
\n \n
\n \n
\n
\n
Adjustment ID
\n
{{summaryData?.adjustmentId}}
\n -\n
\n
\n
Total Records
\n
{{summaryData?.totalRecords}}
\n -\n
\n
\n
Total Errored Records
\n
{{summaryData?.totalErrorRecords}}\n
\n -\n
\n
\n
Total Contributions
\n
\n summaryData?.totalContributions ? 'neg-amount' : ''\">{{summaryData?.formatContribution}}\n
\n -\n
\n
\n \n
\n

Error! The following error was detected in the uploaded adjustment file:
\n Column: {{fileErrorMsg.column}}
\n Row: {{fileErrorMsg.row}}
\n Field Value: {{fileErrorMsg.value}}

\n
\n
\n \n \n
\n
\n\n \n
\n \n \n 0\">\n \n \n \n \n \n \n \n \n \n 0\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n \n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n \n
\n
\n \n \n
\n\n\n\n Add New Record\n
\n
\n

Employee Details

\n
\n
\n
\n \n \n \n \n \n \n
\n \n {{config.ValidSSNMsg}}\n \n
\n
\n
\n
\n {{noContectMsg}}\n
\n\n
\n \n
\n

Employment Information

\n
\n

\n
\n \n \n \n \n
\n \n \n
\n
\n
\n \n \n \n
\n \n {{dataItem.firstName}}\n \n
\n
\n
\n \n \n \n
\n \n {{dataItem.mi}}\n \n
\n
\n
\n \n \n \n
\n \n {{dataItem.lastName}}\n \n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n\n\n\n
\n \n \n \n \n
\n
\n\n\n\n

\n \n \n \n \n
\n\n\n\n

Are you sure you want to submit this Adjustment?

\n \n \n \n \n
\n\n\n\n

{{config.ContinueAdjMessage}}

\n \n \n \n \n
\n\n\n\n

{{config.DeleteSelectedSSNMsg}}

\n

{{config.DeleteAdjRecordMsg}}

\n \n \n \n \n
\n","import { Utility } from './../../../../../shared/utility';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RowArgs } from '@progress/kendo-angular-grid';\nimport { State } from '@progress/kendo-data-query';\nimport { AdjustmentService } from 'src/app/shared/services/adjustments/adjustment.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\n\n@Component({\n selector: 'app-error-detail-view',\n templateUrl: './error-detail-view.component.html',\n styleUrls: ['./error-detail-view.component.css']\n})\nexport class ErrorDetailViewComponent implements OnInit {\n isDisabled: boolean;\n operators: any;\n adjustmentId: any;\n selectedSSN: any;\n isReview: boolean;\n config: any;\n selectedData = [];\n gridData = [];\n enableChildDeleteBtn: boolean;\n loading: boolean;\n deleteRecordDialog: boolean;\n reasonCodesList: any;\n isClicked = false;\n adjRecord: any;\n isRowSelected: (e: RowArgs) => boolean;\n gridState: State = {\n sort: [],\n take: 10,\n skip: 0\n };\n\n @Input()\n set accessOperators(value: any) {\n if (value) {\n this.operators = value;\n }\n }\n @Input()\n set data(dataItem: any) {\n if (dataItem) {\n this.adjustmentId = dataItem.payrollAdjustmentsId;\n this.selectedSSN = dataItem.ssn;\n this.isReview = dataItem.reviewCount > 0;\n this.getAdjustmentV2Details(dataItem);\n }\n }\n @Input() set adjustmentInputs(inputData: any) {\n if (inputData) {\n const newArray = inputData.reasonCodes.map(item => ({\n ...item,\n reasonCode: item.id + '-' + item.reason\n }));\n this.reasonCodesList = newArray;\n }\n }\n @Input()\n set disableChild(value: boolean) {\n this.isDisabled = value;\n }\n @Output() editAction: EventEmitter = new EventEmitter();\n @Output() childDeletedRecord: EventEmitter = new EventEmitter();\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private adjustmentService: AdjustmentService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit(): void {\n this.config = this.readConfigService.getAdjustmentv2Text();\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n }\n\n getAdjustmentV2Details(dataItem: any) {\n this.notificationService.setUpLoading(true);\n const inputData = {\n userInfo: this.usersService.UserInfo(), ssn: this.usersService.encrypt(dataItem.ssn, 'post'), adjustmentId: dataItem.payrollAdjustmentsId,\n adjustmentType: 'errored'\n };\n this.adjustmentService.getAdjustmentV2Details(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n if (response.adjustmentsBySsn && response.adjustmentsBySsn.length > 0) {\n response.adjustmentsBySsn.forEach((element: any) => {\n element.payPeriodEndDate = new Date(element.payPeriodEndDate);\n element.payPeriodBeginningDate = new Date(element.payPeriodBeginningDate);\n element.formatAmount = Utility.checkNegativeAmount(element.employeeContribution);\n element.lastFourSSN = element.ssn.substr(5);\n element.payrollType = 'Adjustment'\n });\n this.gridData = response.adjustmentsBySsn;\n } else {\n this.gridData = [];\n }\n } else if (response && response.statusCode === 204) {\n this.gridData = [];\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n onSelectionChange(event: any) {\n if (this.selectedData.length === 0 && event.ctrlKey === undefined) {\n if (event.selectedRows.length > 0) {\n this.selectedData = [];\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (event.deselectedRows.length > 0) {\n this.selectedData = [];\n }\n } else {\n if (event.selectedRows.length > 0) {\n if (event.selectedRows.length > 1) {\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (this.selectedData[0] !== event.selectedRows[0].dataItem) {\n this.selectedData.push(event.selectedRows[0].dataItem);\n }\n } else if (event.deselectedRows.length > 0) {\n if (event.deselectedRows.length > 1) {\n event.deselectedRows.filter((element: any) => {\n if (this.selectedData.indexOf(element.dataItem) > -1) {\n const index = this.selectedData.indexOf(element.dataItem);\n this.selectedData.splice(index, 1);\n }\n });\n } else {\n const index = this.selectedData.indexOf(event.deselectedRows[0].dataItem);\n this.selectedData.splice(index, 1);\n }\n }\n }\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n this.enableChildDeleteBtn = this.selectedData && this.selectedData.length > 0;\n }\n\n editHandler(data: any) {\n data.isClicked = !data.isClicked;\n this.editAction.emit({ event: data, isEditClicked: true });\n }\n\n openRecord(record: any, isClicked: boolean) {\n this.isClicked = isClicked;\n const reasonCodeArray = record.reasonCodes.split(',').map(code => code.trim());\n const array2Integers = reasonCodeArray.map(item => parseInt(item, 10));\n const filteredRecords = this.reasonCodesList.filter(item => array2Integers.includes(item.id));\n this.adjRecord = record;\n this.adjRecord.reasonCodeArray = filteredRecords;\n }\n\n isDialogClosed(isClosed: boolean) {\n this.isClicked = isClosed;\n }\n\n deleteRecord() {\n this.loading = true;\n const allAdjRecordIds = this.selectedData.map(x => x.id).join(\",\")\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n adjustmentId: this.adjustmentId,\n adjRecordIds: allAdjRecordIds\n };\n this.adjustmentService.deleteAdjRecord(inputData).subscribe(response => {\n if (response && response.success) {\n this.deleteRecordDialog = false;\n this.enableChildDeleteBtn = false;\n const dataItem = { payrollAdjustmentsId: this.adjustmentId, ssn: this.selectedSSN };\n this.childDeletedRecord.emit({ payrollAdjustmentsId: dataItem.payrollAdjustmentsId });\n this.notificationService.setUpNotification({ success: true, message: response.message });\n } else {\n this.deleteRecordDialog = false;\n this.notificationService.setErrorNotification();\n }\n this.loading = false;\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.loading = false;\n this.deleteRecordDialog = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","\n
\n \n \n \n
\n
\n \n
\n
\n

Add/Edit adjustment will\n not be available on Mobile Devices

\n
\n
\n
\n\n \n \n \n
\n
\n
\n Fiscal Year: \n {{ dataItem.fiscalYear }}\n
\n
\n
\n
\n PPED: \n {{ dataItem.payPeriodEndDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n
\n Contribution: \n dataItem.employeeContribution ? 'neg-amount' : ''\">\n {{ dataItem.formatAmount }}\n
\n
\n
\n
\n HW: \n {{ dataItem.hoursWorked}}\n
\n
\n
\n
\n SH: \n {{ dataItem.standardHours}}\n
\n
\n
\n
\n PCT: \n {{ dataItem.percentFullTime}}\n
\n
\n
\n
\n AAComp: \n {{ dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}\n
\n
\n
\n
\n AEComp: \n {{ dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}\n
\n
\n
\n
\n Reason Code: \n {{ dataItem.reasonCodes}}\n
\n
\n
\n
\n Error: \n \n
\n
\n
\n
\n Warning: \n \n
\n
\n
\n
\n
\n\n \n \n
\n
\n \n
\n
\n
\n\n \n \n 0\">\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n\n \n \n \n
\n \n \n \n \n
\n
\n
\n\n \n \n \n
\n \n {{dataItem.fiscalYear}}\n \n
\n
\n
\n\n \n \n \n \n \n \n\n \n \n \n
\n dataItem.employeeContribution ? 'neg-amount' : ''\">\n {{dataItem.formatAmount}}\n \n
\n
\n
\n\n \n \n\n \n \n\n \n \n\n \n \n \n
{{dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n\n \n \n \n
{{dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n\n \n \n \n
\n \n
\n
\n
\n\n \n \n \n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n\n\n\n
\n
{{config.DeleteAdjRecordMsg}}\n
\n \n {{config.DeleteLastAdjRecordMsg}}\n Do you want to continue? \n \n
\n \n \n \n \n
\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { RowArgs } from '@progress/kendo-angular-grid';\nimport { State } from '@progress/kendo-data-query';\n\n@Component({\n selector: 'app-error-grid',\n templateUrl: './error-grid.component.html',\n styleUrls: ['./error-grid.component.css']\n})\nexport class ErrorGridComponent implements OnInit {\n\n selectedData = [];\n gridView = [];\n operators: any;\n enableErrorDeleteBtn: boolean;\n buttonCount = 5;\n adjustmentInputData: any;\n expandedDetailKeys = [];\n gridState: State = {\n sort: [],\n take: 10,\n skip: 0\n };\n\n @Input() set errorAdjustmentData(data: any) {\n if (data) {\n this.loadErrorGridData(data);\n }\n }\n @Input() set accessOperators(operator: any) {\n if (operator) {\n this.operators = operator;\n }\n }\n @Input() set adjustmentInputs(inputData: any) {\n if (inputData) {\n this.getReasonCode(inputData);\n }\n }\n @Output() deleteAction: EventEmitter = new EventEmitter();\n @Output() editAction: EventEmitter = new EventEmitter();\n @Output() childDeletedRecord: EventEmitter = new EventEmitter();\n isRowSelected: (e: RowArgs) => boolean;\n\n constructor() { }\n\n ngOnInit(): void {\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n }\n\n getReasonCode(Input: any) {\n this.adjustmentInputData = Input;\n }\n\n loadErrorGridData(dataSet: any) {\n this.gridView = dataSet;\n this.enableErrorDeleteBtn = false;\n this.expandedDetailKeys = [];\n }\n\n onErrorMasterSelectionChange(event: any) {\n if (this.selectedData.length === 0 && event.ctrlKey === undefined) {\n if (event.selectedRows.length > 0) {\n this.selectedData = [];\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (event.deselectedRows.length > 0) {\n this.selectedData = [];\n }\n } else {\n if (event.selectedRows.length > 0) {\n if (event.selectedRows.length > 1) {\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (this.selectedData[0] !== event.selectedRows[0].dataItem) {\n this.selectedData.push(event.selectedRows[0].dataItem);\n }\n } else if (event.deselectedRows.length > 0) {\n if (event.deselectedRows.length > 1) {\n event.deselectedRows.filter((element: any) => {\n if (this.selectedData.indexOf(element.dataItem) > -1) {\n const index = this.selectedData.indexOf(element.dataItem);\n this.selectedData.splice(index, 1);\n }\n });\n } else {\n const index = this.selectedData.indexOf(event.deselectedRows[0].dataItem);\n this.selectedData.splice(index, 1);\n }\n }\n }\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n this.enableErrorDeleteBtn = this.selectedData && this.selectedData.length > 0;\n }\n\n isParentSelected(dataItem: any): boolean {\n return this.selectedData.some(x => x.ssn === dataItem.ssn);\n }\n\n deleteBtnClicked(event: any) {\n this.deleteAction.emit({ isDeleteClicked: event, selectedRecords: this.selectedData });\n }\n\n editHandler(value: any) {\n this.editAction.emit({ event: value, isAddClicked: true });\n }\n\n childDeleteAction(value: any) {\n this.childDeletedRecord.emit(value);\n }\n\n}\n","
\n \n \n \n
\n
\n \n \n
\n
\n
\n \n \n \n
\n
\n
\n SSN4: \n {{ dataItem.lastFourSSN }}\n
\n
\n
\n
\n Last Name: \n {{ dataItem.lastName }}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n \n \n 0\">\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n \n \n \n
\n {{dataItem.lastFourSSN}}\n
\n
\n
\n\n \n \n \n\n \n \n \n
\n {{dataItem.errorCount}}\n
\n
\n
\n\n \n \n \n
\n {{dataItem.issueCount}}\n
\n
\n
\n\n \n \n \n \n \n \n
\n
\n","import { Utility } from './../../../../../shared/utility';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RowArgs } from '@progress/kendo-angular-grid';\nimport { State } from '@progress/kendo-data-query';\nimport { AdjustmentService } from 'src/app/shared/services/adjustments/adjustment.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\n\n@Component({\n selector: 'app-invalid-detail-view',\n templateUrl: './invalid-detail-view.component.html',\n styleUrls: ['./invalid-detail-view.component.css']\n})\nexport class InvalidDetailViewComponent implements OnInit {\n isDisabled: boolean;\n operators: any;\n adjustmentId: any;\n selectedSSN: any;\n config: any;\n selectedData = [];\n gridData = [];\n enableChildDeleteBtn: boolean;\n reasonCodesList: any;\n isReview: boolean;\n loading: boolean;\n deleteRecordDialog: boolean;\n isClicked = false;\n adjRecord: any;\n isRowSelected: (e: RowArgs) => boolean;\n gridState: State = {\n sort: [],\n take: 10,\n skip: 0\n };\n @Input()\n set accessOperators(value: any) {\n if (value) {\n this.operators = value;\n }\n }\n @Input()\n set data(dataItem: any) {\n if (dataItem) {\n this.adjustmentId = dataItem.payrollAdjustmentsId;\n this.selectedSSN = dataItem.ssn;\n this.isReview = dataItem.reviewCount > 0;\n this.getAdjustmentV2Details(dataItem);\n }\n }\n @Input() set adjustmentInputs(inputData: any) {\n if (inputData) {\n const newArray = inputData.reasonCodes.map(item => ({\n ...item,\n reasonCode: item.id + '-' + item.reason\n }));\n this.reasonCodesList = newArray;\n }\n }\n @Input()\n set disableChild(value: boolean) {\n this.isDisabled = value;\n }\n @Output() editAction: EventEmitter = new EventEmitter();\n @Output() childDeletedRecord: EventEmitter = new EventEmitter();\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private adjustmentService: AdjustmentService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit(): void {\n this.config = this.readConfigService.getAdjustmentv2Text();\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n }\n\n getAdjustmentV2Details(dataItem: any) {\n this.notificationService.setUpLoading(true);\n const inputData = {\n userInfo: this.usersService.UserInfo(), ssn: this.usersService.encrypt(dataItem.ssn, 'post'), adjustmentId: dataItem.payrollAdjustmentsId,\n adjustmentType: 'invalid'\n };\n this.adjustmentService.getAdjustmentV2Details(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n if (response.adjustmentsBySsn && response.adjustmentsBySsn.length > 0) {\n response.adjustmentsBySsn.forEach((element: any) => {\n element.payPeriodEndDate = new Date(element.payPeriodEndDate);\n element.payPeriodBeginningDate = element.payPeriodBeginningDate ? new Date(element.payPeriodBeginningDate) : null;\n element.formatAmount = Utility.checkNegativeAmount(element.employeeContribution);\n element.lastFourSSN = element.ssn.substr(5);\n element.payrollType = 'Adjustment'\n });\n this.gridData = response.adjustmentsBySsn;\n } else {\n this.gridData = [];\n }\n } else if (response && response.statusCode === 204) {\n this.gridData = [];\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n onSelectionChange(event: any) {\n if (this.selectedData.length === 0 && event.ctrlKey === undefined) {\n if (event.selectedRows.length > 0) {\n this.selectedData = [];\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (event.deselectedRows.length > 0) {\n this.selectedData = [];\n }\n } else {\n if (event.selectedRows.length > 0) {\n if (event.selectedRows.length > 1) {\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (this.selectedData[0] !== event.selectedRows[0].dataItem) {\n this.selectedData.push(event.selectedRows[0].dataItem);\n }\n } else if (event.deselectedRows.length > 0) {\n if (event.deselectedRows.length > 1) {\n event.deselectedRows.filter((element: any) => {\n if (this.selectedData.indexOf(element.dataItem) > -1) {\n const index = this.selectedData.indexOf(element.dataItem);\n this.selectedData.splice(index, 1);\n }\n });\n } else {\n const index = this.selectedData.indexOf(event.deselectedRows[0].dataItem);\n this.selectedData.splice(index, 1);\n }\n }\n }\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n this.enableChildDeleteBtn = this.selectedData && this.selectedData.length > 0;\n }\n\n editHandler(data: any) {\n data.isClicked = !data.isClicked;\n this.editAction.emit({ event: data, isEditClicked: true });\n }\n\n openRecord(record: any, isClicked: boolean) {\n this.isClicked = isClicked;\n const reasonCodeArray = record.reasonCodes.split(',').map(code => code.trim());\n const array2Integers = reasonCodeArray.map(item => parseInt(item, 10));\n const filteredRecords = this.reasonCodesList.filter(item => array2Integers.includes(item.id));\n this.adjRecord = record;\n this.adjRecord.reasonCodeArray = filteredRecords;\n }\n\n isDialogClosed(isClosed: boolean) {\n this.isClicked = isClosed;\n }\n\n deleteRecord() {\n this.loading = true;\n const allAdjRecordIds = this.selectedData.map(x => x.id).join(\",\")\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n adjustmentId: this.adjustmentId,\n adjRecordIds: allAdjRecordIds\n };\n this.adjustmentService.deleteAdjRecord(inputData).subscribe(response => {\n if (response && response.success) {\n this.deleteRecordDialog = false;\n this.enableChildDeleteBtn = false;\n const dataItem = { payrollAdjustmentsId: this.adjustmentId, ssn: this.selectedSSN };\n this.childDeletedRecord.emit({ payrollAdjustmentsId: dataItem.payrollAdjustmentsId });\n this.notificationService.setUpNotification({ success: true, message: response.message });\n } else {\n this.deleteRecordDialog = false;\n this.notificationService.setErrorNotification();\n }\n this.loading = false;\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.loading = false;\n this.deleteRecordDialog = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","\n
\n \n \n \n
\n
\n \n
\n
\n

Add/Edit adjustment will\n not be available on Mobile Devices

\n
\n
\n
\n\n \n \n \n
\n
\n
\n Fiscal Year: \n {{ dataItem.fiscalYear }}\n
\n
\n
\n
\n PPED: \n {{ dataItem.payPeriodEndDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n
\n Contribution: \n dataItem.employeeContribution ? 'neg-amount' : ''\">\n {{ dataItem.formatAmount }}\n
\n
\n
\n
\n HW: \n {{ dataItem.hoursWorked}}\n
\n
\n
\n
\n SH: \n {{ dataItem.standardHours}}\n
\n
\n
\n
\n PCT: \n {{ dataItem.percentFullTime}}\n
\n
\n
\n
\n AAComp: \n {{ dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}\n
\n
\n
\n
\n AEComp: \n {{ dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}\n
\n
\n
\n
\n Reason Code: \n {{ dataItem.reasonCodes}}\n
\n
\n
\n
\n Error: \n \n
\n
\n
\n
\n Warning: \n \n
\n
\n
\n
\n
\n\n \n \n
\n
\n \n
\n
\n
\n\n \n \n 0\">\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n\n \n \n \n
\n \n \n \n \n
\n
\n
\n\n \n \n \n
\n \n {{dataItem.fiscalYear}}\n \n
\n
\n
\n\n \n \n \n \n \n \n\n \n \n \n
\n dataItem.employeeContribution ? 'neg-amount' : ''\">\n {{dataItem.formatAmount}}\n \n
\n
\n
\n\n \n \n\n \n \n\n \n \n\n \n \n \n
{{dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n\n \n \n \n
{{dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n\n \n \n \n
\n \n
\n
\n
\n\n \n \n \n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n\n\n\n
\n
{{config.DeleteAdjRecordMsg}}\n
\n \n {{config.DeleteLastAdjRecordMsg}}\n Do you want to continue? \n \n
\n \n \n \n \n
\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { RowArgs } from '@progress/kendo-angular-grid';\nimport { State } from '@progress/kendo-data-query';\n\n@Component({\n selector: 'app-invalid-grid',\n templateUrl: './invalid-grid.component.html',\n styleUrls: ['./invalid-grid.component.css']\n})\nexport class InvalidGridComponent implements OnInit {\n\n selectedData = [];\n gridView = [];\n operators: any;\n enableInvalidDeleteBtn: boolean;\n buttonCount = 5;\n adjustmentInputData: any;\n expandedDetailKeys = [];\n gridState: State = {\n sort: [],\n take: 10,\n skip: 0\n };\n @Input() set invalidAdjustmentData(data: any) {\n if (data) {\n this.loadInvalidGridData(data);\n }\n }\n @Input() set adjustmentInputs(inputData: any) {\n if (inputData) {\n this.getReasonCode(inputData);\n }\n }\n @Input() set accessOperators(operator: any) {\n if (operator) {\n this.operators = operator;\n }\n }\n @Output() deleteAction: EventEmitter = new EventEmitter();\n @Output() editAction: EventEmitter = new EventEmitter();\n @Output() childDeletedRecord: EventEmitter = new EventEmitter();\n isRowSelected: (e: RowArgs) => boolean;\n\n constructor() { }\n\n ngOnInit(): void {\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n }\n\n getReasonCode(input: any) {\n this.adjustmentInputData = input;\n }\n\n\n loadInvalidGridData(dataSet: any) {\n this.gridView = dataSet;\n this.enableInvalidDeleteBtn = false;\n this.expandedDetailKeys = [];\n }\n\n onInvalidMasterSelectionChange(event: any) {\n if (this.selectedData.length === 0 && event.ctrlKey === undefined) {\n if (event.selectedRows.length > 0) {\n this.selectedData = [];\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (event.deselectedRows.length > 0) {\n this.selectedData = [];\n }\n } else {\n if (event.selectedRows.length > 0) {\n if (event.selectedRows.length > 1) {\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (this.selectedData[0] !== event.selectedRows[0].dataItem) {\n this.selectedData.push(event.selectedRows[0].dataItem);\n }\n } else if (event.deselectedRows.length > 0) {\n if (event.deselectedRows.length > 1) {\n event.deselectedRows.filter((element: any) => {\n if (this.selectedData.indexOf(element.dataItem) > -1) {\n const index = this.selectedData.indexOf(element.dataItem);\n this.selectedData.splice(index, 1);\n }\n });\n } else {\n const index = this.selectedData.indexOf(event.deselectedRows[0].dataItem);\n this.selectedData.splice(index, 1);\n }\n }\n }\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n this.enableInvalidDeleteBtn = this.selectedData && this.selectedData.length > 0;\n }\n\n isParentSelected(dataItem: any): boolean {\n return this.selectedData.some(x => x.ssn === dataItem.ssn);\n }\n\n deleteBtnClicked(event: any) {\n this.deleteAction.emit({ isDeleteClicked: event, selectedRecords: this.selectedData });\n }\n\n editHandler(value: any) {\n this.editAction.emit({ event: value, isAddClicked: true });\n }\n\n childDeleteAction(value: any) {\n this.childDeletedRecord.emit(value);\n }\n\n}\n","
\n \n \n \n
\n
\n \n \n
\n
\n
\n \n \n \n
\n
\n
\n SSN4: \n {{ dataItem.lastFourSSN }}\n
\n
\n
\n
\n Last Name: \n {{ dataItem.lastName }}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n 0\">\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n \n \n \n
\n {{dataItem.lastFourSSN}}\n
\n
\n
\n\n \n \n \n\n \n \n \n
\n {{dataItem.errorCount}}\n
\n
\n
\n\n \n \n \n
\n {{dataItem.issueCount}}\n
\n
\n
\n\n \n \n \n \n \n \n
\n
\n","import { Utility } from './../../../../../shared/utility';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RowArgs } from '@progress/kendo-angular-grid';\nimport { State } from '@progress/kendo-data-query';\nimport { AdjustmentService } from 'src/app/shared/services/adjustments/adjustment.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\n\n@Component({\n selector: 'app-valid-detail-view',\n templateUrl: './valid-detail-view.component.html',\n styleUrls: ['./valid-detail-view.component.css']\n})\nexport class ValidDetailViewComponent implements OnInit {\n isDisabled: boolean;\n operators: any;\n config: any;\n isRowSelected: (e: RowArgs) => boolean;\n selectedData = [];\n gridData = [];\n loading: boolean;\n adjustmentId: any;\n selectedSSN: any;\n enableChildDeleteBtn: boolean;\n deleteRecordDialog: boolean;\n reasonCodesList: any;\n isClicked = false;\n adjRecord: any;\n gridState: State = {\n sort: [],\n take: 10,\n skip: 0\n };\n @Input()\n set accessOperators(value: any) {\n if (value) {\n this.operators = value;\n }\n }\n @Input()\n set data(dataItem: any) {\n if (dataItem) {\n this.adjustmentId = dataItem.payrollAdjustmentsId;\n this.selectedSSN = dataItem.ssn;\n this.getAdjustmentV2Details(dataItem);\n }\n }\n @Input() set adjustmentInputs(inputData: any) {\n if (inputData) {\n const newArray = inputData.reasonCodes.map(item => ({\n ...item,\n reasonCode: item.id + '-' + item.reason\n }));\n this.reasonCodesList = newArray;\n }\n }\n @Input()\n set disableChild(value: boolean) {\n this.isDisabled = value;\n }\n @Output() editAction: EventEmitter = new EventEmitter();\n @Output() childDeletedRecord: EventEmitter = new EventEmitter();\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private adjustmentService: AdjustmentService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit(): void {\n this.config = this.readConfigService.getAdjustmentv2Text();\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n }\n\n getAdjustmentV2Details(dataItem: any) {\n this.notificationService.setUpLoading(true);\n const inputData = {\n userInfo: this.usersService.UserInfo(), ssn: this.usersService.encrypt(dataItem.ssn, 'post'), adjustmentId: dataItem.payrollAdjustmentsId,\n adjustmentType: 'validated'\n };\n this.adjustmentService.getAdjustmentV2Details(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n if (response.adjustmentsBySsn && response.adjustmentsBySsn.length > 0) {\n response.adjustmentsBySsn.forEach((element: any) => {\n element.payPeriodEndDate = new Date(element.payPeriodEndDate);\n element.payPeriodBeginningDate = new Date(element.payPeriodBeginningDate);\n element.formatAmount = Utility.checkNegativeAmount(element.employeeContribution);\n element.lastFourSSN = element.ssn.substr(5);\n element.payrollType = 'Adjustment'\n });\n this.gridData = response.adjustmentsBySsn;\n } else {\n this.gridData = [];\n }\n } else if (response && response.statusCode === 204) {\n this.gridData = [];\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n onSelectionChange(event: any) {\n if (this.selectedData.length === 0 && event.ctrlKey === undefined) {\n if (event.selectedRows.length > 0) {\n this.selectedData = [];\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (event.deselectedRows.length > 0) {\n this.selectedData = [];\n }\n } else {\n if (event.selectedRows.length > 0) {\n if (event.selectedRows.length > 1) {\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (this.selectedData[0] !== event.selectedRows[0].dataItem) {\n this.selectedData.push(event.selectedRows[0].dataItem);\n }\n } else if (event.deselectedRows.length > 0) {\n if (event.deselectedRows.length > 1) {\n event.deselectedRows.filter((element: any) => {\n if (this.selectedData.indexOf(element.dataItem) > -1) {\n const index = this.selectedData.indexOf(element.dataItem);\n this.selectedData.splice(index, 1);\n }\n });\n } else {\n const index = this.selectedData.indexOf(event.deselectedRows[0].dataItem);\n this.selectedData.splice(index, 1);\n }\n }\n }\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n this.enableChildDeleteBtn = this.selectedData && this.selectedData.length > 0;\n }\n\n deleteRecord() {\n this.loading = true;\n const allAdjRecordIds = this.selectedData.map(x => x.id).join(\",\")\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n adjustmentId: this.adjustmentId,\n adjRecordIds: allAdjRecordIds\n };\n this.adjustmentService.deleteAdjRecord(inputData).subscribe(response => {\n if (response && response.success) {\n this.deleteRecordDialog = false;\n this.enableChildDeleteBtn = false;\n const dataItem = { payrollAdjustmentsId: this.adjustmentId, ssn: this.selectedSSN };\n this.childDeletedRecord.emit({ payrollAdjustmentsId: dataItem.payrollAdjustmentsId });\n this.notificationService.setUpNotification({ success: true, message: response.message });\n } else {\n this.deleteRecordDialog = false;\n this.notificationService.setErrorNotification();\n }\n this.loading = false;\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.loading = false;\n this.deleteRecordDialog = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n editHandler(data: any) {\n this.editAction.emit({ event: data, isEditClicked: true });\n }\n\n openRecord(record: any, isClicked: boolean) {\n this.isClicked = isClicked;\n const reasonCodeArray = record.reasonCodes.split(',').map(code => code.trim());\n const array2Integers = reasonCodeArray.map(item => parseInt(item, 10));\n const filteredRecords = this.reasonCodesList.filter(item => array2Integers.includes(item.id));\n this.adjRecord = record;\n this.adjRecord.reasonCodeArray = filteredRecords;\n }\n\n isDialogClosed(isClosed: boolean) {\n this.isClicked = isClosed;\n }\n\n}\n","\n
\n \n \n \n
\n
\n \n
\n
\n

Add/Edit adjustment will\n not be available on Mobile Devices

\n
\n
\n
\n\n \n \n \n
\n
\n
\n Fiscal Year: \n {{ dataItem.fiscalYear }}\n
\n
\n
\n
\n PPED: \n {{ dataItem.payPeriodEndDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n
\n Contribution: \n dataItem.employeeContribution ? 'neg-amount' : ''\">\n {{ dataItem.formatAmount }}\n
\n
\n
\n
\n HW: \n {{ dataItem.hoursWorked}}\n
\n
\n
\n
\n SH: \n {{ dataItem.standardHours}}\n
\n
\n
\n
\n PCT: \n {{ dataItem.percentFullTime}}\n
\n
\n
\n
\n AAComp: \n {{ dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}\n
\n
\n
\n
\n AEComp: \n {{ dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}\n
\n
\n
\n
\n Reason Code: \n {{ dataItem.reasonCodes}}\n
\n
\n
\n
\n Warning: \n \n
\n
\n
\n
\n
\n\n \n \n
\n
\n \n
\n
\n
\n\n \n \n 0\">\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n\n \n \n \n
\n \n \n \n \n
\n
\n
\n\n \n \n \n
\n \n {{dataItem.fiscalYear}}\n \n
\n
\n
\n\n \n \n \n \n \n \n\n \n \n \n
\n dataItem.employeeContribution ? 'neg-amount' : ''\">\n {{dataItem.formatAmount}}\n \n
\n
\n
\n\n \n \n\n \n \n\n \n \n\n \n \n \n
{{dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n\n \n \n \n
{{dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n\n \n \n \n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n\n\n\n
\n
{{config.DeleteAdjRecordMsg}}\n
\n \n {{config.DeleteLastAdjRecordMsg}}\n Do you want to continue? \n \n
\n \n \n \n \n
\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { RowArgs } from '@progress/kendo-angular-grid';\nimport { State } from '@progress/kendo-data-query';\n\n@Component({\n selector: 'app-valid-grid',\n templateUrl: './valid-grid.component.html',\n styleUrls: ['./valid-grid.component.css']\n})\nexport class ValidGridComponent implements OnInit {\n selectedData = [];\n gridView = [];\n enableMasterDeleteBtn: boolean;\n operators: any;\n adjustmentInputData: any;\n expandedDetailKeys = [];\n gridState: State = {\n sort: [],\n take: 10,\n skip: 0\n };\n\n @Input() set validAdjustmentData(data: any) {\n if (data) {\n this.loadValidGridData(data);\n }\n }\n @Input() set accessOperators(operator: any) {\n if (operator) {\n this.operators = operator;\n }\n }\n @Input() set adjustmentInputs(inputData: any) {\n if (inputData) {\n this.getReasonCode(inputData);\n }\n }\n @Output() deleteAction: EventEmitter = new EventEmitter();\n @Output() addAction: EventEmitter = new EventEmitter();\n @Output() editAction: EventEmitter = new EventEmitter();\n @Output() childDeletedRecord: EventEmitter = new EventEmitter();\n isRowSelected: (e: RowArgs) => boolean;\n\n constructor() { }\n\n ngOnInit(): void {\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n }\n\n getReasonCode(input: any) {\n this.adjustmentInputData = input;\n }\n\n loadValidGridData(dataSet: any) {\n this.gridView = dataSet;\n this.enableMasterDeleteBtn = false;\n this.expandedDetailKeys = [];\n }\n\n onValidMasterSelectionChange(event: any) {\n if (this.selectedData.length === 0 && event.ctrlKey === undefined) {\n if (event.selectedRows.length > 0) {\n this.selectedData = [];\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (event.deselectedRows.length > 0) {\n this.selectedData = [];\n }\n } else {\n if (event.selectedRows.length > 0) {\n if (event.selectedRows.length > 1) {\n event.selectedRows.filter((element: any) => this.selectedData.push(element.dataItem));\n } else if (this.selectedData[0] !== event.selectedRows[0].dataItem) {\n this.selectedData.push(event.selectedRows[0].dataItem);\n }\n } else if (event.deselectedRows.length > 0) {\n if (event.deselectedRows.length > 1) {\n event.deselectedRows.filter((element: any) => {\n if (this.selectedData.indexOf(element.dataItem) > -1) {\n const index = this.selectedData.indexOf(element.dataItem);\n this.selectedData.splice(index, 1);\n }\n });\n } else {\n const index = this.selectedData.indexOf(event.deselectedRows[0].dataItem);\n this.selectedData.splice(index, 1);\n }\n }\n }\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n this.enableMasterDeleteBtn = this.selectedData && this.selectedData.length > 0;\n }\n\n isParentSelected(dataItem: any): boolean {\n return this.selectedData.some(x => x.ssn === dataItem.ssn);\n }\n\n deleteBtnClicked(event: any) {\n this.deleteAction.emit({ isDeleteClicked: event, selectedRecords: this.selectedData });\n }\n\n addHandler(value: any) {\n this.addAction.emit({ event: value, isAddClicked: true });\n }\n\n editHandler(value: any) {\n this.editAction.emit({ event: value, isAddClicked: true });\n }\n\n childDeleteAction(value: any) {\n this.childDeletedRecord.emit(value);\n }\n}\n","
\n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n\n \n \n \n
\n
\n
\n SSN4: \n {{ dataItem.lastFourSSN }}\n
\n
\n
\n
\n Last Name: \n {{ dataItem.lastName }}\n
\n
\n
\n
\n
\n\n \n \n
\n
\n \n \n
\n
\n
\n \n \n 0\">\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n \n \n \n
\n {{dataItem.lastFourSSN}}\n
\n
\n
\n\n \n \n \n\n \n \n \n
\n {{dataItem.issueCount}}\n
\n
\n
\n
\n
\n","import { Utility } from './../../../shared/utility';\nimport { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-record-detail-view',\n templateUrl: './record-detail-view.component.html',\n styleUrls: ['./record-detail-view.component.css']\n})\nexport class RecordDetailViewComponent implements OnInit {\n recordIssues: any;\n recordErrors: any;\n isErr = false;\n isIssue = false;\n recordDetailDialog = false;\n selectedRecord: any;\n\n @Input() set adjRecordDetail(adjRecord) {\n if (adjRecord) {\n this.openRecordDetail(adjRecord);\n }\n }\n @Output() isCancelClicked = new EventEmitter();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n openRecordDetail(record: any): void {\n this.recordIssues = [];\n this.recordErrors = [];\n this.isErr = false;\n this.isIssue = false;\n if (record && record.error) {\n this.isErr = true;\n this.recordErrors = record.error.split(',');\n }\n if (record && record.issue) {\n this.isIssue = true;\n const issues = record.issue.split(',');\n this.recordIssues = Utility.getIssues(issues);\n }\n this.selectedRecord = record;\n this.recordDetailDialog = true;\n }\n\n closeDetailDialog() {\n this.isCancelClicked.emit(false);\n this.recordDetailDialog = false;\n }\n\n}\n","\n
\n
\n

Errors:

\n
    \n
  • \n {{error}}\n
  • \n
\n
\n
\n

Warnings:

\n
    \n
  • \n {{issue}}\n
  • \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Personal Details
Social Security Number{{selectedRecord.ssn}}
Last Name{{selectedRecord.lastName}}
First Name{{selectedRecord.firstName}}
Middle Initial{{selectedRecord.middleInitials}}
Membership
Location{{selectedRecord.locationCode}}
System Code{{selectedRecord.systemCode}}
Reason Code{{reason.reasonCode}}
Pay
Pay Period Beginning Date{{selectedRecord.payPeriodBeginningDate | date: \"MM/dd/yyyy\"}}
Pay Period End Date{{selectedRecord.payPeriodEndDate | date: \"MM/dd/yyyy\"}}
Actual Annual Compensation{{selectedRecord.actualAnnualCompensation | currency}}
Annual Earnable Compensation{{selectedRecord.actualEarnableCompensation | currency}}
Employee Contribution selectedRecord.employeeContribution ? 'neg-amount' : ''\">{{selectedRecord.formatAmount}}\n
Pay Period Base Salary{{selectedRecord.payPeriodBaseSalary | currency}}
Hours Worked{{selectedRecord.hoursWorked}}
Standard Hours{{selectedRecord.standardHours}}
Percentage of Time{{selectedRecord.percentFullTime }}
\n
\n
\n","import { UsersService } from './../../../shared/services/common/users.service';\nimport { DisplayNotificationService } from './../../../shared/services/common/notification.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { AdjustmentService } from './../../../shared/services/adjustments/adjustment.service';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { State, process } from '@progress/kendo-data-query';\nimport { RowArgs, SelectableSettings } from '@progress/kendo-angular-grid';\nimport { Router } from '@angular/router';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { Utility } from 'src/app/shared/utility';\n\n@Component({\n selector: 'app-rejected-adjustment-records',\n templateUrl: './rejected-adjustment-records.component.html',\n styleUrls: ['./rejected-adjustment-records.component.css']\n})\nexport class RejectedAdjustmentRecordsComponent implements OnInit {\n\n gridState: State = {\n sort: [],\n take: 10,\n skip: 0\n };\n filter: any;\n operators: any;\n isMoveDisabled = true;\n isDeleteDisabled = true;\n textAreaValue = '';\n adjCommentDialog: boolean;\n inputData: { userInfo: any; };\n adjInputData: { userInfo: any, adjType: string };\n selectedData = [];\n gridData = [];\n isActionBtnDisabled: boolean;\n adjDeleteDialog: boolean;\n adjMoveDialog: boolean;\n loading: boolean;\n filteredNotSubmittedAdj: any;\n selectedAdjValue: any;\n isRowSelected: (e: RowArgs) => boolean;\n defaultNotsubmittedAdj: any;\n newNotSubmittedAdj: any;\n isClicked = false;\n adjRecord: any;\n reasonCodesList: any;\n defaultItem: { id: any } = {\n id: 'New Adjustment'\n };\n selectableSettings: SelectableSettings = {\n enabled: true, checkboxOnly: true, mode: 'multiple'\n };\n\n @Input() set accessOperators(operator: any) {\n if (operator) {\n this.operators = operator;\n }\n }\n @Output() loadCreateReport: EventEmitter = new EventEmitter();\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private authService: AuthService,\n private adjustmentService: AdjustmentService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit() {\n this.inputData = {\n userInfo: this.usersService.UserInfo()\n };\n this.notificationService.setUpLoading(true);\n this.getAdjustmentLocSys();\n this.getRejectedAdjRecords();\n this.getAdjustmentRecords();\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n }\n\n getAdjustmentLocSys() {\n this.adjustmentService.getAdjustmentInputs(this.inputData).subscribe(response => {\n if (response && response.success) {\n const newArray = response.reasonCodes.map(item => ({\n ...item,\n reasonCode: item.id + '-' + item.reason\n }));\n this.reasonCodesList = newArray;\n } else {\n this.notificationService.setErrorNotification();\n this.notificationService.setUpLoading(false);\n }\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n getRejectedAdjRecords() {\n this.notificationService.setUpLoading(true);\n this.selectedData = [];\n this.adjustmentService.getRejectedRecords(this.inputData).subscribe(response => {\n if (response && response.statusCode === 200 && response.adjustmentRecords) {\n response.adjustmentRecords.forEach((element: any) => {\n element.formatAmount = Utility.checkNegativeAmount(element.employeeContribution);\n element.lastFourSSN = element.ssn.substr(5);\n });\n this.gridState.skip === 0;\n this.gridData = response.adjustmentRecords;\n } else if (response && response.statusCode === 204) {\n this.gridData = [];\n } else if (response && response.StatusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n })\n }\n\n getAdjustmentRecords() {\n this.newNotSubmittedAdj = [];\n this.filteredNotSubmittedAdj = [];\n this.inputData['adjType'] = 'NotSubmitted';\n this.adjustmentService.getPayrollAdjRecords(this.inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.adjustments) {\n const orgValue = JSON.parse(this.authService.decryptText(Utility.removeQuotes(sessionStorage.getItem('current_user'))));\n const notSubmittedAdj = data.adjustments.filter(ele => ele.creatorId === Number(orgValue.Id));\n const arrangedAdjData = notSubmittedAdj.sort((a, b) => a.Id - b.Id);\n this.filteredNotSubmittedAdj = arrangedAdjData\n this.newNotSubmittedAdj = arrangedAdjData.slice();\n this.defaultNotsubmittedAdj = this.defaultItem;\n } else if (data && data.statusCode === 204) {\n this.filteredNotSubmittedAdj = [];\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n })\n }\n\n handleFilter(value: any) {\n this.filteredNotSubmittedAdj = value ? this.newNotSubmittedAdj.filter((s: any) => s.id.toString().indexOf(value.toString()) !== -1)\n : this.newNotSubmittedAdj.slice();\n }\n\n openRecord(record: any, isClicked: boolean) {\n this.isClicked = isClicked;\n const reasonCodeArray = record.reasonCodes && record.reasonCodes.split(',').map(code => code.trim());\n const array2Integers = reasonCodeArray?.map(item => parseInt(item, 10));\n const filteredRecords = this.reasonCodesList.filter(item => array2Integers?.includes(item.id));\n this.adjRecord = record;\n this.adjRecord.reasonCodeArray = filteredRecords;\n }\n\n isDialogClosed(isClosed: boolean) {\n this.isClicked = isClosed;\n }\n\n openCommentDialog(dataItem: any) {\n this.textAreaValue = dataItem.comments ? dataItem.comments : '';\n this.adjCommentDialog = true;\n }\n\n onSelectionChange(event: any) {\n if (event.selectedRows.length > 0) {\n this.selectedData.push(event.selectedRows[0].dataItem);\n } else if (event.deselectedRows.length > 0) {\n const index = this.selectedData.indexOf(event.deselectedRows[0].dataItem);\n this.selectedData.splice(index, 1);\n }\n this.isRowSelected = (e: RowArgs) => this.selectedData.indexOf(e.dataItem) >= 0;\n this.isActionBtnDisabled = this.selectedData && this.selectedData.length > 0;\n\n }\n\n closeCommentDialog() {\n this.adjCommentDialog = false;\n }\n\n moveRejectedAdjustments() {\n this.adjMoveDialog = true;\n }\n\n moveAdj(status: any): void {\n if (status === 'yes') {\n this.loading = true;\n const allAdjRecordIds = this.selectedData.map(x => x.id).join(\",\")\n const selectedAdj = this.defaultNotsubmittedAdj.id === 'New Adjustment' ? 0 : this.defaultNotsubmittedAdj.id;\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n rejectedRecordIDs: allAdjRecordIds,\n adjustmentID: selectedAdj\n };\n this.adjustmentService.moveRejectedRecords(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n this.notificationService.setUpNotification({ success: true, message: response.message });\n this.selectedData = [];\n this.loadCreateReport.emit({adjId: response.id, isRejectedRecord: true});\n } else {\n this.notificationService.setErrorNotification(response.message);\n }\n this.loading = false;\n this.adjMoveDialog = false;\n this.isActionBtnDisabled = this.selectedData && this.selectedData.length > 0;\n this.defaultNotsubmittedAdj = this.defaultItem;\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.loading = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n } else {\n this.adjMoveDialog = false;\n }\n }\n\n deleteRejectedAdjustments() {\n this.adjDeleteDialog = true;\n\n }\n\n deleteAdj(status: any): void {\n if (status === 'yes') {\n this.loading = true;\n const allAdjRecordIds = this.selectedData.map(x => x.id).join(\",\")\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n rejectedRecordIDs: allAdjRecordIds\n };\n this.adjustmentService.deleteRejectedRecords(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n this.getRejectedAdjRecords();\n this.notificationService.setUpNotification({ success: true, message: response.message });\n } else {\n this.notificationService.setErrorNotification(response.message);\n }\n this.loading = false;\n this.adjDeleteDialog = false;\n this.isActionBtnDisabled = this.selectedData && this.selectedData.length > 0;\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.loading = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n } else {\n this.adjDeleteDialog = false;\n }\n }\n\n}\n","\n \n \n
\n
\n \n \n \n \n
\n
\n
\n\n \n \n \n
\n
\n
\n SSN4: \n {{ dataItem.lastFourSSN }}\n
\n
\n
\n
\n Last Name: \n {{ dataItem.lastName }}\n
\n
\n
\n
\n Fiscal Year: \n {{ dataItem.fiscalYear }}\n
\n
\n
\n
\n PPED: \n {{ dataItem.payPeriodEndDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n
\n Contribution: \n dataItem.employeeContribution ? 'neg-amount' : ''\">\n {{ dataItem.formatAmount}}\n
\n
\n
\n
\n HW: \n {{ dataItem.hoursWorked}}\n
\n
\n
\n
\n SH: \n {{ dataItem.standardHours}}\n
\n
\n
\n
\n PCT: \n {{ dataItem.percentFullTime}}\n
\n
\n
\n
\n AAComp: \n {{ dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}\n
\n
\n
\n
\n AEComp: \n {{ dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}\n
\n
\n
\n
\n Reason Code: \n {{ dataItem.reasonCodes}}\n
\n
\n
\n
\n Warning: \n \n
\n
\n
\n
\n
\n\n \n \n \n \n \n
\n \n \n
\n
\n
\n\n \n \n \n\n \n \n \n
\n {{dataItem.lastFourSSN}}\n
\n
\n
\n\n \n \n \n\n \n \n\n \n \n \n
\n {{dataItem.payPeriodEndDate | date: 'MM/dd/yyyy'}}\n \n \n
\n
\n
\n\n \n \n \n
\n dataItem.employeeContribution ? 'neg-amount' : ''\">\n {{dataItem.formatAmount}}\n \n
\n
\n
\n\n \n \n\n \n \n\n \n \n\n \n \n \n
{{dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n\n \n \n \n
{{dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n\n \n \n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n\n\n\n Comment\n
\n
\n

{{textAreaValue}}

\n
\n
\n \n \n \n
\n\n\n
\n

Do you want to permanently delete {{selectedData.length}} adjustment(s)?

\n
\n \n \n \n \n
\n\n\n
\n \n \n \n
\n \n \n \n \n
\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { State } from '@progress/kendo-data-query';\nimport { AdjustmentService } from 'src/app/shared/services/adjustments/adjustment.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { Utility } from 'src/app/shared/utility';\n\n@Component({\n selector: 'app-child-detailed-view',\n templateUrl: './child-detailed-view.component.html',\n styleUrls: ['./child-detailed-view.component.css']\n})\nexport class ChildDetailedViewComponent implements OnInit {\n adjustmentId: any;\n selectedSSN: any;\n isReview: boolean;\n isClicked = false;\n adjRecord: any;\n gridData = [];\n gridView = [];\n gridState: State = {\n sort: [],\n take: 10,\n skip: 0\n };\n\n @Input()\n set data(dataItem: any) {\n if (dataItem) {\n this.adjustmentId = dataItem.payrollAdjustmentsId;\n this.selectedSSN = dataItem.ssn;\n this.isReview = dataItem.reviewCount > 0;\n this.getAdjSubmitReportDetails(dataItem);\n }\n }\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private adjustmentService: AdjustmentService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit(): void {\n }\n\n getAdjSubmitReportDetails(dataItem: any) {\n this.gridData = [];\n this.notificationService.setUpLoading(true);\n const inputData = { userInfo: this.usersService.UserInfo(), adjustmentType: 'validated', ssn: this.usersService.encrypt(dataItem.ssn, 'post'), adjustmentId: dataItem.payrollAdjustmentsId };\n this.adjustmentService.getAdjustmentV2Details(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n response.adjustmentsBySsn.forEach((element: any) => {\n element.payPeriodEndDate = new Date(element.payPeriodEndDate);\n element.payPeriodBeginningDate = new Date(element.payPeriodBeginningDate);\n element.formatAmount = Utility.checkNegativeAmount(element.employeeContribution);\n element.lastFourSSN = element.ssn.substr(5);\n });\n this.gridView = response.adjustmentsBySsn;\n } else if (response && response.statusCode === 204) {\n this.gridView = [];\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n openRecord(record: any, isClicked: boolean) {\n this.isClicked = isClicked;\n this.adjRecord = record;\n }\n\n isDialogClosed(isClosed: boolean) {\n this.isClicked = isClosed;\n }\n\n}\n","
\n \n\n \n \n \n
\n
\n
\n Fiscal Year: \n {{ dataItem.fiscalYear }}\n
\n
\n
\n
\n PPED: \n {{ dataItem.payPeriodEndDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n
\n Contribution: \n dataItem.employeeContribution ? 'neg-amount' : ''\">\n {{ dataItem.formatAmount }}\n
\n
\n
\n
\n HW: \n {{ dataItem.hoursWorked}}\n
\n
\n
\n
\n SH: \n {{ dataItem.standardHours}}\n
\n
\n
\n
\n PCT: \n {{ dataItem.percentFullTime}}\n
\n
\n
\n
\n AAComp: \n {{ dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}\n
\n
\n
\n
\n AEComp: \n {{ dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}\n
\n
\n
\n
\n Reason Code: \n {{ dataItem.reasonCodes}}\n
\n
\n
\n
\n Warning: \n \n
\n
\n
\n
\n Review: \n \n
\n
\n
\n
\n
\n\n \n \n \n
\n \n {{dataItem.fiscalYear}}\n \n
\n
\n
\n\n \n \n \n \n \n \n\n \n \n \n
\n dataItem.employeeContribution ? 'neg-amount' : ''\">\n {{dataItem.formatAmount}}\n \n
\n
\n
\n\n \n \n \n\n \n \n \n\n \n \n\n \n \n \n
{{dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n\n \n \n \n
{{dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n\n \n \n \n
\n \n
\n
\n
\n\n \n \n \n
\n \n
\n
\n
\n
\n\n
\n \n \n
\n
\n","import { AdjustmentService } from 'src/app/shared/services/adjustments/adjustment.service';\nimport { DisplayNotificationService } from './../../../../shared/services/common/notification.service';\nimport { UsersService } from './../../../../shared/services/common/users.service';\nimport { Component, OnInit, Input } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { State } from '@progress/kendo-data-query';\n\n@Component({\n selector: 'app-detailed-view',\n templateUrl: './detailed-view.component.html',\n styleUrls: ['./detailed-view.component.css']\n})\nexport class DetailedViewComponent implements OnInit {\n gridView = [];\n gridData = [];\n adjRecord: any;\n isClicked = false;\n state: State = {\n skip: 0,\n take: 10,\n sort: []\n };\n\n @Input()\n set data(dataItem: any) {\n if (dataItem) {\n this.getAdjustmentRecords(dataItem);\n }\n }\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private adjustmentService: AdjustmentService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit() {\n }\n\n getAdjustmentRecords(data: any) {\n this.notificationService.setUpLoading(true);\n this.gridData = [];\n const inputData = { userInfo: this.usersService.UserInfo(), adjustmentId: data.id };\n this.adjustmentService.getAdjustmentV2Records(inputData).subscribe(response => {\n if (response && response.statusCode === 200) {\n if (response.invalidAdjustment && response.invalidAdjustment.length > 0) {\n response.invalidAdjustment.forEach((element: any) => {\n element.lastFourSSN = element.ssn.substr(5);\n this.gridData.push(element);\n });\n }\n if (response.validAdjustment && response.validAdjustment.length > 0) {\n response.validAdjustment.forEach((element: any) => {\n element.lastFourSSN = element.ssn.substr(5);\n this.gridData.push(element);\n });\n }\n this.gridView = this.gridData;\n } else if (response && response.statusCode === 204) {\n this.gridView = [];\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n openRecord(record: any, isClicked: boolean) {\n this.isClicked = isClicked;\n this.adjRecord = record;\n }\n\n isDialogClosed(isClosed: boolean) {\n this.isClicked = isClosed;\n }\n\n}\n","
\n \n \n \n
\n
\n \n
\n
\n
\n\n \n \n \n
\n
\n
\n SSN4: \n {{ dataItem.lastFourSSN }}\n
\n
\n
\n
\n Last Name: \n {{ dataItem.lastName }}\n
\n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n
\n {{dataItem.lastFourSSN}}\n
\n
\n
\n\n \n \n \n \n \n \n \n \n\n \n \n \n
\n {{dataItem.issueCount}}\n
\n
\n
\n\n \n \n \n
\n {{dataItem.reviewCount}}\n
\n
\n
\n
\n
\n","import { Utility } from './../../../shared/utility';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { ReadConfigService } from './../../../shared/services/common/read-config.service';\nimport { UsersService } from './../../../shared/services/common/users.service';\nimport { AdjustmentService } from './../../../shared/services/adjustments/adjustment.service';\nimport { DisplayNotificationService } from './../../../shared/services/common/notification.service';\nimport { Component, OnInit, AfterViewChecked, Input, Output, EventEmitter } from '@angular/core';\nimport { State, CompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { Router } from '@angular/router';\nimport { HttpErrorResponse } from '@angular/common/http';\n\n@Component({\n selector: 'app-view-adjustment-reports',\n templateUrl: './view-adjustment-reports.component.html',\n styleUrls: ['./view-adjustment-reports.component.css']\n})\nexport class ViewAdjustmentReportsComponent implements OnInit, AfterViewChecked {\n initialLoading = false;\n gridLoaded: any;\n operators: any;\n selectedTab: number;\n cssId: string;\n deleteReportDialog: boolean;\n loading: boolean;\n removeRecord: any;\n filters: CompositeFilterDescriptor;\n state: State = {\n skip: 0,\n take: 10,\n sort: []\n };\n ownersList: any;\n filterOwnerRecords: any;\n config: any;\n inputData: { userInfo: any, adjType: string };\n reportsData: {\n tabTitle: string;\n adjType: string;\n data: [];\n show: boolean;\n }[];\n\n @Input() set accessOperators(opts: any) {\n this.operators = opts;\n }\n @Input() set ownerRecords(owners: any) {\n if (owners) {\n this.ownersList = owners;\n this.filterOwnerRecords = owners.slice();\n }\n }\n @Output() loadViewReport: EventEmitter = new EventEmitter();\n\n constructor(\n private router: Router,\n private authService: AuthService,\n private usersService: UsersService,\n private adjustmentService: AdjustmentService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService,\n ) { }\n\n ngOnInit() {\n this.config = this.readConfigService.getAdjustmentv2Text();\n this.notificationService.setUpLoading(true);\n this.inputData = {\n userInfo: this.usersService.UserInfo(),\n adjType: ''\n };\n this.getAllAdjReports();\n }\n\n ngAfterViewChecked() {\n this.setTabStripStyle();\n }\n\n getAllAdjReports() {\n this.notificationService.setUpLoading(true);\n this.initialLoading = true;\n this.reportsData = [{\n tabTitle: 'Not Submitted',\n adjType: 'NotSubmitted',\n data: [],\n show: false\n },\n {\n tabTitle: 'Submitted',\n adjType: 'Submitted',\n data: [],\n show: false\n }];\n this.selectedTab = 0;\n this.gridLoaded = { a: false, b: false };\n this.getAdjustmentRecords(true);\n }\n\n getAdjustmentRecords(isSubmit: boolean) {\n const index = isSubmit ? 0 : 1;\n this.inputData.adjType = this.reportsData[index].adjType;\n this.adjustmentService.getPayrollAdjRecords(this.inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.adjustments) {\n const orgValue = JSON.parse(this.authService.decryptText(Utility.removeQuotes(sessionStorage.getItem('current_user'))));\n data.adjustments.forEach((element) => {\n element.createdDate = new Date(element.createdDate);\n element.modifiedDate = new Date(element.modifiedDate);\n element.isAuthorizedOwner = (element.ownerId === Number(orgValue.Id));\n element.formatAmount = Utility.checkNegativeAmount(element.totalContributions);\n });\n this.reportsData[index].data = data.adjustments;\n } else if (data && data.statusCode === 204) {\n this.reportsData[index].data = [];\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.gridLoaded[index === 0 ? 'a' : 'b'] = true;\n this.reportsData[index].show = true;\n this.notificationService.setUpLoading(false);\n this.initialLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.gridLoaded[index === 0 ? 'a' : 'b'] = true;\n this.reportsData[index].show = true;\n this.notificationService.setUpLoading(false);\n this.initialLoading = false;\n this.notificationService.setErrorNotification();\n });\n }\n\n onTabSelect(event: any) {\n if (event) {\n this.selectedTab = event.index;\n switch (this.selectedTab) {\n case 1:\n if (!this.gridLoaded.b) {\n this.notificationService.setUpLoading(true);\n this.getAdjustmentRecords(false);\n }\n break;\n default: {\n if (!this.gridLoaded.a) {\n this.getAdjustmentRecords(true);\n }\n break;\n }\n }\n }\n }\n\n setTabStripStyle() {\n const allDetails = document.querySelectorAll('.k-tabstrip');\n if (allDetails && allDetails.length > 0) {\n allDetails.forEach(details => {\n const firstChild = details.firstElementChild;\n if (firstChild && firstChild.children && firstChild.children.length > 1) {\n const elArr = Array.from(firstChild.children) as Array;\n elArr.forEach(element => {\n element.style.width = 100 / firstChild.children.length + '%';\n });\n }\n });\n }\n }\n\n onOwnerSelection(value: any, adjRecordId: any) {\n this.notificationService.setUpLoading(true);\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n adjustmentId: adjRecordId,\n ownerId: value.id,\n };\n this.adjustmentService.updateAdjustmentOwner(inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200) {\n this.notificationService.setUpNotification({ message: response.message, success: true });\n } else {\n this.notificationService.setUpNotification({ message: response.message, success: false });\n }\n this.getAdjustmentRecords(true);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n handleFilter(value: any) {\n this.ownersList = value ? this.filterOwnerRecords.filter((s: any) => s.fullName.toLowerCase().indexOf(value.toLowerCase()) !== -1)\n : this.filterOwnerRecords.slice();\n }\n\n editHandler(editEvent: any) {\n this.loadViewReport.emit(editEvent);\n }\n\n removeHandler(removeEvent: any) {\n this.removeRecord = removeEvent;\n this.deleteReportDialog = true;\n }\n\n deleteAdjReport() {\n this.loading = true;\n this.notificationService.setUpLoading(true);\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n adjustmentId: this.removeRecord.dataItem.id\n };\n this.adjustmentService.deleteAdjReport(inputData).subscribe(response => {\n if (response && response.success) {\n this.getAdjustmentRecords(true);\n this.notificationService.setUpNotification(response);\n } else if (response && !response.success) {\n this.notificationService.setUpNotification(response);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.deleteReportDialog = false;\n this.notificationService.setUpLoading(false);\n this.loading = false;\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.loading = false;\n this.deleteReportDialog = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","
\n
\n
\n
\n
\n \n \n \n
\n \n \n
\n

Add/Edit adjustment will\n not be available on Mobile Devices

\n
\n
\n\n \n \n \n
\n
\n
\n ID#: \n {{ dataItem.id }}\n
\n
\n
\n
\n Records: \n {{ dataItem.recordCount }}\n
\n
\n
\n
\n Contribution: \n dataItem.totalContributions ? 'neg-amount' : ''\">\n {{ dataItem.formatAmount }}\n
\n
\n
\n
\n Modified By: \n {{ dataItem.createdby }}\n
\n
\n
\n
\n Modified Date: \n {{ dataItem.createdDate | date: 'MM/dd/yyyy hh:mm a' }}\n
\n
\n
\n
\n Status: \n {{ dataItem.status }}\n
\n
\n
\n
\n
\n\n \n \n
\n \n \n
\n
\n\n \n \n \n
\n \n \n
\n
\n
\n\n \n \n \n
\n \n \n
\n
\n
\n\n \n \n \n \n \n \n \n \n
\n \n {{dataItem.id}}\n \n
\n
\n
\n\n \n \n \n \n \n \n \n \n
\n {{dataItem.recordCount}}\n
\n
\n
\n\n \n \n \n
\n dataItem.totalContributions ? 'neg-amount' : ''\">\n {{dataItem.formatAmount}}\n \n
\n
\n
\n\n \n \n \n
\n \n {{dataItem.createdby}}\n \n
\n
\n \n \n \n \n \n
\n\n \n \n \n \n \n \n \n
\n {{dataItem.modifiedDate | date: 'MM/dd/yyyy hh:mm a'}}\n
\n
\n
\n\n \n \n \n
\n {{dataItem.status}}\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n

{{config.DeleteAdjReportMsg}}

\n \n \n \n \n
\n","import { Component, OnInit, ViewEncapsulation, ViewChild, Input, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\nimport { aggregateBy } from '@progress/kendo-data-query';\nimport { GridComponent } from '@progress/kendo-angular-grid';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { SelectEvent, FileRestrictions } from '@progress/kendo-angular-upload';\nimport { AdjustmentService } from 'src/app/shared/services/adjustments/adjustment.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\n\n@Component({\n selector: 'app-adjustment-record',\n templateUrl: './adjustment-record.component.html',\n styleUrls: ['./adjustment-record.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AdjustmentRecordComponent implements OnInit {\n\n constructor(\n private adjustmentService: AdjustmentService,\n private usersService: UsersService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) { }\n\n @ViewChild(GridComponent) private grid: GridComponent;\n gridData: any;\n fileUploadData: any;\n config: any;\n adjustmentAmount: any;\n total: any;\n uploadFile: any;\n contributionWithheld: boolean;\n submitAdj: boolean;\n newRecord: boolean;\n existingRecord: boolean;\n isInfoAvailable: boolean;\n noBankInfo: boolean;\n validFileExt = false;\n displayload = false;\n min = 0;\n maxAddAmount = 8999999.99;\n contType = '';\n isCurrentFY = '';\n isWithheldCont = '';\n aggregates: any[] = [{ field: 'adjustmentAmount', aggregate: 'sum' }];\n fileRestrictions: FileRestrictions = {\n allowedExtensions: ['.xlsx']\n };\n\n @Output() recordSavedResponse = new EventEmitter();\n @Output() resetEvent = new EventEmitter();\n @Output() cancelEvent = new EventEmitter();\n @Input() set isBankInfoAvail(bankInfoExist) {\n this.isInfoAvailable = bankInfoExist;\n }\n @Input()\n set adjustmentsRecord(records) {\n this.initialAdjRecordCheck(records);\n }\n\n ngOnInit() {\n this.config = this.readConfigService.getAdjustmentFileUpload();\n }\n\n initialAdjRecordCheck(records) {\n if (records) {\n this.existingRecord = records.id === 1;\n if (records.id > 0) {\n this.newRecord = false;\n this.existingRecord = true;\n this.contType = '';\n } else {\n this.contType = '';\n this.isCurrentFY = '';\n this.isWithheldCont = '';\n this.noBankInfo = false;\n this.newRecord = records.id === 0;\n if (this.fileUploadData && this.fileUploadData.length > 0) {\n this.onClearButtonClick(this.uploadFile);\n }\n }\n this.gridData = records.system;\n this.totalAdjustmentValue();\n this.notificationService.setUpLoading(false);\n }\n }\n\n btndisable() {\n if ((this.isWithheldCont.length > 0 || this.isCurrentFY.length > 0)\n && !(this.fileUploadData\n && this.fileUploadData.length > 0 && this.validFileExt)) {\n return true;\n } else if (this.isWithheldCont === 'yes' && this.contType === 'positive'\n && this.gridData.some(x => x.adjustmentAmount > this.maxAddAmount\n || this.min > x.adjustmentAmount)) {\n return true;\n } else if (this.isCurrentFY === 'yes' && this.contType === 'negative' &&\n (this.gridData.some(x => x.adjustmentAmount > this.min)\n || !this.gridData.some(x => x.adjustmentAmount < this.min) )) {\n return true;\n }\n return false;\n }\n\n gridVisibilityCheck() {\n return ((this.isWithheldCont === 'yes' && this.contType === 'positive') || this.isCurrentFY === 'yes' || this.existingRecord);\n }\n\n keytab(event: any) {\n const target = event.target || event.srcElement;\n const actuallValue = target.getAttribute('aria-valuenow');\n if (actuallValue) {\n if (actuallValue.indexOf('.') < 8) {\n target.setAttribute('maxLength', 10);\n } else {\n target.setAttribute('maxLength', 7);\n }\n }\n }\n\n onAdjustmentChange(value: any, dataItem: any) {\n value = parseFloat((value || 0).toFixed(2));\n if (this.contType === 'positive' || this.contType === 'negative') {\n if (dataItem && this.gridData) {\n this.gridData.forEach((element, index) => {\n if (element.id === dataItem.id) {\n this.gridData[index].adjustmentAmount = value;\n }\n this.totalAdjustmentValue();\n });\n }\n }\n }\n\n totalAdjustmentValue() {\n this.total = aggregateBy(this.gridData, this.aggregates);\n }\n\n submitAdjustment() {\n this.adjustmentAmount = {};\n this.displayload = true;\n const gridElement = this.gridData.filter(x => x.adjustmentAmount !== 0);\n if (gridElement.length > 0) {\n this.adjustmentAmount = JSON.stringify(gridElement);\n }\n this.notificationService.setUpLoading(true);\n const inputData = {\n userInfo: JSON.stringify(this.usersService.UserInfo()),\n uploadFile: this.fileUploadData[0],\n adjustmentDetails: this.adjustmentAmount,\n contributionWithheld: this.isWithheldCont === 'yes',\n isCurrentFY: this.isCurrentFY === 'yes',\n isDebitInvoice: this.contType === 'positive'\n };\n this.adjustmentService.submitAdjustments(inputData)\n .subscribe((response: any) => {\n if (response && response.success) {\n this.recordSavedResponse.emit(response);\n this.onClearButtonClick(this.uploadFile);\n } else {\n this.isWithheldCont = '';\n this.isCurrentFY = '';\n this.notificationService.setErrorNotification();\n }\n this.submitAdj = false;\n this.displayload = false;\n this.contType = '';\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.displayload = false;\n this.submitAdj = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n onClearButtonClick(upload: any) {\n this.fileUploadData = [];\n this.isCurrentFY = '';\n this.isWithheldCont = '';\n upload.clearFiles();\n }\n\n onSelectEvent(e: SelectEvent, upload) {\n this.uploadFile = upload;\n if (e && e.files && e.files.length > 0) {\n this.fileUploadData = e.files;\n }\n const validationErrors = e.files[0].validationErrors;\n this.validFileExt = !(validationErrors && validationErrors.length > 0);\n }\n\n closePopup() {\n this.displayload = false;\n this.submitAdj = false;\n }\n\n onRemoveEvent(e: any) {\n this.fileUploadData = [];\n }\n\n onContTypeChange() {\n this.noBankInfo = !(this.contType === 'positive' || (this.isInfoAvailable && this.contType === 'negative'));\n if (!this.noBankInfo) {\n this.noBankInfo = false;\n this.isCurrentFY = '';\n this.isWithheldCont = '';\n if (this.gridData && this.contType) {\n this.gridData.forEach((element, index) => {\n if (element.adjustmentAmount > 0 || this.min > element.adjustmentAmount) {\n this.gridData[index].adjustmentAmount = 0.00;\n }\n this.totalAdjustmentValue();\n });\n }\n if (this.fileUploadData && this.fileUploadData.length > 0) {\n this.uploadFile.clearFiles();\n this.fileUploadData = [];\n }\n }\n if (this.contType && this.contType.length > 0) {\n this.resetEvent.emit(false);\n }\n }\n\n onChange() {\n if (this.gridData && (this.isWithheldCont === 'no' || this.isCurrentFY === 'no')) {\n this.gridData.forEach((element, index) => {\n if (element.adjustmentAmount > 0 || this.min > element.adjustmentAmount) {\n this.gridData[index].adjustmentAmount = 0.00;\n }\n this.totalAdjustmentValue();\n });\n }\n }\n\n cancelChanges() {\n this.cancelEvent.emit();\n }\n\n}\n","
\n
\n
\n

File Format

\n

\n \n \n
\n

Type of Contribution

\n

\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n\n
\n \n
\n\n \n
\n

Limits on Calendar/Tax Year

\n

\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n

Limits on Contributions

\n

\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n 0 || isCurrentFY.length > 0) \" [multiple]=\"false\" [autoUpload]=\"false\"\n [restrictions]=\"fileRestrictions\" (select)=\"onSelectEvent($event, upload)\" (remove)=\"onRemoveEvent($event)\">\n \n \n \n
\n\n
\n
\n\n
\n
\n
\n \n \n \n \n Total\n \n \n \n \n
\n \n \n
dataItem.adjustmentAmount && this.contType === 'positive'\">\n \n Positive values only\n \n
\n
min && this.contType === 'negative'\">\n \n Negative Values Only\n \n
\n\n
maxAddAmount\">\n \n Maximum allowed amount is {{maxAddAmount}}\n \n
\n \n {{dataItem.adjustmentAmount | currency:'USD':'symbol':'1.2-2'}}\n \n
\n
\n \n
\n {{total[\"adjustmentAmount\"]?.sum | currency:'USD':'symbol':'1.2-2'}}\n
\n
\n
\n\n \n \n \n \n
\n \n
\n
\n System: \n {{ dataItem.name }}\n
\n
\n \n
\n
\n Adjustment Amount: \n {{ dataItem.adjustmentAmount | currency:'USD':'symbol':'1.2-2'}}\n
\n
\n
\n
\n \n
\n \n
\n
\n Total: \n {{total[\"adjustmentAmount\"]?.sum | currency:'USD':'symbol':'1.2-2'}}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
0 || isCurrentFY.length > 0) && !this.existingRecord && !noBankInfo\"\n class=\"margin-20 align-center\" id=\"action-btn\">\n \n \n
\n
\n
\n\n\n\n

Do you want to submit this adjustment file?

\n
\n
\n \n Submitting\n
\n \n \n \n \n
\n","import { Utility } from 'src/app/shared/utility';\nimport { Component, OnInit, Inject, ViewChild } from '@angular/core';\nimport { State } from '@progress/kendo-data-query';\nimport { AdjustmentService } from 'src/app/shared/services/adjustments/adjustment.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { SelectableSettings, DataBindingDirective } from '@progress/kendo-angular-grid';\nimport { DOCUMENT } from '@angular/common';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { CommonService } from 'src/app/shared/services/common/common.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\n\n@Component({\n selector: 'app-adjustment-reports',\n templateUrl: './adjustment-reports.component.html',\n styleUrls: ['./adjustment-reports.component.css']\n})\n\nexport class AdjustmentReportsComponent implements OnInit {\n @ViewChild(DataBindingDirective, { static: true }) directive;\n constructor(@Inject(DOCUMENT) private document: any,\n private adjustmentService: AdjustmentService,\n private authService: AuthService,\n private commonService: CommonService,\n private usersService: UsersService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n gridView: any;\n systems = '';\n inputData: { userInfo: any; };\n selectedItem: any;\n adjRecordData: any;\n bankInfoExist: boolean;\n disableAddAdj = true;\n config: any;\n operators: any;\n adjSummaryRecords: any;\n filterRows: any;\n recordSelected: any;\n adjDeleteDialog: boolean;\n displayload: boolean;\n createAdjBtnFlag: boolean;\n contributionWithheld: boolean;\n isCurrentFy: boolean;\n adjId: number;\n confirmOpen = false;\n isSelectedRowChanged = false;\n isChanged = false;\n skip = 0;\n take = 5;\n rowIndex = 0;\n selectableSettings: SelectableSettings = { mode: 'single' };\n gridState: State = {\n sort: [],\n take: this.take,\n skip: this.skip,\n };\n\n ngOnInit() {\n this.inputData = {\n userInfo: this.usersService.UserInfo()\n };\n this.loadAdjHistory();\n this.config = this.readConfigService.getAdjustmentFileUpload();\n this.operators = this.authService.getAccessOperations(2);\n this.contributionWithheld = true;\n this.isCurrentFy = false;\n }\n\n addHandler() {\n this.adjRecordData = { id: 0, system: JSON.parse(this.systems) };\n this.setSelectedRow(0, true, false, false, false);\n this.contributionWithheld = true;\n this.createAdjBtnFlag = false;\n this.disableAddAdj = true;\n this.isCurrentFy = true;\n this.adjSummaryRecords = null;\n }\n\n loadSystems(): void {\n this.notificationService.setUpLoading(true);\n this.commonService.getLocations()\n .subscribe(data => {\n if (data && data.systems) {\n const systems = data.systems;\n systems.forEach((item, index) => {\n item.id = +item.id;\n item.adjustmentAmount = 0.00;\n systems[index] = item;\n });\n this.systems = JSON.stringify(systems);\n this.operators.Add ? this.addHandler() : this.loadDefaultRcd();\n }\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n\n loadDefaultRcd() {\n if (this.gridView && this.gridView.length > 0) {\n this.setSelectedRow(0, true, false, false, true);\n } else {\n this.notificationService.setUpLoading(false);\n }\n }\n\n loadAdjHistory() {\n this.notificationService.setUpLoading(true);\n this.adjustmentService.getAdjustmentHistory(this.inputData)\n .subscribe(response => {\n if (response && response.success) {\n this.bankInfoExist = response.bankInfoExist;\n const gridView = response.data;\n gridView.forEach(element => {\n element.submittedDate = Utility.formatDate(element.submittedDate);\n });\n this.gridView = gridView;\n this.directive.skip = 0;\n this.loadSystems();\n } else {\n this.notificationService.setErrorNotification();\n this.loadDefaultRcd();\n }\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n loadAdjRecords(id): void {\n this.adjustmentService.getAdjustmentRecords(id, this.usersService.UserInfo())\n .subscribe(response => {\n if (response && response.success) {\n this.adjRecordData = { id, system: JSON.parse(response.data) };\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n loadAdjSummary(dataItem): void {\n if (dataItem) {\n this.adjSummaryRecords = dataItem;\n }\n }\n\n deleteAdjDialog(id: number) {\n this.adjId = id;\n this.adjDeleteDialog = true;\n }\n\n deleteAdj(status: any): void {\n if (status === 'yes') {\n this.displayload = true;\n this.notificationService.setUpLoading(true);\n this.adjustmentService.deleteAdjustment(this.adjId, this.usersService.UserInfo())\n .subscribe((response) => {\n if (response && response.success) {\n this.adjDeleteDialog = false;\n this.displayload = false;\n this.displayResult(response);\n } else {\n this.adjDeleteDialog = false;\n this.displayload = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n }\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.displayload = false;\n this.adjDeleteDialog = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n } else {\n this.adjDeleteDialog = false;\n }\n }\n\n recordSaved(response) {\n this.displayResult(response);\n }\n\n displayResult(response: any) {\n this.resetChanges(true, true);\n this.notificationService.setUpNotification(response);\n }\n\n pageChange(state: State): void {\n if (this.adjRecordData.id > 0) {\n this.skip = state.skip;\n this.take = state.take;\n setTimeout(() => {\n this.setSelectedRow(0, true, false, false, true);\n }, 100);\n }\n }\n\n cellClickHandler({ dataItem, isEdited }: any) {\n this.recordSelected = dataItem;\n if (this.createAdjBtnFlag) {\n this.confirmOpen = true;\n } else {\n this.disableAddAdj = false;\n if (!isEdited) {\n if (this.recordSelected) {\n this.createAdjBtnFlag = false;\n this.notificationService.setUpLoading(true);\n this.loadAdjRecords(dataItem.id);\n this.loadAdjSummary(dataItem);\n this.contributionWithheld = this.recordSelected.contributionWithheld;\n this.isCurrentFy = this.recordSelected.isCurrentFy;\n }\n }\n if (this.selectedItem !== dataItem) {\n this.isSelectedRowChanged = true;\n this.selectedItem = dataItem;\n } else {\n this.isSelectedRowChanged = true;\n }\n }\n }\n\n resetChanges(args: any, loadHistry = true): void {\n this.changeDDwnStage(args);\n this.createAdjBtnFlag = !args;\n if (args && loadHistry) {\n this.loadAdjHistory();\n }\n }\n\n changeDDwnStage(args: boolean) {\n this.isChanged = !args;\n this.authService.formChanged(args);\n }\n\n onCancelBtnClick(args: any) {\n if (args === 'yes') {\n this.adjRecordData = null;\n this.confirmOpen = true;\n this.resetChanges(true, false);\n if (this.recordSelected) {\n this.cellClickHandler({ dataItem: this.recordSelected, isEdited: false });\n } else {\n this.loadSystems();\n }\n }\n this.confirmOpen = false;\n }\n\n setSelectedRow(index: number, isManualSelection: any, isSelected: any, isCellClick: any, reqSelection: boolean = true) {\n if (!this.document ) { return; }\n const adjElem = this.document.getElementById('adjustment-history-grid');\n if (!adjElem) { return; }\n const grid = adjElem.getElementsByClassName('k-grid-content')[0];\n if (!grid) { return; }\n const filterRow = adjElem.getElementsByClassName('k-filter-row');\n if (filterRow && filterRow[0]) {\n const inputRows = filterRow[0].getElementsByTagName('input');\n if (inputRows) {\n this.filterRows = inputRows;\n }\n }\n\n const rows = grid.getElementsByTagName('tr');\n let dataRowIndex = -1;\n const selectedRow = grid.getElementsByClassName('k-state-selected')[0];\n for (const row of rows) {\n if (row.className.indexOf('k-grouping-row') < 0 && row.className.indexOf('k-group-footer') < 0) {\n if (isManualSelection) {\n this.rowIndex = 1;\n\n if (selectedRow != null) {\n selectedRow.className = String(selectedRow.className)\n .replace('k-state-selected', '')\n .replace('k-state-selected', '');\n }\n\n for (const childRow of row.children) {\n if (childRow.className.indexOf('k-group-cell') < 0 && childRow.children[0] != null) {\n if (reqSelection) {\n row.children[0].click();\n const v = grid.getElementsByTagName('tr')[0];\n v.className += 'k-state-selected';\n }\n break;\n }\n }\n break;\n } else {\n if (this.isSelectedRowChanged) {\n this.rowIndex = index + 1;\n return;\n }\n if (selectedRow == null) {\n row.className = row.className + ' k-state-selected';\n for (const childRow of row.children) {\n if (childRow.className.indexOf('k-group-cell') < 0 && childRow.children[0] != null) {\n if (reqSelection) { childRow.click(); }\n break;\n }\n }\n break;\n } else {\n dataRowIndex++;\n if (!this.isSelectedRowChanged) {\n break;\n } else {\n this.rowIndex = dataRowIndex + 1;\n }\n }\n\n }\n }\n }\n }\n\n}\n","
\n \n
\n
\n
\n

History

\n \n\n \n
\n
\n \n
\n
\n
\n\n \n \n \n \n
\n \n
\n
\n Adjustment Id: \n {{ dataItem.id }}\n
\n
\n \n
\n
\n Created: \n {{ dataItem.submittedDate }}\n
\n
\n \n
\n
\n Status: \n {{ dataItem.statusMessage }}\n
\n
\n
\n
\n
\n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n
\n \n {{dataItem.submittedDate}}\n \n
\n
\n
\n\n \n \n \n \n \n \n
\n {{dataItem.statusMessage}}\n
\n \n
\n {{dataItem.statusMessage}}\n
\n \n
\n {{dataItem.statusMessage}}\n
\n
\n
\n
\n
\n\n \n \n \n
\n \n \n \n
\n
\n
\n\n \n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n

Submitting Adjustments

\n
\n \n

Submitted Adjustment

\n
\n\n \n
\n
\n
\n \n

{{adjSummaryRecords.comments}}

\n
\n \n
\n \n
\n

Approved reason

\n

{{adjSummaryRecords.comments}}

\n
\n
\n
\n
\n
\n
\n No withheld contribution.\n
\n
\n The adjustment includes previous calendar/tax year(s) contributions.\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n\n \n

Do you want to permanently delete this adjustment?

\n
\n
\n \n Deleting\n
\n \n \n \n \n
\n\n \n \n

All unsaved changes will be lost. Continue?

\n \n \n \n \n
\n","import { Component, OnInit, Input, AfterViewChecked } from '@angular/core';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { DocumentService } from 'src/app/shared/services/documents/document.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\n\n@Component({\n selector: 'app-adjustment-summary',\n templateUrl: './adjustment-summary.component.html',\n styleUrls: ['./adjustment-summary.component.css']\n})\n\nexport class AdjustmentSummaryComponent implements OnInit, AfterViewChecked {\n\n constructor(\n private usersService: UsersService,\n private documentService: DocumentService,\n private notificationService: DisplayNotificationService) { }\n summaryRecord: any;\n\n @Input()\n set adjustmentSummaryRecord(selectedAdjRecord: any) {\n if (selectedAdjRecord) {\n this.summaryRecord = selectedAdjRecord;\n }\n }\n\n ngOnInit() {\n }\n\n ngAfterViewChecked() {\n if (this.summaryRecord) {\n const element = document.getElementById('main-header');\n const positionInfoHeader = element.getBoundingClientRect();\n const elementFooter = document.getElementById('main-footer');\n const positionInfoFooter = elementFooter.getBoundingClientRect();\n const elementhstry = document.getElementById('history-container');\n const positionInfohstry = elementhstry.getBoundingClientRect();\n const elementStrock = document.getElementById('stroke-separator');\n const positionInfoStrock = elementStrock.getBoundingClientRect();\n const elementSumHeader = document.getElementById('summary-header');\n const positionInfoSumHeader = elementSumHeader.getBoundingClientRect();\n const headAndFootHeight = positionInfoHeader.height + positionInfoFooter.height;\n const historyContainerHeight = positionInfohstry.height + positionInfoStrock.height + positionInfoSumHeader.height;\n const elementsHeight = ((headAndFootHeight + historyContainerHeight) + 22);\n const overAllHeight = document.documentElement.clientHeight;\n const remaningHeight = overAllHeight - elementsHeight;\n const screenWidth = screen.width;\n if (screenWidth > 992.98) {\n document.getElementById('summary-data').style.maxHeight = remaningHeight + 'px';\n } else {\n document.getElementById('summary-data').style.maxHeight = 'inherit';\n }\n }\n }\n\n downloadAdjFile(summaryRecord: any) {\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n adjustmentId: this.summaryRecord.id\n };\n const fileName = this.summaryRecord.fileName;\n this.documentService.viewAdjFile(inputData, fileName).subscribe(() => {\n summaryRecord.isClicked = !summaryRecord.isClicked;\n }, (err: HttpErrorResponse) => {\n console.log(err);\n summaryRecord.isClicked = !summaryRecord.isClicked;\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","
\n

Data Summary

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Created By{{summaryRecord?.createdBy}}
Created On{{summaryRecord?.submittedDate | date: 'MM/dd/yyyy'}}
Amount{{summaryRecord?.amount | currency: 'USD'}}
File Name\n \n \n {{summaryRecord?.fileName}}\n \n \n
\n
\n
\n
\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { StagingPayrollRecord } from 'src/app/models/payrollRecord';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { ImportService } from 'src/app/shared/services/payroll/import.service';\nimport { Utility } from 'src/app/shared/utility';\n\n@Component({\n selector: 'app-payroll-record-add-edit-form',\n templateUrl: './payroll-record-add-edit-form.component.html',\n styleUrls: ['./payroll-record-add-edit-form.component.css']\n})\nexport class PayrollRecordAddEditFormComponent implements OnInit {\n recordErrors: any;\n recordIssues: any;\n defaultState: any;\n defaultLocation: any;\n defaultSystem: any = 1;\n popUpIssues: any;\n recordId: any;\n states: any[];\n importId: number;\n invalidAAC: any;\n invalidAEC: any;\n invalidContribution: any;\n invalidPPBaseSalary: any;\n invalidHoursWork: any;\n invalidStandardHours: any;\n invalidFTRange: any;\n invalidFT: any;\n errorAndIssueMsg: any;\n continueMsg: any;\n pped: string = new Date().toLocaleDateString();\n validationSettings: any[];\n enrollmentDateCutoff: Date = new Date();\n defaultItem: { name: string; id: string } = {\n name: 'Select a location...',\n id: ''\n };\n defaultSysItem: { name: string; id: string } = {\n name: 'Select a system...',\n id: ''\n };\n ssnMask = '000-00-0000';\n zipMask = '00000';\n zip4Mask = '0000';\n charLimit = 6;\n contrCharLimit = 7;\n baseSalCharLimit = 9;\n min = 0.0;\n maxHW = 999;\n maxSH = 999;\n maxPBS = 999999;\n maxAEC = 999999;\n isProcessing = false;\n active = false;\n isNewRecord = false;\n isErr = false;\n isIssue = false;\n displaySubmitPopUp = false;\n speCharPattern = /^[a-zA-Z\\s.'\\-,`]+$/;\n autoCorrect = false;\n public editForm: UntypedFormGroup = new UntypedFormGroup({\n ssn: new UntypedFormControl('', [Validators.required, Validators.pattern(/^(?!666|000\\d{2})\\d{3}(?!00)\\d{2}(?!0{4})\\d{4}$/)]),\n firstName: new UntypedFormControl('', [Validators.required, Validators.pattern(this.speCharPattern)]),\n middleInitials: new UntypedFormControl(''),\n lastName: new UntypedFormControl('', [Validators.required, Validators.pattern(this.speCharPattern)]),\n addressLine1: new UntypedFormControl('', Validators.required),\n addressLine2: new UntypedFormControl(''),\n city: new UntypedFormControl('', [Validators.required, Validators.pattern(this.speCharPattern)]),\n state: new UntypedFormControl(''),\n zip: new UntypedFormControl('', Validators.required),\n zip4: new UntypedFormControl(''),\n departmentCode: new UntypedFormControl(''),\n locationCode: new UntypedFormControl('', [Validators.required, Validators.minLength(8), Validators.maxLength(8)]),\n systemCode: new UntypedFormControl('', [Validators.required, Validators.minLength(1), Validators.maxLength(1)]),\n payPeriodEndDate: new UntypedFormControl(''),\n actualAnnualCompensation: new UntypedFormControl(''),\n actualEarnableCompensation: new UntypedFormControl(''),\n employeeContribution: new UntypedFormControl('', Validators.required),\n payPeriodBaseSalary: new UntypedFormControl('', Validators.required),\n hoursWorked: new UntypedFormControl('', [Validators.required, Validators.min(0), Validators.max(288)]),\n standardHours: new UntypedFormControl('', Validators.required),\n percentFullTime: new UntypedFormControl('', [Validators.required, Validators.min(1), Validators.max(100)]),\n planCode: new UntypedFormControl(''),\n id: new UntypedFormControl(''),\n payrollImportId: new UntypedFormControl('')\n });\n @Input() isNew = false;\n @Input() userLocations: any[];\n @Input() systems: any[];\n\n @Input() orgId: number;\n @Input() set validationSetting(setting) {\n this.validationSettings = setting;\n }\n @Input() set model(record: any) {\n if (record) {\n this.editRecord(record);\n }\n }\n @Output() cancel: EventEmitter = new EventEmitter();\n @Output() save: EventEmitter = new EventEmitter();\n @Output() responseMsg: EventEmitter = new EventEmitter();\n\n constructor(private importService: ImportService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n if (this.states === undefined) {\n this.loadStates();\n }\n const config = this.readConfigService.getPayrollUploadFile();\n this.invalidAAC = config.InvalidAAC;\n this.invalidAEC = config.InvalidAEC;\n this.invalidContribution = config.InvalidContribution;\n this.invalidPPBaseSalary = config.InvalidPPBaseSalary;\n this.invalidHoursWork = config.InvalidHoursWork;\n this.invalidStandardHours = config.InvalidStandardHours;\n this.invalidFTRange = config.InvalidFTRange;\n this.invalidFT = config.InvalidFT;\n this.errorAndIssueMsg = config.ErrorAndIssueMsg;\n this.continueMsg = config.ContinueMsg;\n }\n\n editRecord(record) {\n this.isNewRecord = this.isNew;\n this.recordIssues = [];\n this.recordErrors = [];\n this.isErr = false;\n this.isIssue = false;\n this.defaultState = { abbreviation: 'MD', name: 'Maryland' };\n if (record !== undefined && record.dataItem !== undefined) {\n if (record.dataItem.isError === 1) {\n this.isErr = true;\n this.recordErrors = record.dataItem.error.split(',');\n }\n if (record.dataItem.issue !== '') {\n this.isIssue = true;\n const issues = record.dataItem.issue.split(',');\n this.recordIssues = Utility.getIssues(issues);\n }\n const inputOrg = { id: record.dataItem.locationCode, name: record.dataItem.locationCode };\n this.defaultLocation = ((this.userLocations !== undefined) ?\n this.userLocations.filter(x => x.id === record.dataItem.locationCode)[0] :\n this.userLocations[0]) || inputOrg;\n let selectdSys: any;\n if (this.systems) {\n selectdSys = this.systems.filter(x => x.id === record.dataItem.systemCode);\n }\n this.defaultSystem = (selectdSys && selectdSys.length > 0) ? selectdSys[0] : this.defaultSysItem;\n // tslint:disable-next-line: max-line-length\n this.defaultState = (this.states === undefined) ? this.defaultState : this.states.filter(x => x.abbreviation === record.dataItem.state)[0];\n this.pped = new Date(record.dataItem.payPeriodEndDate).toLocaleDateString();\n this.importId = record.dataItem.payrollImportId;\n record.dataItem.systemCode = this.defaultSystem.id;\n record.dataItem.ssn = Utility.getIntegers(record.dataItem.ssn);\n record.dataItem.locationCode = Utility.getIntegers(record.dataItem.locationCode);\n this.editForm.reset(record.dataItem);\n } else {\n this.pped = new Date(record.PayPeriodEndDate).toLocaleDateString();\n if (this.userLocations !== undefined) {\n this.defaultLocation = this.defaultItem;\n }\n if (this.systems !== undefined) {\n this.defaultSystem = this.defaultSysItem;\n }\n if (record !== undefined) {\n record.actualAnnualCompensation = 0;\n record.actualEarnableCompensation = 0;\n record.employeeContribution = 0;\n record.payPeriodBaseSalary = 0;\n record.percentFullTime = 0;\n record.hoursWorked = this.min;\n record.standardHours = this.min;\n this.editForm.reset(record);\n this.importId = record.PayrollImportId;\n }\n }\n if (record !== undefined) {\n let val = this.validationSettings.find(s => s.keyName === 'HoursWorked').value;\n this.maxHW = parseFloat(val);\n val = this.validationSettings.find(s => s.keyName === 'StandardHours').value;\n this.maxSH = parseFloat(val);\n val = this.validationSettings.find(s => s.keyName === 'PayPeriodBaseSalary').value;\n this.maxPBS = parseFloat(val);\n val = this.validationSettings.find(s => s.keyName === 'EnrollmentDateCutOff').value;\n this.enrollmentDateCutoff = val;\n }\n if (this.maxAEC > 0) {\n const validators = [Validators.required, Validators.min(1), Validators.max(this.maxAEC)];\n this.editForm.get('actualAnnualCompensation').setValidators(validators);\n this.editForm.get('actualEarnableCompensation').setValidators(validators);\n }\n this.active = record !== undefined;\n }\n\n loadStates() {\n this.importService.getStates(true)\n .subscribe(states => {\n this.states = states;\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n\n saveRecord(record: any): void {\n this.isProcessing = true;\n this.importService.save(record, this.isNewRecord)\n .subscribe(response => {\n this.responseMsg.emit(response);\n this.isErr = this.isIssue = false;\n this.active = response.success === false;\n if (this.active) {\n this.recordId = response.id;\n setTimeout(() => {\n this.isNewRecord = !this.active;\n if (response.result) {\n const issues = response.result.filter((x) => x.isError === false);\n const errors = response.result.filter((x) => x.isError === true);\n this.isErr = (errors && errors.length > 0);\n this.isIssue = (issues && issues.length > 0);\n if (this.isErr) {\n this.recordErrors = errors.map((x) => x.error);\n }\n if (this.isIssue) {\n this.recordIssues = Utility.getIssues(issues.map((x) => x.error));\n this.popUpIssues = issues.map((x) => x.error);\n }\n }\n this.displaySubmitPopUp = true;\n }, 250);\n }\n this.isProcessing = false;\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.active = false;\n this.isProcessing = false;\n this.notificationService.setErrorNotification();\n }\n );\n }\n\n closePopup() {\n this.active = false;\n this.isProcessing = false;\n }\n\n trimContent(data: any) {\n if (data.target.value) {\n const replaceInput = data.target.value.replace(/[^a-zA-Z]/g, '');\n this.editForm.controls.middleInitials.setValue(replaceInput);\n }\n }\n\n onValueChanges(e, name) {\n this.editForm.controls[name].patchValue(e.id);\n }\n\n setIntMaxVal(name) {\n if (this.editForm.get(name).value) {\n let value = this.editForm.get(name).value.toString();\n if (value.length > this.charLimit) {\n value = value.substr(0, this.charLimit);\n }\n const setValue = parseInt(value);\n this.editForm.controls[name].setValue(setValue);\n }\n }\n\n setDecMaxVal(name) {\n if (this.editForm.get(name).value) {\n let value = this.editForm.get(name).value.toString();\n const char = name === 'employeeContribution' ? this.contrCharLimit : this.baseSalCharLimit;\n if (value.length > char) {\n value = value.substr(0, char);\n this.editForm.controls[name].setValue(parseFloat(value));\n }\n }\n }\n\n onSave(e: any): void {\n e.preventDefault();\n this.notificationService.setUpLoading(true);\n const record = this.editForm.value;\n if (this.isNew && this.isNewRecord) {\n const stagingRecord = new StagingPayrollRecord();\n stagingRecord.FirstName = record.firstName;\n stagingRecord.LastName = record.lastName;\n stagingRecord.SSN = record.ssn;\n stagingRecord.AddressLine1 = record.addressLine1;\n stagingRecord.City = record.city;\n stagingRecord.State = this.defaultState.abbreviation;\n stagingRecord.Zip = record.zip;\n stagingRecord.MiddleInitials = record.middleInitials === null ? '' : record.middleInitials;\n stagingRecord.AddressLine2 = record.addressLine2 === null ? '' : record.addressLine2;\n stagingRecord.Zip4 = record.zip4 === null ? '' : record.zip4;\n stagingRecord.DepartmentCode = record.departmentCode === null ? '' : record.departmentCode;\n stagingRecord.PlanCode = '';\n stagingRecord.ActualAnnualCompensation = record.actualAnnualCompensation;\n stagingRecord.ActualEarnableCompensation = record.actualEarnableCompensation;\n stagingRecord.EmployeeContribution = record.employeeContribution;\n stagingRecord.HoursWorked = record.hoursWorked;\n stagingRecord.PayPeriodBaseSalary = record.payPeriodBaseSalary;\n stagingRecord.PayPeriodEndDate = this.pped;\n stagingRecord.StandardHours = record.standardHours;\n stagingRecord.LocationCode = this.defaultLocation.id;\n stagingRecord.SystemCode = this.defaultSystem.id;\n stagingRecord.PercentFullTime = record.percentFullTime;\n stagingRecord.PayrollImportId = this.importId;\n this.saveRecord(stagingRecord);\n } else {\n record.id = (record.id ? record.id : this.recordId);\n record.middleInitials = record.middleInitials === null ? '' : record.middleInitials;\n record.addressLine2 = record.addressLine2 === null ? '' : record.addressLine2;\n record.zip4 = record.zip4 === null ? '' : record.zip4;\n record.departmentCode = record.departmentCode === null ? '' : record.departmentCode;\n record.planCode = '';\n record.payrollImportId = (record.payrollImportId ? record.payrollImportId : this.importId);\n record.payPeriodEndDate = new Date(this.pped);\n record.locationCode = this.defaultLocation.id;\n record.systemCode = this.defaultSystem.id;\n record.state = this.defaultState.abbreviation;\n this.saveRecord(record);\n }\n }\n\n onCancel(e: any): void {\n e.preventDefault();\n this.closeForm();\n }\n\n closeForm(): void {\n this.displaySubmitPopUp = false;\n this.active = false;\n this.cancel.emit();\n }\n\n}\n","\n\n \n {{ isNewRecord ? 'Add New Record' : 'Edit Record' }}\n \n
\n
\n

Errors:

\n
    \n
  • \n {{error}}\n
  • \n
\n
\n
\n

Warnings:

\n
    \n
  • \n {{issue}}\n
  • \n
\n
\n\n
\n

Personal Details

\n
\n
\n
\n
\n
\n
\n \n \n
\n \n Valid SSN is required\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n \n \n
\n \n Valid First Name is required\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n \n Valid Last Name is required\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n

Address

\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n \n Address1 is required\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n \n \n
\n \n Valid City is required\n \n
\n
\n
\n
\n
\n \n \n \n
\n \n State is required\n \n
\n
\n
\n
\n
\n \n \n \n
\n \n Enter valid zip\n \n
\n
\n
\n
\n
\n \n \n \n
\n \n Enter valid zip4\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n

Membership

\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n

Pay

\n
\n
\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n (PPED)\n \n
\n {{pped}}\n
\n
\n (Dollars\n only, no cents)*\n \n
\n \n
\n \n Max\n AAC limit is {{maxAEC}}\n {{invalidAAC}}\n \n
\n
\n
\n (Dollars\n only, no cents)*\n \n
\n \n \n
\n \n Max\n AEC limit is {{maxAEC}}\n {{invalidAEC}}\n \n
\n
\n
\n (Dollars\n and cents, with decimal)*\n \n
\n \n
\n \n {{invalidContribution}}\n \n
\n
\n
\n (Dollars\n and cents, with decimal)*\n \n
\n \n
\n \n {{invalidPPBaseSalary}}\n \n
\n
\n
\n (To one decimal\n point, ex. 80.0)*\n \n
\n \n
\n \n {{invalidHoursWork}}\n \n
\n
\n
\n (To one\n decimal\n point, ex. 80.0)*\n \n
\n \n
\n \n {{invalidStandardHours}}\n \n
\n
\n
\n \n (No decimal or percent sign)*\n %\n \n
\n \n \n
\n \n {{invalidFTRange}}\n {{invalidFT}}\n \n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n\n\n\n

{{errorAndIssueMsg}}

\n\n
\n

Errors:

\n
    \n
  • \n {{error}}\n
  • \n
\n
\n
\n

Warnings:

\n
    \n
  • \n {{issue}}\n
  • \n
\n
\n\n

{{continueMsg}}

\n \n \n \n \n
\n","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { State, process, CompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { Import } from 'src/app/models/import';\nimport { GridDataResult, PageChangeEvent } from '@progress/kendo-angular-grid';\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\nimport { Utility } from 'src/app/shared/utility';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IPayrollRecord, PayrollRecord } from 'src/app/models/payrollRecord';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ImportService } from 'src/app/shared/services/payroll/import.service';\nimport { CommonService } from 'src/app/shared/services/common/common.service';\n\n@Component({\n selector: 'app-payroll-record',\n templateUrl: './payroll-record.component.html',\n styleUrls: ['./payroll-record.component.css']\n})\nexport class PayrollRecordComponent implements OnInit {\n operators: any;\n opened = false;\n submitted = true;\n deleteRecordDialog = false;\n kendoloading = false;\n isErr = false;\n isIssue = false;\n recordIssues: any;\n recordErrors: any;\n Name: string;\n removeRecord: PayrollRecord;\n payrollrecords: PayrollRecord[];\n selectedRecord: IPayrollRecord;\n locations: any[];\n systems: any[];\n editDataItem: any;\n orgId: number;\n isNew: boolean;\n importRecord: Import;\n gridView: GridDataResult;\n filters: CompositeFilterDescriptor;\n msg: string;\n gridData: any[];\n filterValue: any = '';\n globalFilter: boolean;\n totalNoOfRecords = 0;\n skip = 0;\n currentPage = 0;\n gridState: State = {\n group: [],\n sort: [],\n take: 20,\n skip: 0\n };\n gridHeight = {\n height: 'calc(100vh - 170px)'\n };\n validationSettings: any[];\n get import(): Import { return this.importRecord; }\n @Input() set import(selectedImport: Import) {\n this.importRecord = selectedImport;\n this.loadRecords();\n this.loadLocations();\n }\n @Input() set deleteRcdDialog(deleteRecordDialog) {\n if (!deleteRecordDialog) {\n this.deleteRecordDialog = false;\n this.loadRecords();\n }\n }\n @Input() set operations(operators) {\n if (operators) {\n this.operators = operators;\n }\n }\n @Output() onrecordChange = new EventEmitter();\n @Output() lastRecordDelete = new EventEmitter();\n @Input() set validationSetting(setting) {\n this.validationSettings = setting;\n }\n\n constructor(\n private importService: ImportService,\n private commonService: CommonService,\n private notificationService: DisplayNotificationService) {\n this.allData = this.allData.bind(this);\n }\n\n ngOnInit() {\n if (this.import !== undefined) {\n this.loadRecords();\n }\n }\n\n getGridData(): any {\n return this.payrollrecords.toLocaleString();\n }\n\n onStateChange(state: State) {\n this.gridState = state;\n this.skip = state.skip === undefined ? 0 : state.skip;\n const me = this;\n this.gridView = process(me.payrollrecords, me.gridState);\n }\n\n pageChange(event: PageChangeEvent): void {\n this.skip = event.skip;\n if (this.payrollrecords !== undefined) {\n const records = this.globalFilter ? this.gridData : this.payrollrecords;\n this.gridView = process(records, this.gridState);\n }\n }\n\n loadRecords(): void {\n if (this.importRecord !== undefined) {\n const id = this.importRecord.id;\n this.globalFilter = false;\n const staging = this.importRecord.submitted === null;\n this.submitted = staging;\n this.importService.getRecords(id, staging)\n .subscribe(payrollrecords => {\n if (payrollrecords && payrollrecords.length > 0) {\n this.filterValue = '';\n if (!staging) { payrollrecords.forEach(value => { value.payPeriodEndDate = new Date(value.payPeriodEndDate); }); }\n this.payrollrecords = payrollrecords;\n this.gridState.skip = 0;\n this.gridView = process(payrollrecords, this.gridState);\n this.totalNoOfRecords = this.payrollrecords.length;\n this.kendoloading = false;\n setTimeout(() => {\n this.currentPage = 1;\n this.notificationService.setUpLoading(false);\n }, 300);\n } else {\n this.notificationService.setUpLoading(false);\n }\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n } else {\n this.submitted = false;\n }\n }\n\n onInput(inputValue: string): void {\n this.globalFilter = true;\n this.gridData = process(this.payrollrecords, {\n filter: {\n logic: 'or',\n filters: [\n {\n field: 'name',\n operator: 'contains',\n value: inputValue\n },\n {\n field: 'lastFourSSN',\n operator: 'contains',\n value: inputValue,\n }\n ]\n }\n }).data;\n this.gridState.skip = 0;\n this.gridView = process(this.gridData, this.gridState);\n }\n\n downloadFile() {\n this.importService.generateImportFile(this.import.id.toString())\n .subscribe((data: any) => {\n const fileText = data.message;\n const fileName = this.import.id.toString() + '_SavedPayrollUpload_' + data.datetime + '.txt';\n this.saveTextAsFile(fileText, fileName);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n\n saveTextAsFile(data, fileName) {\n if (data) {\n const blob = new Blob([data], { type: 'text/plain' });\n // FOR IE:\n const nav = (window.navigator as any);\n if (nav && nav.msSaveOrOpenBlob) {\n nav.msSaveOrOpenBlob(blob, fileName);\n } else {\n const e = document.createEvent('MouseEvents');\n const a = document.createElement('a');\n a.download = fileName;\n a.href = window.URL.createObjectURL(blob);\n e.initEvent('click', true, false);\n a.dispatchEvent(e);\n }\n }\n }\n\n closePopup() {\n this.opened = false;\n }\n\n allData(): ExcelExportData {\n const result: ExcelExportData = {\n data: this.payrollrecords\n };\n return result;\n }\n\n loadIssueRecords(issueType: string, id: number, staging: boolean, isError: boolean = false): void {\n if (id !== undefined) {\n this.importService.getIssueRecords(id, issueType, staging, isError)\n .subscribe(response => {\n if (response && response.length > 0) {\n this.filterValue = '';\n this.globalFilter = false;\n this.payrollrecords = response;\n this.gridState.skip = 0;\n this.gridView = process(response, this.gridState);\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n }\n\n loadLocations(): void {\n if (this.importRecord !== undefined) {\n this.commonService.getLocations()\n .subscribe(response => {\n if (response && response.locations.length > 0 && response.systems.length > 0) {\n this.locations = response.locations;\n this.systems = response.systems;\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n }\n\n openRecord(record: any): void {\n this.recordIssues = [];\n this.recordErrors = [];\n this.Name = record.Name;\n this.selectedRecord = record;\n this.isErr = false;\n this.isIssue = false;\n if (record.isError === 1) {\n this.isErr = true;\n this.recordErrors = record.error.split(',');\n }\n if (record.issue !== '') {\n this.isIssue = true;\n const issues = record.issue.split(',');\n this.recordIssues = Utility.getIssues(issues);\n }\n this.opened = true;\n }\n\n addHandler() {\n if (this.locations === undefined) {\n this.loadLocations();\n }\n this.editDataItem = new PayrollRecord();\n this.editDataItem.PayrollImportId = this.import.id;\n this.editDataItem.PlanCode = '';\n const ppd = this.importRecord.pped.replace(/-/g, '\\/');\n this.editDataItem.PayPeriodEndDate = new Date(ppd);\n this.orgId = this.import.orgId;\n this.isNew = true;\n }\n\n editHandler(dataItem: PayrollRecord) {\n if (this.locations === undefined) {\n this.loadLocations();\n }\n this.editDataItem = dataItem;\n this.orgId = this.import.orgId;\n this.isNew = false;\n }\n\n removeHandler(removeEvent: any) {\n this.removeRecord = removeEvent;\n this.deleteRecordDialog = true;\n }\n\n remove(status: any): void {\n if (status === 'yes') {\n this.kendoloading = true;\n if (this.totalNoOfRecords > 1) {\n this.importService.remove(this.removeRecord)\n .subscribe((response) => {\n if (response && response.success) {\n this.displayResult(response);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.deleteRecordDialog = false;\n this.kendoloading = false;\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.kendoloading = false;\n this.deleteRecordDialog = false;\n this.notificationService.setErrorNotification();\n });\n } else {\n this.lastRecordDelete.emit(true);\n }\n } else {\n this.deleteRecordDialog = false;\n }\n }\n\n displayResult(response: any) {\n let isWarningResp = false;\n let showErrMsg = false;\n const dispResponse = { success: false, message: '' };\n if (response.success || response.status === 200) {\n this.msg = response.message === undefined ? JSON.parse(response._body).message : response.message;\n dispResponse.success = true;\n this.onrecordChange.emit(response.success);\n } else {\n if (response.message === undefined) {\n if (response._body !== '') {\n const errObj = JSON.parse(response._body);\n this.msg = errObj.error;\n } else {\n this.msg = response.statusText;\n }\n } else {\n this.msg = response.message;\n this.onrecordChange.emit(response.success);\n }\n\n if (response.id) {\n showErrMsg = (response.result.filter(x => x.isError === true).length > 0);\n } else {\n showErrMsg = true;\n }\n\n if (!showErrMsg) {\n isWarningResp = true;\n this.msg = (this.msg || '').replace('errors/', '');\n } else {\n dispResponse.success = false;\n }\n }\n this.editDataItem = undefined;\n dispResponse.message = this.msg;\n this.notificationService.setUpNotification(dispResponse, isWarningResp);\n }\n}\n","
\n \n\n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n \n \n  \n \n
\n
\n
\n
\n\n \n \n \n \n
\n \n
\n
\n
\n
\n Name: \n {{ dataItem.name }}\n
\n
\n \n
\n
\n
\n
\n SSN 4: \n {{ dataItem.lastFourSSN }}\n
\n
\n
\n
\n
\n\n \n \n \n
\n \n \n \n \n \n \n
\n
\n
\n\n \n \n \n Error\n Warning\n Okay\n \n \n\n \n \n \n {{dataItem.lastFourSSN}}\n \n \n \n \n \n \n \n
{{dataItem.systemCode}}
\n
\n
\n \n \n \n \n \n \n
{{dataItem.employeeContribution | currency:'USD':'symbol':'1.2-2'}}
\n
\n
\n \n \n \n \n \n \n \n \n \n
{{dataItem.payPeriodBaseSalary | currency:'USD':'symbol':'1.2-2'}}
\n
\n
\n \n \n \n
{{dataItem.actualAnnualCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n \n \n \n
{{dataItem.actualEarnableCompensation | currency:'USD':'symbol':'1.0-2'}}
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n
\n \n \n \n
\n\n\n\n
\n
\n

Errors:

\n
    \n
  • \n {{error}}\n
  • \n
\n
\n
\n

Warnings:

\n
    \n
  • \n {{issue}}\n
  • \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Personal Details
Social Security Number{{selectedRecord.ssn}}
Last Name{{selectedRecord.lastName}}
First Name{{selectedRecord.firstName}}
Middle Initial{{selectedRecord.middleInitials}}
AddressLine1{{selectedRecord.addressLine1}}
AddressLine2{{selectedRecord.addressLine2}}
City{{selectedRecord.city}}
State{{selectedRecord.state}}
Zip{{selectedRecord.zip}}
Membership
Location{{selectedRecord.locationCode}}
System Code{{selectedRecord.systemCode}}
Pay
Pay Period End Date{{selectedRecord.payPeriodEndDate | date: \"MM/dd/yyyy\"}}
Actual Annual Compensation{{selectedRecord.actualAnnualCompensation | currency}}
Annual Earnable Compensation{{selectedRecord.actualEarnableCompensation | currency}}
Employee Contribution{{selectedRecord.employeeContribution | currency}}
Pay Period Base Salary{{selectedRecord.payPeriodBaseSalary | currency}}
Hours Worked{{selectedRecord.hoursWorked}}
Standard Hours{{selectedRecord.standardHours}}
Percentage of Time{{selectedRecord.percentFullTime }}
\n
\n
\n
\n\n\n\n
\n
1; else deleteImport\">Do you want to permanently delete this record?
\n \n Deleting this final record will delete the import.\n Do you want to continue? \n \n
\n
\n
\n \n Deleting\n
\n \n \n \n \n
\n","import { AfterViewChecked, Component, HostListener, Inject, Injectable, OnDestroy, OnInit } from '@angular/core';\nimport { State, process } from '@progress/kendo-data-query';\nimport { Import, ImportFileData } from 'src/app/models/import';\nimport { GridDataResult, SelectableSettings } from '@progress/kendo-angular-grid';\nimport { DOCUMENT } from '@angular/common';\nimport {\n HttpErrorResponse, HttpEvent, HttpEventType, HttpHandler,\n HttpInterceptor, HttpProgressEvent, HttpRequest, HttpResponse\n} from '@angular/common/http';\nimport { concat, Observable, of } from 'rxjs';\nimport { delay } from 'rxjs/operators';\nimport { FileState, SuccessEvent, UploadEvent, UploadProgressEvent, SelectEvent } from '@progress/kendo-angular-upload';\nimport { Global } from 'src/app/shared/global.constants';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { LocalStoreManager } from 'src/app/shared/services/auth/local-store-manager.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { ImportService } from 'src/app/shared/services/payroll/import.service';\n\n@Component({\n selector: 'app-payroll-reports',\n templateUrl: './payroll-reports.component.html',\n styleUrls: ['./payroll-reports.component.css']\n})\nexport class PayrollReportsComponent implements OnInit, OnDestroy, AfterViewChecked {\n\n constructor(@Inject(DOCUMENT) private document: any,\n private importService: ImportService,\n private authService: AuthService,\n private localStorage: LocalStoreManager,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n imports: Import[];\n gridView: GridDataResult;\n importId: number;\n invoiceId: number;\n import: Import;\n config: any;\n grid: HTMLElement;\n selectedImport: Import;\n displayData: any = [];\n result: any[];\n extensionsBlacklist = [];\n continuePayrollMsg: any;\n ppedCloneValidationMsg: any;\n largeUploadMsg: any;\n submitImportMsg: any;\n deleteImportMsg: any;\n rowIndex = 0;\n take = 5;\n skip = 0;\n currentPage = 0;\n isSelectedRowChanged = false;\n isUnsubmittedImport = false;\n importDelete = false;\n cloneImportOpened = false;\n displayload = false;\n maxErrorExceeded = false;\n importOpened = false;\n disableClose = false;\n deleteRecordDialog = false;\n ppedExists = true;\n displaySubmit = false;\n disableSubmitBtn = true;\n continueImportId: any;\n selectedItem: any;\n uploadSaveUrl = '';\n currentOrgId = '';\n apiUrl = this.readConfigService.getApiUrl();\n uploadRemoveUrl = 'removeUrl';\n selectableSettings: SelectableSettings = { mode: 'single' };\n public pped: Date = new Date();\n currentFy = (this.pped.getFullYear() - (this.pped.getMonth() > 5 ? 0 : 1));\n minDate: Date = new Date(this.currentFy - 1, 6, 1);\n maxDate: Date = new Date(this.currentFy + 2, 5, 30);\n filterRows: any;\n ids: string;\n gridState: State = {\n sort: [],\n take: this.take,\n skip: 0,\n };\n validationSettings: any[];\n operators: any;\n disableSubmit: boolean;\n invalidPPED: boolean;\n isExtNotAllowed: boolean;\n fileExtName: any;\n scheduleSet: any;\n multplErrorMsg: any;\n defaultPaySchedule: any;\n currentCloneScrn = 1;\n file: any;\n\n @HostListener('window:load')\n unloadHandler() {\n setTimeout(() => {\n this.importService.deleteUnValidatedImports().subscribe(() => {\n this.LoadImports(this.getUserId(), this.authService.currentOrg);\n });\n }, 500);\n }\n\n ngOnInit() {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n this.loadValidationSettings();\n this.config = this.readConfigService.getPayrollUploadFile();\n this.continuePayrollMsg = this.config.ContinuePayrollMessage;\n this.ppedCloneValidationMsg = this.config.PPEDCloneValidation;\n this.largeUploadMsg = this.config.LargeUploadMessage;\n this.submitImportMsg = this.config.SubmitImportMsg;\n this.deleteImportMsg = this.config.DeleteImportMsg;\n this.operators = this.authService.getAccessOperations(2);\n this.authService.getMessage$().forEach(message => {\n if (this.localStorage.getData('CurrentComponent') === 'payroll') {\n this.LoadImports(this.getUserId(), message.text);\n }\n });\n this.extensionsBlacklist = this.config.ExtensionsBlacklist;\n this.LoadImports(this.getUserId(), this.authService.currentOrg);\n }\n\n ngOnDestroy(): void {\n this.localStorage.deleteData('CurrentComponent');\n }\n\n ngAfterViewChecked() {\n if (this.importOpened) {\n const popupClass = document.querySelectorAll('#create-import-dialog input');\n if (popupClass && popupClass.length > 0 && popupClass[0] as HTMLElement) {\n (popupClass[0] as HTMLElement).style.opacity = '0';\n }\n }\n }\n\n getSum(args: string): number {\n let totalSum = 0;\n this.displayData.map(x => {\n totalSum += x[args];\n });\n return totalSum;\n }\n\n loadValidationSettings() {\n this.importService.getValidationSettings()\n .subscribe(settings => {\n if (settings.statusCode === 200 && settings.result) {\n this.validationSettings = settings.result;\n }\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n\n LoadImports(userId: number, orgId: number): void {\n this.notificationService.setUpLoading(true);\n this.currentCloneScrn = 1;\n this.uploadSaveUrl = this.apiUrl + Global.BASE_IMPORT_FROM_FILE_ENDPOINT;\n this.importService.getImports()\n .subscribe(imports => {\n if (imports.result.length > 0) {\n this.imports = imports.result;\n this.imports.forEach(element => {\n this.ids = element.id.toString();\n // tslint:disable-next-line: no-string-literal\n element['ids'] = this.ids;\n this.gridView = process(this.imports, this.gridState);\n });\n this.gridView = {\n data: imports.result.slice(0, this.take),\n total: imports.result.length\n };\n this.gridState.skip = 0;\n setTimeout(() => {\n this.rowIndex = 0;\n this.currentPage = 1;\n if (this.imports.length === 0) {\n this.isUnsubmittedImport = false;\n }\n this.SetSelectedRow(0, true, false, false);\n }, 100);\n } else {\n this.gridView = {\n data: imports.result.slice(0, this.take),\n total: imports.result.length\n };\n this.notificationService.setUpLoading(false);\n this.selectedImport = undefined;\n this.isUnsubmittedImport = false;\n }\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n groupSummaryData(): void {\n const groups = new Set(this.displayData.map(item => item.locationCode));\n this.result = [];\n groups.forEach(g => {\n let contTotal = 0;\n let rcdCount = 0;\n const rcds = this.displayData.filter(i => i.locationCode === g);\n rcds.map(i => { contTotal += i.contribution; });\n rcds.map(i => { rcdCount += i.recordCount; });\n\n this.result.push({\n locationCode: g,\n values: rcds,\n contTotal,\n rcdCount\n });\n });\n }\n\n close() {\n this.importOpened = false;\n this.cloneImportOpened = false;\n this.multplErrorMsg = false;\n this.ppedExists = true;\n this.resetImportClone();\n this.file = null;\n }\n\n clone(id: number): void {\n this.importId = id;\n this.cloneImportOpened = true;\n this.pped = new Date();\n this.invalidPPED = true;\n this.resetImportClone();\n }\n\n onDateChange(e: any) {\n this.invalidPPED = (e !== null && (e.valueOf() > 0\n && e.valueOf() >= new Date(this.minDate.toDateString()).valueOf()));\n }\n\n resetImportClone() {\n this.defaultPaySchedule = null;\n this.currentCloneScrn = 1;\n }\n\n cloneImport(id: number): void {\n this.displayload = true;\n this.ppedExists = true;\n this.multplErrorMsg = false;\n const orgId = this.selectedImport.orgId;\n this.importService.isPpedExists(id, orgId, this.pped)\n .subscribe((response) => {\n this.ppedExists = response.result;\n this.submitCloning(id);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.displayload = false;\n this.cloneImportOpened = false;\n this.notificationService.setErrorNotification();\n });\n }\n\n submitCloning(id: number) {\n if (this.ppedExists) {\n const payId = this.defaultPaySchedule ? this.defaultPaySchedule.id : 0;\n this.importService.cloneImport(id, this.pped, payId)\n .subscribe((response) => {\n this.defaultPaySchedule = null;\n if (response && response.scheduleSet) {\n const scheduleSet = response.scheduleSet;\n scheduleSet.forEach(x => { x.payDate = new Date(x.payDate).toLocaleDateString(); });\n this.defaultPaySchedule = { id: null, payDate: 'Select Pay Date...' };\n this.scheduleSet = scheduleSet;\n this.multplErrorMsg = response.message;\n this.currentCloneScrn = 2;\n this.displayload = false;\n return;\n }\n this.cloneImportOpened = false;\n this.displayResult(response);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.displayload = false;\n this.cloneImportOpened = false;\n this.notificationService.setErrorNotification();\n });\n } else {\n this.displayload = false;\n }\n }\n\n ifCurrentComp() {\n this.localStorage.saveSyncedSessionData('payroll', 'CurrentComponent');\n }\n\n delete(id: number, invoiceId: number): void {\n this.importId = id;\n this.invoiceId = invoiceId;\n this.importDelete = true;\n }\n\n deleteImport(status: any): void {\n if (status === 'yes') {\n this.displayload = true;\n if (this.invoiceId === undefined) {\n this.invoiceId = 0;\n }\n this.deleteRecordDialog = true;\n this.importService.deleteImport(this.importId, this.invoiceId)\n .subscribe((response) => {\n setTimeout(() => {\n this.deleteRecordDialog = false;\n }, 100);\n this.importDelete = false;\n this.displayResult(response);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.displayload = false;\n this.importDelete = false;\n this.deleteRecordDialog = false;\n this.notificationService.setErrorNotification();\n });\n } else {\n this.importDelete = false;\n }\n }\n\n openPopup() {\n this.multplErrorMsg = null;\n this.currentCloneScrn = 1;\n this.importOpened = true;\n this.isExtNotAllowed = false;\n }\n\n closePopup() {\n this.importOpened = false;\n this.multplErrorMsg = false;\n }\n\n onStateChange(state: State) {\n this.gridState = state;\n this.skip = state.skip === undefined ? 0 : state.skip;\n this.sortChange();\n setTimeout(() => {\n this.rowIndex = 0;\n this.SetSelectedRow(0, true, false, false);\n }, 300);\n }\n\n sortChange(): void {\n const sorting = this.assignArray(this.gridState.sort);\n sorting.forEach(element => {\n if (element.field === 'pped') {\n element.field = 'payPeriodEndDate';\n }\n });\n this.gridView = process(this.imports, { ...this.gridState, sort: sorting });\n }\n\n assignArray(source: any[]) {\n const dest = [];\n source.forEach((v: any) => {\n const val = (typeof v === 'object') ? Object.assign({}, v) : v;\n dest.push(val);\n });\n return dest;\n }\n\n onSelect(selectedimport: Import): void {\n this.selectedImport = selectedimport;\n }\n\n cellClickHandler({ sender, rowIndex, columnIndex, dataItem, isEdited }: any) {\n if (!isEdited) {\n this.notificationService.setUpLoading(true);\n this.selectedImport = dataItem;\n this.isUnsubmittedImport = dataItem.submitted === null;\n this.notificationService.setUpLoading(false);\n }\n if (this.selectedItem !== dataItem) {\n this.notificationService.setUpLoading(true);\n this.isSelectedRowChanged = true;\n this.selectedItem = dataItem;\n } else {\n this.isSelectedRowChanged = false;\n }\n }\n\n onRecordChange(data: any) {\n this.LoadImports(this.getUserId(), this.authService.currentOrg);\n this.displayload = false;\n }\n\n getUserId(): number {\n return this.authService.userId;\n }\n\n isImportProcessed(dataItem): boolean {\n return (dataItem.paymentStatus < 1 || dataItem.submitted == null);\n }\n\n uploadProgressEventHandler(e: UploadProgressEvent) {\n this.disableClose = true;\n }\n\n importError(isError: boolean) {\n this.disableSubmitBtn = isError;\n }\n\n onFileSubmit() {\n this.disableSubmit = true;\n this.displayload = true;\n this.multplErrorMsg = false;\n const payId = this.defaultPaySchedule ? this.defaultPaySchedule.id : 0;\n this.importService.uploadImportFile(this.importService.getFileUpload(), payId).subscribe((response: any) => {\n if (response && response.success) {\n this.resetImportClone();\n }\n this.importOpened = false;\n this.disableSubmit = false;\n this.displayload = false;\n this.displayResult(response);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.importOpened = false;\n this.disableSubmit = false;\n this.displayload = false;\n this.notificationService.setErrorNotification();\n });\n }\n\n uploadSuccess(e: SuccessEvent) {\n if (e.response !== null && e.response.body && !e.response.body.success && e.response.body.import === undefined) {\n const response = e.response.body;\n this.defaultPaySchedule = null;\n if (response && response.scheduleSet) {\n this.file = e.files;\n this.importService.saveFileUpload(e.files);\n const scheduleSet = response.scheduleSet;\n scheduleSet.forEach(x => { x.payDate = new Date(x.payDate).toLocaleDateString(); });\n this.defaultPaySchedule = { id: null, payDate: 'Select Pay Date...' };\n this.scheduleSet = scheduleSet;\n this.currentCloneScrn = 2;\n this.importOpened = true;\n this.disableClose = false;\n this.multplErrorMsg = response.message;\n return;\n }\n this.displayResult(response);\n } else if (e.response !== null && !e.response.body.success) {\n this.maxErrorExceeded = true;\n this.continueImportId = e.response.body.import;\n } else if (e.response !== null && e.response.body.success) {\n this.displayResult(e.response.body);\n }\n this.disableClose = false;\n this.closePopup();\n }\n\n continueUpload(action: any) {\n if (action === 'yes') {\n this.displayload = true;\n const id = this.continueImportId;\n this.closePopup();\n this.importService.continueUpload(id)\n .subscribe(response => {\n this.maxErrorExceeded = false;\n this.displayResult(response);\n this.uploadComplete(response);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.displayload = false;\n this.maxErrorExceeded = false;\n this.notificationService.setErrorNotification();\n });\n } else {\n this.importId = this.continueImportId;\n this.deleteImport('yes');\n this.closePopup();\n this.maxErrorExceeded = false;\n }\n }\n\n uploadComplete(obj: any) {\n if (!this.maxErrorExceeded && !this.importOpened) {\n this.LoadImports(this.getUserId(), this.authService.currentOrg);\n }\n }\n\n displaySubmitPop(): void {\n this.notificationService.setUpLoading(true);\n this.importService.getPreSubmitData(this.selectedImport.id.toString())\n .subscribe(response => {\n this.displayData = response;\n this.notificationService.setUpLoading(false);\n this.displaySubmit = true;\n this.groupSummaryData();\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.displaySubmit = false;\n this.notificationService.setErrorNotification();\n });\n }\n\n submitImport(args: string) {\n if (args === 'yes') {\n this.displayload = true;\n this.importService.submitImport(this.selectedImport.id)\n .subscribe((response) => {\n this.displaySubmit = false;\n this.displayResult(response);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.displayload = false;\n this.displaySubmit = false;\n this.notificationService.setErrorNotification();\n });\n } else {\n this.displaySubmit = false;\n }\n }\n\n displayResult(response: any) {\n this.notificationService.setUpNotification(response, false);\n if (response.success) {\n this.LoadImports(this.getUserId(), this.authService.currentOrg);\n }\n this.displayload = false;\n }\n\n onFileSelect(ev: SelectEvent) {\n if (ev) {\n this.fileExtName = ev.files[0].extension;\n const removeDot = this.fileExtName.substring(1).toUpperCase();\n this.isExtNotAllowed = this.extensionsBlacklist.some(x => x === removeDot);\n if (this.isExtNotAllowed) {\n ev.preventDefault();\n }\n }\n }\n\n remove(upload: any, uid: string) {\n upload.removeFilesByUid(uid);\n }\n\n showButton(state: FileState): boolean {\n return (state === FileState.Uploaded);\n }\n\n uploadEventHandler(req: UploadEvent) {\n const data = new ImportFileData();\n data.userInfo = JSON.stringify(this.importService.UserInfo());\n req.data = data;\n const token = sessionStorage.getItem('access_token');\n req.headers = req.headers.append('Authorization', 'Bearer ' + token);\n }\n\n SetSelectedRow(index: number, isManualSelection: any, isSelected: any, isCellClick: any) {\n if (this.document === null) { return; }\n const importElem = this.document.getElementById('importsGrid');\n if (importElem === null) { return; }\n const grid = importElem.getElementsByClassName('k-grid-content')[0];\n if (grid === null) { return; }\n const filterRow = importElem.getElementsByClassName('k-filter-row');\n if (filterRow !== null && filterRow[0] !== null) {\n const inputRows = filterRow[0].getElementsByTagName('input');\n if (inputRows !== null) {\n this.filterRows = inputRows;\n }\n }\n const rows = grid.getElementsByTagName('tr');\n\n let dataRowIndex = -1;\n const selectedRow = grid.getElementsByClassName('k-state-selected')[0];\n\n for (const row of rows) {\n if (row.className.indexOf('k-grouping-row') < 0 && row.className.indexOf('k-group-footer') < 0) {\n\n if (isManualSelection) {\n this.rowIndex = 1;\n\n if (selectedRow != null) {\n selectedRow.className = String(selectedRow.className)\n .replace(' k-state-selected', '')\n .replace('k-state-selected', '');\n }\n for (const childRow of row.children) {\n if (childRow.className.indexOf('k-group-cell') < 0 && childRow.children[0] != null) {\n row.children[0].click();\n break;\n }\n }\n break;\n } else {\n if (this.isSelectedRowChanged) {\n this.rowIndex = index + 1;\n return;\n }\n if (selectedRow == null) {\n row.className = row.className + ' k-state-selected';\n for (const childRow of row.children) {\n if (childRow.className.indexOf('k-group-cell') < 0 && childRow.children[0] != null) {\n childRow.click();\n break;\n }\n }\n break;\n } else {\n dataRowIndex++;\n if (!this.isSelectedRowChanged) {\n break;\n } else {\n this.rowIndex = dataRowIndex + 1;\n }\n }\n }\n }\n }\n }\n\n}\n\n@Injectable()\nexport class UploadInterceptor implements HttpInterceptor {\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n if (req.url === 'saveUrl') {\n const events: Observable>[] = [0, 30, 60, 100].map((x) => of({\n type: HttpEventType.UploadProgress,\n loaded: x,\n total: 100\n } as HttpProgressEvent).pipe(delay(1000)));\n const success = of(new HttpResponse({ status: 200 })).pipe(delay(1000));\n events.push(success);\n\n return concat(...events);\n }\n\n if (req.url === 'removeUrl') {\n return of(new HttpResponse({ status: 200 }));\n }\n\n return next.handle(req);\n }\n}\n","
\n
\n
\n
\n

History

\n \n\n \n
\n
\n \n \n
\n
\n
\n\n \n \n \n \n
\n \n
\n
\n
\n
\n Import Id: \n {{ dataItem.id }}\n
\n
\n \n
\n
\n
\n
\n PPED: \n {{ dataItem.pped }}\n
\n
\n \n
\n
\n
\n
\n Records: \n {{ dataItem.records }}\n
\n
\n
\n
\n
\n\n \n \n \n {{dataItem.id}}\n \n \n \n \n \n \n\n \n \n \n
\n \n {{dataItem.pped}}\n \n
\n
\n \n \n \n \n
\n\n \n \n \n
{{dataItem.records}}
\n
\n
\n\n \n \n \n
\n \n \n \n \n \n \n
\n
\n
\n\n \n \n \n \n \n \n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n

Payroll Records

\n \n \n \n
\n
\n
\n \n
\n\n\n\n
\n
\n
\n The file extension \"{{fileExtName}}\" is not allowed\n
\n \n \n \n \n
\n
\n

\n
\n \n \n \n
\n
\n \n
\n
    \n
  • \n {{item}}\n
  • \n
\n
\n
\n
\n
\n  \n Submitting\n
\n {{largeUploadMsg}}\n
\n
\n
\n
\n \n \n \n \n
\n\n\n\n
Clone Payroll Import : {{importId}}
\n
\n
\n
\n Current PPED: \n \n
\n
\n \n Not a valid Date\n \n
\n
\n {{ppedCloneValidationMsg}}\n
\n
\n
\n

\n
\n \n \n \n
\n
\n \n
\n
    \n
  • \n {{item}}\n
  • \n
\n
\n
\n
\n
\n
\n  \n Cloning\n
\n {{largeUploadMsg}}\n
\n
\n
\n \n \n \n \n
\n\n\n\n

{{continuePayrollMsg}}

\n
\n
\n  \n Uploading\n
\n \n \n \n \n
\n\n\n\n

Import Id : {{this.selectedImport.id}}

\n\n Contribution per System, by Location\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
LocationSysAmountCount
{{item.locationCode}}{{dt.systemCode}}{{dt.contribution | currency:'USD':'symbol':'1.2-2'}}{{dt.recordCount}}
Total{{item.contTotal | currency:'USD':'symbol':'1.2-2'}}{{item.rcdCount}}
\n Grand Total\n {{getSum('contribution')| currency:'USD':'symbol':'1.2-2'}}{{getSum('recordCount')}}
\n
\n

{{submitImportMsg}}

\n
\n \n
\n
\n  \n Submitting\n
\n {{largeUploadMsg}}\n
\n
\n \n \n \n \n
\n\n\n\n

{{deleteImportMsg}}

\n
\n
\n  \n Deleting\n
\n \n \n \n \n
\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, Input, OnInit, Output, EventEmitter, AfterViewChecked } from '@angular/core';\nimport { Import } from 'src/app/models/import';\nimport { ImportIssue } from 'src/app/models/importIssue';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { ImportService } from 'src/app/shared/services/payroll/import.service';\nimport { PayrollRecordComponent } from '../payroll-record/payroll-record.component';\n\n@Component({\n selector: 'app-payroll-summary',\n templateUrl: './payroll-summary.component.html',\n styleUrls: ['./payroll-summary.component.css']\n})\nexport class PayrollSummaryComponent implements OnInit, AfterViewChecked {\n\n private importRecord: Import;\n errorCount = 0;\n issueCount = 0;\n config: any;\n importErrors: any[];\n importError: any;\n importIssues: ImportIssue[];\n importIssue: ImportIssue;\n deleteRecordDialog = false;\n dataUploadSuccessMsg: any;\n paymentIncompleteMsg: any;\n paymentSuccessMsg: any;\n\n @Input()\n set import(selectedImport: Import) {\n this.importRecord = selectedImport;\n this.loadIssues();\n this.loadErrors();\n }\n\n get import(): Import { return this.importRecord; }\n @Input() payrollRecordsGrid: PayrollRecordComponent;\n @Output() isError: EventEmitter = new EventEmitter();\n\n constructor(private importService: ImportService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.config = this.readConfigService.getPayrollUploadFile();\n this.dataUploadSuccessMsg = this.config.DataUploadSuccessMsg;\n this.paymentIncompleteMsg = this.config.PaymentIncompleteMsg;\n this.paymentSuccessMsg = this.config.PaymentSuccessMsg;\n }\n\n ngAfterViewChecked() {\n if (this.importRecord) {\n const element = document.getElementById('main-header');\n const positionInfoHeader = element.getBoundingClientRect();\n const elementFooter = document.getElementById('main-footer');\n const positionInfoFooter = elementFooter.getBoundingClientRect();\n const elementhstry = document.getElementById('history-container');\n const positionInfohstry = elementhstry.getBoundingClientRect();\n const elementStrock = document.getElementById('stroke-separator');\n const positionInfoStrock = elementStrock.getBoundingClientRect();\n const elementSumHeader = document.getElementById('summary-header');\n const positionInfoSumHeader = elementSumHeader.getBoundingClientRect();\n const headAndFootHeight = positionInfoHeader.height + positionInfoFooter.height;\n const historyContainerHeight = positionInfohstry.height + positionInfoStrock.height + positionInfoSumHeader.height;\n const elementsHeight = ((headAndFootHeight + historyContainerHeight) + 22);\n const overAllHeight = document.documentElement.clientHeight;\n const remaningHeight = overAllHeight - elementsHeight;\n const screenWidth = screen.width;\n if (screenWidth > 992.98) {\n document.getElementById('summary-data').style.maxHeight = remaningHeight + 'px';\n } else {\n document.getElementById('summary-data').style.maxHeight = 'inherit';\n }\n }\n }\n\n loadIssueRecords(issueType: string, isError: boolean = false) {\n if (issueType !== undefined) {\n const staging = this.importRecord.submitted === null;\n this.payrollRecordsGrid.loadIssueRecords(issueType, this.importRecord.id, staging, isError);\n }\n }\n\n loadErrors() {\n if (this.importRecord !== undefined && this.importRecord.submitted !== undefined) {\n const id = this.importRecord.id;\n this.importService.getImportErrors(id)\n .subscribe(importErrors => {\n this.importErrors = importErrors;\n const errorRcds = this.importErrors.filter(x => x.errorName === 'Total Records With Errors');\n this.errorCount = errorRcds[0].errorCount;\n this.isError.emit(this.errorCount > 0);\n },\n (error) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n }\n\n loadIssues(): void {\n if (this.importRecord !== undefined) {\n const id = this.importRecord.id;\n this.importService.getIssues(id)\n .subscribe(importIssues => {\n this.importIssues = importIssues;\n const issueRecords = this.importIssues.filter(x => x.issueName === 'Total Issues');\n this.issueCount = issueRecords[0].issueCount;\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n }\n\n}\n","
\n

Data Summary

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Import Id{{import.id}}
Created By{{import.user}}
Pay Date{{import.payDate | date: 'MM/dd/yyyy'}}
Submitted Date{{import.submitted | date: 'MM/dd/yyyy'}}
System(s){{import.systems}}
Location(s){{import.locationCodes}}
Contribution{{import.contribution | currency:'USD':'symbol':'1.2-2'}}
\n
\n\n \n 0\" class=\"fill\">\n \n \n \n \n \n \n \n
Errors
{{error.errorName}}{{error.errorCount}}
\n\n \n 0\">\n \n \n \n \n \n \n \n \n \n \n \n \n \n
Warnings & Total Records
Total Records{{import.records}}
\n \n {{issue.issueName === 'Total Issues' ? 'Total Records with Warnings' : issue.issueName}}\n \n {{issue.issueName !== 'Total Issues' ? issue.issueName : ''}}\n \n {{issue.issueCount}}
\n\n \n
0 || (import.remittanceReconciliationId && import.revenueControlTransmittalId)\">\n

\n {{dataUploadSuccessMsg}}\n

\n

\n {{paymentSuccessMsg}}\n

\n \n

\n {{paymentIncompleteMsg}}\n

\n
\n\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from '../shared/services/auth/auth.service';\n\n@Component({\n selector: 'app-payroll',\n templateUrl: './payroll.component.html',\n styleUrls: ['./payroll.component.css']\n})\nexport class PayrollComponent implements OnInit {\n\n constructor(private authService: AuthService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n }\n}\n","","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BankDetails } from 'src/app/models/bank-details.model';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { PaymentsService } from 'src/app/shared/services/profile/payments.service';\n\n@Component({\n selector: 'app-manage-banking-info',\n templateUrl: './manage-banking-info.component.html',\n styleUrls: ['./manage-banking-info.component.css']\n})\nexport class ManageBankingInfoComponent implements OnInit {\n showAddInfoText: any;\n showForm: boolean;\n bankDetails: BankDetails;\n disableAccNumber = true;\n initData: any;\n showError: boolean;\n config: any;\n notMatchingText: any;\n routingNumberError: any;\n showRoutingError: boolean;\n addInfoText: any;\n rebankAcc: any;\n userData: any;\n isLoading: boolean;\n operators: any;\n isValidAccNo: boolean;\n invalidAccountNumber: any;\n readonly accountPattern = '^([0-9]+-)*[0-9]+$';\n\n constructor(\n private router: Router,\n private authService: AuthService,\n private usersService: UsersService,\n private paymentsService: PaymentsService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.notificationService.setUpLoading(true);\n this.operators = this.authService.getAccessOperations(2);\n this.config = this.readConfigService.getBankingInfoText();\n this.notMatchingText = this.config.NotMatching;\n this.routingNumberError = this.config.RoutingNumberError;\n this.invalidAccountNumber = this.config.InvalidAccountNumber;\n this.getEmpInfo();\n }\n\n getEmpInfo() {\n const inputData = { userInfo: this.usersService.UserInfo() };\n this.paymentsService.getEmpBankInfo(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n const result = data.result;\n this.initData = JSON.stringify(result);\n this.bankDetails = new BankDetails();\n this.rebankAcc = '';\n this.bankDetails.bankName = result.bankName;\n this.bankDetails.routingNumber = result.routingNumber;\n this.bankDetails.bankAcctNumber = result.bankAcctNumber;\n this.bankDetails.bankId = result.bankId;\n } else if (data && data.statusCode === 204) {\n this.showAddInfoText = true;\n this.addInfoText = this.config.NoBankDetails;\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.showAddInfoText = true;\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setErrorNotification();\n this.notificationService.setUpLoading(false);\n });\n }\n\n addBankInfo() {\n this.bankDetails = new BankDetails();\n this.rebankAcc = '';\n this.resetFormFlags();\n }\n\n editBankInfo() {\n this.rebankAcc = null;\n this.disableAccNumber = false;\n this.resetFormFlags();\n }\n\n resetFormFlags() {\n this.showForm = true;\n this.showAddInfoText = false;\n this.isValidAccNo = false;\n this.showError = false;\n this.showRoutingError = false;\n }\n\n saveBank() {\n this.isLoading = true;\n const inputData = {\n userInfo: this.usersService.UserInfo(),\n bankId: this.bankDetails.bankId,\n accountNo: this.usersService.encrypt(this.bankDetails.bankAcctNumber, 'post'),\n userName: this.usersService.getUserName()\n };\n this.paymentsService.updateBankInfo(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 201) {\n this.getEmpInfo();\n this.showForm = false;\n this.notificationService.setUpNotification({ message: this.config.SuccessMessage, success: true });\n } else {\n this.notificationService.setErrorNotification();\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.isLoading = false;\n this.notificationService.setErrorNotification();\n });\n }\n\n cancelBank() {\n if (this.initData) {\n this.showAddInfoText = false;\n const temp = JSON.parse(this.initData);\n this.bankDetails.bankName = temp.bankName;\n this.bankDetails.routingNumber = temp.routingNumber;\n this.bankDetails.bankAcctNumber = temp.bankAcctNumber;\n } else {\n this.showAddInfoText = true;\n this.bankDetails = null;\n }\n this.showForm = false;\n }\n\n onValueChange() {\n this.isValidAccNo = false;\n this.showError = false;\n const accNumber = (this.bankDetails.bankAcctNumber || '').replace(/[^0-9\\-\\*]/g, '');\n this.bankDetails.bankAcctNumber = accNumber;\n const isValidAccNo = accNumber.match(this.accountPattern);\n if (isValidAccNo) {\n if (this.rebankAcc && this.rebankAcc !== accNumber) {\n this.showError = true;\n }\n } else {\n this.isValidAccNo = true;\n }\n }\n\n getBankNameFromRoutingNumber(routingNo: string) {\n const inputData = {\n routingNo,\n userInfo: this.usersService.UserInfo()\n };\n this.paymentsService.getBankName(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n const result = data.result;\n this.bankDetails.bankName = result.bankName;\n this.bankDetails.bankId = result.id;\n this.disableAccNumber = false;\n } else if (data && data.statusCode === 204) {\n this.showRoutingError = true;\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.cancelBank();\n this.notificationService.setErrorNotification();\n });\n }\n\n onRnValueChange(bankInfoForm: any) {\n const e = this.allowIntegers(bankInfoForm);\n if (e && e.length === 9 && e !== '000000000' && e !== '999999999') {\n this.showRoutingError = false;\n this.getBankNameFromRoutingNumber(e);\n } else {\n this.showRoutingError = true;\n this.bankDetails.bankName = null;\n this.bankDetails.bankAcctNumber = null;\n this.disableAccNumber = true;\n this.rebankAcc = null;\n }\n }\n\n allowIntegers(bankInfoForm: any) {\n const form = bankInfoForm.form.value;\n form.routingNumber = form.routingNumber.replace(/[^0-9]/g, '');\n bankInfoForm.reset(form);\n return form.routingNumber;\n }\n}\n","
\n
\n

Banking Information

\n
\n

Account Details

\n
\n
\n
\n Routing Number*:\n
\n
{{bankDetails.routingNumber}}
\n
\n \n
\n \n {{routingNumberError}}\n \n
\n
\n
\n
\n
\n Name:\n
\n
{{bankDetails.bankName}}
\n
\n
\n
\n Account Number*:\n
\n
{{bankDetails.bankAcctNumber}}
\n
\n \n
\n \n {{invalidAccountNumber}}\n \n
\n
\n
\n
\n
\n Confirm Account Number*:\n
\n
\n \n
\n \n {{notMatchingText}}\n \n
\n
\n
\n
\n
\n
\n \n \n Edit\n \n
\n
\n \n
\n
\n
\n
\n \n \n Save\n \n \n \n Cancel\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n {{addInfoText}}\n \n
\n
\n
\n\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { NewUserFormData, UserEmails } from 'src/app/models/form-field';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { UserOrgs } from 'src/app/models/organization';\nimport { Utility } from 'src/app/shared/utility';\n\n@Component({\n selector: 'app-add-edit-users-and-contact',\n templateUrl: './add-edit-users-and-contact.component.html',\n styleUrls: ['./add-edit-users-and-contact.component.css']\n})\nexport class AddEditUsersAndContactComponent implements OnInit {\n\n isEditRecord: boolean;\n isAddRecord: boolean;\n isAddUserOpened: boolean;\n confirmEmail: boolean;\n userFormData: NewUserFormData;\n subFormData: NewUserFormData;\n userEmailData: UserEmails;\n public userRoles: any[];\n allContactsTypes: any[];\n invalidPatternMatch: boolean;\n existingRecords: boolean;\n userRecord: any;\n usersByIdData: boolean;\n isConfirmOpened: boolean;\n showEPUsertext: boolean;\n currentRecordId = 0;\n activeUserMsg: any;\n lockedAccount: any;\n rolesValidationMsg: any;\n contactTypeValidationMsg: any;\n invalidEmailFormatMsg: any;\n changeEPUserText: any;\n invalidPatternMatchMsg: any;\n emailEntriesValid: boolean;\n isProcessing = false;\n invalidEmailFormat = false;\n emailVerifiDialog: boolean;\n\n @Input()\n set userInfo(userInfo: any) {\n this.addEditInfo(userInfo);\n }\n\n @Output() responseMsg: EventEmitter = new EventEmitter();\n @Output() isActionFired = new EventEmitter();\n\n constructor(private usersService: UsersService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.getRoles();\n const config = this.readConfigService.getUserManagement();\n this.activeUserMsg = config.ActiveUserMessage;\n this.lockedAccount = config.LockedAccount;\n this.rolesValidationMsg = config.RolesValidationMsg;\n this.contactTypeValidationMsg = config.ContactTypeValidationMsg;\n this.invalidPatternMatchMsg = config.InvalidPatternMatch;\n this.invalidEmailFormatMsg = config.InvalidEmailFormat;\n this.changeEPUserText = config.ChangeEPUserText;\n }\n\n disableNext(addUserEmailForm: any) {\n return !(addUserEmailForm.valid && addUserEmailForm.dirty)\n || this.invalidEmailFormat || this.invalidPatternMatch || this.disableLogic();\n }\n\n getUserDetailsById(id: any) {\n this.usersService.getUserById(id).subscribe(response => {\n if (response && response.result) {\n const data = response.result;\n this.userFormData = this.getUpdatedData(data);\n this.userFormData.accountType = this.userFormData.isEPUser ? 'yes' : 'no';\n this.userEmailData.NewEmailAddress = this.userFormData.emailAddress;\n this.userEmailData.ConfirmEmailAddress = this.userFormData.emailAddress;\n this.isAddUserOpened = true;\n } else {\n this.notificationService.setErrorNotification();\n }\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n\n disableLogic() {\n const euser = this.userEmailData.ExistingUser;\n if (euser === false) {\n return false;\n } else if (euser && this.userEmailData.CreateUser.length > 0) {\n return false;\n }\n return true;\n }\n\n addEditInfo(userInfo) {\n this.userRecord = {};\n this.isAddUserOpened = false;\n if (userInfo) {\n this.invalidPatternMatch = false;\n this.invalidEmailFormat = false;\n this.userFormData = new NewUserFormData();\n this.userEmailData = new UserEmails();\n this.userFormData.activeOrgUser = false;\n this.userEmailData.ExistingUser = false;\n this.isAddRecord = (userInfo.action === 'add');\n this.isEditRecord = !this.isAddRecord;\n if (this.isEditRecord) {\n this.userEmailData.ExistingUser = true;\n this.isActionFired.emit(userInfo.action);\n this.isAddUserOpened = true;\n this.getUserDetailsById(userInfo.dataItem.id);\n } else {\n this.existingRecords = false;\n this.emailVerifiDialog = true;\n }\n }\n }\n\n getRoles() {\n this.usersService.getContactRolesList()\n .subscribe(response => {\n if (response && response.success) {\n this.allContactsTypes = response.data;\n this.userRoles = response.data.filter((s: any) => s.isEPRole);\n } else {\n this.notificationService.setErrorNotification();\n }\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n\n onChange() {\n this.userRecord = new NewUserFormData();\n const email = Utility.lowerString(this.userEmailData.NewEmailAddress);\n this.userEmailData.NewEmailAddress = email;\n this.userEmailData.ConfirmEmailAddress = Utility.lowerString(this.userEmailData.ConfirmEmailAddress);\n this.currentRecordId = 0;\n this.userEmailData.CreateUser = '';\n this.existingRecords = false;\n this.userEmailData.ExistingUser = true;\n const patternMatched = Utility.isValidEmail(email);\n this.emailEntriesValid = email === this.userEmailData.ConfirmEmailAddress;\n if (this.emailEntriesValid && patternMatched) {\n this.invalidPatternMatch = false;\n this.invalidEmailFormat = false;\n const emailAddress = this.userEmailData.NewEmailAddress;\n this.usersService.validateEmail(emailAddress).subscribe(response => {\n this.userEmailData.ExistingUser = false;\n if (response.success === false) {\n this.userRecord = response.dataItem;\n if (this.userRecord !== null) {\n this.userEmailData.ExistingUser = true;\n this.existingRecords = true;\n this.userRecord.roles = [];\n this.userRecord.contactTypes = [];\n this.currentRecordId = this.userRecord.id;\n } else {\n this.notificationService.setErrorNotification();\n }\n }\n this.userRecord.roles = this.assignArray(this.userRoles);\n this.userRecord.contactTypes = this.assignArray(this.allContactsTypes);\n });\n } else {\n this.userEmailData.ExistingUser = false;\n if (!patternMatched) {\n this.invalidEmailFormat = true;\n this.invalidPatternMatch = false;\n } else {\n this.invalidPatternMatch = true;\n this.invalidEmailFormat = false;\n }\n }\n }\n\n disableRole() {\n let isUserFormValid;\n const userform = this.userFormData;\n if (userform) {\n isUserFormValid = userform.accountType === 'yes' ?\n userform.roles && userform.roles.length > 0 && !userform.roles.some(x => x.selected) :\n userform.contactTypes && userform.contactTypes.length > 0 && !userform.contactTypes.some(x => x.selected);\n }\n return isUserFormValid;\n }\n\n onCancel(addUserEmailForm: any): void {\n if (addUserEmailForm.dirty) {\n this.isConfirmOpened = true;\n this.closeUserForm();\n } else {\n this.isConfirmOpened = false;\n this.emailVerifiDialog = false;\n }\n }\n\n onUserDetailCancel(status: any, userDetailForm) {\n if (status && userDetailForm.dirty) {\n this.isConfirmOpened = true;\n } else {\n this.isAddUserOpened = false;\n this.isActionFired.emit(status);\n }\n }\n\n onNext(status: any) {\n this.isActionFired.emit(status);\n this.emailVerifiDialog = false;\n this.isAddUserOpened = true;\n this.userFormData = new NewUserFormData();\n this.userFormData = this.getUpdatedData(this.userFormData);\n this.userFormData.emailAddress = this.userEmailData.NewEmailAddress;\n this.userFormData.isExistingUser = false;\n if (this.userEmailData && this.userEmailData.CreateUser === 'ExistUser') {\n this.getUserDetailsById(this.userRecord.id);\n this.userFormData.isExistingUser = true;\n }\n }\n\n disableSave(userContactForm: any) {\n let isFormValid = (userContactForm.valid && userContactForm.dirty);\n const form = this.userFormData;\n if (isFormValid && form) {\n isFormValid = form.accountType === 'yes' ?\n form.roles && form.roles.some(x => x.selected) :\n form.contactTypes && form.contactTypes.some(x => x.selected);\n }\n return !isFormValid;\n }\n\n closeUserForm(): void {\n this.emailVerifiDialog = true;\n }\n\n close(status: any) {\n if (status === 'yes') {\n this.emailVerifiDialog = false;\n this.isConfirmOpened = false;\n this.isAddUserOpened = false;\n this.isActionFired.emit(status);\n }\n }\n\n onSave(status: any, userForm: any): void {\n this.subFormData = new NewUserFormData();\n this.isProcessing = true;\n if (userForm.valid) {\n this.constructUserOrg();\n const isNew = this.isAddRecord && ((this.subFormData.id || 0) < 1);\n this.subFormData.isEPUser = this.subFormData.accountType !== 'no';\n if (isNew) {\n this.subFormData.isActive = true;\n }\n this.usersService.addUpdateUser(this.subFormData, isNew).subscribe( data => {\n if (data && data.success) {\n this.isAddUserOpened = false;\n this.isActionFired.emit(status);\n }\n this.isProcessing = false;\n this.responseMsg.emit(data);\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.isAddUserOpened = false;\n this.isProcessing = false;\n this.notificationService.setErrorNotification();\n });\n }\n }\n\n validations(form: any, field: any) {\n const isDirty = (form && form.controls[field] && form.controls[field].dirty);\n if (isDirty) {\n return !form.controls[field].valid;\n }\n return false;\n }\n\n trimContent(data: any, userContactForm) {\n if (data.target.value) {\n const replaceInput = data.target.value.replace(/[^a-zA-Z]/g, '');\n userContactForm.controls.MiddleName.setValue(replaceInput);\n }\n }\n\n onAccTypeChange() {\n const checkSelection = this.userFormData.contactTypes.filter(x => x.selected);\n if (checkSelection.length > 0) {\n this.showEPUsertext = true;\n }\n this.userFormData.contactTypes.forEach(x => x.selected = false);\n }\n\n sclose() {\n this.showEPUsertext = false;\n }\n\n onRoleChange(item: any) {\n const index = this.userFormData.contactTypes.findIndex(x => x.id === item.id);\n if (index > -1) {\n this.userFormData.contactTypes[index].selected = item.selected;\n }\n }\n\n getUpdatedData(userFormData: any): NewUserFormData {\n const contactTypeList = [];\n const detContactTypes = this.assignArray(this.allContactsTypes.slice(0));\n userFormData.organizations = this.assignArray(userFormData.roles);\n\n detContactTypes.forEach(el => {\n const element = el;\n element.selected = userFormData.roles && (userFormData.roles.filter((x: any) => x.roleId === element.id).length > 0);\n contactTypeList.push(element);\n });\n\n userFormData.roles = (contactTypeList.filter(x => x.isEPRole)).slice(0);\n userFormData.contactTypes = contactTypeList.slice(0);\n return userFormData;\n }\n\n constructUserOrg(): any {\n const selectedContTypes = this.userFormData.contactTypes.filter(x => x.selected === true);\n const allOrgRoles = [];\n for (const selectedType of selectedContTypes) {\n const orgs = this.userFormData.organizations;\n const currOrg = orgs.filter(x => x.roleId === selectedType.id);\n if (currOrg && currOrg.length > 0) {\n allOrgRoles.push(currOrg[0]);\n } else {\n const orgContactTypes = new UserOrgs();\n orgContactTypes.roleId = selectedType.id;\n orgContactTypes.userId = this.userFormData.id || 0;\n allOrgRoles.push(orgContactTypes);\n }\n }\n Object.assign(this.subFormData, this.userFormData);\n this.subFormData.roles = this.assignArray(allOrgRoles);\n }\n\n assignArray(source: any[]) {\n const dest = [];\n source.forEach((v: any) => {\n const val = (typeof v === 'object') ? Object.assign({}, v) : v;\n dest.push(val);\n });\n return dest;\n }\n\n}\n","\n \n \n Add user/contact\n \n
\n
\n
\n
    \n
  • {{invalidPatternMatchMsg}}
  • \n
  • {{invalidEmailFormatMsg}}
  • \n
\n
\n
\n
\n

Confirm Email

\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n

\n \n {{userRecord.isLocked ? lockedAccount : activeUserMsg}}\n

\n
\n \n
\n
\n

Do you want to add \"{{userRecord.firstName + \" \" + userRecord.lastName }}\" to this org?

\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n\n\n
\n
\n

{{ isAddRecord ? 'Add user and contact' : 'Edit user and contact' }}

\n
\n
\n \n
\n
\n {{lockedAccount}}\n
\n \n
\n

User Details

\n
\n \n
\n
\n
\n\n
\n
\n \n \n
\n \n Valid First Name is required\n \n
\n
\n\n
\n \n \n
\n \n Valid Last Name is required\n \n
\n
\n
\n\n
\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n
\n\n \n
\n

Contact Details

\n
\n
\n
\n
\n \n \n \n
\n \n Valid phone number is required\n \n
\n
\n\n
\n \n \n
\n
\n\n
\n
\n \n \n \n
\n\n
\n \n \n
\n
\n
\n
\n
\n\n \n
\n

Account Type

\n
\n
\n\n
\n
\n

Is this contact going to be a user in the Employer Portal?

\n
\n
\n
\n \n \n
\n\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n\n \n
\n

User Role(s)

\n
\n
\n
\n
\n \n \n
\n
\n {{item.description}}\n
\n
\n
\n \n {{rolesValidationMsg}}\n \n
\n
\n
\n
\n\n \n
\n

Contact Type(s)

\n
\n
\n
\n
\n \n \n
\n
\n {{contactType.description}}\n
\n
\n
\n \n {{contactTypeValidationMsg}}\n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n\n\n

All unsaved changes will be lost.
Are you sure you want to\n continue?

\n \n \n \n \n
\n\n\n\n

{{changeEPUserText}}

\n
\n
\n \n
\n
\n
\n","import { Component, OnInit, ChangeDetectorRef, DoCheck } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\n\n@Component({\n selector: 'app-manage-users-and-contact',\n templateUrl: './manage-users-and-contact.component.html',\n styleUrls: ['./manage-users-and-contact.component.css']\n})\nexport class ManageUsersAndContactComponent implements OnInit, DoCheck {\n gridData: any[];\n userDetail: any[];\n userRoles: any[];\n isAddUserOpened: boolean;\n isNewUser: boolean;\n userInfo: any;\n allUsersData: any;\n selectedDataItem: any;\n msg = '';\n isDeleteOpened: boolean;\n userContactGrid: boolean;\n operators: any;\n deleteUserMsg: any;\n displayload = false;\n scrollMessage: any;\n\n constructor(private usersService: UsersService,\n private authService: AuthService,\n private cdRef: ChangeDetectorRef,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.userContactGrid = true;\n this.loadUsers();\n this.operators = this.authService.getAccessOperations(2);\n const config = this.readConfigService.getUserManagement();\n this.deleteUserMsg = config.DeleteUserMsg;\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n }\n\n ngDoCheck() {\n this.cdRef.detectChanges();\n }\n\n loadUsers(): void {\n this.notificationService.setUpLoading(true);\n this.usersService.getUsers().subscribe(users => {\n if (users && users.result && users.result.length > 0) {\n users.result.forEach((ele: any) => {\n let hideOthr = \"Other Files\";\n if (ele.roles) {\n ele.roles = ele.roles.split(\",\").filter(x => x.trim() != hideOthr).join('
');\n }\n ele.contacts = ele.contacts.split(\",\").filter(x => x.trim() != hideOthr).join('
');\n });\n this.gridData = users.result;\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n actionClicked(e: any) {\n if (e === 'yes') {\n this.userContactGrid = true;\n } else {\n this.userContactGrid = false;\n }\n }\n\n displayResult(e: any) {\n if (e && e.success) {\n setTimeout(() => {\n this.loadUsers();\n }, 100);\n }\n this.notificationService.setUpNotification(e);\n }\n\n userHandler(e: any) {\n this.userInfo = e;\n }\n\n openDeleteDialog({ dataItem }: any) {\n this.selectedDataItem = dataItem;\n this.isDeleteOpened = true;\n }\n\n close(status: any) {\n if (status === 'yes') {\n this.displayload = true;\n this.removeHandler();\n } else {\n this.isDeleteOpened = false;\n }\n }\n\n removeHandler() {\n this.usersService.deleteUsersData(this.selectedDataItem.id, this.selectedDataItem.emailAddress).subscribe(data => {\n if (data && data.success) {\n this.isDeleteOpened = false;\n this.displayload = false;\n setTimeout(() => {\n this.loadUsers();\n }, 100);\n this.notificationService.setUpNotification(data);\n } else {\n this.isDeleteOpened = false;\n this.displayload = false;\n this.notificationService.setErrorNotification();\n this.notificationService.setUpLoading(false);\n }\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.displayload = false;\n this.isDeleteOpened = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","
\n
\n

Users and Contacts

\n
\n
\n \n \n
\n
\n \n

Modifying user is\n not available on Mobile Devices

\n
\n
\n
\n\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n\n \n \n \n
\n
\n
Name:\n {{ dataItem.fullName }}\n
\n
\n\n
\n
Email Address:\n {{ dataItem.emailAddress }}\n
\n
\n\n
\n
User Role(s):\n
\n
\n
\n\n
\n
Contact Type(s):\n
\n
\n
\n
\n
\n
\n\n \n \n \n \n \n \n
\n \n {{dataItem.middleName}}\n \n
\n
\n
\n \n \n \n \n
\n
\n
\n \n \n
\n
\n
\n\n \n
\n \n
\n
\n Title: {{dataItem.title}}\n
\n
\n Phone Number: {{dataItem.phoneNumber | phone}}\n
\n
\n Extension: {{dataItem.phoneNumberExtension}}\n
\n
\n User Status: {{dataItem.isContactUser ? \"Contact type\" : \"EP user\"}}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n\n \n\n \n \n

{{deleteUserMsg}} {{selectedDataItem.fullName}}?

\n
\n
\n \n Deleting\n
\n \n \n \n \n
\n\n \n\n
\n","import { Utility } from 'src/app/shared/utility';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NewUserFormData, UserEmails } from 'src/app/models/form-field';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { UserOrgs } from 'src/app/models/organization';\n\n@Component({\n selector: 'app-add-edit-users',\n templateUrl: './add-edit-users.component.html',\n styleUrls: ['./add-edit-users.component.css']\n})\nexport class AddEditUsersComponent implements OnInit {\n isEditRecord: boolean;\n isAddRecord: boolean;\n isAddUserOpened: boolean;\n confirmEmail: boolean;\n userFormData: NewUserFormData;\n subFormData: NewUserFormData;\n userEmailData: UserEmails;\n public userRoles: any[];\n invalidPatternMatch: boolean;\n existingRecords: boolean;\n newRecord: boolean;\n currentSection = 1;\n userRecord: any;\n usersByIdData: boolean;\n isConfirmOpened: boolean;\n currentRecordId = 0;\n activeUserMsg: any;\n lockedAccount: any;\n rolesValidationMsg: any;\n invalidEmailFormatMsg: any;\n invalidPatternMatchMsg: any;\n emailEntriesValid: boolean;\n isProcessing = false;\n invalidEmailFormat = false;\n @Input() public userData: any[];\n\n @Input()\n set userInfo(userInfo: any) {\n this.addEditInfo(userInfo);\n }\n\n @Output() responseMsg: EventEmitter = new EventEmitter();\n\n constructor(private usersService: UsersService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.getRoles();\n const config = this.readConfigService.getUserManagement();\n this.activeUserMsg = config.ActiveUserMessage;\n this.lockedAccount = config.LockedAccount;\n this.rolesValidationMsg = config.RolesValidationMsg;\n this.invalidPatternMatchMsg = config.InvalidPatternMatch;\n this.invalidEmailFormatMsg = config.InvalidEmailFormat;\n }\n\n disableNext(addUserEmailForm: any) {\n return !(addUserEmailForm.valid && addUserEmailForm.dirty)\n || this.invalidEmailFormat || this.invalidPatternMatch || this.disableLogic();\n }\n\n getUserDetailsById(id: any) {\n this.usersService.getUserById(id).subscribe(response => {\n if (response && response.result) {\n const data = response.result;\n this.userFormData = this.getUpdatedData(data);\n this.userEmailData.NewEmailAddress = this.userFormData.emailAddress;\n this.userEmailData.ConfirmEmailAddress = this.userFormData.emailAddress;\n this.isAddUserOpened = true;\n } else {\n this.notificationService.setErrorNotification();\n }\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n\n disableLogic() {\n const euser = this.userEmailData.ExistingUser;\n if (euser === false) {\n return false;\n } else if (euser && this.userEmailData.CreateUser.length > 0) {\n return false;\n }\n return true;\n }\n\n addEditInfo(userInfo) {\n this.userRecord = {};\n this.isAddUserOpened = false;\n if (userInfo) {\n this.invalidPatternMatch = false;\n this.invalidEmailFormat = false;\n this.newRecord = false;\n this.currentSection = 1;\n this.userFormData = new NewUserFormData();\n this.userEmailData = new UserEmails();\n this.userFormData.activeOrgUser = false;\n this.userEmailData.ExistingUser = false;\n this.isAddRecord = (userInfo.action === 'add');\n this.isEditRecord = !this.isAddRecord;\n if (this.isEditRecord) {\n this.userEmailData.ExistingUser = true;\n this.currentSection = 2;\n this.getUserDetailsById(userInfo.dataItem.id);\n } else {\n this.existingRecords = false;\n this.isAddUserOpened = true;\n }\n }\n }\n\n getRoles() {\n this.usersService.getRolesList()\n .subscribe(response => {\n if (response && response.success) {\n this.userRoles = response.data;\n } else {\n this.notificationService.setErrorNotification();\n }\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setErrorNotification();\n });\n }\n\n onChange() {\n this.userRecord = new NewUserFormData();\n const email = Utility.lowerString(this.userEmailData.NewEmailAddress);\n this.userEmailData.NewEmailAddress = email;\n this.userEmailData.ConfirmEmailAddress = Utility.lowerString(this.userEmailData.ConfirmEmailAddress);\n this.currentRecordId = 0;\n this.userEmailData.CreateUser = '';\n this.existingRecords = false;\n this.userEmailData.ExistingUser = true;\n const patternMatched = Utility.isValidEmail(email);\n this.emailEntriesValid = email === this.userEmailData.ConfirmEmailAddress;\n if (this.emailEntriesValid && patternMatched) {\n this.invalidPatternMatch = false;\n this.invalidEmailFormat = false;\n const emailAddress = this.userEmailData.NewEmailAddress;\n // VALID EMAIL SERVICE CALL\n this.usersService.validateEmail(emailAddress).subscribe(response => {\n this.userEmailData.ExistingUser = false;\n if (response.success === false) {\n this.userRecord = response.dataItem;\n if (this.userRecord !== null) {\n this.userEmailData.ExistingUser = true;\n this.existingRecords = true;\n this.newRecord = true;\n this.userRecord.roles = [];\n this.currentRecordId = this.userRecord.id;\n } else {\n this.notificationService.setErrorNotification();\n }\n }\n this.userRecord.roles = this.assignArray(this.userRoles);\n });\n } else {\n this.userEmailData.ExistingUser = false;\n if (!patternMatched) {\n this.invalidEmailFormat = true;\n this.invalidPatternMatch = false;\n } else {\n this.invalidPatternMatch = true;\n this.invalidEmailFormat = false;\n }\n }\n }\n\n disableRole(addUserEmailForm: any) {\n let isFormValid = (addUserEmailForm.valid && addUserEmailForm.dirty && addUserEmailForm.touched);\n const form = this.userFormData;\n if (isFormValid && form && form.roles && form.roles.length > 0) {\n isFormValid = !form.roles.some(x => x.selected === true);\n }\n return isFormValid;\n }\n\n onCancel(addUserEmailForm: any): void {\n if (addUserEmailForm.dirty) {\n this.isConfirmOpened = true;\n this.closeUserForm();\n } else {\n this.isConfirmOpened = false;\n this.isAddUserOpened = false;\n }\n }\n\n onNext() {\n this.currentSection += 1;\n this.userFormData = new NewUserFormData();\n this.userFormData = this.getUpdatedData(this.userFormData);\n this.userFormData.emailAddress = this.userEmailData.NewEmailAddress;\n this.userFormData.isExistingUser = false;\n if (this.userEmailData.CreateUser === 'ExistUser') {\n this.getUserDetailsById(this.userRecord.id);\n this.userFormData.isExistingUser = true;\n }\n }\n\n disableSave(addUserEmailForm: any) {\n let isFormValid = (addUserEmailForm.valid && addUserEmailForm.dirty);\n const form = this.userFormData;\n if (isFormValid && form && form.roles && form.roles.length > 0) {\n isFormValid = form.roles.some(x => x.selected === true);\n }\n return !isFormValid;\n }\n\n onPrevious() {\n this.userFormData.id = 0;\n this.currentSection -= 1;\n if (this.currentSection < 1) {\n this.currentSection = 1;\n }\n }\n\n closeUserForm(): void {\n this.isAddUserOpened = true;\n }\n\n close(status: any) {\n if (status === 'yes') {\n this.isAddUserOpened = false;\n this.isConfirmOpened = false;\n }\n }\n\n onSave(userForm: any): void {\n this.subFormData = new NewUserFormData();\n this.isProcessing = true;\n if (userForm.valid) {\n this.constructUserOrg();\n const isNew = this.isAddRecord && ((this.subFormData.id || 0) < 1);\n this.subFormData.isEPUser = true;\n if (isNew) {\n this.subFormData.isActive = true;\n }\n this.usersService.addUpdateUser(this.subFormData, isNew).subscribe( data => {\n if (data && data.success) {\n this.isAddUserOpened = false;\n }\n this.isProcessing = false;\n this.responseMsg.emit(data);\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.isAddUserOpened = false;\n this.isProcessing = false;\n this.notificationService.setErrorNotification();\n });\n }\n }\n\n validations(form: any, field: any) {\n const isDirty = (form && form.controls[field] && form.controls[field].dirty);\n if (isDirty) {\n return !form.controls[field].valid;\n }\n return false;\n }\n\n trimContent(data: any, addUserEmailForm) {\n if (data.target.value) {\n const replaceInput = data.target.value.replace(/[^a-zA-Z]/g, '');\n addUserEmailForm.controls.MiddleName.setValue(replaceInput);\n }\n }\n\n validRoles(userFormData: any) {\n if (userFormData && userFormData.roles) {\n const roles = userFormData.roles;\n return !(userFormData.roles.filter((x: any) => x.selected).length > 0);\n }\n return true;\n }\n\n getUpdatedData(userFormData: any): NewUserFormData {\n const roleList = [];\n const detRoles = this.assignArray(this.userRoles.slice(0));\n userFormData.organizations = this.assignArray( userFormData.roles);\n detRoles.forEach(el => {\n const element = el;\n element.selected = userFormData.roles && (userFormData.roles.filter((x: any) => x.roleId === element.id).length > 0);\n roleList.push(element);\n });\n userFormData.roles = roleList.slice(0);\n return userFormData;\n }\n\n constructUserOrg(): any {\n const roles = this.userFormData.roles.filter(x => x.selected === true);\n const allOrgRoles = [];\n for (const role of roles) {\n const orgs = this.userFormData.organizations;\n const currOrg = orgs.filter(x => x.roleId === role.id);\n if (currOrg && currOrg.length > 0) {\n allOrgRoles.push(currOrg[0]);\n } else {\n const orgRoles = new UserOrgs();\n orgRoles.roleId = role.id;\n orgRoles.userId = this.userFormData.id || 0;\n allOrgRoles.push(orgRoles);\n }\n }\n Object.assign(this.subFormData, this.userFormData);\n this.subFormData.roles = this.assignArray(allOrgRoles);\n }\n\n assignArray(source: any[]) {\n const dest = [];\n source.forEach((v: any) => {\n const val = (typeof v === 'object') ? Object.assign({}, v) : v;\n dest.push(val);\n });\n return dest;\n }\n}\n","\n\n \n {{ isAddRecord ? 'Add User' : 'Edit User' }}\n \n
\n
\n
\n
    \n
  • {{invalidPatternMatchMsg}}
  • \n
  • {{invalidEmailFormatMsg}}
  • \n
\n
\n
\n
\n

Confirm Email

\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n

\n \n {{userRecord.isLocked ? lockedAccount : activeUserMsg}}\n

\n
\n \n
\n
\n

Do you want to add \"{{userRecord.firstName + \" \" + userRecord.lastName }}\" to this org?

\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n {{lockedAccount}}\n
\n
\n

User Details

\n
\n \n
\n
\n
\n \n
\n
\n \n
\n \n Valid First Name is required\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n \n Valid Last Name is required\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n

User Roles

\n
\n
\n
\n
\n \n \n
\n
\n {{item.description}}\n
\n
\n
\n \n {{rolesValidationMsg}}\n \n
\n
\n
\n
\n \n
\n

Contact Details

\n
\n
\n
\n
\n
\n
\n \n \n \n
\n \n Valid phone number is required\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n\n\n\n

All unsaved changes will be lost.
Are you sure you want to\n continue?

\n \n \n \n \n
\n","import { Component, OnInit, ViewEncapsulation} from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\n\n@Component({\n selector: 'app-manage-users',\n templateUrl: './manage-users.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./manage-users.component.css']\n})\nexport class ManageUsersComponent implements OnInit {\n gridData: any[];\n userRoles: any[];\n isAddUserOpened: boolean;\n isNewUser: boolean;\n userInfo: any;\n allUsersData: any;\n selectedDataItem: any;\n msg = '';\n isDeleteOpened: boolean;\n operators: any;\n deleteUserMsg: any;\n displayload = false;\n scrollMessage: any;\n outerLoading = true;\n showContactUserComponent: boolean;\n\n constructor(private usersService: UsersService,\n private authService: AuthService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.loadComponent();\n }\n\n loadComponent(): void {\n setTimeout(() => {\n if (sessionStorage.getItem('DFLoaded') === null) {\n this.loadComponent();\n } else {\n if (this.readConfigService.getDarkFeatureFlag(this.readConfigService.getIsEPOneReleaseDF())) {\n this.outerLoading = false;\n this.showContactUserComponent = true;\n } else {\n this.outerLoading = false;\n this.loadUsers();\n this.operators = this.authService.getAccessOperations(2);\n const config = this.readConfigService.getUserManagement();\n this.deleteUserMsg = config.DeleteUserMsg;\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n }\n }\n }, 500);\n }\n\n loadUsers(): void {\n this.notificationService.setUpLoading(true);\n this.usersService.getUsers().subscribe(users => {\n if (users && users.result) {\n this.gridData = users.result;\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n displayResult(e: any) {\n if (e && e.success) {\n setTimeout(() => {\n this.loadUsers();\n }, 100);\n }\n this.notificationService.setUpNotification(e);\n }\n\n userHandler(e: any) {\n this.userInfo = e;\n }\n\n openDeleteDialog({ dataItem }: any) {\n this.selectedDataItem = dataItem;\n this.isDeleteOpened = true;\n }\n\n close(status: any) {\n if (status === 'yes') {\n this.displayload = true;\n this.removeHandler();\n } else {\n this.isDeleteOpened = false;\n }\n }\n\n removeHandler() {\n this.usersService.deleteUsersData(this.selectedDataItem.id, this.selectedDataItem.emailAddress).subscribe(data => {\n if (data && data.success) {\n this.isDeleteOpened = false;\n this.displayload = false;\n setTimeout(() => {\n this.loadUsers();\n }, 100);\n this.notificationService.setUpNotification(data);\n } else {\n this.isDeleteOpened = false;\n this.displayload = false;\n this.notificationService.setErrorNotification();\n this.notificationService.setUpLoading(false);\n }\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.displayload = false;\n this.isDeleteOpened = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n}\n","
\n
\n
\n
\n \n
\n \n

Users

\n
\n
\n \n \n
\n
\n \n

Modifying\n user\n is\n not available on Mobile Devices

\n
\n
\n
\n\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n\n \n \n \n
\n
\n
Name:\n {{ dataItem.fullName }}\n
\n
\n\n
\n
Phone:\n {{ dataItem.phoneNumber | phone }}\n
\n
Ext:\n {{ dataItem.phoneNumberExtension }}\n
\n
\n\n
\n
Email Address:\n {{ dataItem.emailAddress }}\n
\n
\n\n
\n
Roles:\n {{ dataItem.roles }}\n
\n
\n
\n
\n
\n\n \n \n \n \n \n \n
\n \n {{dataItem.middleName}}\n \n
\n
\n
\n \n \n \n \n {{dataItem.phoneNumber | phone}}\n \n \n \n \n \n \n \n \n
\n
\n
\n \n
\n
\n\n \n\n \n \n

{{deleteUserMsg}} {{selectedDataItem.fullName}}?

\n
\n
\n \n Deleting\n
\n \n \n \n \n
\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from '../shared/services/auth/auth.service';\n\n@Component({\n selector: 'app-profiles',\n templateUrl: './profiles.component.html',\n styleUrls: ['./profiles.component.css']\n})\nexport class ProfilesComponent implements OnInit {\n\n constructor(private authService: AuthService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n }\n}\n","","import { Component, OnInit } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\n\n@Component({\n selector: 'app-view-org-info',\n templateUrl: './view-org-info.component.html',\n styleUrls: ['./view-org-info.component.css']\n})\nexport class ViewOrgInfoComponent implements OnInit {\n orgInformation: any;\n paymentType: any;\n\n constructor(\n private userService: UsersService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.notificationService.setUpLoading(true);\n this.getOrganizationInfo();\n }\n\n getOrganizationInfo() {\n this.orgInformation = null;\n this.userService.getOrgProfile().subscribe((response) => {\n if (response.success) {\n this.orgInformation = response.data;\n this.orgInformation.locations = (this.orgInformation && this.orgInformation.locations) ?\n JSON.parse(this.orgInformation.locations) : [];\n const config = this.readConfigService.getPaymentMethodInfo().PaymentTypeLabel;\n if (config && this.orgInformation.paymentMethodId) {\n this.paymentType = config.find((s: any) => s.id === this.orgInformation.paymentMethodId).name;\n }\n }\n this.notificationService.setUpLoading(false);\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n}\n","
\n
\n
\n
\n

Organization Information

\n \n
\n
\n
\n

Organization Details

\n
\n
\n \n \n Name:\n \n {{orgInformation.name}}\n \n
\n
\n
\n
\n \n \n Address:\n \n {{ orgInformation.fullOrgName }}\n \n
\n
\n
\n \n
\n
0\">\n
\n

Locations Details

\n
\n
\n
\n \n \n Name:\n \n \n {{loc.Name}}\n \n \n
\n
\n \n \n Code:\n \n \n {{loc.Code}}\n \n \n
\n
\n
\n
\n
\n \n
\n
\n
\n

Payment Type

\n
\n
\n \n \n Payment Type:\n \n \n {{paymentType}}\n \n \n
\n
\n
\n
\n
\n
\n
\n \n
\n","import { Component, ElementRef, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { FilterService, PopupCloseEvent, SinglePopupService } from '@progress/kendo-angular-grid';\nimport { addDays } from '@progress/kendo-date-math';\n\nconst closest = (node: any, predicate: any): any => {\n while (node && !predicate(node)) {\n node = node.parentNode;\n }\n return node;\n};\n\n@Component({\n selector: 'app-date-range-filter',\n template: `\n
\n \n \n
\n `,\n styles: [`\n .k-form {\n padding: 5px;\n }\n\n input:not([type]) {\n color: #666666 !important;\n }\n\n .k-datepicker .k-widget.k-dateinput {\n margin: 0 !important;\n }\n\n .k-button-solid-primary {\n background-color: #cf1242 !important;\n }\n `],\n encapsulation: ViewEncapsulation.None\n})\nexport class DateRangeFilterComponent implements OnInit, OnDestroy {\n\n @Input() public filter: any;\n @Input() public filterService: FilterService;\n @Input() public field: string;\n\n public start: any;\n public end: any;\n public filterValues = [];\n\n public get min(): any {\n return this.start ? addDays(this.start, 0) : null;\n }\n\n public get max(): any {\n return this.end && this.start < this.end ? addDays(this.end, -1) : null;\n }\n\n public popupSettings: any = {\n popupClass: 'app-date-range-filter'\n };\n\n private popupSubscription: any;\n\n constructor(private element: ElementRef,\n private popupService: SinglePopupService, filterService: FilterService) {\n // Handle the service onClose event and prevent the menu from closing when the datepickers are still active.\n this.popupSubscription = popupService.onClose.subscribe((e: PopupCloseEvent) => {\n if (document.activeElement && closest(document.activeElement,\n node => node === this.element.nativeElement || (String(node.className).indexOf('app-date-range-filter') >= 0))) {\n e.preventDefault();\n }\n });\n }\n\n public ngOnInit(): void {\n this.start = this.findValue('gte');\n this.end = this.findValue('lte');\n }\n\n public ngOnDestroy(): void {\n this.popupSubscription.unsubscribe();\n }\n\n public onStartChange(value: any): void {\n this.filterRange(value, this.end);\n }\n\n public onEndChange(value: any): void {\n this.filterRange(this.start, value);\n }\n\n private findValue(operator) {\n const filter = this.filter.filters;\n const filterV = filter.filter(x => x.field === this.field && x.operator === operator)[0];\n return filterV ? filterV.value : null;\n }\n\n private filterRange(start, end) {\n const filters = [];\n if (start && (!end || start <= end)) {\n filters.push({\n field: this.field,\n operator: 'gte',\n value: start\n });\n this.start = start;\n }\n\n if (end && (!start || start <= end)) {\n const setEndDate = new Date(end.getFullYear(), end.getMonth(), end.getDate(), 23, 59, 59);\n filters.push({\n field: this.field,\n operator: 'lte',\n value: setEndDate\n });\n this.end = end;\n }\n\n this.filterService.filter({\n logic: 'and',\n filters: filters\n });\n}\n\n}\n","import { AbstractControl, ValidatorFn } from \"@angular/forms\";\r\n\r\nexport function ageRangeValidator(): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n const currentDate = new Date();\r\n const birthDate = new Date(control.value);\r\n const age = currentDate.getFullYear() - birthDate.getFullYear();\r\n\r\n if (age < 16 || age > 100) {\r\n return { 'invalidAge': true };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input, OnChanges } from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line: directive-selector\r\n selector: '[filterIcons]'\r\n})\r\n\r\nexport class FilterIconDirective implements OnChanges {\r\n\r\n @Input() filterRows: any;\r\n @Input() pageIn = '';\r\n\r\n ngOnChanges(): void {\r\n if (this.filterRows && this.pageIn !== '') {\r\n this.assignPlaceHolder();\r\n }\r\n }\r\n\r\n assignPlaceHolder(): void {\r\n\r\n const filters = this.filterRows;\r\n const currentPage = this.pageIn;\r\n // FUTURE USE\r\n // switch (currentPage) {\r\n // case 'Imports':\r\n // filters[0].setAttribute('placeholder', 'Id');\r\n // filters[1].setAttribute('placeholder', 'PPED');\r\n // break;\r\n // case 'Adjustments':\r\n // filters[0].setAttribute('placeholder', '');\r\n // filters[1].setAttribute('placeholder', '');\r\n // filters[2].setAttribute('placeholder', '');\r\n // break;\r\n // case 'Payments':\r\n // filters[0].setAttribute('placeholder', 'Id');\r\n // filters[1].setAttribute('placeholder', 'Location');\r\n // filters[2].setAttribute('placeholder', 'PPED');\r\n // break;\r\n // case 'Uploads':\r\n // filters[0].setAttribute('placeholder', 'MM/DD/YYYY');\r\n // filters[1].setAttribute('placeholder', 'Category');\r\n // filters[2].setAttribute('placeholder', 'File');\r\n // break;\r\n // default:\r\n // break;\r\n // }\r\n\r\n this.assignFilters(filters);\r\n }\r\n\r\n assignFilters(filters: any): void {\r\n // tslint:disable-next-line: max-line-length\r\n const filterIcon = '';\r\n for (const filter of filters) {\r\n filter.insertAdjacentHTML('afterend', filterIcon);\r\n }\r\n }\r\n}\r\n","import { NG_VALIDATORS, Validator } from '@angular/forms';\r\nimport { forwardRef, Directive, Input } from '@angular/core';\r\n\r\nexport const requiredValidatorLogic = (required) => (control) => {\r\n if (!control.value) {\r\n return { valid: false };\r\n }\r\n\r\n return (control.value.id && control.value.id !== null) || (control.value.code && control.value.code !== null)\r\n || control.value.payScheduleID && control.value.payScheduleID !== null ?\r\n null : { valid: false };\r\n};\r\n\r\nconst requiredValidator: any = {\r\n provide: NG_VALIDATORS,\r\n // tslint:disable-next-line: no-use-before-declare\r\n useExisting: forwardRef(() => RequiredValidator),\r\n multi: true\r\n};\r\n\r\n\r\n@Directive({\r\n // tslint:disable-next-line: directive-selector\r\n selector: '[isRequired]',\r\n providers: [requiredValidator]\r\n})\r\n\r\nexport class RequiredValidator implements Validator {\r\n @Input() public isRequired: boolean;\r\n public validator: any;\r\n constructor() {\r\n this.validator = requiredValidatorLogic(this.isRequired);\r\n }\r\n\r\n validate(c) {\r\n return this.validator(c);\r\n }\r\n}\r\n\r\n","export class Global {\r\n public static BASE_RESETCONFIRM_ENDPOINT = 'api/Authorization/ResetPasswordConfirm';\r\n public static BASE_RESETPASSWORD_ENDPOINT = 'api/Authorization/resetpassword';\r\n public static BASE_GETINITIAL_USERINFO_ENDPOINT = 'api/account/GetInitialUserInfo';\r\n public static BASE_TOKENCONFIRM_ENDPOINT = 'api/Authorization/confirmtoken';\r\n public static BASE_GET_DARK_FEATURE_ENDPOINT = 'api/App/GetDarkFeatures';\r\n public static BASE_GET_SCHEDULED_MAINTANANCE_ENDPOINT = 'api/App/GetScheduledMaintenance';\r\n public static BASE_ACCOUNT_ORGS_ENDPOINT = 'api/Account/GetUserOrganizations';\r\n public static BASE_ACCOUNT_CHANGEPASSWORD_ENDPOINT = 'api/Account/changepassword';\r\n public static BASE_PASSWORD_EXISTS_ENDPOINT = 'api/Account/IsPwdUsed';\r\n public static BASE_GET_DOCUMENTS_ENDPOINT = 'api/eds/GetEdsDocs';\r\n public static BASE_GET_DOCUMENT_ENDPOINT = 'api/eds/GetEdsDocById';\r\n public static BASE_GET_MEM_DOC_HISTORY_ENDPOINT = 'api/uploads/GetMemberDocHistory';\r\n\r\n // PAYROLL URL\r\n public static BASE_IMPORT_ENDPOINT = 'api/Import/GetImport';\r\n public static BASE_IMPORT_FROM_FILE_ENDPOINT = 'api/import/ImportFromFile';\r\n public static BASE_IMPORT_DELETE_ENDPOINT = 'api/Import/DeleteImport';\r\n public static BASE_IMPORT_DELETE_UNSUB_IMPORT_ENDPOINT = 'api/Import/DeleteUnValidatedImports';\r\n public static BASE_IMPORT_PPEDEXISTS_ENDPOINT = 'api/Import/IsPpedExists';\r\n public static BASE_IMPORT_CLONE_ENDPOINT = 'api/Import/CloneImport';\r\n public static BASE_IMPORT_CONTINUE_UPLOAD_ENDPOINT = 'api/Import/ContinueUpload';\r\n public static BASE_IMPORT_PRESUBMIT_ENDPOINT = 'api/import/PreSubmitImport';\r\n public static BASE_IMPORT_SUBMIT_IMPORT_ENDPOINT = 'api/Import/SubmitImport';\r\n public static BASE_RECORD_ENDPOINT = 'api/import/GetRecords';\r\n public static BASE_USERLOCATION_ENDPOINT = 'api/Location/GetOrgUserLocations';\r\n public static BASE_RECORD_DELETE_ENDPOINT = 'api/import/DeleteRecord';\r\n public static BASE_ISSUE_RECORD_ENDPOINT = 'api/import/GetIssuePayrollRecords';\r\n public static BASE_FILE_DOWNLOAD_ENDPOINT = 'api/import/TextFileDownLoad';\r\n public static BASE_IMPORT_ERRORS_ENDPOINT = 'api/Import/GetErrorCounts';\r\n public static BASE_IMPORT_ISSUE_ENDPOINT = 'api/Import/GetIssuesList';\r\n public static BASE_STATES_ENDPOINT = 'api/Import/GetStates';\r\n public static BASE_ENROLLMENT_AUTHORIZED_STATES_ENDPOINT = 'api/Enrollments/GetStates';\r\n public static BASE_IMPORT_VALIDATIONS_ENDPOINT = 'api/Import/GetValidationSettings';\r\n public static BASE_RECORD_CREATE_ENDPOINT = 'api/import/CreateRecord';\r\n public static BASE_RECORD_UPDATE_ENDPOINT = 'api/import/UpdateRecord';\r\n\r\n // ADJUSTMENTS URL\r\n public static BASE_GET_ADJUSTMENT_HISTORY_ENDPOINT = 'api/Adjustments/GetAdjustmentHistory';\r\n public static BASE_POST_ADJUSTMENT_RECORDS_ENDPOINT = 'api/Adjustments/CreateAdjustment';\r\n public static BASE_GET_ADJUSTMENT_RECORDS_ENDPOINT = 'api/Adjustments/GetAdjustment';\r\n public static BASE_ADJUSTMENT_DELETE_ENDPOINT = 'api/Adjustments/DeleteAdjustment';\r\n public static BASE_VIEW_ADJ_FILE_ENDPOINT = 'api/Adjustments/GetAdjustmentFile';\r\n\r\n // ADJUSTMENT REPORTS V2 URL\r\n public static BASE_GET_ADJUSTMENT_V2_RECORDS_ENDPOINT = 'api/Adjustments/GetPayrollAdjustment';\r\n public static BASE_GET_ADJUSTMENT_V2_DETAILS_ENDPOINT = 'api/Adjustments/GetPayrollAdjustmentRecordsBySSN';\r\n public static BASE_GET_ADJUSTMENT_INPUTS_ENDPOINT = 'api/Adjustments/GetAdjustmentInputs';\r\n public static BASE_SUBMIT_ADJUSTMENT_DATA_ENDPOINT = 'api/Adjustments/SubmitPayrollAdjustment';\r\n public static BASE_ADJUSTMENT_FILE_UPLOAD_ENDPOINT = 'api/Adjustments/UploadAdjustmentFile';\r\n public static BASE_ADJ_RECORD_CREATE_ENDPOINT = 'api/Adjustments/CreatePayrollAdjustment';\r\n public static BASE_ADJ_RECORD_UPDATE_ENDPOINT = 'api/Adjustments/UpdateAdjustmentRecord';\r\n public static BASE_ADJ_RECORD_DELETE_ENDPOINT = 'api/Adjustments/DeleteAdjustmentRecord';\r\n public static BASE_ADJ_REPORT_DELETE_ENDPOINT = 'api/Adjustments/DeleteAdjustmentReport';\r\n public static BASE_GET_PAYROLL_ADJ_REPORTS_ENDPOINT = 'api/Adjustments/GetPayrollAdjustmentReports';\r\n public static BASE_GET_ADJ_OWNER_LIST_ENDPOINT = 'api/Adjustments/GetAdjustmentUsers';\r\n public static BASE_UPDATE_ADJ_OWNER_ENDPOINT = 'api/Adjustments/UpdateAdjustmentOwner';\r\n public static BASE_GET_EMPLOYEE_DETAILS_ENDPOINT = 'api/Adjustments/GetEmployeeDetails';\r\n public static BASE_GET_REJECTED_ADJUSTMENT_ENDPOINT = 'api/Adjustments/GetRejectedPayrollAdjustmentRecords';\r\n public static BASE_DLT_REJECTED_ADJUSTMENT_ENDPOINT = 'api/Adjustments/DeleteRejectedPayrollAdjRecords';\r\n public static BASE_MOVE_REJECTED_ADJUSTMENT_ENDPOINT = 'api/Adjustments/MoveRejectedPayrollAdjRecords';\r\n public static BASE_GET_CORRESPONDING_ADJ_V2_DETAILS_ENDPOINT = 'api/Adjustments/GetEmploymentDataForAdjRecord';\r\n\r\n // UPLOAD URL\r\n public static BASE_PM_UPLOAD_ENDPOINT = 'api/uploads/getuploadshistory';\r\n public static BASE_PM_UPLOAD_LOC_ENDPOINT = 'api/uploads/getuserlocations';\r\n public static BASE_PM_UPLOAD_FILECAT_ENDPOINT = 'api/uploads/getFileCategories';\r\n public static BASE_PM_UPLOAD_FROMFILE_ENDPOINT = 'api/Uploads/ImportFromFile';\r\n\r\n // USERS URL\r\n public static BASE_VALIDATE_EMAIL_ENDPOINT = 'api/User/IsEmailValid';\r\n public static BASE_ROLES_LIST_ENDPOINT = 'api/Account/GetAppRoles';\r\n public static BASE_CONTACT_ROLES_LIST_ENDPOINT = 'api/Account/GetContactAppRoles';\r\n public static BASE_USER_ENDPOINT = 'api/Account/GetUsers';\r\n public static BASE_USER_ENDPOINT_ADDNEW = 'api/Account/AddNew';\r\n public static BASE_USER_ENDPOINT_UPDATE = 'api/Account/UpdateUser';\r\n public static BASE_ALL_USER_ENDPOINT = 'api/Account/GetUserById';\r\n public static BASE_UPDATE_CURRENT_USER_ENDPOINT = 'api/Account/UpdateCurrentUser';\r\n public static BASE_DLT_USERS_USER_ENDPOINT = 'api/Account/DeactivateUser';\r\n\r\n // NEW\r\n public static BASE_USER_BY_USERNAME = 'api/account/users/username';\r\n public static BASE_CURRENT_USER_URL = 'api/account/users/me';\r\n public static BASE_CURRENT_USER_PREFERENCES_URL = 'api/account/users/me/preferences';\r\n public static BASE_USER_ENDPOINT_UPDATE_CURRENT = 'api/Account/UpdateCurrentUser';\r\n public static BASE_UNBLOCK_USER_URL = 'api/account/users/unblock';\r\n public static BASE_USER_ROLES_URL = 'api/account/roles';\r\n public static BASE_ROLE_BY_ROLENAME_URL = 'api/account/roles/name';\r\n public static BASE_PERMISSIONS_URL = 'api/account/GetPermissions';\r\n\r\n // Account URL\r\n public static BASE_GET_CURRENT_USER_ENDPOINT = 'api/account/users/me';\r\n\r\n // Org Location profile\r\n public static BASE_ALL_ORGINFO_ENDPOINT = 'api/Location/ViewOrganizationInfo';\r\n\r\n // News\r\n public static BASE_GET_NEWS_ENDPOINT = 'api/news/GetSharePointNews';\r\n public static BASE_GET_NEWS_BY_ID_ENDPOINT = 'api/news/GetSharePointNewsById';\r\n\r\n // Task Tracker\r\n public static BASE_GET_TRACKER_TASK_ENDPOINT = 'api/tasktracker/gettasks';\r\n public static BASE_POST_UPDATE_TERMINATE_TASK_ENDPOINT = 'api/TaskTracker/UpdateTask';\r\n\r\n // Cutoff Notices\r\n public static BASE_GET_CUTOFF_NOTICES_ENDPOINT = 'api/CutoffNotices/GetCutoffNotices';\r\n\r\n // Enrollments\r\n public static BASE_GET_ENROLLMENT_INFO_BY_SSN_ENDPOINT = 'api/Enrollments/GetEnrollmentInfoBySSN'\r\n public static BASE_GET_ENROLLMENT_PERSON_INFO_ENDPOINT = 'api/Enrollments/GetUserBySsn';\r\n public static BASE_SAVE_PERSON_INFO_ENDPOINT = 'api/Enrollments/PersonalInfo';\r\n public static BASE_GET_ENROLLMENT_LOC_AND_SYS_ENDPOINT = 'api/Enrollments/GetEnrollmentsTwoInputs';\r\n public static BASE_GET_ENROLLMENT_PAY_SCHEDULE_ENDPOINT = 'api/Enrollments/GetEnrollmentsTwoPaySchedules';\r\n public static BASE_SAVE_SCHEDULE_INFO_ENDPOINT = 'api/Enrollments/ScheduleInfo';\r\n public static BASE_SAVE_CONTACT_INFO_ENDPOINT = 'api/Enrollments/ContactInfo';\r\n public static BASE_DOWNLOAD_UPLOADED_FILE_ENDPOINT = 'api/Enrollments/DownloadEnrollmentsFile';\r\n public static BASE_GET_PENDING_ENROLLMENTS_HISTORY_DATA_ENDPOINT = 'api/Enrollments/GetEnrollmentHistory';\r\n public static BASE_UPDATE_ENROLLMENT_RECORD_OWNER_ENDPOINT = 'api/Enrollments/AssignEnrollment';\r\n public static BASE_PENDING_ENROLL_RECORD_DELETE_ENDPOINT = 'api/Enrollments/DeleteEnrollment';\r\n\r\n // bank account info\r\n public static BASE_GET_EMP_BANK_INFO_ENDPOINT = 'api/payments/GetEmployerBankInfo';\r\n public static BASE_GET_BANK_NAME_ENDPOINT = 'api/payments/GetBankInfo';\r\n public static BASE_UPDATE_BANK_INFO_ENDPOINT = 'api/payments/AddOrUpdateEmpBankInfo';\r\n\r\n // UPLOAD\r\n public static BASE_UPLOAD_MEMBER_DOC_BATCH_ENDPOINT = 'api/uploads/UploadMemberDocBatch';\r\n\r\n // Const values\r\n public static ApplicationName = 'Payroll Reporting';\r\n public static OrgAbbr = 'MSRA';\r\n public static OrganizationName = 'Maryland State Retirement Agency';\r\n public static DisplayErrorMessage = 'Unknown Error : Please contact system support.';\r\n\r\n // SCHEDULE URLS\r\n public static BASE_SCHEDULE_ENTRIES_ENDPOINT = 'api/schedule/GetScheduleEntries';\r\n public static BASE_LOAD_SCHEDULE_ENDPOINT = 'api/schedule/LoadSchedule';\r\n public static BASE_FISCAL_YEAR_LIST_ENDPOINT = 'api/schedule/GetScheduleFYs';\r\n public static BASE_SCHEDULE_LIST_ENDPOINT = 'api/schedule/GetScheduleList';\r\n public static BASE_INPUT_SCHEDULE_ENDPOINT = 'api/schedule/GetScheduleInputs';\r\n public static BASE_CONTINUE_SCHEDULE_ENDPOINT = 'api/schedule/LoadPartialSchedule';\r\n public static BASE_GENERATE_SCHEDULE_ENDPOINT = 'api/schedule/Generate';\r\n public static BASE_DELETE_SCHEDULE_ENDPOINT = 'api/schedule/Delete';\r\n public static BASE_UPDATE_SCHEDULE_ENDPOINT = 'api/schedule/Update';\r\n public static BASE_GET_HOLIDAYS_ENDPOINT = 'api/schedule/Holidays';\r\n public static BASE_SAVE_SCHEDULE_ENDPOINT = 'api/schedule/PayScheduleSave';\r\n public static BASE_SCHEDULE_NAME_EXISTS_ENDPOINT = 'api/schedule/NameExists';\r\n public static BASE_SCHEDULE_ID_EXISTS_ENDPOINT = 'api/schedule/EmpScheduleIdExists';\r\n public static BASE_UPDATE_SCHEDULE_ID_EXISTS_ENDPOINT = 'api/schedule/UpdateEmpScheduleId';\r\n\r\n // EMPLOYEE\r\n public static BASE_GET_EMPLOYEE_INFO_ENDPOINT = 'api/Employees/GetEmployeeDetails';\r\n public static BASE_GET_ORG_LIST_DATA_ENDPOINT = 'api/Employees/GetUserOrgAndRoleList';\r\n public static BASE_POST_TERMINATE_EMP_DATA_ENDPOINT = 'api/Employees/UpdateEmployeeTermination';\r\n public static BASE_GET_ENROLLMENT_SALARY_INFO_ENDPOINT = 'api/Employees/GetEnrollmentSalaryData';\r\n \r\n // invoice\r\n public static BASE_GET_PAST_DUE_INVOICES_ENDPOINT = 'api/invoice/GetPastDueInvoices';\r\n public static BASE_GET_DUE_INVOICES_ENDPOINT = 'api/invoice/GetDueInvoices';\r\n public static BASE_GET_PENDING_INVOICES_ENDPOINT = 'api/invoice/GetInprogressInvoices';\r\n public static BASE_GET_PAID_INVOICES_ENDPOINT = 'api/invoice/GetPaidInvoices';\r\n public static BASE_CREATE_INVOICE_ENDPOINT = 'api/invoice/CreateInvoice';\r\n public static BASE_SUBMIT_PAYMENT_ENDPOINT = 'api/invoice/SubmitPayment';\r\n public static BASE_CHECK_BANK_INFO_ENDPOINT = 'api/invoice/GetEmpACHStatus';\r\n public static BASE_VIEW_PAID_INVOICE_ENDPOINT = 'api/eds/GetInvoiceDocument';\r\n public static BASE_SCHEDULE_PAYMENT_ENDPOINT = 'api/invoice/ProcessScheduledInvoices';\r\n\r\n // secure messages\r\n public static BASE_GET_MESSAGETOPICS_ENDPOINT = 'api/Message/GetMessageTopics';\r\n public static BASE_GET_SECUREMESSAGES_ENDPOINT = 'api/Message/GetSecureMessages';\r\n public static BASE_SEND_MESSAGE_ENDPOINT = 'api/Message/SendMessage';\r\n public static BASE_DELETE_MESSAGE_ENDPOINT = 'api/Message/DeleteMessage';\r\n public static BASE_READ_MESSAGE_ENDPOINT = 'api/Message/ReadMessage';\r\n public static BASE_GET_UNREADMESSAGE_COUNT_ENDPOINT = 'api/Message/GetUnreadMessageCount';\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-message-count',\n templateUrl: './message-count.component.html',\n styleUrls: ['./message-count.component.css']\n})\nexport class MessageCountComponent implements OnInit {\n\n @Input() fromDetails: any;\n @Input() msgCount: any;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","\n {{msgCount}}\n\n","import { Component, OnInit } from '@angular/core';\nimport { displayResponse } from 'src/app/models/response';\nimport { NotificationService } from '@progress/kendo-angular-notification';\nimport { DisplayNotificationService } from '../services/common/notification.service';\n\n@Component({\n selector: 'app-notification-loading',\n providers: [NotificationService],\n template: `\n
\n
\n
\n `,\n styles: [`\n .k-i-loading.outer {\n position: fixed;\n font-size: 69px;\n background-color: transparent;\n color: #dba001 !important;\n z-index: 3 !important;\n top: 43%;\n left: 50%;\n }\n\n #overlay-loader {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.06);\n text-align: -webkit-center;\n text-align: -moz-center;\n }\n`]\n})\nexport class NotificationLoadingComponent implements OnInit {\n\n constructor(private notificationService: DisplayNotificationService) { }\n displayLoading = true;\n\n ngOnInit() {\n this.notificationService.getLoadStatus$.subscribe(load => {\n this.displayLoading = load.status || false;\n });\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.css']\n})\nexport class NoticeComponent implements OnInit {\n\n @Input() notifBody: string;\n @Input() divId: string;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n close() {\n const notifDiv = document.getElementById(this.divId);\n if (notifDiv) {\n notifDiv.remove();\n }\n }\n}\n","
\n
\n {{notifBody}}\n
\n \n
\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'phone'\r\n})\r\n\r\nexport class PhonePipe implements PipeTransform {\r\n transform(tel: number) {\r\n const value = (tel || '').toString().trim().replace(/^\\+/, '');\r\n if (value.match(/[^0-9]/)) {\r\n return tel;\r\n }\r\n let country: any;\r\n let city: any;\r\n let zip: any;\r\n switch (value.length) {\r\n case 10: // +1PPP####### -> C (PPP) ###-####\r\n country = 1;\r\n city = value.slice(0, 3);\r\n zip = value.slice(3);\r\n break;\r\n\r\n case 11: // +CPPP####### -> CCC (PP) ###-####\r\n country = value[0];\r\n city = value.slice(1, 4);\r\n zip = value.slice(4);\r\n break;\r\n\r\n case 12: // +CCCPP####### -> CCC (PP) ###-####\r\n country = value.slice(0, 3);\r\n city = value.slice(3, 5);\r\n zip = value.slice(5);\r\n break;\r\n\r\n default:\r\n return tel;\r\n }\r\n if (country === 1) {\r\n country = '';\r\n }\r\n zip = zip.slice(0, 3) + '-' + zip.slice(3);\r\n return (country + ' (' + city + ') ' + zip).trim();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'ssn'\r\n})\r\n\r\nexport class SSNPipe implements PipeTransform {\r\n transform(value: any) {\r\n let disableSearchBtn: boolean;\r\n if (value.length === 11) {\r\n disableSearchBtn = false;\r\n } else {\r\n disableSearchBtn = true;\r\n }\r\n let val = value.replace(/\\D/g, '');\r\n let newVal = '';\r\n if (val.length > 4) {\r\n value = val;\r\n }\r\n if ((val.length > 3) && (val.length < 6)) {\r\n newVal += val.substr(0, 3) + '-';\r\n val = val.substr(3);\r\n }\r\n if (val.length > 5) {\r\n newVal += val.substr(0, 3) + '-';\r\n newVal += val.substr(3, 2) + '-';\r\n val = val.substr(5);\r\n }\r\n newVal += val;\r\n value = newVal.substring(0, 11);\r\n return { maskedValue: value, buttonDisability: disableSearchBtn };\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { ReadConfigService } from '../services/common/read-config.service';\n\n@Component({\n selector: 'app-service-error',\n templateUrl: './service-error.component.html',\n styleUrls: ['./service-error.component.css']\n})\nexport class ServiceErrorComponent implements OnInit {\n message: any;\n\n constructor(private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n const config = this.readConfigService.getServiceErrorText();\n this.message = config.Message;\n }\n}\n","
\n
\n \"Maryland\n
\n
\n {{message}}\n
\n
\n
\n
\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { AppConfigService } from 'src/app/app-config.service';\nimport { Global } from '../../global.constants';\nimport { Utility } from '../../utility';\nimport { ConfigurationService } from '../auth/configuration.service';\nimport { DBkeys } from '../auth/db-keys';\nimport { EndpointFactory } from '../auth/endpoint-factory.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AccountEndpoint extends EndpointFactory {\n\n private readonly getUsersUrl: string = 'api/account/GetUsers';\n private readonly getUserByUserNameUrl: string = 'api/account/users/username';\n private readonly getCurrentUserUrl: string = 'api/account/users/me';\n private readonly getCurrentUserPreferencesUrl: string = 'api/account/users/me/preferences';\n private readonly getUnblockUserUrl: string = 'api/account/users/unblock';\n private readonly getRolesUrl: string = 'api/account/roles';\n private readonly getRoleByRoleNameUrl: string = 'api/account/roles/name';\n private readonly getPermissionsUrl: string = 'api/account/GetPermissions';\n private baseUrl: string;\n get usersUrl() { return this.baseUrl + this.getUsersUrl; }\n get userByUserNameUrl() { return this.baseUrl + this.getUserByUserNameUrl; }\n get currentUserUrl() { return this.baseUrl + this.getCurrentUserUrl; }\n get currentUserUpdateUrl() { return this.baseUrl + Global.BASE_USER_ENDPOINT_UPDATE_CURRENT; }\n get currentUserPreferencesUrl() { return this.baseUrl + this.getCurrentUserPreferencesUrl; }\n get unblockUserUrl() { return this.baseUrl + this.getUnblockUserUrl; }\n get rolesUrl() { return this.baseUrl + this.getRolesUrl; }\n get roleByRoleNameUrl() { return this.baseUrl + this.getRoleByRoleNameUrl; }\n get permissionsUrl() { return this.baseUrl + this.getPermissionsUrl; }\n reqHeader = new HttpHeaders({\n 'Content-Type': 'application/json'\n });\n\n constructor(httpClient: HttpClient,\n configurations: ConfigurationService,\n injector: Injector,\n protected appConfig: AppConfigService) {\n super(httpClient, configurations, injector, appConfig);\n this.baseUrl = this.apiUrl;\n }\n\n UserInfo(): any {\n const userInfo = {\n encryptOrg: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_ORGID)),\n encryptUsr: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_USER))\n };\n return userInfo;\n }\n\n getUserEndpoint(userId?: string): Observable {\n let endpointUrl = '';\n let obj = {};\n if (userId) {\n endpointUrl = `${this.usersUrl}`;\n const userInfo = this.UserInfo();\n obj = { id: userId, userInfo };\n } else {\n endpointUrl = this.currentUserUrl;\n obj = { id: userId };\n }\n return this.httpClient.post(endpointUrl, obj, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getUserByUserNameEndpoint(userName: string): Observable {\n const obj = { userName };\n return this.httpClient.post(this.userByUserNameUrl, obj, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getUsersEndpoint(): Observable {\n const endpointUrl = this.usersUrl;\n return this.httpClient.get(endpointUrl)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getNewUserEndpoint(userObject: any): Observable {\n return this.httpClient.post(this.usersUrl, JSON.stringify(userObject), this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getUpdateUserEndpoint(userObject: any, userId?: string): Observable {\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n })\n };\n return this.httpClient.post(this.currentUserUpdateUrl, JSON.stringify(userObject), httpOptions)\n .pipe(map((response: any) => response as any),\n catchError(this.handleError));\n }\n\n getPatchUpdateUserEndpoint(patch: {}, userId?: string): Observable;\n getPatchUpdateUserEndpoint(value: any, op: string, path: string, from?: any, userId?: string): Observable;\n getPatchUpdateUserEndpoint(valueOrPatch: any, opOrUserId?: string, path?: string, from?: any, userId?: string): Observable {\n let endpointUrl: string;\n let patchDocument: {};\n\n if (path) {\n endpointUrl = userId ? `${this.usersUrl}/${userId}` : this.currentUserUrl;\n patchDocument = from ?\n [{ value: valueOrPatch, path, op: opOrUserId, from }] :\n [{ value: valueOrPatch, path, op: opOrUserId }];\n } else {\n endpointUrl = opOrUserId ? `${this.usersUrl}/${opOrUserId}` : this.currentUserUrl;\n patchDocument = valueOrPatch;\n }\n\n return this.httpClient.patch(endpointUrl, JSON.stringify(patchDocument), this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getUserPreferencesEndpoint(): Observable {\n return this.httpClient.get(this.currentUserPreferencesUrl)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getUpdateUserPreferencesEndpoint(configuration: string): Observable {\n return this.httpClient.put(this.currentUserPreferencesUrl, JSON.stringify(configuration), this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getUnblockUserEndpoint(userId: string): Observable {\n const endpointUrl = `${this.unblockUserUrl}/${userId}`;\n\n return this.httpClient.put(endpointUrl, null, this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getDeleteUserEndpoint(userId: string): Observable {\n const endpointUrl = `${this.usersUrl}/${userId}`;\n\n return this.httpClient.delete(endpointUrl, this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getRoleByRoleNameEndpoint(roleName: string): Observable {\n const endpointUrl = `${this.roleByRoleNameUrl}/${roleName}`;\n return this.httpClient.get(endpointUrl)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getRolesEndpoint(page?: number, pageSize?: number): Observable {\n const obj = { page, pageSize };\n return this.httpClient.post(this.rolesUrl, obj, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getNewRoleEndpoint(roleObject: any): Observable {\n return this.httpClient.post(this.rolesUrl, JSON.stringify(roleObject), this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getUpdateRoleEndpoint(roleObject: any, roleId: string): Observable {\n const endpointUrl = `${this.rolesUrl}/${roleId}`;\n return this.httpClient.put(endpointUrl, JSON.stringify(roleObject), this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getDeleteRoleEndpoint(roleId: string): Observable {\n const endpointUrl = `${this.rolesUrl}/${roleId}`;\n return this.httpClient.delete(endpointUrl, this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getPermissionsEndpoint(userId: number, orgId: number): Observable {\n const url = this.baseUrl + Global.BASE_PERMISSIONS_URL;\n const obj = { userId, orgId };\n return this.httpClient.post(url, obj, { headers: this.reqHeader })\n .pipe(map((response: any) => response as any));\n }\n\n public handleError(error: Response) {\n const response: any = {\n success: false,\n message: Global.DisplayErrorMessage\n };\n return throwError(response);\n }\n}\n","import { AccountEndpoint } from './account-endpoint.service';\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError, forkJoin, Subject } from 'rxjs';\nimport { catchError, map, mergeMap, tap, timeout } from 'rxjs/operators';\nimport { Role } from 'src/app/models/role';\nimport { User } from 'src/app/models/user';\nimport { UserEdit } from 'src/app/models/user-edit.model';\nimport { Global } from '../../global.constants';\nimport { Utility } from '../../utility';\nimport { AuthService } from '../auth/auth.service';\nimport { DBkeys } from '../auth/db-keys';\nimport { ReadConfigService } from '../common/read-config.service';\n\nexport type RolesChangedOperation = 'add' | 'delete' | 'modify';\nexport interface RolesChangedEventArg { roles: Role[] | string[]; operation: RolesChangedOperation; }\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AccountService {\n\n public static readonly roleAddedOperation: RolesChangedOperation = 'add';\n public static readonly roleDeletedOperation: RolesChangedOperation = 'delete';\n public static readonly roleModifiedOperation: RolesChangedOperation = 'modify';\n Claims: any[];\n private rolesChanged = new Subject();\n\n constructor(private http: HttpClient,\n private readConfigService: ReadConfigService,\n private accountEndpoint: AccountEndpoint,\n private authService: AuthService) { }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n apiTimeout = this.readConfigService.getApiTimeout();\n readonly httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n reqNoAuthHeader = new HttpHeaders({ 'No-Auth': 'True' });\n\n UserInfo(): any {\n const userInfo = {\n encryptOrg: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_ORGID)),\n encryptUsr: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_USER))\n };\n return userInfo;\n }\n\n // UPLOAD APP CALLS START\n getUser(userId?: string) {\n return this.accountEndpoint.getUserEndpoint(userId)\n .pipe(map((response: any) => response as User));\n }\n\n getUserAndRoles(userId?: string) {\n return forkJoin(\n this.accountEndpoint.getUserEndpoint(userId).pipe(map((response: any) => response as User)),\n this.accountEndpoint.getRolesEndpoint().pipe(map((response: any) => response as Role[])));\n }\n\n getUsers(page?: number, pageSize?: number) {\n return this.accountEndpoint.getUsersEndpoint()\n .pipe(map((response: any) => response as User[]));\n }\n\n getUsersAndRoles(page?: number, pageSize?: number) {\n return forkJoin(\n this.accountEndpoint.getUsersEndpoint().pipe(map((response: any) => response as User[])),\n this.accountEndpoint.getRolesEndpoint().pipe(map((response: any) => response as Role[])));\n }\n\n updateUser(user: any) {\n if (user.id) {\n return this.accountEndpoint.getUpdateUserEndpoint(user, user.id);\n } else {\n return this.accountEndpoint.getUserByUserNameEndpoint(user.userName)\n .pipe(map((response: any) => response as User))\n .pipe(mergeMap(foundUser => {\n user.id = foundUser.Id;\n return this.accountEndpoint.getUpdateUserEndpoint(user, user.id);\n }));\n }\n }\n\n newUser(user: UserEdit) {\n return this.accountEndpoint.getNewUserEndpoint(user)\n .pipe(map((response: any) => response as User));\n }\n\n getUserPreferences() {\n return this.accountEndpoint.getUserPreferencesEndpoint()\n .pipe(map((response: any) => response as string));\n }\n\n updateUserPreferences(configuration: string | null) {\n const objConf = configuration == null ? '' : configuration;\n return this.accountEndpoint.getUpdateUserPreferencesEndpoint(objConf);\n }\n\n unblockUser(userId: string) {\n return this.accountEndpoint.getUnblockUserEndpoint(userId);\n }\n\n getRoles(page?: number, pageSize?: number) {\n return this.accountEndpoint.getRolesEndpoint(page, pageSize)\n .pipe(map((response: any) => response as Role[]));\n }\n\n newRole(role: Role) {\n return this.accountEndpoint.getNewRoleEndpoint(role)\n .pipe(map((response: any) => response as Role),\n tap((data: any) => this.onRolesChanged([role], AccountService.roleAddedOperation)));\n }\n\n private onRolesChanged(roles: Role[] | string[], op: RolesChangedOperation) {\n this.rolesChanged.next({ roles, operation: op });\n }\n\n onRolesUserCountChanged(roles: Role[] | string[]) {\n return this.onRolesChanged(roles, AccountService.roleModifiedOperation);\n }\n\n getRolesChangedEvent(): Observable {\n return this.rolesChanged.asObservable();\n }\n\n get currentUser() {\n return this.authService.currentUser;\n }\n\n get currentPermissions(): any {\n return this.authService.currentPermissions;\n }\n\n // UPLOAD APP CALLS ENDS\n\n getCurrentUser(): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n const url = this.rootUrl + Global.BASE_GET_CURRENT_USER_ENDPOINT;\n return this.http.post(url, obj, this.httpOptions)\n .pipe(this.handleError());\n }\n\n updateUserDetail(user: any): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo, user };\n const url = this.rootUrl + Global.BASE_UPDATE_CURRENT_USER_ENDPOINT;\n return this.http.post(url, obj, this.httpOptions)\n .pipe(this.handleError());\n }\n\n handleError() {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((v: any) => {\n if (v) {\n return v;\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, throwError, of } from 'rxjs';\nimport { ReadConfigService } from '../common/read-config.service';\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nimport { Global } from '../../global.constants';\nimport { map, catchError, timeout } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AdjustmentService {\n\n constructor(\n private http: HttpClient,\n private readConfigService: ReadConfigService) { }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n apiTimeout = this.readConfigService.getApiTimeout();\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n\n getAdjustmentHistory(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ADJUSTMENT_HISTORY_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getAdjustmentRecords(id: number, userInfo: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ADJUSTMENT_RECORDS_ENDPOINT;\n const obj = { adjustmentId: id, userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n submitAdjustments(data: any): Observable {\n const formData: FormData = new FormData();\n formData.append('userInfo', data.userInfo);\n formData.append('uploadFile', data.uploadFile.rawFile);\n formData.append('contributionWithheld', data.contributionWithheld);\n formData.append('adjustmentDetails', data.adjustmentDetails);\n formData.append('isCurrentFY', data.isCurrentFY);\n formData.append('isDebitInvoice', data.isDebitInvoice);\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'multipart/form-data');\n const url = this.rootUrl + Global.BASE_POST_ADJUSTMENT_RECORDS_ENDPOINT;\n return this.http.post(url, formData, { headers })\n .pipe(this.handleError());\n }\n\n deleteAdjustment(id: number, userInfo: any): Observable {\n const url = this.rootUrl + Global.BASE_ADJUSTMENT_DELETE_ENDPOINT;\n const obj = { adjustmentId: id, userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n // ADJUSTMENT REPORTS V2 SERVICE CALL\n getAdjUploadUrl() {\n return this.rootUrl + Global.BASE_ADJUSTMENT_FILE_UPLOAD_ENDPOINT;\n }\n\n getEmployeeInfo(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_EMPLOYEE_DETAILS_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getAdjustmentV2Records(userInfo: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ADJUSTMENT_V2_RECORDS_ENDPOINT;\n return this.http.post(url, userInfo, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getAdjustmentV2Details(userInfo: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ADJUSTMENT_V2_DETAILS_ENDPOINT;\n return this.http.post(url, userInfo, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getCorrespondingAdjDetails(userInfo: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_CORRESPONDING_ADJ_V2_DETAILS_ENDPOINT;\n return this.http.post(url, userInfo, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getAdjustmentInputs(userInfo: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ADJUSTMENT_INPUTS_ENDPOINT;\n return this.http.post(url, userInfo, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getPayrollAdjRecords(userInfo: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_PAYROLL_ADJ_REPORTS_ENDPOINT;\n return this.http.post(url, userInfo, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getOwnerList(userInfo: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ADJ_OWNER_LIST_ENDPOINT;\n return this.http.post(url, userInfo, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n updateAdjustmentOwner(inputData: any): Observable {\n const url = this.rootUrl + Global.BASE_UPDATE_ADJ_OWNER_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n saveAdjustmentRecord(inputData: any, isNew?: boolean): Observable {\n const action = isNew ? 'create' : 'update';\n if (action === 'create') {\n return this.createRecord(inputData);\n } else {\n return this.updateRecord(inputData);\n }\n }\n\n createRecord(data: any): Observable {\n const url = this.rootUrl + Global.BASE_ADJ_RECORD_CREATE_ENDPOINT;\n return this.http.post(url, data)\n .pipe(this.handleError());\n }\n\n updateRecord(data: any): Observable {\n const url = this.rootUrl + Global.BASE_ADJ_RECORD_UPDATE_ENDPOINT;\n return this.http.post(url, data)\n .pipe(this.handleError());\n }\n\n deleteAdjRecord(data: any): Observable {\n const url = this.rootUrl + Global.BASE_ADJ_RECORD_DELETE_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n deleteAdjReport(data: any): Observable {\n const url = this.rootUrl + Global.BASE_ADJ_REPORT_DELETE_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n submitV2Adjustments(inputInfo: any): Observable {\n const url = this.rootUrl + Global.BASE_SUBMIT_ADJUSTMENT_DATA_ENDPOINT;\n return this.http.post(url, inputInfo, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getRejectedRecords(userInfo: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_REJECTED_ADJUSTMENT_ENDPOINT;\n return this.http.post(url, userInfo, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n deleteRejectedRecords(data: any): Observable {\n const url = this.rootUrl + Global.BASE_DLT_REJECTED_ADJUSTMENT_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n moveRejectedRecords(data: any): Observable {\n const url = this.rootUrl + Global.BASE_MOVE_REJECTED_ADJUSTMENT_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n handleError() {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((v: any) => {\n if (v) {\n return v;\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { ReadConfigService } from '../common/read-config.service';\r\nimport { OutageNoticeComponent } from 'src/app/outage-notice/outage-notice.component';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private router: Router,\r\n private authService: AuthService,\r\n private oauthService: OAuthService,\r\n private readConfigService: ReadConfigService) { }\r\n\r\n routingNotAllowed = true;\r\n private currentUrl = '';\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n if (this.readConfigService.getDarkFeatureFlag(this.readConfigService.getOutageDFName())) {\r\n const outageDetails = this.readConfigService.getOutageScheduledDetails();\r\n if (outageDetails && outageDetails.maintenanceFlag) {\r\n sessionStorage.clear();\r\n this.router.navigate(['/login']);\r\n return false;\r\n }\r\n }\r\n const url: string = state.url;\r\n if (sessionStorage.getItem('access_token') === null) {\r\n console.log('access token missing, redirecting to error page from authguard');\r\n this.router.navigate(['/forbidden'], { queryParams: { usererror: true } });\r\n return false;\r\n } else if (!this.oauthService.hasValidAccessToken()) {\r\n console.log('Invalid token, redirecting to error page from authguard');\r\n this.router.navigate(['/forbidden'], { queryParams: { usererror: true } });\r\n return false;\r\n }\r\n let canContinue = this.checkLogin(url);\r\n if (!canContinue) { return canContinue; }\r\n\r\n this.authService.isInEditMode$().forEach(message => { this.routingNotAllowed = message; });\r\n\r\n if (!this.routingNotAllowed) {\r\n canContinue = confirm('All unsaved changes will be lost. Do you want to continue?');\r\n if (canContinue) {\r\n this.authService.formChanged(true);\r\n this.routingNotAllowed = true;\r\n }\r\n }\r\n const splitUrls = this.authService.splitUrls(url);\r\n this.currentUrl = url.slice(1);\r\n setTimeout(() => {\r\n if (['login', 'callback', '', 'account', 'error', 'usererror', 'landing-page'].indexOf(this.currentUrl) < 0) {\r\n const finalUrl = splitUrls.length < 2 ? splitUrls[0] : splitUrls[1];\r\n const uploadsV2 = this.readConfigService.getDarkFeatureFlag('Uploads v2');\r\n if ((!uploadsV2 && !this.authService.getDarkKeyValue(finalUrl)) ||\r\n (uploadsV2 && splitUrls[0] !== 'uploads' && !this.authService.getDarkKeyValue(finalUrl))) {\r\n this.router.navigate(['/forbidden']);\r\n return false;\r\n }\r\n }\r\n }, 2000);\r\n return canContinue;\r\n }\r\n\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.canActivate(route, state);\r\n }\r\n\r\n canLoad(route: Route): boolean {\r\n const url = `/${route.path}`;\r\n return this.checkLogin(url);\r\n }\r\n\r\n checkLogin(url: string): boolean {\r\n if (this.authService.isLoggedIn) {\r\n if (url.includes('login') || url === '/') {\r\n const darkFeatureValue = sessionStorage.getItem('uploadsFeature');\r\n if (darkFeatureValue === 'true') {\r\n this.router.navigate(['/account']);\r\n } else {\r\n this.router.navigate(['/home']);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n this.authService.loginRedirectUrl = url;\r\n if (!url.includes('login')) {\r\n this.authService.goToLogin();\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpErrorResponse, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { OutageNoticeComponent } from 'src/app/outage-notice/outage-notice.component';\nimport { AppConfigService } from 'src/app/app-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class AuthInterceptor implements HttpInterceptor {\n\n constructor(private router: Router,\n private appConfig: AppConfigService) { }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n const userToken = sessionStorage.getItem('access_token');\n const config = this.appConfig.getConfig();\n if (req.headers.get('No-Auth') === 'True' || req.url.indexOf('.well-known') > 0 || req.url.indexOf('secureauth') > 0) {\n return next.handle(req.clone());\n }\n if (userToken != null && userToken !== undefined) {\n const clonedreq = req.clone({\n headers: req.headers.set('Authorization', 'Bearer ' + userToken)\n .set('Cache-Control', 'no-cache, no-store').set('Pragma', 'no-cache, no-store')\n });\n return next.handle(clonedreq)\n .pipe(tap(\n (succ: HttpResponse) => {\n if (succ && succ.body) {\n const response = succ.body;\n // outage\n if (response.statusCode === 422) {\n sessionStorage.clear();\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\n this.router.config = [];\n this.router.config.push(\n { path: 'outagenotice', component: OutageNoticeComponent },\n { path: '', redirectTo: '/outagenotice', pathMatch: 'full' },\n { path: '**', redirectTo: '/outagenotice', pathMatch: 'full' }\n );\n window.location.reload();\n this.router.navigate(['/outagenotice']);\n });\n }\n }\n },\n err => {\n if (err instanceof HttpErrorResponse) {\n switch (err.status) {\n // service error\n case 400:\n this.router.navigate(['/serviceerror']);\n break;\n // forbidden\n case 401:\n this.router.navigate(['/forbidden'], { queryParams: { error: 401 } });\n break;\n // unauthorized\n case 403:\n this.router.navigateByUrl('/forbidden');\n break;\n }\n }\n }\n ));\n } else {\n console.log('access token missing, redirecting to error page from auth interceptor.');\n this.router.navigate(['/forbidden'], { queryParams: { usererror: true } });\n }\n }\n}\n","import { Utility } from 'src/app/shared/utility';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as CryptoJS from 'crypto-js';\nimport { Observable, Subject, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { PermissionValues } from 'src/app/models/permission.model';\nimport { User } from 'src/app/models/user';\nimport { ConfigurationService } from './configuration.service';\nimport { DBkeys } from './db-keys';\nimport { EndpointFactory } from './endpoint-factory.service';\nimport { LocalStoreManager } from './local-store-manager.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { AppConfigService } from 'src/app/app-config.service';\nimport { ReadConfigService } from '../common/read-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n darkKeys: any;\n public get loginUrl() { return this.configurations.loginUrl; }\n public get homeUrl() { return this.configurations.homeUrl; }\n\n public loginRedirectUrl: string;\n public logoutRedirectUrl: string;\n public reLoginDelegate: () => void;\n private orgChangedSubject = new Subject();\n private allowChange = new Subject();\n\n constructor(private router: Router, private configurations: ConfigurationService,\n private endpointFactory: EndpointFactory,\n protected readConfigService: ReadConfigService,\n private localStorage: LocalStoreManager,\n private appConfig: AppConfigService) {\n }\n\n readonly cryptoKey = this.readConfigService.getcryptoKey();\n // Shared Service used as login verifier\n private LoggedInCheck = new Subject();\n private userCheck = new Subject();\n private orgCount = new Subject();\n checkLoggedIn$ = this.LoggedInCheck.asObservable();\n checkUser$ = this.userCheck.asObservable();\n checkorgCount$ = this.orgCount.asObservable();\n config: any = this.appConfig.getConfig();\n apiUrl = this.config !== undefined ? this.config.API_URL : '';\n\n loggedInChecker(change: any) {\n this.LoggedInCheck.next(change);\n }\n\n userChecker(user: any) {\n this.userCheck.next(user);\n }\n\n userOrgCountCheck(count: any) {\n if (count > 0) {\n this.orgCount.next(count);\n }\n }\n\n sendMessage(orgId: string) {\n this.orgChangedSubject.next({ text: orgId });\n }\n\n getMessage$(): Observable {\n return this.orgChangedSubject.asObservable();\n }\n\n redirectLogoutUser() {\n setTimeout(() => {\n this.router.navigate(['/login']);\n window.location.reload();\n }, 200);\n }\n\n redirectForLogin() {\n this.loginRedirectUrl = this.router.url;\n this.router.navigate([this.loginUrl]);\n }\n\n reLogin() {\n this.localStorage.deleteData(DBkeys.TOKEN_EXPIRES_IN);\n if (this.reLoginDelegate) {\n this.reLoginDelegate();\n } else {\n this.redirectForLogin();\n }\n }\n\n getLoggedInUserInfo(): Observable {\n return this.endpointFactory.getInitialLoginInfo(this.currentOrg)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n processInitialResponse(response: any) {\n const permissions: PermissionValues[] = response.claims;\n const decodedIdToken = response.values;\n const user = new User();\n user.Id = decodedIdToken.Id;\n user.IsActive = true;\n user.currentOrg = decodedIdToken.currentOrg;\n this.saveUserDetails(user, permissions, decodedIdToken.encryptOrg, decodedIdToken.encryptUsr);\n this.userOrgCountCheck(parseInt(decodedIdToken.multipleOrg, 0));\n sessionStorage.setItem('InitialOrg', this.encryptText(decodedIdToken.orgName));\n this.setCurrentOrgName(decodedIdToken.orgName);\n this.localStorage.saveSyncedSessionData(parseInt(decodedIdToken.multipleOrg, 0), DBkeys.ORG_CNT);\n return user;\n }\n\n private saveUserDetails(user: User, permissions: PermissionValues[], encOrg: string, encUser: string) {\n this.localStorage.saveSyncedSessionData(this.encryptText(JSON.stringify(user)), DBkeys.CURRENT_USER);\n this.saveCurrentPermissions(permissions);\n if (encOrg) {\n this.localStorage.saveSyncedSessionData(encOrg.replace(/[\"']/g, ''), DBkeys.ENC_ORGID);\n }\n if (encUser) {\n this.localStorage.saveSyncedSessionData(encUser.replace(/[\"']/g, ''), DBkeys.ENC_USER);\n }\n this.localStorage.saveSyncedSessionData(this.encryptText(JSON.stringify(user.currentOrg)), DBkeys.CURRENT_ORG);\n }\n\n public saveCurrentOrg(orgId: number) {\n this.localStorage.saveSyncedSessionData(this.encryptText(JSON.stringify(orgId)), DBkeys.CURRENT_ORG);\n }\n\n setEncCurrentOrg(encOrg: string) {\n this.localStorage.saveSyncedSessionData(encOrg.replace(/[\"']/g, ''), DBkeys.ENC_ORGID);\n }\n\n public saveCurrentPermissions(accesses: any) {\n const mergedRoleClaims = accesses.reduce((m, o) => {\n const access = m.find(p => p.claim === o.claim);\n if (access) {\n const roles = access.roleName.split(',');\n const newRoles = o.roleName.split(',');\n newRoles.forEach(element => {\n if (!roles.some(x => x === element)) {\n roles.push(element);\n }\n });\n access.roleName = roles.join(',');\n } else {\n m.push(o);\n }\n return m;\n }, []);\n\n this.localStorage.saveSyncedSessionData(this.encryptText(JSON.stringify(mergedRoleClaims)), DBkeys.CURRENT_PERMISSIONS);\n }\n\n logout(manual: boolean): void {\n this.localStorage.deleteData(DBkeys.ACCESS_TOKEN);\n this.localStorage.deleteData(DBkeys.REFRESH_TOKEN);\n this.localStorage.deleteData(DBkeys.TOKEN_EXPIRES_IN);\n this.localStorage.deleteData(DBkeys.CURRENT_USER);\n this.localStorage.deleteData(DBkeys.CURRENT_ORG);\n this.localStorage.deleteData(DBkeys.CURRENT_PERMISSIONS);\n this.localStorage.deleteData(DBkeys.ENC_ORGID);\n this.localStorage.deleteData(DBkeys.ENC_USER);\n this.localStorage.deleteData(DBkeys.DARK_FEATURE);\n this.configurations.clearLocalChanges();\n const message = manual ? 'You have been logged out.' : 'Due to inactivity your session was terminated. Please login again.';\n this.localStorage.saveSyncedSessionData(message, DBkeys.LOGOUT_MESSAGE_KEY);\n }\n\n get currentUser(): User | null {\n if (this.localStorage !== undefined) {\n const user = JSON.parse(this.decryptText(this.localStorage.getDataObject(DBkeys.CURRENT_USER)));\n return user;\n } else {\n return null;\n }\n }\n\n get currentOrg(): any | null {\n if (this.localStorage !== undefined) {\n return parseInt(JSON.parse(this.decryptText(this.localStorage.getDataObject(DBkeys.CURRENT_ORG))) || 0, 0);\n }\n return null;\n }\n\n get currentPermissions(): any | null {\n if (this.localStorage !== undefined) {\n const permissions: any = JSON.parse(this.decryptText(this.localStorage.getDataObject(DBkeys.CURRENT_PERMISSIONS))) || [];\n const memberUpload = permissions.find((s: any) => s.claim === 'Member Document Upload');\n const newId = permissions[permissions.length - 1].id + 1;\n const featureName = this.config.SubTasks['Uploads'];\n if (!(permissions.some((s: any) => s.claim === 'Uploads'))) {\n if (memberUpload) {\n permissions.push({\n id: newId, claim: featureName[0], roleName: memberUpload.roleName, role: memberUpload.role, roleIds: memberUpload.roleIds\n });\n }\n const index = permissions.findIndex((element: any) => element.claim === 'View Employer Documents');\n if (index > -1) {\n permissions[index].claim = 'Employer Documents';\n }\n }\n return permissions;\n }\n return null;\n }\n\n setCurrentOrgName(value: any) {\n sessionStorage.setItem('currentOrgName', this.encryptText(value));\n }\n\n getCurrentOrgName() {\n return this.decryptText(sessionStorage.getItem('currentOrgName'));\n }\n\n getAccessId(value: any) {\n const currPermission = this.currentPermissions;\n return currPermission.find((s: any) => value === s.claim);\n }\n\n getAccessLevel(permission: any) {\n const currPermission = this.currentPermissions;\n const claims = currPermission.filter((x: any) => this.replaceSpace(x.claim) === this.replaceSpace(permission));\n if (claims && claims.length > 0 && claims[0].roleName) {\n return claims[0].roleName.split(',');\n }\n return [];\n }\n\n replaceSpace(link: any) {\n return Utility.lowerString(link).replace(/ /g, '-');\n }\n\n splitUrls(url: any) {\n return url.split('/').filter((x: any) => x !== '');\n }\n\n getAccessOperatiorsForTab(tabName: string) {\n const access = { Add: false, Edit: false, View: false, Delete: false };\n const roles = this.getAccessLevel(tabName);\n access.Add = this.valueExists(roles, '1');\n access.View = this.valueExists(roles, '2');\n access.Edit = this.valueExists(roles, '3');\n access.Delete = this.valueExists(roles, '4');\n return access;\n }\n\n getAccessOperations(position: any) {\n const access = { Add: false, Edit: false, View: false, Delete: false };\n const spltUrls = this.splitUrls(this.router.url);\n if (spltUrls.length >= position) {\n const roles = this.getAccessLevel(spltUrls[position - 1]);\n access.Add = this.valueExists(roles, '1');\n access.View = this.valueExists(roles, '2');\n access.Edit = this.valueExists(roles, '3');\n access.Delete = this.valueExists(roles, '4');\n }\n return access;\n }\n\n valueExists(arr: any[], condition: any) {\n return arr.some(x => x === condition);\n }\n\n getInitialOrg() {\n return this.decryptText(sessionStorage.getItem('InitialOrg'));\n }\n\n getDarkKeyValue(value: string): any {\n value = this.replaceSpace(value) === 'contact-information' ? 'Account' : value;\n this.darkKeys = this.currentPermissions;\n let canEnable = false;\n if (this.darkKeys === undefined) {\n return canEnable;\n }\n this.darkKeys.some((element: any) => {\n if (this.replaceSpace(element.claim) === this.replaceSpace(value)) {\n canEnable = true;\n }\n });\n return canEnable;\n }\n\n getDarkFeatureValue() {\n const currPermissions = this.currentPermissions;\n currPermissions.map((x: any) => { x.roleName = x.roleName.split(','); return x; });\n const account = currPermissions.find((x: any) => x.claim === 'Account' && x.roleName.length > 0);\n const home = currPermissions.find((x: any) => x.claim === 'Home' && x.roleName.length > 0);\n sessionStorage.setItem('DFLoaded', 'true');\n sessionStorage.setItem('uploadsFeature', account && !home ? 'true' : 'false');\n this.getUserRedirectPage();\n }\n\n getUserRedirectPage() {\n const roleNames = this.getAccessLevel('UploadsVersion');\n const isHomeActive = this.getAccessLevel('Home');\n const uploadsFeature = roleNames.length > 0 ? 'true' : 'false';\n if (uploadsFeature && uploadsFeature === 'true' || !(isHomeActive && isHomeActive.length > 0)) {\n this.router.navigate(['/account']);\n } else {\n this.router.navigate(['/home']);\n }\n }\n\n redirectToUserError() {\n this.router.navigate(['/forbidden'], { queryParams: { usererror: true } });\n }\n\n get isLoggedIn(): boolean {\n const isLoggedIn = sessionStorage.getItem('access_token') != null;\n return isLoggedIn;\n }\n\n get userId(): number {\n if (this.currentUser) {\n return this.currentUser.Id;\n }\n return 0;\n }\n\n sendDropDownMessage(allow: boolean) {\n this.allowChange.next(allow);\n }\n\n isInEditMode$(): Observable {\n return this.allowChange.asObservable();\n }\n\n allowChangeDDwn(allow: boolean) {\n this.localStorage.saveSyncedSessionData(allow, DBkeys.ALLOW_CHG);\n }\n\n formChanged(isChanged: boolean) {\n this.sendDropDownMessage(isChanged);\n this.allowChangeDDwn(isChanged);\n }\n\n goToLogin() {\n this.router.navigate(['/login']);\n }\n\n encryptText(text: any): any {\n return CryptoJS.AES.encrypt(text, this.cryptoKey).toString();\n }\n\n decryptText(text: any): any {\n return text != null ? CryptoJS.AES.decrypt(text, this.cryptoKey).toString(CryptoJS.enc.Utf8) : text;\n }\n\n handleError(error: HttpErrorResponse) {\n return throwError(error || 'Server error');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LocalStoreManager } from './local-store-manager.service';\nimport { Utility } from '../../utility';\n\ninterface UserConfiguration {\n homeUrl: string | null;\n theme?: string | null;\n showDashboardStatistics?: boolean | null;\n showDashboardNotifications?: boolean | null;\n showDashboardTodo?: boolean | null;\n showDashboardBanner?: boolean | null;\n}\n\n@Injectable()\nexport class ConfigurationService {\n\n constructor(private localStorage: LocalStoreManager) {\n this.loadLocalChanges();\n }\n\n set homeUrl(value: string) {\n this._homeUrl = value;\n }\n\n get homeUrl() {\n if (this._homeUrl != null) {\n return this._homeUrl;\n }\n return ConfigurationService.defaultHomeUrl;\n }\n\n set theme(value: string | null) {\n this._theme = value;\n }\n\n get theme() {\n if (this._theme != null) {\n return this._theme;\n }\n return ConfigurationService.defaultTheme;\n }\n\n public static readonly appVersion: string = '1.0.0';\n\n // ***Specify default configurations here***\n public static readonly defaultLanguage: string = 'en';\n public static readonly defaultHomeUrl: string = '/';\n public static readonly defaultTheme: string = 'Default';\n public loginUrl = '/login';\n // ***End of defaults***\n\n // tslint:disable-next-line: variable-name\n private _language: string | null = null;\n\n // tslint:disable-next-line: variable-name\n private _homeUrl: string | null = null;\n\n // tslint:disable-next-line: variable-name\n private _theme: string | null = null;\n\n private loadLocalChanges() { }\n\n private saveToLocalStore(data: any, key: string) {\n setTimeout(() => this.localStorage.savePermanentData(data, key));\n }\n\n public import(jsonValue: string | null) {\n this.clearLocalChanges();\n if (!jsonValue) {\n return;\n }\n const importValue: UserConfiguration = Utility.JSonTryParse(jsonValue);\n if (importValue.homeUrl != null) {\n this.homeUrl = importValue.homeUrl;\n }\n if (importValue.theme != null) {\n this.theme = importValue.theme;\n }\n }\n\n public export(changesOnly = true): string {\n const exportValue: UserConfiguration = {\n homeUrl: changesOnly ? this._homeUrl : this.homeUrl,\n theme: changesOnly ? this._theme : this.theme\n };\n return JSON.stringify(exportValue);\n }\n\n public clearLocalChanges() {\n this._language = null;\n this._homeUrl = null;\n this._theme = null;\n }\n\n}\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DBkeys {\r\n\r\n public static readonly CURRENT_USER = 'current_user';\r\n public static readonly ACCESS_TOKEN = 'access_token';\r\n public static readonly ID_TOKEN = 'id_token';\r\n public static readonly REFRESH_TOKEN = 'refresh_token';\r\n public static readonly TOKEN_EXPIRES_IN = 'expires_in';\r\n public static readonly REMEMBER_ME = 'remember_me';\r\n public static readonly CURRENT_ORG = 'current_org';\r\n public static readonly ALLOW_CHG = 'allow_change';\r\n public static readonly CURRENT_PERMISSIONS = 'current_permissions';\r\n public static readonly LOGOUT_MESSAGE_KEY = 'logout_message';\r\n public static readonly ENC_USER = 'enc_usr';\r\n public static readonly ENC_ORGID = 'enc_org';\r\n public static readonly ORG_CNT = 'org_cnt';\r\n public static readonly DARK_FEATURE = 'uploadsFeature';\r\n}\r\n","import { ConfigurationService } from './configuration.service';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\nimport { throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { AppConfigService } from 'src/app/app-config.service';\nimport { Global } from '../../global.constants';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EndpointFactory {\n\n readonly httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'No-Auth': 'True'\n })\n };\n public loginUrl: string;\n\n constructor(protected httpClient: HttpClient,\n protected configurations: ConfigurationService,\n protected injector: Injector,\n protected appConfig: AppConfigService) { }\n\n config: any = this.appConfig.getConfig();\n apiUrl = this.config !== undefined ? this.config.API_URL : '';\n\n getInitialLoginInfo(CurrentOrg) {\n const url = this.apiUrl + Global.BASE_GETINITIAL_USERINFO_ENDPOINT;\n const obj = { CurrentOrg };\n const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n return this.httpClient.post(url, obj, httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n handleError(error: Response) {\n const response: any = {\n success: false,\n message: Global.DisplayErrorMessage\n };\n return throwError(response);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { Utility } from '../../utility';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStoreManager {\n private static syncListenerInitialised = false;\n public static readonly DBKEY_USER_DATA = 'user_data';\n private static readonly DBKEY_SYNC_KEYS = 'sync_keys';\n private syncKeys: string[] = [];\n private initEvent = new Subject();\n\n private reservedKeys: string[] = ['sync_keys', 'addToSyncKeys', 'removeFromSyncKeys',\n 'getSessionStorage', 'setSessionStorage', 'addToSessionStorage', 'removeFromSessionStorage', 'clearAllSessionsStorage'];\n\n\n public initialiseStorageSyncListener() {\n if (LocalStoreManager.syncListenerInitialised === true) {\n return;\n }\n LocalStoreManager.syncListenerInitialised = true;\n window.addEventListener('storage', this.sessionStorageTransferHandler, false);\n this.syncSessionStorage();\n }\n\n public deinitialiseStorageSyncListener() {\n window.removeEventListener('storage', this.sessionStorageTransferHandler, false);\n LocalStoreManager.syncListenerInitialised = false;\n }\n\n private sessionStorageTransferHandler = (event: StorageEvent) => {\n if (!event.newValue) {\n return;\n }\n if (event.key === 'getSessionStorage') {\n if (sessionStorage.length) {\n this.localStorageSetItem('setSessionStorage', sessionStorage);\n localStorage.removeItem('setSessionStorage');\n }\n } else if (event.key === 'setSessionStorage') {\n if (!this.syncKeys.length) {\n this.loadSyncKeys();\n }\n const data = JSON.parse(event.newValue);\n\n for (const key in data) {\n if (this.syncKeysContains(key)) {\n this.sessionStorageSetItem(key, JSON.parse(data[key]));\n }\n }\n\n this.onInit();\n } else if (event.key === 'addToSessionStorage') {\n\n const data = JSON.parse(event.newValue);\n\n this.addToSessionStorageHelper(data.data, data.key);\n } else if (event.key === 'removeFromSessionStorage') {\n\n this.removeFromSessionStorageHelper(event.newValue);\n } else if (event.key === 'clearAllSessionsStorage' && sessionStorage.length) {\n\n this.clearInstanceSessionStorage();\n } else if (event.key === 'addToSyncKeys') {\n\n this.addToSyncKeysHelper(event.newValue);\n } else if (event.key === 'removeFromSyncKeys') {\n\n this.removeFromSyncKeysHelper(event.newValue);\n }\n }\n\n private syncSessionStorage() {\n localStorage.setItem('getSessionStorage', '_dummy');\n localStorage.removeItem('getSessionStorage');\n }\n\n public clearAllStorage() {\n this.clearAllSessionsStorage();\n }\n\n public clearAllSessionsStorage() {\n this.clearInstanceSessionStorage();\n localStorage.removeItem(LocalStoreManager.DBKEY_SYNC_KEYS);\n localStorage.setItem('clearAllSessionsStorage', '_dummy');\n localStorage.removeItem('clearAllSessionsStorage');\n }\n\n public clearInstanceSessionStorage() {\n this.syncKeys = [];\n }\n\n private addToSessionStorage(data: any, key: string) {\n this.addToSessionStorageHelper(data, key);\n this.addToSyncKeysBackup(key);\n this.localStorageSetItem('addToSessionStorage', { key, data });\n localStorage.removeItem('addToSessionStorage');\n }\n\n private addToSessionStorageHelper(data: any, key: string) {\n this.addToSyncKeysHelper(key);\n this.sessionStorageSetItem(key, data);\n }\n\n private removeFromSessionStorage(keyToRemove: string) {\n this.removeFromSessionStorageHelper(keyToRemove);\n this.removeFromSyncKeysBackup(keyToRemove);\n localStorage.setItem('removeFromSessionStorage', keyToRemove);\n localStorage.removeItem('removeFromSessionStorage');\n }\n\n private removeFromSessionStorageHelper(keyToRemove: string) {\n sessionStorage.removeItem(keyToRemove);\n this.removeFromSyncKeysHelper(keyToRemove);\n }\n\n private testForInvalidKeys(key: string) {\n if (!key) {\n throw new Error('key cannot be empty');\n }\n if (this.reservedKeys.some(x => x === key)) {\n throw new Error(`The storage key \"${key}\" is reserved and cannot be used. Please use a different key`);\n }\n }\n\n private syncKeysContains(key: string) {\n return this.syncKeys.some(x => x === key);\n }\n\n private loadSyncKeys() {\n if (this.syncKeys.length) {\n return;\n }\n this.syncKeys = this.getSyncKeysFromStorage();\n }\n\n private getSyncKeysFromStorage(defaultValue: string[] = []): string[] {\n const data = this.localStorageGetItem(LocalStoreManager.DBKEY_SYNC_KEYS);\n if (data == null || data === '') {\n return defaultValue;\n } else {\n return data as string[];\n }\n }\n\n private addToSyncKeys(key: string) {\n this.addToSyncKeysHelper(key);\n this.addToSyncKeysBackup(key);\n localStorage.setItem('addToSyncKeys', key);\n localStorage.removeItem('addToSyncKeys');\n }\n\n private addToSyncKeysBackup(key: string) {\n const storedSyncKeys = this.getSyncKeysFromStorage();\n if (!storedSyncKeys.some(x => x === key)) {\n storedSyncKeys.push(key);\n this.localStorageSetItem(LocalStoreManager.DBKEY_SYNC_KEYS, storedSyncKeys);\n }\n }\n\n private removeFromSyncKeysBackup(key: string) {\n const storedSyncKeys = this.getSyncKeysFromStorage();\n const index = storedSyncKeys.indexOf(key);\n if (index > -1) {\n storedSyncKeys.splice(index, 1);\n this.localStorageSetItem(LocalStoreManager.DBKEY_SYNC_KEYS, storedSyncKeys);\n }\n }\n\n private addToSyncKeysHelper(key: string) {\n if (!this.syncKeysContains(key)) {\n this.syncKeys.push(key);\n }\n }\n\n private removeFromSyncKeys(key: string) {\n this.removeFromSyncKeysHelper(key);\n this.removeFromSyncKeysBackup(key);\n localStorage.setItem('removeFromSyncKeys', key);\n localStorage.removeItem('removeFromSyncKeys');\n }\n\n private removeFromSyncKeysHelper(key: string) {\n const index = this.syncKeys.indexOf(key);\n if (index > -1) {\n this.syncKeys.splice(index, 1);\n }\n }\n\n public saveSessionData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n this.removeFromSyncKeys(key);\n localStorage.removeItem(key);\n this.sessionStorageSetItem(key, data);\n }\n\n public saveSyncedSessionData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n localStorage.removeItem(key);\n this.addToSessionStorage(data, key);\n }\n\n public savePermanentData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n this.removeFromSessionStorage(key);\n this.localStorageSetItem(key, data);\n }\n\n public moveDataToSessionStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n const data = this.getData(key);\n if (data == null) {\n return;\n }\n this.saveSessionData(data, key);\n }\n\n public moveDataToSyncedSessionStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n const data = this.getData(key);\n if (data == null) {\n return;\n }\n this.saveSyncedSessionData(data, key);\n }\n\n public moveDataToPermanentStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n const data = this.getData(key);\n if (data == null) {\n return;\n }\n this.savePermanentData(data, key);\n }\n\n public exists(key = LocalStoreManager.DBKEY_USER_DATA) {\n let data = sessionStorage.getItem(key);\n if (data == null) {\n data = localStorage.getItem(key);\n }\n return data != null;\n }\n\n public getData(key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n let data = this.sessionStorageGetItem(key);\n if (data == null) {\n data = this.localStorageGetItem(key);\n }\n return data;\n }\n\n public getDataObject(key = LocalStoreManager.DBKEY_USER_DATA, isDateType = false): T | null {\n let data = this.getData(key);\n if (data != null) {\n if (isDateType) {\n data = new Date(data);\n }\n return data as T;\n } else {\n return null;\n }\n }\n\n public deleteData(key = LocalStoreManager.DBKEY_USER_DATA) {\n this.testForInvalidKeys(key);\n this.removeFromSessionStorage(key);\n localStorage.removeItem(key);\n }\n\n private localStorageSetItem(key: string, data: any) {\n localStorage.setItem(key, JSON.stringify(data));\n }\n\n private sessionStorageSetItem(key: string, data: any) {\n sessionStorage.setItem(key, JSON.stringify(data));\n }\n\n private localStorageGetItem(key: string) {\n const item = localStorage.getItem(key);\n if (item == null) {\n return null;\n }\n return Utility.JSonTryParse(item);\n }\n\n private sessionStorageGetItem(key: string) {\n const item = sessionStorage.getItem(key);\n if (item == null) {\n return null;\n }\n return Utility.JSonTryParse(item);\n }\n\n private onInit() {\n setTimeout(() => {\n this.initEvent.next();\n this.initEvent.complete();\n });\n }\n\n public getInitEvent(): Observable<{}> {\n return this.initEvent.asObservable();\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const fadeInOut = trigger('fadeInOut', [\r\n transition(':enter', [style({ opacity: 0 }), animate('0.4s ease-in', style({ opacity: 1 }))]),\r\n transition(':leave', [animate('0.4s 10ms ease-out', style({ opacity: 0 }))])\r\n]);\r\n\r\nexport function flyInOut(duration: number = 0.2) {\r\n return trigger('flyInOut', [\r\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => *', [style({ opacity: 0, transform: 'translateX(-100%)' }), animate(`${duration}s ease-in`)]),\r\n transition('* => void', [animate(`${duration}s 10ms ease-out`, style({ opacity: 0, transform: 'translateX(100%)' }))])\r\n ]);\r\n}","import { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nimport { map, catchError } from 'rxjs/operators';\nimport { ReadConfigService } from './read-config.service';\nimport { AppConfigService } from 'src/app/app-config.service';\nimport { Global } from '../../global.constants';\nimport { Utility } from '../../utility';\nimport { DBkeys } from '../auth/db-keys';\n\n@Injectable()\nexport class CommonService {\n\n constructor(\n private http: HttpClient,\n private appConfig: AppConfigService,\n private readConfigService: ReadConfigService) { }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n reqNoAuthHeader = new HttpHeaders({ 'No-Auth': 'True' });\n\n UserInfo(): any {\n const userInfo = {\n encryptOrg: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_ORGID)),\n encryptUsr: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_USER))\n };\n return userInfo;\n }\n\n getNews(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_NEWS_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getNewsById(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_NEWS_BY_ID_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getLocations(): Observable {\n const url = this.rootUrl + Global.BASE_USERLOCATION_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(map((response: any) => response as any),\n catchError(this.handleError));\n }\n\n getTrackerTasks(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_TRACKER_TASK_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n handleError(error: HttpErrorResponse) {\n return throwError(error || 'Server error');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { ReadConfigService } from './read-config.service';\nimport { NotificationService } from '@progress/kendo-angular-notification';\n\n@Injectable()\nexport class DisplayNotificationService {\n noPosition = 0;\n constructor(private readConfigService: ReadConfigService,\n private notificationService: NotificationService) { }\n // Get Notifications\n private notificationsubject: Subject = new Subject();\n getNotification$ = this.notificationsubject.asObservable();\n\n // Get Loading\n private loadStatus: Subject = new Subject();\n getLoadStatus$ = this.loadStatus.asObservable();\n\n // get UserName\n private userName: Subject = new Subject();\n getUserName$ = this.userName.asObservable();\n\n setUpNotification(response: { message: string, success: boolean }, isWarning: boolean = false) {\n this.notificationsubject.next({ resp: response, isWarning });\n const notifInstance = this.notificationService.show({\n content: response.message,\n position: { horizontal: 'right', vertical: 'top' },\n animation: { type: 'fade', duration: 400 },\n cssClass: 'kendo-custom-class',\n type: { style: isWarning ? 'warning' : response.success ? 'success' : 'error', icon: true },\n closable: true\n });\n setTimeout(() => {\n if (notifInstance) {\n notifInstance.hide();\n }\n }, this.readConfigService.getSuccessHideAfter());\n }\n\n getNotification(): Observable {\n return this.notificationsubject.asObservable();\n }\n\n setUpLoading(status: boolean = false) {\n this.loadStatus.next({ status });\n }\n\n setUpUserName(username: any = '') {\n this.userName.next({ username });\n }\n\n setErrorNotification(message?: string) {\n const notifInstance = this.notificationService.show({\n content: message ? message : this.readConfigService.getGeneralErrorMessage(),\n position: { horizontal: 'right', vertical: 'top' },\n animation: { type: 'fade', duration: 400 },\n cssClass: 'kendo-custom-class',\n type: { style: 'error', icon: true },\n closable: true\n });\n setTimeout(() => {\n if (notifInstance) {\n notifInstance.hide();\n }\n }, this.readConfigService.getErrorHideAfter());\n }\n\n copyToClipboard(val: string, el: string) {\n const currel = document.getElementById(el);\n let position = currel.parentElement.offsetHeight;\n position = (position > 0 && this.noPosition === 0) ? position - 5 : 0;\n\n navigator.clipboard.writeText(val).then().catch(e => console.error(e));\n // tslint:disable-next-line: max-line-length\n const element = 'Copied';\n\n if (currel) {\n currel.innerHTML = element + currel.innerHTML;\n setTimeout(() => {\n currel.innerHTML = currel.innerHTML.replace(element, '');\n this.noPosition = 0;\n }, 1500);\n }\n }\n\n getDataAndCopy(el: string) {\n const element = document.getElementById(el).innerText;\n this.noPosition = 1;\n this.copyToClipboard(element, el);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AppConfigService } from 'src/app/app-config.service';\n@Injectable({\n providedIn: 'root'\n})\nexport class ReadConfigService {\n\n constructor(private appConfig: AppConfigService) { }\n\n config: any = this.appConfig.getConfig();\n\n // common\n getcryptoKey(): string {\n return this.config !== undefined ? this.config.CryptoKey : '';\n }\n\n getCurrentStage() {\n return this.config ? this.config.CurrentStage : 4;\n }\n\n getApiUrl(): string {\n return this.config ? this.config.API_URL : '';\n }\n\n getInsightKey(): string {\n return this.config ? this.config.appInsights : '';\n }\n\n getApiTimeout(): number {\n return this.config ? this.config.ApiTimeout : 300;\n }\n\n getOutageScheduledDetails(): any {\n return this.appConfig.getScheduledMaintenance();\n }\n\n getOutageText() {\n return this.config.OutageText;\n }\n\n getMenuItems(): string[] {\n return this.config ? this.config.MenuItems : [];\n }\n\n getSubTasks() {\n return this.config ? this.config.SubTasks : {};\n }\n\n getIsEPOneReleaseDF() {\n return this.config.IsEPOneReleaseDF;\n }\n\n getDarkFeatureFlag(value: any) {\n return this.appConfig.getDarkKeyValue(value);\n }\n\n getContactUserTitle() {\n return this.config ? this.config.ContactUserTitle : 'Manager Users/Contacts';\n }\n\n getForbiddenText() {\n return this.config.ForbiddenText;\n }\n\n getServiceErrorText() {\n return this.config.ServiceError;\n }\n\n getOutageDFName() {\n return this.config.OutageDFName;\n }\n\n getLoginRedirectTime() {\n return this.config.LoginRedirectTime;\n }\n\n getGeneralErrorMessage() {\n return this.config ? this.config.GeneralErrorMessage : '';\n }\n\n getErrorHideAfter() {\n return this.config ? this.config.ErrorHideAfter : '';\n }\n\n getSuccessHideAfter() {\n return this.config ? this.config.SuccessHideAfter : '';\n }\n\n getEditModeOrgSelect() {\n return this.config ? this.config.EditModeOrgSelect : '';\n }\n\n getPaymentMethodInfo() {\n return this.config ? this.config.PaymentMethodInfo : '';\n }\n\n getContactUpdateText(value: string) {\n return this.config ? this.config.ContactUpdate[value] : '';\n }\n\n getMobileScrollMessage() {\n return this.config.MobileScrollMessage;\n }\n\n getSecuMessagesText() {\n return this.config.SecureMessages;\n }\n\n // payments bank info\n getBankingInfoText() {\n return this.config ? this.config.BankingInfoText : '';\n }\n\n getSPNews() {\n return this.config ? this.config.SPNews : '';\n }\n\n // uploads\n getMaxRecordCount() {\n return this.config ? this.config.Max_Record_Count : 0;\n }\n\n getMaxAmount() {\n return this.config ? this.config.Max_Amount : 0;\n }\n\n // Payroll\n getPayrollUploadFile() {\n return this.config ? this.config.PayrollFileUpload : '';\n }\n\n // User Management\n getUserManagement() {\n return this.config ? this.config.UserManagement : '';\n }\n\n // Uploads\n getUploadFile() {\n return this.config ? this.config.UploadFile : '';\n }\n\n getMemberDocFileUpload() {\n return this.config ? this.config.MemberDocFileUpload : '';\n }\n\n getTerminateText() {\n return this.config ? this.config.TerniamteEmployee : '';\n }\n\n //Cutoff Notices\n getCutoffNoticesText() {\n return this.config ? this.config.CutoffNotices : '';\n }\n\n // Enrollments\n getStepperLabels() {\n return this.config.Steps;\n }\n\n getEnrollmentMemberText() {\n return this.config ? this.config.EnrollmentMember : '';\n }\n\n // Adjustment v2\n getAdjustmentv2Text() {\n return this.config ? this.config.AdjustmentV2FileUpload : '';\n }\n\n // Adjustment\n getAdjustmentFileUpload() {\n return this.config ? this.config.AdjustmentFileUpload : '';\n }\n\n // pay schedules\n getPayScheduleText() {\n return this.config ? this.config.PaySchedule : '';\n }\n\n // documents\n getDocumentErrorMessage() {\n return this.config ? this.config.DocumentErrorMessage : '';\n }\n\n getDocumentMinSize() {\n return this.config ? this.config.ResponseSize : 100;\n }\n\n // invoice\n getInvoiceText() {\n return this.config ? this.config.Invoice : '';\n }\n\n // Help\n getHelpText() {\n return this.config ? this.config.HelpContant : {};\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport * as CryptoJS from 'crypto-js';\nimport { AppConfigService } from 'src/app/app-config.service';\nimport { Global } from '../../global.constants';\nimport { Utility } from '../../utility';\nimport { DBkeys } from '../auth/db-keys';\nimport { UsersService } from './users.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService extends BehaviorSubject {\n readonly cryptoKey = 'msra';\n config: any = this.appConfig.getConfig();\n apiUrl = this.config !== undefined ? this.config.API_URL : '';\n\n constructor(private httpClient: HttpClient, protected appConfig: AppConfigService,\n private usersService: UsersService) {\n super([]);\n }\n\n UserInfo(): any {\n const userInfo = {\n encryptOrg: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_ORGID)),\n encryptUsr: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_USER))\n };\n return userInfo;\n }\n\n getUserOrganizations(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_ACCOUNT_ORGS_ENDPOINT;\n const reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n return this.httpClient.post(url, obj, { headers: reqHeader })\n .pipe(map((response: any) => response as any),\n catchError(this.handleError));\n }\n\n getChangePasswordEndpoint(currentPassword, newPassword): Observable {\n const url = this.apiUrl + Global.BASE_ACCOUNT_CHANGEPASSWORD_ENDPOINT;\n const userEdit = {\n currentPassword: this.usersService.encrypt(currentPassword, 'post'),\n newPassword: this.usersService.encrypt(newPassword, 'post'),\n userInfo: this.UserInfo()\n };\n const httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n })\n };\n const data = JSON.stringify(userEdit);\n return this.httpClient.post(url, data, httpOptions)\n .pipe(map((response: any) => response));\n }\n\n isPwdUsed(password: any): Observable {\n const inputData = {\n userInfo: this.UserInfo(), password\n };\n const reqHeader = new HttpHeaders({\n 'Content-Type': 'application/json'\n });\n const url = this.apiUrl + Global.BASE_PASSWORD_EXISTS_ENDPOINT;\n return this.httpClient.post(url, inputData, { headers: reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n encrypt(msg: any, type: any): any {\n // random salt for derivation\n const keySize = 256;\n const salt = CryptoJS.lib.WordArray.random(16);\n // well known algorithm to generate key\n const key = CryptoJS.PBKDF2(this.cryptoKey, salt, {\n keySize: keySize / 32,\n iterations: 100\n });\n // random IV\n const iv = CryptoJS.lib.WordArray.random(128 / 8);\n // specify everything explicitly\n const encrypted = CryptoJS.AES.encrypt(msg, key, {\n iv,\n padding: CryptoJS.pad.Pkcs7,\n mode: CryptoJS.mode.CBC\n });\n // combine everything together in base64 string\n const result = CryptoJS.enc.Base64.stringify(salt.concat(iv).concat(encrypted.ciphertext));\n const encodedVal = encodeURIComponent(result);\n return type === 'post' ? result : encodedVal;\n }\n\n decryptData(encryptData: any, passPhrase: any): any {\n const key = CryptoJS.enc.Utf8.parse(passPhrase);\n const iv = CryptoJS.enc.Utf8.parse(passPhrase);\n const decrypted = CryptoJS.AES.decrypt(encryptData, key,\n {\n keySize: 128 / 8,\n iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7\n });\n return decrypted.toString(CryptoJS.enc.Utf8);\n }\n\n private handleError(error: Response) {\n const response: any = {\n success: false,\n message: Global.DisplayErrorMessage\n };\n return throwError(response);\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError, concat } from 'rxjs';\nimport { map, catchError } from 'rxjs/operators';\nimport { ReadConfigService } from './read-config.service';\nimport * as CryptoJS from 'crypto-js';\nimport { Global } from '../../global.constants';\nimport { Utility } from '../../utility';\nimport { DBkeys } from '../auth/db-keys';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UsersService {\n\n constructor(private http: HttpClient, private readConfigService: ReadConfigService) { }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n readonly httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n reqNoAuthHeader = new HttpHeaders({ 'No-Auth': 'True' });\n readonly cryptoKey = 'MSRA';\n\n UserInfo(): any {\n const userInfo = {\n encryptOrg: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_ORGID)),\n encryptUsr: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_USER))\n };\n return userInfo;\n }\n\n getUserName(): any {\n if (sessionStorage.getItem('id_token_claims_obj') === null) {\n return '';\n }\n const claims = JSON.parse(sessionStorage.getItem('id_token_claims_obj'));\n return claims.sub ? claims.sub : '';\n }\n\n setLoginTime(): any {\n if (sessionStorage.getItem('id_token_claims_obj')) {\n const claims = JSON.parse(sessionStorage.getItem('id_token_claims_obj'));\n sessionStorage.setItem('loginTime', claims.iat);\n }\n }\n\n getLoginTime(): any {\n if (sessionStorage.getItem('loginTime')) {\n return sessionStorage.getItem('loginTime');\n }\n }\n\n getRolesList(): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n const url = this.rootUrl + Global.BASE_ROLES_LIST_ENDPOINT;\n return this.http.post(url, obj, this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getContactRolesList(): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n const url = this.rootUrl + Global.BASE_CONTACT_ROLES_LIST_ENDPOINT;\n return this.http.post(url, obj, this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getUsers(): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n const url = this.rootUrl + Global.BASE_USER_ENDPOINT;\n return this.http.post(url, obj, this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n addUpdateUser(model: any, isNew: boolean): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo, model };\n const url = this.rootUrl + (isNew ? Global.BASE_USER_ENDPOINT_ADDNEW : Global.BASE_USER_ENDPOINT_UPDATE);\n return this.http.post(url, obj, this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n getUserById(id: any): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo, id };\n const url = this.rootUrl + Global.BASE_ALL_USER_ENDPOINT;\n return this.http.post(url, obj, this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n validateEmail(email: any): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo, email };\n const url = this.rootUrl + Global.BASE_VALIDATE_EMAIL_ENDPOINT;\n return this.http.post(url, obj, this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n deleteUsersData(userId: any, userEmail: any): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo, Id: userId, EmailAddress: userEmail };\n const url = this.rootUrl + Global.BASE_DLT_USERS_USER_ENDPOINT;\n return this.http.post(url, obj, this.httpOptions)\n .pipe(map((response: any) => response as any),\n catchError(this.handleError));\n }\n\n getOrgProfile(): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n const url = this.rootUrl + Global.BASE_ALL_ORGINFO_ENDPOINT;\n return this.http.post(url, obj, this.httpOptions)\n .pipe(map((response: any) => response),\n catchError(this.handleError));\n }\n\n encrypt(msg: any, type: any) {\n const randomKey = Array.from(Array(16), () => Math.floor(Math.random() * 36).toString(36)).join('');\n var key = CryptoJS.enc.Utf8.parse(randomKey);\n const randomVector = Array.from(Array(16), () => Math.floor(Math.random() * 36).toString(36)).join('');\n var iv = CryptoJS.enc.Utf8.parse(randomVector);\n var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(msg), key,\n {\n keySize: 128 / 8,\n iv: iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7\n });\n const result = CryptoJS.enc.Base64.stringify(iv.concat(encrypted.ciphertext).concat(key));\n const encodedVal = encodeURIComponent(result);\n return type === 'post' ? result : encodedVal;\n }\n\n decryptData(encryptData: any, passPhrase: any): any {\n const key = CryptoJS.enc.Utf8.parse(passPhrase);\n const iv = CryptoJS.enc.Utf8.parse(passPhrase);\n const decrypted = CryptoJS.AES.decrypt(encryptData, key,\n {\n keySize: 128 / 8,\n iv,\n mode: CryptoJS.mode.CBC,\n padding: CryptoJS.pad.Pkcs7\n });\n return decrypted.toString(CryptoJS.enc.Utf8);\n }\n\n private handleError(error: Response) {\n return throwError(error || 'Server error');\n }\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map, timeout } from 'rxjs/operators';\nimport { Global } from '../../global.constants';\nimport { Utility } from '../../utility';\nimport { DBkeys } from '../auth/db-keys';\nimport { DisplayNotificationService } from '../common/notification.service';\nimport { ReadConfigService } from '../common/read-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DocumentService {\n constructor(private http: HttpClient,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n readonly rootUrl = this.readConfigService.getApiUrl();\n apiTimeout = this.readConfigService.getApiTimeout();\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n reqNoAuthHeader = new HttpHeaders({ 'No-Auth': 'True' });\n reqOctHeader = new HttpHeaders({ 'Content-Type': 'application/octet-stream' });\n uploadedFile: any;\n errorMessage = this.readConfigService.getDocumentErrorMessage();\n errorSize = this.readConfigService.getDocumentMinSize();\n\n UserInfo(): any {\n const userInfo = {\n encryptOrg: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_ORGID)),\n encryptUsr: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_USER))\n };\n return userInfo;\n }\n\n saveFileUpload(file: any) {\n this.uploadedFile = file;\n }\n\n getFileUpload() {\n return this.uploadedFile;\n }\n\n uploadMemberDocBatch(userInfo: any, files: any): Observable {\n const formData: FormData = new FormData();\n formData.append('userInfo', userInfo);\n files.forEach((element: any) => {\n formData.append('uploadFile', element.rawFile);\n });\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'multipart/form-data');\n const url = this.rootUrl + Global.BASE_UPLOAD_MEMBER_DOC_BATCH_ENDPOINT;\n return this.http.post(url, formData, { headers })\n .pipe(this.handleError());\n }\n\n getMdsDocTypes(): Observable {\n const url = this.rootUrl;\n // + Global.BASE_GET_MDS_DOC_TYPE_ENDPOINT;\n return this.http.post(url, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getMyDocuments(): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n const url = this.rootUrl + Global.BASE_GET_DOCUMENTS_ENDPOINT;\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getMemDocHistory(): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n const url = this.rootUrl + Global.BASE_GET_MEM_DOC_HISTORY_ENDPOINT;\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getMyDocument(dataId: any, fileName: any): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo, UniqueId: dataId };\n const url = this.rootUrl + Global.BASE_GET_DOCUMENT_ENDPOINT;\n return this.http.post(url, obj, { headers: this.reqHeader, responseType: 'blob' as 'json' })\n .pipe(this.handleErrorWithDocSize(fileName));\n }\n\n viewAdjFile(data: any, fileName: any): Observable {\n const url = this.rootUrl + Global.BASE_VIEW_ADJ_FILE_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader, responseType: 'blob' as 'json' })\n .pipe(this.handleErrorWithDocSize(fileName));\n }\n\n viewInvoice(data: any, fileName: string): Observable {\n fileName = fileName + '.pdf';\n const url = this.rootUrl + Global.BASE_CREATE_INVOICE_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader, responseType: 'blob' as 'json' })\n .pipe(this.handleErrorWithDocSize(fileName));\n }\n\n viewPaidInvoice(data: any): Observable {\n const url = this.rootUrl + Global.BASE_VIEW_PAID_INVOICE_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader, responseType: 'blob' as 'json' })\n .pipe(this.handleErrorWithDocSize(data.fileName));\n }\n\n downloadFile(response: any, filename: string): string {\n const blob = new Blob([response]);\n const url = window.URL.createObjectURL(blob); // <-- work with blob directly\n // IE & Edge\n const nav = (window.navigator as any);\n if (nav && nav.msSaveOrOpenBlob) {\n // msSaveBlob only available for IE & Edge\n nav.msSaveOrOpenBlob(blob, filename);\n } else {\n // create hidden dom element (so it works in all browsers)\n const link = document.createElement('a');\n link.href = url;\n link.download = filename;\n link.click();\n setTimeout(() => {\n // For Firefox it is necessary to delay revoking the ObjectURL\n window.URL.revokeObjectURL(url);\n }, 100);\n }\n return url;\n }\n\n handleError() {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((v: any) => {\n if (v) {\n return v;\n }\n });\n }\n\n handleErrorWithDocSize(fileName: string) {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((res: any) => {\n if (res && res.size > this.errorSize) {\n this.downloadFile(res, fileName);\n } else {\n this.notificationService.setErrorNotification(this.errorMessage);\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { ReadConfigService } from '../common/read-config.service';\nimport { Global } from '../../global.constants';\nimport { timeout, catchError, map } from 'rxjs/operators';\nimport { DisplayNotificationService } from '../common/notification.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EmployeesService {\n\n constructor(\n private http: HttpClient,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n apiTimeout = this.readConfigService.getApiTimeout();\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n errorMessage = this.readConfigService.getDocumentErrorMessage();\n errorSize = this.readConfigService.getDocumentMinSize();\n\n getEmployeeInfo(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_EMPLOYEE_INFO_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getEnrollmentSalaryData(data: any) {\n const url = this.rootUrl + Global.BASE_GET_ENROLLMENT_SALARY_INFO_ENDPOINT;\n return this.http.post(url, data)\n .pipe(this.handleError());\n }\n\n getEmployerList(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ORG_LIST_DATA_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n postTerEmpData(data: any): Observable {\n const url = this.rootUrl + Global.BASE_POST_TERMINATE_EMP_DATA_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n updateTempTask(data: any): Observable {\n const url = this.rootUrl + Global.BASE_POST_UPDATE_TERMINATE_TASK_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getCutoffNoticesData(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_CUTOFF_NOTICES_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getEmploymentInfo(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ENROLLMENT_INFO_BY_SSN_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getPersonInfo(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ENROLLMENT_PERSON_INFO_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getEnrollmentInput(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ENROLLMENT_LOC_AND_SYS_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getEnrollmentPayschedule(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ENROLLMENT_PAY_SCHEDULE_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getPendingEnrollData(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_PENDING_ENROLLMENTS_HISTORY_DATA_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n updateEnrollmentRecordOwner(data: any): Observable {\n const url = this.rootUrl + Global.BASE_UPDATE_ENROLLMENT_RECORD_OWNER_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n deletePendingEnrollRecord(data: any): Observable {\n const url = this.rootUrl + Global.BASE_PENDING_ENROLL_RECORD_DELETE_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n savePersonInfo(data: any): Observable {\n const url = this.rootUrl + Global.BASE_SAVE_PERSON_INFO_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n saveEnrollmentInfo(data: any): Observable {\n const formData: FormData = new FormData();\n formData.append('userInfo', JSON.stringify(data.userInfo));\n formData.append('enrollmentInfo', JSON.stringify(data.enrollmentInfo));\n formData.append('uploadFile', data.uploadedFile?.rawFile);\n formData.append('fileName', data.fileName);\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'multipart/form-data');\n const url = this.rootUrl + Global.BASE_SAVE_SCHEDULE_INFO_ENDPOINT;\n return this.http.post(url, formData, { headers })\n .pipe(this.handleError());\n }\n\n saveContactInfo(data: any): Observable {\n const formData: FormData = new FormData();\n formData.append('userInfo', JSON.stringify(data.userInfo));\n formData.append('contactInfo', JSON.stringify(data.contactInfo));\n formData.append('uploadFile', data.uploadedFile?.rawFile);\n formData.append('fileName', data.fileName);\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'multipart/form-data');\n const url = this.rootUrl + Global.BASE_SAVE_CONTACT_INFO_ENDPOINT;\n return this.http.post(url, formData, { headers })\n .pipe(this.handleError());\n }\n\n downloadUploadedFile(data: any): Observable {\n const url = this.rootUrl + Global.BASE_DOWNLOAD_UPLOADED_FILE_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader, responseType: 'blob' as 'json' })\n .pipe(this.handleErrorWithDocSize(data.fileName));\n }\n\n downloadFile(response: any, filename: string): string {\n const blob = new Blob([response]);\n const url = window.URL.createObjectURL(blob); // <-- work with blob directly\n // IE & Edge\n const nav = (window.navigator as any);\n if (nav && nav.msSaveOrOpenBlob) {\n // msSaveBlob only available for IE & Edge\n nav.msSaveOrOpenBlob(blob, filename);\n } else {\n // create hidden dom element (so it works in all browsers)\n const link = document.createElement('a');\n link.href = url;\n link.download = filename;\n link.click();\n setTimeout(() => {\n // For Firefox it is necessary to delay revoking the ObjectURL\n window.URL.revokeObjectURL(url);\n }, 100);\n }\n return url;\n }\n\n handleError() {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((v: any) => {\n if (v) {\n return v;\n }\n });\n }\n\n handleErrorWithDocSize(fileName: string) {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((res: any) => {\n if (res && res.size > this.errorSize) {\n this.downloadFile(res, fileName);\n } else {\n this.notificationService.setErrorNotification(this.errorMessage);\n }\n });\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { map, catchError, timeout } from 'rxjs/operators';\nimport { Global } from '../../global.constants';\nimport { ReadConfigService } from '../common/read-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InvoiceService {\n\n constructor(\n private http: HttpClient,\n private readConfigService: ReadConfigService) { }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n apiTimeout = this.readConfigService.getApiTimeout();\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n\n getPastDueInvoices(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_PAST_DUE_INVOICES_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getDueInvoices(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_DUE_INVOICES_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getPendingInvoices(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_PENDING_INVOICES_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getPaidInvoices(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_PAID_INVOICES_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getEmpACHStatus(data: any): Observable {\n const url = this.rootUrl + Global.BASE_CHECK_BANK_INFO_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n submitPayment(data: any): Observable {\n const url = this.rootUrl + Global.BASE_SUBMIT_PAYMENT_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n handleError() {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((v: any) => {\n if (v) {\n return v;\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable, throwError, of } from 'rxjs';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map, catchError, timeout } from 'rxjs/operators';\nimport { ReadConfigService } from '../common/read-config.service';\nimport { Global } from '../../global.constants';\nimport { share } from 'rxjs/operators';\n\n@Injectable()\nexport class MessagesService {\n\n public collection$: Observable;\n private collectionObserver: any;\n private collection: any;\n\n constructor(private http: HttpClient,\n private readConfigService: ReadConfigService) {\n this.collection = new Array();\n this.collection$ = new Observable((observer: any) => {\n this.collectionObserver = observer;\n }).pipe(share());\n }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n apiTimeout = this.readConfigService.getApiTimeout();\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n\n getMessageTopics(): Observable {\n const url = this.rootUrl + Global.BASE_GET_MESSAGETOPICS_ENDPOINT;\n return this.http.get(url, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getSecureMessages(inputData: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_SECUREMESSAGES_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n sendMessage(inputData: any): Observable {\n const url = this.rootUrl + Global.BASE_SEND_MESSAGE_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n readMessage(msgId: any): Observable {\n const params = new HttpParams()\n .set('msgId', msgId);\n const url = this.rootUrl + Global.BASE_READ_MESSAGE_ENDPOINT;\n return this.http.get(url, { headers: this.reqHeader, params })\n .pipe(this.handleError());\n }\n\n deleteMessage(inputData: any): Observable {\n const url = this.rootUrl + Global.BASE_DELETE_MESSAGE_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getUnreadMessageCount(inputData: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_UNREADMESSAGE_COUNT_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n setMsgCount(value: string) {\n sessionStorage.setItem('unreadMsgCount', value);\n this.collectionObserver.next(value);\n }\n\n handleError() {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((v: any) => {\n if (v) {\n return v;\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { catchError, map, timeout } from 'rxjs/operators';\nimport { Observable, throwError } from 'rxjs';\nimport { Global } from '../../global.constants';\nimport { Utility } from '../../utility';\nimport { DBkeys } from '../auth/db-keys';\nimport { ReadConfigService } from '../common/read-config.service';\n\n@Injectable()\n\nexport class ScheduleService {\n constructor(private httpClient: HttpClient, private readConfigService: ReadConfigService) { }\n apiUrl = this.readConfigService.getApiUrl();\n apiTimeout = this.readConfigService.getApiTimeout();\n httpOption = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\n\n UserInfo(): any {\n const userInfo = {\n encryptOrg: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_ORGID)),\n encryptUsr: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_USER))\n };\n return userInfo;\n }\n\n getFYList(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_FISCAL_YEAR_LIST_ENDPOINT;\n return this.httpClient.post(url, obj, this.httpOption)\n .pipe(this.handleError());\n }\n\n // GETS HISTORY RECORDS BASED ON ORGANIZATION ID\n getScheduleList(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_SCHEDULE_LIST_ENDPOINT;\n return this.httpClient.post(url, obj, this.httpOption)\n .pipe(this.handleError());\n }\n\n // GETS SYSTEM/PAY FREQUENCY AND LOCATIONS\n getScheduleInputs(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_INPUT_SCHEDULE_ENDPOINT;\n return this.httpClient.post(url, obj, this.httpOption)\n .pipe(this.handleError());\n }\n\n // GETS SCHEDULE ENTRIES FOR VIEW\n getScheduleEntries(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_SCHEDULE_ENTRIES_ENDPOINT;\n return this.httpClient.post(url, obj, this.httpOption)\n .pipe(this.handleError());\n }\n\n // GENERATES PAYSCHEDULE ENTRIES FOR CREATE AND CONTINUE PARTIAL\n generateScheduleEntrys(model: any): Observable {\n const url = this.apiUrl + Global.BASE_GENERATE_SCHEDULE_ENDPOINT;\n return this.httpClient.post(url, model)\n .pipe(this.handleError());\n }\n\n // SAVES NEW PAYSCHEDULE TO DB\n createSchedule(model: any): Observable {\n const url = this.apiUrl + Global.BASE_SAVE_SCHEDULE_ENDPOINT;\n return this.httpClient.post(url, model)\n .pipe(this.handleError());\n }\n\n // GET SCHEDULE DETAILS FOR EDIT AND FULL SCHEDULES\n getSchedules(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_LOAD_SCHEDULE_ENDPOINT;\n return this.httpClient.post(url, obj, this.httpOption)\n .pipe(this.handleError());\n }\n\n // GET PARTIAL SCHEDULE\n getPartialSch(model: any): Observable {\n const url = this.apiUrl + Global.BASE_CONTINUE_SCHEDULE_ENDPOINT;\n return this.httpClient.post(url, model)\n .pipe(this.handleError());\n }\n\n post(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_UPDATE_SCHEDULE_ENDPOINT;\n return this.httpClient.post(url, obj)\n .pipe(this.handleError());\n }\n\n delete(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_DELETE_SCHEDULE_ENDPOINT;\n return this.httpClient.post(url, obj, this.httpOption)\n .pipe(this.handleError());\n }\n\n // SERVICE CALLS FOR VALIDATIONS\n getHolidays(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_GET_HOLIDAYS_ENDPOINT;\n return this.httpClient.post(url, obj, this.httpOption)\n .pipe(this.handleError());\n }\n\n nameExists(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_SCHEDULE_NAME_EXISTS_ENDPOINT;\n return this.httpClient.post(url, obj, this.httpOption)\n .pipe(this.handleError());\n }\n\n empScheduleIdExists(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_SCHEDULE_ID_EXISTS_ENDPOINT;\n return this.httpClient.post(url, obj, this.httpOption)\n .pipe(this.handleError());\n }\n\n updateEmpSchId(obj: any): Observable {\n const url = this.apiUrl + Global.BASE_UPDATE_SCHEDULE_ID_EXISTS_ENDPOINT;\n return this.httpClient.post(url, obj, this.httpOption)\n .pipe(this.handleError());\n }\n\n handleError() {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((v: any) => {\n if (v) {\n return v;\n }\n });\n }\n}\n","import { catchError, map, timeout } from 'rxjs/operators';\nimport { Observable, throwError } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Global } from '../../global.constants';\nimport { Utility } from '../../utility';\nimport { DBkeys } from '../auth/db-keys';\nimport { ReadConfigService } from '../common/read-config.service';\nconst CREATE_ACTION = 'create';\nconst UPDATE_ACTION = 'update';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ImportService {\n uploadedFile: any;\n constructor(\n private http: HttpClient,\n private readConfigService: ReadConfigService) { }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n apiTimeout = this.readConfigService.getApiTimeout();\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n reqNoAuthHeader = new HttpHeaders({ 'No-Auth': 'True' });\n private data: any[] = [];\n\n UserInfo(): any {\n const userInfo = {\n encryptOrg: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_ORGID)),\n encryptUsr: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_USER))\n };\n return userInfo;\n }\n\n saveFileUpload(file: any) {\n this.uploadedFile = file;\n }\n\n getFileUpload() {\n return this.uploadedFile;\n }\n\n uploadImportFile(file: any, scheduleEntryId: any): Observable {\n const formData: FormData = new FormData();\n const userInfo = this.UserInfo();\n formData.append('userInfo', JSON.stringify(userInfo));\n formData.append('uploadFile', file[0].rawFile);\n formData.append('scheduleEntryId', scheduleEntryId);\n const headers = new HttpHeaders();\n headers.append('Content-Type', 'multipart/form-data');\n const url = this.rootUrl + Global.BASE_IMPORT_FROM_FILE_ENDPOINT;\n return this.http.post(url, formData, { headers })\n .pipe(this.handleError());\n }\n\n getImports(): Observable {\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n const url = this.rootUrl + Global.BASE_IMPORT_ENDPOINT;\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n isPpedExists(id: number, orgId: number, pped: Date): Observable {\n const url = this.rootUrl + Global.BASE_IMPORT_PPEDEXISTS_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { importId: id, orgId: orgId.toString(), pped: pped.toDateString(), userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n cloneImport(id: number, pped: Date, scheduleEntryId: number): Observable {\n const url = this.rootUrl + Global.BASE_IMPORT_CLONE_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { importId: id, pped: pped.toDateString(), scheduleEntryId, userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n continueUpload(id: number): Observable {\n const url = this.rootUrl + Global.BASE_IMPORT_CONTINUE_UPLOAD_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { importId: id.toString(), userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getPreSubmitData(importId: string): Observable {\n const url = this.rootUrl + Global.BASE_IMPORT_PRESUBMIT_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { importId: importId.toString(), userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n submitImport(id: number): Observable {\n const url = this.rootUrl + Global.BASE_IMPORT_SUBMIT_IMPORT_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { importId: id.toString(), userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getImportErrors(id: number): Observable {\n const url = this.rootUrl + Global.BASE_IMPORT_ERRORS_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { importId: id, userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getIssues(id: number): Observable {\n const url = this.rootUrl + Global.BASE_IMPORT_ISSUE_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { importId: id, userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n deleteImport(id: number, invoiceId: number): Observable {\n const url = this.rootUrl + Global.BASE_IMPORT_DELETE_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { importId: id.toString(), invoiceId, userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n deleteUnValidatedImports(): Observable {\n const url = this.rootUrl + Global.BASE_IMPORT_DELETE_UNSUB_IMPORT_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getRecords(id: number, staging: boolean): Observable {\n const url = this.rootUrl + Global.BASE_RECORD_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { importId: id, isStaging: staging, userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getIssueRecords(id: number, issueType: string, staging: boolean, isError: boolean): Observable {\n const url = this.rootUrl + Global.BASE_ISSUE_RECORD_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { importId: id, issueType, isStaging: staging, userInfo, isError };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n generateImportFile(importId: string) {\n const url = this.rootUrl + Global.BASE_FILE_DOWNLOAD_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { importId: importId.toString(), userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getStates(isPayroll: boolean): Observable {\n const url = this.rootUrl + (isPayroll ? Global.BASE_STATES_ENDPOINT : Global.BASE_ENROLLMENT_AUTHORIZED_STATES_ENDPOINT);\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getValidationSettings(): Observable {\n const url = this.rootUrl + Global.BASE_IMPORT_VALIDATIONS_ENDPOINT;\n const userInfo = this.UserInfo();\n const obj = { userInfo };\n return this.http.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n save(data: any, isNew?: boolean): Observable {\n const action = isNew ? CREATE_ACTION : UPDATE_ACTION;\n this.reset();\n if (action === CREATE_ACTION) {\n return this.createRecord(data);\n } else {\n return this.updateRecord(data);\n }\n }\n\n createRecord(data: any): Observable {\n const url = this.rootUrl + Global.BASE_RECORD_CREATE_ENDPOINT;\n const userInfo = this.UserInfo();\n data.userInfo = userInfo;\n return this.http.post(url, data)\n .pipe(this.handleError());\n }\n\n updateRecord(data: any): Observable {\n const url = this.rootUrl + Global.BASE_RECORD_UPDATE_ENDPOINT;\n const userInfo = this.UserInfo();\n data.userInfo = userInfo;\n return this.http.post(url, data)\n .pipe(this.handleError());\n }\n\n remove(data: any): Observable {\n this.reset();\n const url = this.rootUrl + Global.BASE_RECORD_DELETE_ENDPOINT;\n const body = data.dataItem;\n const userInfo = this.UserInfo();\n body.userInfo = userInfo;\n return this.http.post(url, body)\n .pipe(this.handleError());\n }\n\n private reset() {\n this.data = [];\n }\n\n handleError() {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((v: any) => {\n if (v) {\n return v;\n }\n });\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map, catchError, timeout } from 'rxjs/operators';\nimport { Observable, throwError } from 'rxjs';\nimport { Global } from '../../global.constants';\nimport { ReadConfigService } from '../common/read-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PaymentsService {\n\n constructor(\n private http: HttpClient,\n private readConfigService: ReadConfigService) { }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n apiTimeout = this.readConfigService.getApiTimeout();\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n\n getEmpBankInfo(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_EMP_BANK_INFO_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getBankName(data: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_BANK_NAME_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n updateBankInfo(data: any): Observable {\n const url = this.rootUrl + Global.BASE_UPDATE_BANK_INFO_ENDPOINT;\n return this.http.post(url, data, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n handleError() {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((v: any) => {\n if (v) {\n return v;\n }\n });\n }\n}\n","import { Observable, throwError } from 'rxjs';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map, catchError, timeout } from 'rxjs/operators';\nimport { Global } from '../../global.constants';\nimport { Utility } from '../../utility';\nimport { DBkeys } from '../auth/db-keys';\nimport { ReadConfigService } from '../common/read-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UploadService {\n\n constructor(private httpClient: HttpClient, protected readConfigService: ReadConfigService) { }\n apiUrl = this.readConfigService.getApiUrl();\n apiTimeout = this.readConfigService.getApiTimeout();\n reqHeader = new HttpHeaders({\n 'Content-Type': 'application/json'\n });\n\n UserInfo(): any {\n const userInfo = {\n encryptOrg: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_ORGID)),\n encryptUsr: Utility.removeQuotes(sessionStorage.getItem(DBkeys.ENC_USER))\n };\n return userInfo;\n }\n\n getUploadUrl() {\n return this.apiUrl + Global.BASE_PM_UPLOAD_FROMFILE_ENDPOINT;\n }\n\n getHistory(fileType?: string): Observable {\n const url = this.apiUrl + Global.BASE_PM_UPLOAD_ENDPOINT;\n const obj = { fileType, userInfo: this.UserInfo() };\n return this.httpClient.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getLocations(): Observable {\n const url = this.apiUrl + Global.BASE_PM_UPLOAD_LOC_ENDPOINT;\n const obj = { userInfo: this.UserInfo() };\n return this.httpClient.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n getFileCategories(): Observable {\n const url = this.apiUrl + Global.BASE_PM_UPLOAD_FILECAT_ENDPOINT;\n const obj = { userInfo: this.UserInfo() };\n return this.httpClient.post(url, obj, { headers: this.reqHeader })\n .pipe(this.handleError());\n }\n\n handleError() {\n return timeout(this.apiTimeout),\n catchError((err: any) => {\n return throwError(err || 'Server error');\n }),\n map((v: any) => {\n if (v) {\n return v;\n }\n });\n }\n}\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DocumentService } from '../services/documents/document.service';\nimport { DisplayNotificationService } from '../services/common/notification.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\nimport { SortDescriptor } from '@progress/kendo-data-query';\nimport { UploadService } from '../services/uploads/upload.service';\n\n@Component({\n selector: 'app-upload-history',\n templateUrl: './upload-history.component.html',\n styleUrls: ['./upload-history.component.css']\n})\nexport class UploadHistoryComponent implements OnInit {\n\n @Input() fileType: any;\n @ViewChild(DataBindingDirective, { static: true }) dataBinding: DataBindingDirective;\n gridView = [];\n sort: SortDescriptor[] = [{\n field: 'created',\n dir: 'desc'\n }];\n gridHeight: any;\n showGrid: boolean;\n memberType: boolean;\n showCategory: boolean;\n buttonCount = 5;\n\n constructor(\n private router: Router,\n private uploadService: UploadService,\n private documentService: DocumentService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.notificationService.setUpLoading(true);\n this.memberType = this.fileType === 'Member';\n if (this.memberType) {\n this.loadMemDocHistory();\n } else {\n this.getHistoryByFileType(this.fileType);\n }\n }\n\n loadMemDocHistory() {\n this.showGrid = false;\n this.documentService.getMemDocHistory().subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n data.result.forEach((element: any) => {\n element.created = new Date(element.created);\n });\n this.gridView = data.result;\n this.gridHeight = this.gridView.length > 20 ? { height: 'calc(100vh - 185px)' } : {};\n } else if (data && data.statusCode === 204) {\n this.gridView = [];\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n this.showGrid = true;\n }, (error: HttpErrorResponse) => {\n console.log(error);\n this.showGrid = true;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n getHistoryByFileType(fileType: any) {\n this.showGrid = false;\n this.uploadService.getHistory(fileType).subscribe(data => {\n if (data && data.success) {\n if (data.result.length > 0) {\n data.result.forEach((element: any) => {\n element.created = new Date(element.created);\n element.fileName = element.fileNameOriginal;\n });\n this.gridView = this.gridView.concat(data.result);\n } else {\n this.gridView = this.gridView.length < 1 ? [] : this.gridView.concat(data.result);\n }\n if (fileType === 'Wages') {\n this.getHistoryByFileType('Exemptions');\n this.showCategory = true;\n }\n this.gridHeight = this.gridView.length > 20 ? { height: 'calc(100vh - 185px)' } : {};\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n this.showGrid = true;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.showGrid = true;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n}\n","
\n 20\"\n [sortable]=\"true\" [resizable]=\"true\" [sort]=\"sort\" filterable=\"menu\" [ngStyle]=\"gridHeight\" id=\"member-doc-history\"\n *ngIf=\"showGrid\">\n \n \n \n
\n
\n
\n
\n Date: {{ dataItem.created | date:'MM/dd/yyyy hh:mm a' }}\n
\n
\n
\n
\n Username:\n {{ dataItem.createdBy }}\n
\n
\n
\n
\n Category:\n {{ dataItem.category }}\n
\n
\n
\n
\n File Name:\n {{ dataItem.fileName }}\n
\n
\n
\n
\n
\n \n \n \n
\n
{{ dataItem.created | date:'MM/dd/yyyy' }}
\n
{{ dataItem.created | date:'hh:mm a' }}
\n
\n
\n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n","import { UntypedFormControl } from '@angular/forms';\r\n\r\nexport class Utility {\r\n public static getIssues(issues: any): any {\r\n const recordIssues: any = [];\r\n for (const issue of issues) {\r\n switch (issue.trim()) {\r\n case 'Address Change':\r\n recordIssues.push('The address on record for this person is different than the uploaded value.');\r\n break;\r\n case 'Location Change':\r\n recordIssues.push('The location on record for this person is different than the uploaded value.');\r\n break;\r\n case 'Contribution Discrepancy?':\r\n recordIssues.push('The specified contribution amount is not the value expected for this person.');\r\n break;\r\n case 'New Member Enrollment':\r\n recordIssues.push('The person could not be identified in our records, and so is assumed to be a new enrollment.');\r\n break;\r\n case 'Zero Contribution':\r\n recordIssues.push('The specified amount is exactly $0.00, which may indicate a noncontributory pay.');\r\n break;\r\n case 'Annual Earnable Change':\r\n recordIssues.push('Annual Earnable Compensation differs from the current value by more than 20%.');\r\n break;\r\n case 'Annual Actual Change':\r\n recordIssues.push('Actual Annual Compensation differs from the current value by more than 20%.');\r\n break;\r\n case 'Invalid Salary':\r\n recordIssues.push('The specified pay period base salary is not the value expected for this person.');\r\n break;\r\n }\r\n }\r\n return recordIssues;\r\n }\r\n\r\n public static removeQuotes(data: string) {\r\n if (data && data !== '') {\r\n return data.replace(/[\"']/g, '');\r\n }\r\n return '';\r\n }\r\n\r\n public static lowerString(data: string) {\r\n if (data) {\r\n return data.trim().toLowerCase();\r\n }\r\n return '';\r\n }\r\n\r\n public static isValidEmail(email: string) {\r\n const pattern = /[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,10}$/;\r\n return pattern.test(this.lowerString(email));\r\n }\r\n\r\n public static getIntegers(data: string) {\r\n if (data) {\r\n const value = data.match(/\\d/g);\r\n return value.join('');\r\n }\r\n return '';\r\n }\r\n\r\n static formatString(str: string, ...args: string[]) {\r\n return str.replace(/{(\\d+)}/g, (match, index) => args[index] || '');\r\n }\r\n\r\n // Set hours format\r\n static formatHourDate(date) {\r\n const eodate = new Date(date.setHours(23, 59, 59, 999));\r\n return this.UTCTimestmpChange(eodate);\r\n }\r\n\r\n // js date to mm/dd/yyyy\r\n static formatDate(date: Date): string {\r\n const options = { year: 'numeric', month: '2-digit', day: '2-digit' } as const;\r\n return new Date(date).toLocaleString('en-US', options);\r\n }\r\n\r\n // UTC date with timestemp format\r\n static UTCTimestmpChange(date: Date): string {\r\n return new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON();\r\n }\r\n\r\n // Remove time from Date\r\n static removeTimeFromDate(date: any) {\r\n return new Date(date.substr(0, 10) + 'T00:00:00');\r\n }\r\n\r\n static removeTimeFromJSDate(date: Date) {\r\n date.setHours(0);\r\n date.setMinutes(0);\r\n date.setSeconds(0);\r\n return new Date(date);\r\n }\r\n\r\n static checkNegativeAmount(value: any) {\r\n return value < 0 ? this.formatNegativeCurrency(value) :\r\n this.formatCurrency(value);\r\n }\r\n\r\n static formatNegativeCurrency(value: number) {\r\n const currencyFormatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n });\r\n const form = currencyFormatter.format(value).toString().replace('-', '(');\r\n return form + ')';\r\n }\r\n\r\n static formatCurrency(value: number) {\r\n const currencyFormatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'USD',\r\n });\r\n return currencyFormatter.format(value);\r\n }\r\n\r\n static formatSSN(value: any) {\r\n return value.substring(0, 3) + '-' + value.substring(3, 5) + '-' + value.substring(5, 9);\r\n }\r\n\r\n static invalidAlphaNumeric(control: UntypedFormControl): { [key: string]: boolean } {\r\n if (control.value && control.value.length && !/^[a-z0-9]+$/i.test(control.value)) {\r\n return { invalidAlphaNumeric: true };\r\n }\r\n return null;\r\n}\r\n\r\n public static JSonTryParse(value: string) {\r\n try {\r\n return JSON.parse(value);\r\n } catch (e) {\r\n if (value === 'undefined') {\r\n return void 0;\r\n }\r\n return value;\r\n }\r\n }\r\n\r\n public static parseDate(date: any) {\r\n if (date) {\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n if (typeof date === 'string' || date instanceof String) {\r\n if (date.search(/[a-su-z+]/i) === -1) {\r\n date = date + 'Z';\r\n }\r\n return new Date(date);\r\n }\r\n if (typeof date === 'number' || date instanceof Number) {\r\n return new Date(date as any);\r\n }\r\n }\r\n }\r\n}\r\n","import { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { UsersService } from './../../shared/services/common/users.service';\nimport { CommonService } from './../../shared/services/common/common.service';\nimport { Component, OnInit } from '@angular/core';\nimport { CompositeFilterDescriptor, State } from '@progress/kendo-data-query';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-active-task',\n templateUrl: './active-task.component.html',\n styleUrls: ['./active-task.component.css']\n})\nexport class ActiveTaskComponent implements OnInit {\n gridData: any;\n inputData: { userInfo: any; adjType: string };\n filters: CompositeFilterDescriptor;\n gridState: State = {\n sort: [],\n take: 10,\n skip: 0\n };\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private authService: AuthService,\n private commonService: CommonService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit(): void {\n this.inputData = {\n userInfo: this.usersService.UserInfo(),\n adjType: ''\n };\n this.notificationService.setUpLoading(true);\n this.getActiveTaskData();\n }\n\n getActiveTaskData() {\n this.inputData.adjType = 'Active';\n this.commonService.getTrackerTasks(this.inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200 && response.data && response.data.length > 0) {\n const activeData = response.data;\n activeData.forEach(element => {\n element.createdDate = new Date(element.createdDate);\n element.dueDate = new Date(element.dueDate);\n });\n this.gridData = activeData;\n } else if (response && response.statusCode === 204) {\n this.gridData = [];\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n redirectUser(dataItem: any) {\n const encryptValue = this.authService.encryptText(dataItem.uniqueId);\n sessionStorage.setItem('terminateUser', encryptValue);\n this.router.navigate([dataItem.navigationLink]);\n }\n\n}\n","
\n \n \n \n \n
\n
\n
\n ID#: \n {{ dataItem.id }}\n
\n
\n
\n
\n Created On: \n {{ dataItem.createdDate | date: 'MM/dd/yyyy' }}\n
\n
\n
\n
\n Due Date: \n {{ dataItem.dueDate | date: 'MM/dd/yyyy' }}\n
\n
\n
\n
\n Task Type: \n {{ dataItem.taskTypeName }}\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {{dataItem.createdDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n \n \n \n \n \n \n \n
\n {{dataItem.dueDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n \n \n \n \n \n \n \n \n
\n {{dataItem.taskTypeName}}\n
\n
\n
\n
\n
\n\n","import { DisplayNotificationService } from './../../shared/services/common/notification.service';\nimport { CommonService } from 'src/app/shared/services/common/common.service';\nimport { UsersService } from './../../shared/services/common/users.service';\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CompositeFilterDescriptor, State } from '@progress/kendo-data-query';\nimport { HttpErrorResponse } from '@angular/common/http';\n\n@Component({\n selector: 'app-completed-task',\n templateUrl: './completed-task.component.html',\n styleUrls: ['./completed-task.component.css']\n})\nexport class CompletedTaskComponent implements OnInit {\n gridData: any;\n inputData: { userInfo: any; adjType: string };\n filters: CompositeFilterDescriptor;\n gridState: State = {\n sort: [],\n take: 10,\n skip: 0\n };\n\n constructor(\n private router: Router,\n private usersService: UsersService,\n private commonService: CommonService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit(): void {\n this.inputData = {\n userInfo: this.usersService.UserInfo(),\n adjType: ''\n };\n this.notificationService.setUpLoading(true);\n this.getCompletedTaskData();\n }\n\n getCompletedTaskData() {\n this.inputData.adjType = 'Completed';\n this.commonService.getTrackerTasks(this.inputData).subscribe((response: any) => {\n if (response && response.statusCode === 200 && response.data && response.data.length > 0) {\n const completedData = response.data;\n completedData.forEach(element => {\n element.createdDate = new Date(element.createdDate);\n element.completedDate = new Date(element.completedDate);\n });\n this.gridData = completedData;\n } else if (response && response.statusCode === 204) {\n this.gridData = [];\n } else if (response && response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (error: HttpErrorResponse) => {\n console.log(error);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n}\n","
\n \n \n \n \n
\n
\n
\n ID#: \n {{ dataItem.id }}\n
\n
\n
\n
\n Created On: \n {{ dataItem.createdDate | date: 'MM/dd/yyyy' }}\n
\n
\n
\n
\n Completed On: \n {{ dataItem.completedDate | date: 'MM/dd/yyyy' }}\n
\n
\n
\n
\n Completed By: \n {{ dataItem.completedBy }}\n
\n
\n
\n
\n Task Type: \n {{ dataItem.taskTypeName }}\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n
\n {{dataItem.id}}\n
\n
\n
\n \n \n \n \n \n \n \n
\n {{dataItem.createdDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n \n \n \n \n \n \n \n
\n {{dataItem.completedDate | date: 'MM/dd/yyyy'}}\n
\n
\n
\n \n \n \n \n \n \n \n \n
\n {{dataItem.completedBy}}\n
\n
\n
\n \n \n \n \n \n \n \n \n
\n {{dataItem.taskTypeName}}\n
\n
\n
\n
\n
\n\n","import { AfterViewChecked, Component, OnInit, ViewChild } from '@angular/core';\nimport { AuthService } from '../shared/services/auth/auth.service';\nimport { UsersService } from '../shared/services/common/users.service';\nimport { TabStripComponent } from '@progress/kendo-angular-layout';\n\n@Component({\n selector: 'app-task-tracker',\n templateUrl: './task-tracker.component.html',\n styleUrls: ['./task-tracker.component.css']\n})\nexport class TaskTrackerComponent implements OnInit, AfterViewChecked {\n initialLoading = false;\n operators: any;\n inputData: { userInfo: any; };\n @ViewChild('trackertabstrip') tabstrip: TabStripComponent;\n\n constructor(\n private authService: AuthService,\n private usersService: UsersService,\n ) { }\n\n ngOnInit(): void {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n this.inputData = { userInfo: this.usersService.UserInfo() };\n this.operators = this.authService.getAccessOperatiorsForTab('Task Tracker');\n }\n\n ngAfterViewChecked() {\n this.setTabStripStyle();\n }\n\n setTabStripStyle() {\n const allDetails = document.querySelectorAll('#tracker-tab');\n if (allDetails && allDetails.length > 0) {\n allDetails.forEach(details => {\n const firstChild = details.firstElementChild.children[0];\n if (firstChild && firstChild.children && firstChild.children.length > 1) {\n const elArr = Array.from(firstChild.children) as Array;\n const tabFirstEl = Array.from(elArr[0].children) as Array;\n const tabSecEl = Array.from(elArr[1].children) as Array;\n tabFirstEl[0].style.marginRight = '5px';\n tabSecEl[0].style.marginRight = '0px';\n elArr.forEach(element => {\n element.style.width = 100 / firstChild.children.length + '%';\n });\n }\n });\n }\n }\n\n}\n","
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-earnings-limitation',\n templateUrl: './earnings-limitation.component.html',\n styleUrls: ['./earnings-limitation.component.css']\n})\nexport class EarningsLimitationComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n ngAfterViewChecked() {\n this.setTabStripStyle();\n }\n\n setTabStripStyle() {\n const allDetails = document.querySelectorAll('.k-tabstrip');\n if (allDetails && allDetails.length > 0) {\n allDetails.forEach(details => {\n const firstChild = details.firstElementChild.children[0];\n if (firstChild && firstChild.children && firstChild.children.length > 1) {\n const elArr = Array.from(firstChild.children) as Array;\n const tabFirstEl = Array.from(elArr[0].children) as Array;\n const tabSecEl = Array.from(elArr[1].children) as Array;\n tabFirstEl[0].style.marginRight = '5px';\n tabSecEl[0].style.marginRight = '5px';\n elArr.forEach(element => {\n element.style.width = 100 / firstChild.children.length + '%';\n });\n }\n });\n }\n }\n}\n","
\n
\n

Earnings Limitation

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { UploadEvent, SuccessEvent, SelectEvent } from '@progress/kendo-angular-upload';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { UploadFileData } from 'src/app/models/uploads';\nimport { UploadService } from 'src/app/shared/services/uploads/upload.service';\nimport { UntypedFormGroup, UntypedFormControl } from '@angular/forms';\nimport { HttpErrorResponse } from '@angular/common/http';\n\n@Component({\n selector: 'app-exemptions',\n templateUrl: './exemptions.component.html',\n styleUrls: ['./exemptions.component.css']\n})\nexport class ExemptionsComponent implements OnInit {\n config: any;\n uploadSaveUrl: string;\n allUploadIds = [];\n fileNameErrorMsg: any;\n msg: any;\n editForm: UntypedFormGroup;\n readonly uploadRemoveUrl: string = 'removeUrl';\n\n constructor(\n private authService: AuthService,\n private uploadService: UploadService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.editForm = new UntypedFormGroup({\n fileType: new UntypedFormControl(''),\n notes: new UntypedFormControl('')\n });\n this.config = this.readConfigService.getUploadFile();\n this.uploadSaveUrl = this.uploadService.getUploadUrl();\n }\n\n uploadComplete(upload: any) {\n if (this.allUploadIds) {\n for (const allUploadId of this.allUploadIds) {\n upload.removeFilesByUid(allUploadId);\n }\n this.allUploadIds = [];\n }\n }\n\n uploadEventHandler(e: UploadEvent, ufile: any) {\n this.notificationService.setUpLoading(true);\n ufile.fileType = 'Exemptions';\n const files = e.files;\n for (const file of files) {\n const a = file.uid;\n if (a !== undefined) {\n this.allUploadIds.push(a);\n }\n }\n const data = new UploadFileData();\n data.fileType = ufile.fileType;\n data.notes = this.isNullOrUndefined(ufile.notes);\n if (this.authService !== null && this.authService.currentUser !== null) {\n data.userId = this.authService.currentUser.Id.toString();\n }\n data.userInfo = JSON.stringify(this.uploadService.UserInfo());\n e.data = data;\n }\n\n uploadSuccess(e: SuccessEvent) {\n const response = e.response;\n if (response && response.body) {\n this.displayNotification(response.body);\n }\n this.notificationService.setUpLoading(false);\n this.reset();\n }\n\n selectEventHandler(e: SelectEvent) {\n const fileName = (e.files[0].name).substring(0, e.files[0].name.lastIndexOf('.') + 1);\n if (fileName.length > 200) {\n this.fileNameErrorMsg = this.config.MaxFileNameErrorMsg;\n this.displayNotification({ success: false, message: this.fileNameErrorMsg });\n e.preventDefault();\n }\n }\n\n errorEventHandler() {\n this.msg = this.config.ErrorMessage;\n this.displayNotification({ success: false, message: this.msg });\n this.notificationService.setUpLoading(false);\n }\n\n displayNotification(response: any) {\n this.notificationService.setUpNotification(response);\n }\n\n reset() {\n this.editForm.reset();\n }\n\n isNullOrUndefined(args: any) {\n return args === undefined || args === null ? '' : args;\n }\n}\n","
\n
\n
\n
\n
\n
Comments (Optional):
\n
\n \n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { UploadService } from 'src/app/shared/services/uploads/upload.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { SuccessEvent, UploadEvent, SelectEvent } from '@progress/kendo-angular-upload';\nimport { UploadFileData } from 'src/app/models/uploads';\n\n@Component({\n selector: 'app-wage-file',\n templateUrl: './wage-file.component.html',\n styleUrls: ['./wage-file.component.css']\n})\nexport class WageFileComponent implements OnInit {\n\n decimals = 2;\n maxRecordCount: any;\n maxAmount: any;\n editForm: UntypedFormGroup;\n config: any;\n allUploadIds = [];\n fileNameErrorMsg = '';\n msg = '';\n readonly uploadRemoveUrl: string = 'removeUrl';\n uploadSaveUrl: string;\n disableButton = true;\n\n constructor(\n private authService: AuthService,\n private uploadService: UploadService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.maxRecordCount = this.readConfigService.getMaxRecordCount();\n this.maxAmount = this.readConfigService.getMaxAmount();\n this.editForm = new UntypedFormGroup({\n fileType: new UntypedFormControl(''),\n recordCount: new UntypedFormControl('', [Validators.required, Validators.min(1), Validators.max(this.maxRecordCount)]),\n totalAmount: new UntypedFormControl('', [Validators.required, Validators.min(0.01), Validators.max(this.maxAmount)]),\n notes: new UntypedFormControl('')\n });\n this.config = this.readConfigService.getUploadFile();\n this.uploadSaveUrl = this.uploadService.getUploadUrl();\n }\n\n onAmountChange() {\n this.disableButton = (this.editForm && this.editForm.valid) ? false : true;\n }\n\n onCountChange() {\n this.disableButton = (this.editForm && this.editForm.valid) ? false : true;\n }\n\n uploadComplete(upload: any) {\n if (this.allUploadIds) {\n for (const allUploadId of this.allUploadIds) {\n upload.removeFilesByUid(allUploadId);\n }\n this.allUploadIds = [];\n }\n }\n\n uploadEventHandler(e: UploadEvent, ufile: any) {\n this.notificationService.setUpLoading(true);\n ufile.fileType = 'Wages';\n const files = e.files;\n for (const file of files) {\n const a = file.uid;\n if (a !== undefined) {\n this.allUploadIds.push(a);\n }\n }\n const data = new UploadFileData();\n data.fileType = ufile.fileType;\n data.notes = this.isNullOrUndefined(ufile.notes);\n data.recordCount = this.isNullOrUndefined(ufile.recordCount) === '' ? 0 : parseInt(ufile.recordCount, 0);\n data.totalAmount = this.isNullOrUndefined(ufile.totalAmount) === '' ? 0.00 : parseFloat(ufile.totalAmount.toFixed(2));\n if (this.authService !== null && this.authService.currentUser !== null) {\n data.userId = this.authService.currentUser.Id.toString();\n }\n data.userInfo = JSON.stringify(this.uploadService.UserInfo());\n e.data = data;\n }\n\n uploadSuccess(e: SuccessEvent) {\n const response = e.response;\n if (response && response.body) {\n this.disableButton = true;\n this.displayNotification(response.body);\n }\n this.notificationService.setUpLoading(false);\n this.reset();\n }\n\n selectEventHandler(e: SelectEvent) {\n const fileName = (e.files[0].name).substring(0, e.files[0].name.lastIndexOf('.') + 1);\n if (fileName.length > 200) {\n this.fileNameErrorMsg = this.config.MaxFileNameErrorMsg;\n this.displayNotification({ success: false, message: this.fileNameErrorMsg });\n e.preventDefault();\n }\n }\n\n errorEventHandler() {\n this.msg = this.config.ErrorMessage;\n this.displayNotification({ success: false, message: this.msg });\n this.notificationService.setUpLoading(false);\n }\n\n displayNotification(response: any) {\n this.notificationService.setUpNotification(response);\n }\n\n reset() {\n this.editForm.reset();\n }\n\n isNullOrUndefined(args: any) {\n return args === undefined || args === null ? '' : args;\n }\n}\n","
\n
\n
\n
\n
\n
Record Count*:
\n
\n \n \n
\n \n {{config.RecordCountWarning}}\n \n
\n
\n
\n
\n
Total Amount*:
\n
\n \n \n
\n \n {{config.AmountWarning}}\n \n
\n
\n
\n
\n
Comments (Optional):
\n
\n \n
\n
\n
\n {{config.Disclaimer}}\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { UsersService } from 'src/app/shared/services/common/users.service';\nimport { DocumentService } from 'src/app/shared/services/documents/document.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { SelectEvent } from '@progress/kendo-angular-upload';\n\n@Component({\n selector: 'app-member-documents',\n templateUrl: './member-documents.component.html',\n styleUrls: ['./member-documents.component.css']\n})\nexport class MemberDocumentsComponent implements OnInit {\n fileRestrictions: any;\n config: any;\n maxFiles: any;\n errorMessages = [];\n allFiles = [];\n currentSelection = [];\n show = false;\n maxFilesMessage: any;\n selectedFilesCount = 0;\n operators: any;\n value = 0;\n chunkCount = 1;\n disableSubmitBtn: boolean;\n validationErrors: boolean;\n\n constructor(\n private authService: AuthService,\n private usersService: UsersService,\n private documentService: DocumentService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.config = this.readConfigService.getMemberDocFileUpload();\n this.fileRestrictions = this.config.BatchFileRestrictions;\n this.operators = this.authService.getAccessOperations(2);\n this.maxFiles = this.config.MaxFilesAllowed ? this.config.MaxFilesAllowed : 10;\n }\n\n ngAfterViewChecked() {\n this.setTabStripStyle();\n }\n\n setTabStripStyle() {\n const allDetails = document.querySelectorAll('.k-tabstrip');\n if (allDetails && allDetails.length > 0) {\n allDetails.forEach(details => {\n const firstChild = details.firstElementChild.children[0];\n if (firstChild && firstChild.children && firstChild.children.length > 1) {\n const elArr = Array.from(firstChild.children) as Array;\n const tabFirstEl = Array.from(elArr[0].children) as Array;\n tabFirstEl[0].style.marginRight = '5px';\n elArr.forEach(element => {\n element.style.width = 100 / firstChild.children.length + '%';\n });\n }\n });\n }\n }\n\n onFileSelect(e: SelectEvent) {\n this.value = 0;\n if (e && e.files && e.files.length > 0) {\n this.selectedFilesCount = this.selectedFilesCount + e.files.length;\n this.chunkCount = this.selectedFilesCount > 10 ? 10 : this.selectedFilesCount;\n this.allFiles = this.allFiles.concat(e.files);\n this.value = this.allFiles.length > 0 ? this.value : 0;\n this.validationErrors = this.allFiles.find((s: any) => s.validationErrors);\n this.checkNumberofFiles(e.files, true);\n }\n }\n\n checkNumberofFiles(files: any, addToCurrent: boolean) {\n this.maxFilesMessage = null;\n if (this.selectedFilesCount > this.config.MaxFilesAllowed) {\n this.maxFilesMessage = this.config.MaxFilesMessage.replace('{0}', this.selectedFilesCount)\n .replace('{1}', this.config.MaxFilesAllowed);\n } else {\n if (addToCurrent) {\n this.currentSelection = files;\n }\n }\n this.checkDuplicateFileName();\n }\n\n checkDuplicateFileName() {\n // check duplicate file name\n this.errorMessages = [];\n this.allFiles.forEach((element: any) => {\n const tempArr = this.allFiles.filter((s: any) => s.name === element.name);\n if (tempArr.length > 1) {\n this.currentSelection = this.currentSelection.filter((s: any) => s.name !== element.name);\n this.errorMessages.push({ fileName: element.name, validationId: 4 });\n }\n });\n }\n\n getValidationMessage(id: number) {\n return this.config.ValidationMessages.find((s: any) => s.id === id).text;\n }\n\n uploadBatch(upload: any) {\n this.disableSubmitBtn = true;\n this.show = true;\n this.notificationService.setUpLoading(true);\n this.documentService.uploadMemberDocBatch(JSON.stringify(this.usersService.UserInfo()), this.allFiles).subscribe((response: any) => {\n if (response && response.statusCode === 200 && response.result) {\n const result = response.result;\n if (result.length > 0) {\n this.value = this.value - (result.length * 10);\n result.forEach((element: any) => {\n if (element.validationId > 0) {\n this.errorMessages.push(element);\n }\n });\n } else {\n this.onClearButtonClick(upload);\n this.value = 100;\n this.notificationService.setUpNotification({ message: 'Upload successful.', success: true });\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n this.show = false;\n this.notificationService.setUpLoading(false);\n this.disableSubmitBtn = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.show = false;\n this.disableSubmitBtn = false;\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n removeEventHandler(e: any) {\n const removedFiles = e.files;\n if (removedFiles.length > 0) {\n this.selectedFilesCount--;\n this.chunkCount = this.selectedFilesCount > 10 ? 10 : this.selectedFilesCount;\n this.allFiles.forEach((element: any, index: number) => {\n if (removedFiles[0].uid === element.uid) {\n this.allFiles.splice(index, 1);\n }\n });\n this.validationErrors = this.allFiles.find((s: any) => s.validationErrors);\n this.checkNumberofFiles(this.allFiles, false);\n }\n }\n\n onClearButtonClick(upload: any) {\n this.allFiles = [];\n this.errorMessages = [];\n this.selectedFilesCount = 0;\n this.chunkCount = 1;\n this.maxFilesMessage = null;\n upload.clearFiles();\n }\n}\n","
\n
\n

Member Documents

\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n \n \n
0\" class=\"row\">\n
\n \n
\n
\n \n
\n
\n
\n
\n {{maxFilesMessage}}\n
\n
0\">\n

Errors

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
File NamePagesError
{{message.fileName}}{{message.pages}}{{getValidationMessage(message.validationId)}}
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n","import { UploadFileData } from './../../models/uploads';\nimport { DisplayNotificationService } from './../../shared/services/common/notification.service';\nimport { ReadConfigService } from './../../shared/services/common/read-config.service';\nimport { UploadService } from './../../shared/services/uploads/upload.service';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { Component, OnInit } from '@angular/core';\nimport { SelectEvent, SuccessEvent, UploadEvent } from '@progress/kendo-angular-upload';\n\n@Component({\n selector: 'app-other',\n templateUrl: './other.component.html',\n styleUrls: ['./other.component.css']\n})\nexport class OtherComponent implements OnInit {\n\n config: any;\n allUploadIds = [];\n fileNameErrorMsg = '';\n msg = '';\n readonly uploadRemoveUrl: string = 'removeUrl';\n uploadSaveUrl: string;\n\n constructor(\n private authService: AuthService,\n private uploadService: UploadService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService\n ) { }\n\n ngOnInit() {\n this.config = this.readConfigService.getUploadFile();\n this.uploadSaveUrl = this.uploadService.getUploadUrl();\n }\n\n ngAfterViewChecked() {\n this.setTabStripStyle();\n }\n\n setTabStripStyle() {\n const allDetails = document.querySelectorAll('.k-tabstrip');\n if (allDetails && allDetails.length > 0) {\n allDetails.forEach(details => {\n const firstChild = details.firstElementChild.children[0];\n if (firstChild && firstChild.children && firstChild.children.length > 1) {\n const elArr = Array.from(firstChild.children) as Array;\n const tabFirstEl = Array.from(elArr[0].children) as Array;\n tabFirstEl[0].style.marginRight = '5px';\n elArr.forEach(element => {\n element.style.width = 100 / firstChild.children.length + '%';\n });\n }\n });\n }\n }\n\n uploadComplete(upload: any) {\n if (this.allUploadIds) {\n for (const allUploadId of this.allUploadIds) {\n upload.removeFilesByUid(allUploadId);\n }\n this.allUploadIds = [];\n }\n }\n\n uploadEventHandler(e: UploadEvent) {\n this.notificationService.setUpLoading(true);\n const files = e.files;\n for (const file of files) {\n const a = file.uid;\n if (a !== undefined) {\n this.allUploadIds.push(a);\n }\n }\n const data = new UploadFileData();\n data.fileType = 'Other';\n if (this.authService !== null && this.authService.currentUser !== null) {\n data.userId = this.authService.currentUser.Id.toString();\n }\n data.userInfo = JSON.stringify(this.uploadService.UserInfo());\n e.data = data;\n }\n\n uploadSuccess(e: SuccessEvent) {\n const response = e.response;\n if (response && response.body) {\n this.displayNotification(response.body);\n }\n this.notificationService.setUpLoading(false);\n e.preventDefault();\n }\n\n selectEventHandler(e: SelectEvent) {\n const fileName = (e.files[0].name).substring(0, e.files[0].name.lastIndexOf('.') + 1);\n if (fileName.length > 200) {\n this.fileNameErrorMsg = this.config.MaxFileNameErrorMsg;\n this.displayNotification({ success: false, message: this.fileNameErrorMsg });\n e.preventDefault();\n }\n }\n\n errorEventHandler() {\n this.msg = this.config.ErrorMessage;\n this.displayNotification({ success: false, message: this.msg });\n this.notificationService.setUpLoading(false);\n }\n\n displayNotification(response: any) {\n this.notificationService.setUpNotification(response);\n }\n\n}\n","
\n
\n

Other

\n
\n \n \n \n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { SelectEvent, SuccessEvent, UploadEvent } from '@progress/kendo-angular-upload';\nimport { UploadFileData } from 'src/app/models/uploads';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { UntypedFormControl, Validators, UntypedFormGroup } from '@angular/forms';\nimport { UploadService } from 'src/app/shared/services/uploads/upload.service';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\n\n@Component({\n selector: 'app-retiree-deductions',\n templateUrl: './retiree-deductions.component.html',\n styleUrls: ['./retiree-deductions.component.css']\n})\nexport class RetireeDeductionsComponent implements OnInit {\n\n decimals = 2;\n maxRecordCount: any;\n maxAmount: any;\n editForm: UntypedFormGroup;\n config: any;\n allUploadIds = [];\n fileNameErrorMsg = '';\n msg = '';\n readonly uploadRemoveUrl: string = 'removeUrl';\n uploadSaveUrl: string;\n pped: Date = new Date();\n minDate: Date = new Date(this.pped.getFullYear(), 0, 1);\n maxDate: Date = new Date(this.pped.getFullYear(), 11, 1);\n\n constructor(\n private authService: AuthService,\n private uploadService: UploadService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.maxRecordCount = this.readConfigService.getMaxRecordCount();\n this.maxAmount = this.readConfigService.getMaxAmount();\n this.editForm = new UntypedFormGroup({\n fileType: new UntypedFormControl(''),\n pped: new UntypedFormControl(''),\n emailList: new UntypedFormControl(''),\n recordCount: new UntypedFormControl('', [Validators.max(this.maxRecordCount)]),\n totalAmount: new UntypedFormControl('', [Validators.max(this.maxAmount)]),\n notes: new UntypedFormControl('')\n });\n this.config = this.readConfigService.getUploadFile();\n this.uploadSaveUrl = this.uploadService.getUploadUrl();\n }\n\n ngAfterViewChecked() {\n this.setTabStripStyle();\n }\n\n setTabStripStyle() {\n const allDetails = document.querySelectorAll('.k-tabstrip');\n if (allDetails && allDetails.length > 0) {\n allDetails.forEach(details => {\n const firstChild = details.firstElementChild.children[0];\n if (firstChild && firstChild.children && firstChild.children.length > 1) {\n const elArr = Array.from(firstChild.children) as Array;\n const tabFirstEl = Array.from(elArr[0].children) as Array;\n tabFirstEl[0].style.marginRight = '5px';\n elArr.forEach(element => {\n element.style.width = 100 / firstChild.children.length + '%';\n });\n }\n });\n }\n }\n\n setModel(pped: any) {\n this.pped = pped;\n }\n\n uploadComplete(upload: any) {\n if (this.allUploadIds) {\n for (const allUploadId of this.allUploadIds) {\n upload.removeFilesByUid(allUploadId);\n }\n this.allUploadIds = [];\n }\n }\n\n uploadEventHandler(e: UploadEvent, ufile: any) {\n this.notificationService.setUpLoading(true);\n ufile.fileType = 'Deductions';\n const files = e.files;\n for (const file of files) {\n const a = file.uid;\n if (a !== undefined) {\n this.allUploadIds.push(a);\n }\n }\n const data = new UploadFileData();\n data.fileType = ufile.fileType;\n data.notes = this.isNullOrUndefined(ufile.notes);\n data.recordCount = this.isNullOrUndefined(ufile.recordCount) === '' ? 0 : parseInt(ufile.recordCount, 0);\n data.totalAmount = this.isNullOrUndefined(ufile.totalAmount) === '' ? 0.00 : parseFloat(ufile.totalAmount.toFixed(2));\n if (this.authService !== null && this.authService.currentUser !== null) {\n data.userId = this.authService.currentUser.Id.toString();\n }\n data.userInfo = JSON.stringify(this.uploadService.UserInfo());\n e.data = data;\n }\n\n uploadSuccess(e: SuccessEvent) {\n const response = e.response;\n if (response && response.body) {\n this.displayNotification(response.body);\n }\n this.notificationService.setUpLoading(false);\n this.reset();\n }\n\n selectEventHandler(e: SelectEvent) {\n const fileName = (e.files[0].name).substring(0, e.files[0].name.lastIndexOf('.') + 1);\n if (fileName.length > 200) {\n this.fileNameErrorMsg = this.config.MaxFileNameErrorMsg;\n this.displayNotification({ success: false, message: this.fileNameErrorMsg });\n e.preventDefault();\n }\n }\n\n errorEventHandler() {\n this.msg = this.config.ErrorMessage;\n this.displayNotification({ success: false, message: this.msg });\n this.notificationService.setUpLoading(false);\n }\n\n displayNotification(response: any) {\n this.notificationService.setUpNotification(response);\n }\n\n reset() {\n this.editForm.reset();\n }\n\n isNullOrUndefined(args: any) {\n return args === undefined || args === null ? '' : args;\n }\n}\n","
\n
\n

Retiree Deductions

\n
\n \n \n \n
\n
\n
\n
\n
\n
Record Count:
\n
\n \n \n {{config.RecordCountWarning}}\n
\n
\n
\n
Total Amount:
\n
\n \n \n {{config.AmountWarning}}\n
\n
\n
\n
Process Month:
\n
\n \n \n
\n
\n
\n
Comments (Optional):
\n
\n \n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { SelectEvent, SuccessEvent, UploadEvent } from '@progress/kendo-angular-upload';\nimport { UploadFileData } from 'src/app/models/uploads';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { UntypedFormControl, Validators, UntypedFormGroup } from '@angular/forms';\nimport { AuthService } from 'src/app/shared/services/auth/auth.service';\nimport { ReadConfigService } from 'src/app/shared/services/common/read-config.service';\nimport { DisplayNotificationService } from 'src/app/shared/services/common/notification.service';\nimport { UploadService } from 'src/app/shared/services/uploads/upload.service';\n\n@Component({\n selector: 'app-sl-recertification',\n templateUrl: './sl-recertification.component.html',\n styleUrls: ['./sl-recertification.component.css']\n})\n\nexport class SlRecertificationComponent implements OnInit {\n\n decimals = 2;\n maxRecordCount: any;\n maxAmount: any;\n editForm: UntypedFormGroup;\n config: any;\n allUploadIds = [];\n fileNameErrorMsg = '';\n msg = '';\n readonly uploadRemoveUrl: string = 'removeUrl';\n uploadSaveUrl: string;\n\n constructor(\n private authService: AuthService,\n private uploadService: UploadService,\n private readConfigService: ReadConfigService,\n private notificationService: DisplayNotificationService) { }\n\n ngOnInit() {\n this.editForm = new UntypedFormGroup({\n fileType: new UntypedFormControl(''),\n notes: new UntypedFormControl('')\n });\n this.config = this.readConfigService.getUploadFile();\n this.uploadSaveUrl = this.uploadService.getUploadUrl();\n }\n\n ngAfterViewChecked() {\n this.setTabStripStyle();\n }\n\n setTabStripStyle() {\n const allDetails = document.querySelectorAll('.k-tabstrip');\n if (allDetails && allDetails.length > 0) {\n allDetails.forEach(details => {\n const firstChild = details.firstElementChild.children[0];\n if (firstChild && firstChild.children && firstChild.children.length > 1) {\n const elArr = Array.from(firstChild.children) as Array;\n const tabFirstEl = Array.from(elArr[0].children) as Array;\n tabFirstEl[0].style.marginRight = '5px';\n elArr.forEach(element => {\n element.style.width = 100 / firstChild.children.length + '%';\n });\n }\n });\n }\n }\n\n uploadComplete(upload: any) {\n if (this.allUploadIds) {\n for (const allUploadId of this.allUploadIds) {\n upload.removeFilesByUid(allUploadId);\n }\n this.allUploadIds = [];\n }\n }\n\n uploadEventHandler(e: UploadEvent, ufile: any) {\n this.notificationService.setUpLoading(true);\n ufile.fileType = 'Recertification';\n const files = e.files;\n for (const file of files) {\n const a = file.uid;\n if (a !== undefined) {\n this.allUploadIds.push(a);\n }\n }\n const data = new UploadFileData();\n data.fileType = ufile.fileType;\n data.notes = this.isNullOrUndefined(ufile.notes);\n if (this.authService !== null && this.authService.currentUser !== null) {\n data.userId = this.authService.currentUser.Id.toString();\n }\n data.userInfo = JSON.stringify(this.uploadService.UserInfo());\n e.data = data;\n }\n\n uploadSuccess(e: SuccessEvent) {\n const response = e.response;\n if (response && response.body) {\n this.displayNotification(response.body);\n }\n this.notificationService.setUpLoading(false);\n this.reset();\n }\n\n selectEventHandler(e: SelectEvent) {\n const fileName = (e.files[0].name).substring(0, e.files[0].name.lastIndexOf('.') + 1);\n if (fileName.length > 200) {\n this.fileNameErrorMsg = this.config.MaxFileNameErrorMsg;\n this.displayNotification({ success: false, message: this.fileNameErrorMsg });\n e.preventDefault();\n }\n }\n\n errorEventHandler() {\n this.msg = this.config.ErrorMessage;\n this.displayNotification({ success: false, message: this.msg });\n this.notificationService.setUpLoading(false);\n }\n\n displayNotification(response: any) {\n this.notificationService.setUpNotification(response);\n }\n\n reset() {\n this.editForm.reset();\n }\n\n isNullOrUndefined(args: any) {\n return args === undefined || args === null ? '' : args;\n }\n}\n","
\n
\n

Sick Leave Recertification

\n
\n \n \n \n
\n
\n
\n
\n
\n
Comments (Optional):
\n
\n \n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewChecked, Component, Inject, Injectable, OnInit, ViewChild } from '@angular/core';\nimport { State } from '@progress/kendo-data-query';\nimport { UploadFileData } from '../models/uploads';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { Global } from '../shared/global.constants';\nimport { SelectEvent, SuccessEvent, UploadEvent } from '@progress/kendo-angular-upload';\nimport {\n HttpErrorResponse, HttpEvent, HttpEventType,\n HttpHandler, HttpInterceptor, HttpProgressEvent, HttpRequest, HttpResponse\n} from '@angular/common/http';\nimport { concat, Observable, of } from 'rxjs';\nimport { delay } from 'rxjs/operators';\nimport { UploadService } from '../shared/services/uploads/upload.service';\nimport { AuthService } from '../shared/services/auth/auth.service';\nimport { DisplayNotificationService } from '../shared/services/common/notification.service';\nimport { ReadConfigService } from '../shared/services/common/read-config.service';\nimport { Utility } from '../shared/utility';\nimport { DataBindingDirective } from '@progress/kendo-angular-grid';\n\n@Component({\n selector: 'app-uploads',\n templateUrl: './uploads.component.html',\n styleUrls: ['./uploads.component.css']\n})\n\nexport class UploadsComponent implements OnInit, AfterViewChecked {\n\n fileRestrictions: any;\n disclaimer: any;\n maxTenEmails: any;\n mobileText: any;\n recordCountWarningMsg: any;\n amountWarningMsg: any;\n gridView: any;\n uploadTypes: string[];\n msraEmailList: any;\n locations: string[];\n config: any;\n filterRows: any;\n disableButton = true;\n isValidType = false;\n currentType = '';\n RcdAndAmt = false;\n currentUpdate = false;\n prevUpdate = false;\n fileNameErrorMsg = '';\n pped: Date = new Date();\n minDate: Date = new Date(this.pped.getFullYear(), 0, 1);\n maxDate: Date = new Date(this.pped.getFullYear(), 11, 1);\n msg = '';\n allUploadIds: any = [];\n decimals = 2;\n location = '';\n uploadSaveUrl = '';\n readonly uploadRemoveUrl: string = 'removeUrl';\n gridState: State = {\n sort: [],\n take: 5,\n skip: 0\n };\n apiUrl = this.readConfigService.getApiUrl();\n MaxRecordCount = this.readConfigService.getMaxRecordCount();\n MaxAmount = this.readConfigService.getMaxAmount();\n @ViewChild(DataBindingDirective, { static: true }) directive;\n showOld = false;\n editForm: UntypedFormGroup = new UntypedFormGroup({\n fileType: new UntypedFormControl(''),\n location: new UntypedFormControl(''),\n pped: new UntypedFormControl(''),\n emailList: new UntypedFormControl(''),\n recordCount: new UntypedFormControl('', [Validators.max(this.MaxRecordCount)]),\n totalAmount: new UntypedFormControl('', [Validators.max(this.MaxAmount)]),\n notes: new UntypedFormControl('')\n });\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n private uploadService: UploadService,\n private authService: AuthService,\n private notificationService: DisplayNotificationService,\n private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n if (this.authService.isLoggedIn) {\n this.authService.loggedInChecker(this.authService.isLoggedIn);\n }\n this.notificationService.setUpLoading(true);\n setTimeout(() => {\n this.showOld = this.authService.getDarkKeyValue('Uploads');\n if (this.showOld) {\n this.config = this.readConfigService.getUploadFile();\n this.disclaimer = this.config.Disclaimer;\n this.maxTenEmails = this.config.MaxTenEmails;\n this.mobileText = this.config.MobileText;\n this.recordCountWarningMsg = this.config.RecordCountWarning;\n this.amountWarningMsg = this.config.AmountWarning;\n this.fileRestrictions = this.config.UploadFileRestrictions;\n this.uploadSaveUrl = this.apiUrl + Global.BASE_PM_UPLOAD_FROMFILE_ENDPOINT;\n this.loadData();\n setTimeout(() => this.setPlaceHolders(), 200);\n this.editForm.controls.emailList.valueChanges.subscribe(() => {\n this.disableButton = false;\n if (this.editForm.controls.emailList.invalid) {\n this.disableButton = true;\n }\n });\n }\n this.notificationService.setUpLoading(false);\n }, 2000);\n }\n\n ngAfterViewChecked(): void {\n if (this.showOld) {\n if (this.editForm.dirty) {\n this.currentUpdate = false;\n } else if (!(this.editForm.dirty)) {\n this.currentUpdate = true;\n }\n if (this.currentUpdate !== this.prevUpdate) {\n this.authService.formChanged(this.currentUpdate);\n this.prevUpdate = this.currentUpdate;\n }\n const width = (window.innerWidth > 0) ? window.innerWidth : screen.width;\n const fileUploadView = document.getElementById('file-upload-view');\n const mobileViewMsg = document.getElementById('profile-mobile-view-msg');\n const uploadHistoryView = document.getElementById('upload-history-view');\n if (width < 993) {\n fileUploadView.style.display = 'none';\n mobileViewMsg.style.display = 'inline-block';\n uploadHistoryView.style.width = 'auto';\n } else {\n fileUploadView.style.display = 'inline-block';\n mobileViewMsg.style.display = 'none';\n uploadHistoryView.style.width = 'inherit';\n }\n }\n }\n\n setModel(pped) {\n this.pped = pped;\n }\n\n loadData() {\n this.notificationService.setUpLoading(true);\n this.loadUploadHistory();\n this.loadUploadTypes();\n this.loadLocations();\n }\n\n valueChange(args: any): void {\n if (args !== undefined) {\n if (this.uploadTypes.indexOf(args) !== -1) {\n this.isValidType = true;\n }\n } else {\n this.isValidType = false;\n this.reset();\n }\n if (this.currentType !== args) {\n this.reset();\n }\n this.currentType = args;\n this.RcdAndAmt = (this.currentType === 'Wages' || this.currentType === 'Deductions');\n if (this.currentType === 'Other') {\n this.editForm.controls.emailList.validator = Validators.required;\n } else {\n this.disableButton = false;\n this.editForm.controls.emailList.clearValidators();\n }\n }\n\n selectEventHandler(e: SelectEvent) {\n const fileName = (e.files[0].name).substr(0, e.files[0].name.lastIndexOf('.'));\n if (fileName.length > 200) {\n this.fileNameErrorMsg = this.config.MaxFileNameErrorMsg;\n this.displayNotification({ success: false, message: this.fileNameErrorMsg });\n e.preventDefault();\n }\n }\n\n uploadComplete(obj: any, upload: any) {\n this.loadUploadHistory();\n if (this.allUploadIds !== undefined && this.allUploadIds.length > 0) {\n for (const allUploadId of this.allUploadIds) {\n upload.removeFilesByUid(allUploadId);\n }\n this.allUploadIds = [];\n }\n }\n\n loadUploadHistory(): void {\n this.uploadService.getHistory().subscribe(data => {\n if (data && data.success) {\n if (data.result.length > 0) {\n data.result.forEach(el => {\n el.created = Utility.removeTimeFromDate(el.created);\n });\n this.gridView = data.result;\n } else {\n this.gridView = [];\n }\n } else {\n this.notificationService.setErrorNotification();\n }\n this.notificationService.setUpLoading(false);\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n loadLocations(): void {\n this.uploadService.getLocations().subscribe(data => {\n this.locations = data;\n this.location = data[0];\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n loadUploadTypes() {\n this.uploadService.getFileCategories().subscribe(data => {\n if (data && data.success) {\n this.uploadTypes = data.categoriesList;\n this.msraEmailList = data.emailList.split(',');\n } else {\n this.notificationService.setErrorNotification();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.notificationService.setUpLoading(false);\n this.notificationService.setErrorNotification();\n });\n }\n\n uploadEventHandler(e: UploadEvent, ufile: any) {\n this.notificationService.setUpLoading(true);\n ufile.fileType = this.currentType;\n if (ufile.fileType === 'Other' && this.isNullOrUndefined(ufile.emailList) === '') {\n e.preventDefault();\n return;\n }\n const files = e.files;\n for (const file of files) {\n const a = file.uid;\n if (a !== undefined) {\n this.allUploadIds.push(a);\n }\n }\n ufile.pped = new Date(ufile.pped);\n const data = new UploadFileData();\n data.fileType = ufile.fileType;\n let dt = new Date();\n if (this.isNullOrUndefined(this.pped) !== '') {\n dt = new Date(this.pped);\n }\n data.pped = dt.toDateString();\n data.emailList = this.isNullOrUndefined(ufile.emailList);\n data.location = this.isNullOrUndefined(this.location) === '' ? this.locations[0] : this.location;\n data.notes = this.isNullOrUndefined(ufile.notes);\n data.recordCount = this.isNullOrUndefined(ufile.recordCount) === '' ? 0 : parseInt(ufile.recordCount, 0);\n data.totalAmount = this.isNullOrUndefined(ufile.totalAmount) === '' ? 0.00 : parseFloat(ufile.totalAmount.toFixed(2));\n if (this.authService !== null && this.authService.currentUser !== null) {\n data.userId = this.authService.currentUser.Id.toString();\n }\n data.userInfo = JSON.stringify(this.uploadService.UserInfo());\n e.data = data;\n }\n\n errorEventHandler(e: ErrorEvent) {\n this.msg = this.config.ErrorMessage;\n this.displayNotification({ success: false, message: this.msg });\n this.notificationService.setUpLoading(false);\n }\n\n displayNotification(response) {\n this.notificationService.setUpNotification(response);\n }\n\n uploadSuccess(e: SuccessEvent) {\n const response = e.response;\n if (response && response.body) {\n this.displayNotification(response.body);\n }\n this.notificationService.setUpLoading(false);\n this.reset();\n }\n\n reset() {\n this.editForm.reset();\n this.location = this.locations[0];\n this.pped = new Date();\n }\n\n locationChange(args: any) {\n if (args !== this.location) {\n this.location = args;\n }\n }\n\n isNullOrUndefined(args: any) {\n if (args === undefined || args === null) {\n return '';\n }\n return args;\n }\n\n showTooltip(e: any): void {\n const target = e.target;\n const matches = target.matches ? target.matches('.k-grid-content td') : target.msMatchesSelector('.k-grid-content td');\n if (target.nodeName === 'TD' && matches) {\n target.classList.toggle('tooLong', e.target.offsetWidth < e.target.scrollWidth);\n }\n }\n\n setPlaceHolders() {\n const filterRow = this.document.getElementsByClassName('k-filter-row');\n if (filterRow !== null && filterRow[0]) {\n const inputRows = filterRow[0].getElementsByTagName('input');\n if (inputRows) {\n this.filterRows = inputRows;\n }\n }\n }\n}\n\n@Injectable()\nexport class UploadInterceptor implements HttpInterceptor {\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n if (req.url === 'saveUrl') {\n const events: Observable>[] = [0, 30, 60, 100].map((x) => of({\n type: HttpEventType.UploadProgress,\n loaded: x,\n total: 100\n } as HttpProgressEvent).pipe(delay(1000)));\n const success = of(new HttpResponse({ status: 200 })).pipe(delay(1000));\n events.push(success);\n\n return concat(...events);\n }\n\n if (req.url === 'removeUrl') {\n return of(new HttpResponse({ status: 200 }));\n }\n\n return next.handle(req);\n }\n}\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

History

\r\n \r\n \r\n {{ anchor.nativeElement.innerText }}\r\n \r\n \r\n

{{mobileText}}

\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
Created:\r\n {{dataItem.created | date: 'MM/dd/yyyy' }}\r\n
\r\n
\r\n\r\n
\r\n
Category:\r\n {{ dataItem.category }}\r\n
\r\n
\r\n\r\n
\r\n
File Name:\r\n {{ dataItem.fileNameOriginal }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{dataItem.created | date: 'MM/dd/yyyy'}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Upload Related Files

\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

{{currentType}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n {{recordCountWarningMsg}}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n {{amountWarningMsg}}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {{disclaimer}}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","\nimport { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","/* (ignored) */"],"names":["HttpHeaders","Global","AppConfigService","constructor","http","loadAppConfig","_this","_asyncToGenerator","headers","data","get","toPromise","appConfig","regExToSearch","RegExp","EPAppId","ServerDown","outageNoticeDetails","OutageOfflineText","sessionStorage","setItem","loadDarkFeatures","then","err","console","log","error","apps","search","startDt","startDate","endDt","endDate","maintenanceFlag","outageMessage","outageType","_this2","reqHeader","url","API_URL","BASE_GET_DARK_FEATURE_ENDPOINT","length","darkKeys","filter","item","feature","account","find","x","enabled","home","getDarkKeyValue","OutageDFName","loadScheduledMaintenance","_this3","BASE_GET_SCHEDULED_MAINTANANCE_ENDPOINT","getConfig","getScheduledMaintenance","value","canEnable","undefined","some","element","i0","ɵɵinject","i1","HttpClient","factory","ɵfac","providedIn","JwksValidationHandler","Idle","OutageNoticeComponent","ɵɵelementStart","ɵɵlistener","AppComponent_app_header_5_Template_app_header_selectedOrganization_0_listener","$event","ɵɵrestoreView","_r4","ctx_r3","ɵɵnextContext","ɵɵresetView","selectedOrganization","ɵɵelementEnd","ɵɵproperty","ctx_r0","loggedIn","AppComponent_kendo_dialog_9_Template_kendo_dialog_close_0_listener","_r6","ctx_r5","logOutClose","ɵɵtext","AppComponent_kendo_dialog_9_Template_button_click_6_listener","ctx_r7","AppComponent_kendo_dialog_9_Template_button_click_8_listener","ctx_r8","logout","ɵɵadvance","ɵɵtextInterpolate","ctx_r1","displayTime","ɵɵelement","ctx_r2","selectedOrg","AppComponent","router","authService","oauthService","readConfigService","config","orgOpened","singleOrg","disableOrgChange","loggedInUser","orgCount","appName","orgName","orgAbbr","openLogOut","idle","whenNotInteractive","googleAnalyticsKey","GA_ID","appendGaTrackingCode","verifyScheduledOutage","ngOnInit","logoutTimer","LogoutTimer","maxTimeOut","autoLogoutTime","outageMethodTimeout","OutageMethodTimeout","within","do","logOutConfirm","start","ApplicationName","OrganizationName","OrgAbbr","currentYear","Date","getFullYear","checkorgCount$","subscribe","count","parseInt","checkLoggedIn$","status","checkUser$","user","setTimeout","getItem","JSON","parse","loadingIcon","outageDetails","push","path","component","redirectTo","pathMatch","navigate","saCallback","authUrl","AuthUrl","originUrl","OriginUrl","authScope","AuthScope","clientInfo","ClientId","clientSecret","ClientSecret","tokenUrl","TokenEndPoint","authConfig","issuer","redirectUri","tokenEndpoint","responseType","dummyClientSecret","clientId","scope","configure","tokenValidationHandler","hasValidAccessToken","loadDiscoveryDocument","tryLogin","disableOAuth2StateCheck","args","setActiveClass","link","paths","location","pathname","replace","split","timeLeft","timeOut","minutes","Math","floor","seconds","slice","formChanged","isManual","redirectLogoutUser","gaScript","document","createElement","setAttribute","gaScript2","innerText","documentElement","firstChild","appendChild","ex","ɵɵdirectiveInject","Router","i2","AuthService","i3","OAuthService","i4","i5","ReadConfigService","selectors","decls","vars","consts","template","AppComponent_Template","rf","ctx","ɵɵtemplate","AppComponent_app_header_5_Template","AppComponent_kendo_dialog_9_Template","AppComponent_app_footer_11_Template","Utility","EditAdjRecords","EventEmitter","AdjustmentFileData","AdjustmentRecord","UntypedFormGroup","UntypedFormControl","Validators","PanelBarExpandMode","ctx_r16","summaryData","adjustmentId","ctx_r19","totalRecords","ɵɵtextInterpolate1","ctx_r22","totalErrorRecords","ctx_r25","totalContributions","formatContribution","CreateAdjustmentReportComponent_div_0_div_6_div_4_Template","CreateAdjustmentReportComponent_div_0_div_6_ng_template_5_Template","ɵɵtemplateRefExtractor","CreateAdjustmentReportComponent_div_0_div_6_div_10_Template","CreateAdjustmentReportComponent_div_0_div_6_ng_template_11_Template","CreateAdjustmentReportComponent_div_0_div_6_div_16_Template","CreateAdjustmentReportComponent_div_0_div_6_ng_template_17_Template","CreateAdjustmentReportComponent_div_0_div_6_div_22_Template","CreateAdjustmentReportComponent_div_0_div_6_ng_template_23_Template","savedAdjustmentId","_r17","_r20","_r23","_r26","ctx_r9","fileErrorMsg","column","row","CreateAdjustmentReportComponent_div_0_button_10_Template_button_click_0_listener","_r29","ctx_r28","openUploadDialog","ctx_r30","InvalidTitle","ɵɵsanitizeHtml","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_14_ng_template_2_Template_app_invalid_grid_deleteAction_0_listener","_r33","ctx_r32","deleteSelectedRecords","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_14_ng_template_2_Template_app_invalid_grid_editAction_0_listener","ctx_r34","editHandler","event","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_14_ng_template_2_Template_app_invalid_grid_childDeletedRecord_0_listener","ctx_r35","displayNotification","ctx_r31","invalidAdjData","operators","adjustmentInputData","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_14_ng_template_1_Template","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_14_ng_template_2_Template","ctx_r12","panelbarData","expanded","ctx_r36","ErroredTitle","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_15_ng_template_2_Template_app_error_grid_deleteAction_0_listener","_r39","ctx_r38","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_15_ng_template_2_Template_app_error_grid_editAction_0_listener","ctx_r40","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_15_ng_template_2_Template_app_error_grid_childDeletedRecord_0_listener","ctx_r41","ctx_r37","errorAdjData","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_15_ng_template_1_Template","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_15_ng_template_2_Template","ctx_r13","ctx_r14","ValidTitle","CreateAdjustmentReportComponent_div_0_ng_template_18_Template_app_valid_grid_deleteAction_0_listener","_r43","ctx_r42","CreateAdjustmentReportComponent_div_0_ng_template_18_Template_app_valid_grid_addAction_0_listener","ctx_r44","addHandler","CreateAdjustmentReportComponent_div_0_ng_template_18_Template_app_valid_grid_editAction_0_listener","ctx_r45","CreateAdjustmentReportComponent_div_0_ng_template_18_Template_app_valid_grid_childDeletedRecord_0_listener","ctx_r46","ctx_r15","validAdjData","CreateAdjustmentReportComponent_div_0_div_6_Template","CreateAdjustmentReportComponent_div_0_div_8_Template","CreateAdjustmentReportComponent_div_0_button_10_Template","CreateAdjustmentReportComponent_div_0_Template_kendo_panelbar_stateChange_12_listener","_r48","ctx_r47","onPanelChange","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_14_Template","CreateAdjustmentReportComponent_div_0_kendo_panelbar_item_15_Template","CreateAdjustmentReportComponent_div_0_ng_template_17_Template","CreateAdjustmentReportComponent_div_0_ng_template_18_Template","CreateAdjustmentReportComponent_div_0_Template_button_click_23_listener","ctx_r49","onSave4LaterClick","CreateAdjustmentReportComponent_div_0_Template_button_click_25_listener","ctx_r50","submitAdjDialog","UserInstruction","ɵɵpipeBind1","isFileError","Add","expandMode","isError","CreateAdjustmentReportComponent_div_1_Template_app_adj_record_add_edit_form_saveResponse_1_listener","_r52","ctx_r51","CreateAdjustmentReportComponent_div_1_Template_app_adj_record_add_edit_form_editInvalidAdj_1_listener","ctx_r53","editInvalidAdjRecords","CreateAdjustmentReportComponent_div_1_Template_app_adj_record_add_edit_form_closeAddEditForm_1_listener","ctx_r54","onAddEditClose","isNew","adjModelDataItem","editAdjData","ctx_r57","ValidSSNMsg","ctx_r58","noContectMsg","ɵɵpropertyInterpolate","idx_r64","dataItem_r66","firstName","dataItem_r67","mi","dataItem_r68","lastName","CreateAdjustmentReportComponent_kendo_dialog_2_div_27_Template_kendo_grid_selectionChange_7_listener","_r70","ctx_r69","onSelectionChange","CreateAdjustmentReportComponent_kendo_dialog_2_div_27_ng_template_9_Template","CreateAdjustmentReportComponent_kendo_dialog_2_div_27_ng_template_11_Template","CreateAdjustmentReportComponent_kendo_dialog_2_div_27_ng_template_13_Template","CreateAdjustmentReportComponent_kendo_dialog_2_div_27_ng_template_15_Template","ctx_r59","EmployementMsg","gridData","ɵɵpureFunction0","_c0","_c1","_c2","CreateAdjustmentReportComponent_kendo_dialog_2_Template_kendo_dialog_close_0_listener","_r72","ctx_r71","ssnVerifiationDialog","CreateAdjustmentReportComponent_kendo_dialog_2_Template_kendo_maskedtextbox_valueChange_15_listener","ctx_r73","onNewSsnChange","personalDetailsForm","controls","ssn","CreateAdjustmentReportComponent_kendo_dialog_2_Template_kendo_dropdownlist_filterChange_20_listener","ctx_r74","handleFilter","CreateAdjustmentReportComponent_kendo_dialog_2_Template_kendo_dropdownlist_valueChange_20_listener","ctx_r75","FYChange","CreateAdjustmentReportComponent_kendo_dialog_2_Template_button_click_21_listener","ctx_r76","searchEmployeeSsn","CreateAdjustmentReportComponent_kendo_dialog_2_span_22_Template","CreateAdjustmentReportComponent_kendo_dialog_2_span_23_Template","CreateAdjustmentReportComponent_kendo_dialog_2_span_25_Template","CreateAdjustmentReportComponent_kendo_dialog_2_div_26_Template","CreateAdjustmentReportComponent_kendo_dialog_2_div_27_Template","CreateAdjustmentReportComponent_kendo_dialog_2_Template_button_click_29_listener","ctx_r77","onCancelClick","CreateAdjustmentReportComponent_kendo_dialog_2_Template_button_click_31_listener","ctx_r78","isEditInvalidAdj","onEditNextClick","onNextClick","ssnMask","allFiscalYears","_c3","invalid","searchBtnEnable","isProcessing","touched","errors","empNotFound","isEmpDetailValid","selectedElements","valid","CreateAdjustmentReportComponent_kendo_dialog_3_Template_kendo_dialog_close_0_listener","_r81","ctx_r80","closeCreateAdjDialog","CreateAdjustmentReportComponent_kendo_dialog_3_Template_kendo_upload_complete_2_listener","_r79","ɵɵreference","ctx_r82","uploadComplete","CreateAdjustmentReportComponent_kendo_dialog_3_Template_kendo_upload_upload_2_listener","ctx_r83","uploadEventHandler","CreateAdjustmentReportComponent_kendo_dialog_3_Template_kendo_upload_uploadProgress_2_listener","ctx_r84","uploadProgressEventHandler","CreateAdjustmentReportComponent_kendo_dialog_3_Template_kendo_upload_success_2_listener","ctx_r85","uploadSuccess","CreateAdjustmentReportComponent_kendo_dialog_3_Template_kendo_upload_select_2_listener","ctx_r86","selectEventHandler","CreateAdjustmentReportComponent_kendo_dialog_3_Template_kendo_upload_error_2_listener","ctx_r87","errorEventHandler","uploadSaveUrl","uploadRemoveUrl","AdjustmentFileSupport","disableClose","CreateAdjustmentReportComponent_kendo_dialog_4_Template_kendo_dialog_close_0_listener","_r91","ctx_r90","saveForLaterDialog","CreateAdjustmentReportComponent_kendo_dialog_4_Template_button_click_3_listener","ctx_r92","CreateAdjustmentReportComponent_kendo_dialog_4_Template_button_click_5_listener","ctx_r93","onSaveAdjustmentClick","CreateAdjustmentReportComponent_kendo_dialog_4_span_6_Template","CreateAdjustmentReportComponent_kendo_dialog_4_span_7_Template","ctx_r4","saveForLaterMsg","loading","CreateAdjustmentReportComponent_kendo_dialog_5_Template_kendo_dialog_close_0_listener","_r97","ctx_r96","CreateAdjustmentReportComponent_kendo_dialog_5_Template_button_click_4_listener","ctx_r98","CreateAdjustmentReportComponent_kendo_dialog_5_Template_button_click_6_listener","ctx_r99","submitAdjustment","CreateAdjustmentReportComponent_kendo_dialog_5_span_7_Template","CreateAdjustmentReportComponent_kendo_dialog_5_span_8_Template","CreateAdjustmentReportComponent_kendo_dialog_6_Template_button_click_4_listener","_r103","ctx_r102","continueUpload","CreateAdjustmentReportComponent_kendo_dialog_6_Template_button_click_6_listener","ctx_r104","CreateAdjustmentReportComponent_kendo_dialog_6_span_7_Template","CreateAdjustmentReportComponent_kendo_dialog_6_span_8_Template","ctx_r6","ContinueAdjMessage","CreateAdjustmentReportComponent_kendo_dialog_7_Template_kendo_dialog_close_0_listener","_r108","ctx_r107","deleteMasterAdjDialog","CreateAdjustmentReportComponent_kendo_dialog_7_Template_button_click_6_listener","ctx_r109","CreateAdjustmentReportComponent_kendo_dialog_7_Template_button_click_8_listener","ctx_r110","deleteMasterAdjRecord","CreateAdjustmentReportComponent_kendo_dialog_7_span_9_Template","CreateAdjustmentReportComponent_kendo_dialog_7_span_10_Template","DeleteSelectedSSNMsg","DeleteAdjRecordMsg","CreateAdjustmentReportComponent","usersService","adjustmentService","scheduleService","notificationService","maxErrorExceeded","ssnPattern","fileNameErrorMsg","msg","selectedData","panel","name","load","id","Multiple","isDataSaved","adjustmentDataItem","adjData","editAdjDataItem","isRejectedRecord","action","getAdjustmentv2Text","getAccessOperations","setUpLoading","inputData","userInfo","UserInfo","getAdjustmentLocSys","getAdjustmentRecords","getAdjUploadUrl","forEach","currPanel","items","selected","stringify","getPersonalDetailForm","required","pattern","fiscalYear","getAdjustmentInputs","response","success","locations","code","concat","setErrorNotification","isCreated","adjustmentRecordId","adjId","dataItem","getAdjustmentV2Records","statusCode","adjMetaData","erroredAdjustment","adjutmentsId","payrollAdjustmentsId","invalidAdjustment","validAdjustment","checkNegativeAmount","errorCount","lastFourSSN","substr","createAdjDialog","e","token","append","body","adjustmetRecordId","payrollAdjId","messageObj","deleteAdjReport","fileName","files","substring","lastIndexOf","MaxAdjFileNameErrorMsg","setUpNotification","message","preventDefault","uploadValue","ErrorMessage","emit","isNextVisible","getFiscalYearList","yearArray","cfy","getMonth","i","minYear","arrOfStr","map","num","String","sort","a","b","s","indexOf","input","ssnValue","trim","test","getFYSchedules","fy","getScheduleList","result","schedules","selectedFYSchedules","selectedFY","encrypt","getEmployeeInfo","isInvalid","fiscalYearScheduleList","formData","fullSSN","selectedRows","deselectedRows","index","splice","adjustmentImportId","selectedRecords","allAdjRecordIds","adjustmentRecordIds","join","adjRecordIds","deleteAdjRecord","enableMasterDeleteBtn","SaveForLaterMsg","submitV2Adjustments","UsersService","AdjustmentService","ScheduleService","i6","i7","DisplayNotificationService","inputs","outputs","CreateAdjustmentReportComponent_Template","CreateAdjustmentReportComponent_div_0_Template","CreateAdjustmentReportComponent_div_1_Template","CreateAdjustmentReportComponent_kendo_dialog_2_Template","CreateAdjustmentReportComponent_kendo_dialog_3_Template","CreateAdjustmentReportComponent_kendo_dialog_4_Template","CreateAdjustmentReportComponent_kendo_dialog_5_Template","CreateAdjustmentReportComponent_kendo_dialog_6_Template","CreateAdjustmentReportComponent_kendo_dialog_7_Template"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}