{"version":3,"file":"main.js","mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/core/components/navigation/navigation.component.ts","./src/app/core/components/navigation/navigation.component.html","./src/app/core/components/office-nav/office-nav.component.ts","./src/app/core/components/office-nav/office-nav.component.html","./src/app/core/resolver/anon-portal-settings-resolver.service.ts","./src/app/core/resolver/employee-info-resolver.service.ts","./src/app/core/resolver/portal-settings-resolver.service.ts","./src/app/core/services/employee-info.service.ts","./src/app/core/services/event.service.ts","./src/app/core/services/language-pack.service.ts","./src/app/core/services/portal-settings.service.ts","./src/app/core/services/signal-r.service.ts","./src/app/core/services/time-parser.service.ts","./src/app/core/services/timeout.service.ts","./src/app/core/services/utility.service.ts","./src/app/http-interceptors/xsrf-header-interceptor.ts","./src/app/layout/home-layout/home-layout.component.ts","./src/app/layout/home-layout/home-layout.component.html","./src/app/layout/layout.module.ts","./src/app/layout/office-layout/office-layout.component.ts","./src/app/layout/office-layout/office-layout.component.html","./src/app/layout/onboarding-layout/onboarding-layout.component.ts","./src/app/layout/onboarding-layout/onboarding-layout.component.html","./src/app/modals/admin/delete-bulletin-modal/delete-bulletin-modal.component.ts","./src/app/modals/admin/delete-bulletin-modal/delete-bulletin-modal.component.html","./src/app/modals/admin/delete-user-group-members-modal/delete-user-group-members-modal.component.ts","./src/app/modals/admin/delete-user-group-members-modal/delete-user-group-members-modal.component.html","./src/app/modals/admin/expense-dashboard/edit-vendor-modal/edit-vendor-modal.component.ts","./src/app/modals/admin/expense-dashboard/edit-vendor-modal/edit-vendor-modal.component.html","./src/app/modals/admin/expense-dashboard/expense-approval-modal/expense-approval-modal.component.ts","./src/app/modals/admin/expense-dashboard/expense-approval-modal/expense-approval-modal.component.html","./src/app/modals/admin/expense-dashboard/manage-cat-modal/manage-cat-modal.component.ts","./src/app/modals/admin/expense-dashboard/manage-cat-modal/manage-cat-modal.component.html","./src/app/modals/admin/expense-dashboard/manage-mileage-rate-modal/manage-mileage-rate-modal.component.ts","./src/app/modals/admin/expense-dashboard/manage-mileage-rate-modal/manage-mileage-rate-modal.component.html","./src/app/modals/admin/expense-dashboard/process-expense-modal/process-expense-modal.component.ts","./src/app/modals/admin/expense-dashboard/process-expense-modal/process-expense-modal.component.html","./src/app/modals/admin/expense-dashboard/re-process-expense-modal/re-process-expense-modal.component.ts","./src/app/modals/admin/expense-dashboard/re-process-expense-modal/re-process-expense-modal.component.html","./src/app/modals/admin/expense-dashboard/send-reminder-expense-modal/send-reminder-expense-modal.component.ts","./src/app/modals/admin/expense-dashboard/send-reminder-expense-modal/send-reminder-expense-modal.component.html","./src/app/modals/admin/send-bulletin-email-modal/send-bulletin-email-modal.component.ts","./src/app/modals/admin/send-bulletin-email-modal/send-bulletin-email-modal.component.html","./src/app/modals/careers/edit-personal-modal/edit-personal-modal.component.ts","./src/app/modals/careers/edit-personal-modal/edit-personal-modal.component.html","./src/app/modals/careers/onboard-submitted-modal/onboard-submitted-modal.component.ts","./src/app/modals/careers/onboard-submitted-modal/onboard-submitted-modal.component.html","./src/app/modals/checklist/create-new-checklist-modal/create-new-checklist-modal.component.ts","./src/app/modals/checklist/create-new-checklist-modal/create-new-checklist-modal.component.html","./src/app/modals/checklist/distribute-checklists-modal/distribute-checklists-modal.component.ts","./src/app/modals/checklist/distribute-checklists-modal/distribute-checklists-modal.component.html","./src/app/modals/checklist/manage-template/advance-item-modal/advance-item-modal.component.ts","./src/app/modals/checklist/manage-template/advance-item-modal/advance-item-modal.component.html","./src/app/modals/checklist/manage-template/enable-checklist-workflow-modal/enable-checklist-workflow-modal.component.ts","./src/app/modals/checklist/manage-template/enable-checklist-workflow-modal/enable-checklist-workflow-modal.component.html","./src/app/modals/checklist/templates/create-new-template-modal/create-new-template-modal.component.ts","./src/app/modals/checklist/templates/create-new-template-modal/create-new-template-modal.component.html","./src/app/modals/checklist/view-checklist-workflow-modal/view-checklist-workflow-modal.component.ts","./src/app/modals/checklist/view-checklist-workflow-modal/view-checklist-workflow-modal.component.html","./src/app/modals/crew-timecard/copy-crew-line-modal/copy-crew-line-modal.component.ts","./src/app/modals/crew-timecard/copy-crew-line-modal/copy-crew-line-modal.component.html","./src/app/modals/crew-timecard/edit-cell-value-modal/edit-cell-value-modal.component.ts","./src/app/modals/crew-timecard/edit-cell-value-modal/edit-cell-value-modal.component.html","./src/app/modals/employee/benefit/download-attachment-modal/download-attachment-modal.component.ts","./src/app/modals/employee/benefit/download-attachment-modal/download-attachment-modal.component.html","./src/app/modals/employee/benefit/finalize-submit-sign-modal/finalize-submit-sign-modal.component.ts","./src/app/modals/employee/benefit/finalize-submit-sign-modal/finalize-submit-sign-modal.component.html","./src/app/modals/employee/benefit/finalize-submited-modal/finalize-submited-modal.component.ts","./src/app/modals/employee/benefit/finalize-submited-modal/finalize-submited-modal.component.html","./src/app/modals/employee/benefit/reject-all-benefits-modal/reject-all-benefits-modal.component.ts","./src/app/modals/employee/benefit/reject-all-benefits-modal/reject-all-benefits-modal.component.html","./src/app/modals/employee/benefit/update-benefits-modal/update-benefits-modal.component.ts","./src/app/modals/employee/benefit/update-benefits-modal/update-benefits-modal.component.html","./src/app/modals/employee/benefit/view-report-history-modal/view-report-history-modal.component.ts","./src/app/modals/employee/benefit/view-report-history-modal/view-report-history-modal.component.html","./src/app/modals/employee/edit-dependent-modal/edit-dependent-modal.component.ts","./src/app/modals/employee/edit-dependent-modal/edit-dependent-modal.component.html","./src/app/modals/employee/expense/copy-expense-line-modal/copy-expense-line-modal.component.ts","./src/app/modals/employee/expense/copy-expense-line-modal/copy-expense-line-modal.component.html","./src/app/modals/employee/expense/edit-expense-modal/edit-expense-modal.component.ts","./src/app/modals/employee/expense/edit-expense-modal/edit-expense-modal.component.html","./src/app/modals/employee/expense/expense-bulk-update-modal/expense-bulk-update-modal.component.ts","./src/app/modals/employee/expense/expense-bulk-update-modal/expense-bulk-update-modal.component.html","./src/app/modals/employee/expense/multi-match-credit-card-modal/multi-match-credit-card-modal.component.ts","./src/app/modals/employee/expense/multi-match-credit-card-modal/multi-match-credit-card-modal.component.html","./src/app/modals/employee/expense/rejected-notes-modal/rejected-notes-modal.component.ts","./src/app/modals/employee/expense/rejected-notes-modal/rejected-notes-modal.component.html","./src/app/modals/employee/expense/submit-expense-modal/submit-expense-modal.component.ts","./src/app/modals/employee/expense/submit-expense-modal/submit-expense-modal.component.html","./src/app/modals/employee/personal-info/address-confirmation-modal/address-confirmation-modal.component.ts","./src/app/modals/employee/personal-info/address-confirmation-modal/address-confirmation-modal.component.html","./src/app/modals/employee/personal-info/update-dependent-address-modal/update-dependent-address-modal.component.ts","./src/app/modals/employee/personal-info/update-dependent-address-modal/update-dependent-address-modal.component.html","./src/app/modals/employee/training/register-training-past-classes-attachment-modal/register-training-past-classes-attachment-modal.component.ts","./src/app/modals/employee/training/register-training-past-classes-attachment-modal/register-training-past-classes-attachment-modal.component.html","./src/app/modals/employee/training/remove-class-modal/remove-class-modal.component.ts","./src/app/modals/employee/training/remove-class-modal/remove-class-modal.component.html","./src/app/modals/employee/training/training-bulk-update-modal/training-bulk-update-modal.component.ts","./src/app/modals/employee/training/training-bulk-update-modal/training-bulk-update-modal.component.html","./src/app/modals/employee/training/view-detail-modal/view-detail-modal.component.ts","./src/app/modals/employee/training/view-detail-modal/view-detail-modal.component.html","./src/app/modals/hiring/delete-onboard-employee-modal/delete-onboard-employee-modal.component.ts","./src/app/modals/hiring/delete-onboard-employee-modal/delete-onboard-employee-modal.component.html","./src/app/modals/hiring/delete-reset-onboard-task-modal/delete-reset-onboard-task-modal.component.ts","./src/app/modals/hiring/delete-reset-onboard-task-modal/delete-reset-onboard-task-modal.component.html","./src/app/modals/hiring/i9-gen-modal/i9-gen-modal.component.ts","./src/app/modals/hiring/i9-gen-modal/i9-gen-modal.component.html","./src/app/modals/hiring/initialized-attach-modal/initialized-attach-modal.component.ts","./src/app/modals/hiring/initialized-attach-modal/initialized-attach-modal.component.html","./src/app/modals/hiring/note-detail-action-modal/note-detail-action-modal.component.ts","./src/app/modals/hiring/note-detail-action-modal/note-detail-action-modal.component.html","./src/app/modals/hiring/onboard-init-modal/onboard-init-modal.component.ts","./src/app/modals/hiring/onboard-init-modal/onboard-init-modal.component.html","./src/app/modals/hiring/onboarding-invitation-modal/onboarding-invitation-modal.component.ts","./src/app/modals/hiring/onboarding-invitation-modal/onboarding-invitation-modal.component.html","./src/app/modals/hiring/review-ddmodal/review-ddmodal.component.ts","./src/app/modals/hiring/review-ddmodal/review-ddmodal.component.html","./src/app/modals/hiring/review-ecmodal/review-ecmodal.component.ts","./src/app/modals/hiring/review-ecmodal/review-ecmodal.component.html","./src/app/modals/hiring/review-i9-modal/review-i9-modal.component.ts","./src/app/modals/hiring/review-i9-modal/review-i9-modal.component.html","./src/app/modals/hiring/review-iden-modal/review-iden-modal.component.ts","./src/app/modals/hiring/review-iden-modal/review-iden-modal.component.html","./src/app/modals/hiring/review-onboarding-modal/review-onboarding-modal.component.ts","./src/app/modals/hiring/review-onboarding-modal/review-onboarding-modal.component.html","./src/app/modals/hiring/review-w4-modal/review-w4-modal.component.ts","./src/app/modals/hiring/review-w4-modal/review-w4-modal.component.html","./src/app/modals/home/clockin-job-modal/clockin-job-modal.component.ts","./src/app/modals/home/clockin-job-modal/clockin-job-modal.component.html","./src/app/modals/home/clockout-modal/clockout-modal.component.ts","./src/app/modals/home/clockout-modal/clockout-modal.component.html","./src/app/modals/home/confirmation-modal/confirmation-modal.component.ts","./src/app/modals/home/confirmation-modal/confirmation-modal.component.html","./src/app/modals/home/paperless-modal/paperless-modal.component.ts","./src/app/modals/home/paperless-modal/paperless-modal.component.html","./src/app/modals/home/password-warning-modal/password-warning-modal.component.ts","./src/app/modals/home/password-warning-modal/password-warning-modal.component.html","./src/app/modals/modals.module.ts","./src/app/modals/office/excel-export/excel-export.component.ts","./src/app/modals/office/excel-export/excel-export.component.html","./src/app/modals/office/lookup-modal/lookup-modal.component.ts","./src/app/modals/office/lookup-modal/lookup-modal.component.html","./src/app/modals/office/lookup-modal/services/lookup-modal.service.ts","./src/app/modals/performance/initialize-modal/initialize-modal.component.ts","./src/app/modals/performance/initialize-modal/initialize-modal.component.html","./src/app/modals/performance/view-edit-reviewer-modal/view-edit-reviewer-modal.component.ts","./src/app/modals/performance/view-edit-reviewer-modal/view-edit-reviewer-modal.component.html","./src/app/modals/shared/add-attachment-checklist-template-modal/add-attachment-checklist-template-modal.component.ts","./src/app/modals/shared/add-attachment-checklist-template-modal/add-attachment-checklist-template-modal.component.html","./src/app/modals/shared/add-attachment-modal/add-attachment-modal.component.ts","./src/app/modals/shared/add-attachment-modal/add-attachment-modal.component.html","./src/app/modals/shared/alert-modal/alert-modal.component.ts","./src/app/modals/shared/alert-modal/alert-modal.component.html","./src/app/modals/shared/checklist-item-click-sign-modal/checklist-item-click-sign-modal.component.ts","./src/app/modals/shared/checklist-item-click-sign-modal/checklist-item-click-sign-modal.component.html","./src/app/modals/shared/edit-long-prompt-modal/edit-long-prompt-modal.component.ts","./src/app/modals/shared/edit-long-prompt-modal/edit-long-prompt-modal.component.html","./src/app/modals/shared/error-modal/error-modal.component.ts","./src/app/modals/shared/error-modal/error-modal.component.html","./src/app/modals/shared/note-modal/note-modal.component.ts","./src/app/modals/shared/note-modal/note-modal.component.html","./src/app/modals/shared/submit-checklist-sign-modal/submit-checklist-sign-modal.component.ts","./src/app/modals/shared/submit-checklist-sign-modal/submit-checklist-sign-modal.component.html","./src/app/modals/shared/timeout-modal/timeout-modal.component.ts","./src/app/modals/shared/timeout-modal/timeout-modal.component.html","./src/app/modals/shared/user-group-modal/user-group-modal.component.ts","./src/app/modals/shared/user-group-modal/user-group-modal.component.html","./src/app/modals/shared/warning-modal/warning-modal.component.ts","./src/app/modals/shared/warning-modal/warning-modal.component.html","./src/app/modals/timeoff/cancel-holiday-modal/cancel-holiday-modal.component.ts","./src/app/modals/timeoff/cancel-holiday-modal/cancel-holiday-modal.component.html","./src/app/modals/timeoff/floating-modal/floating-modal.component.ts","./src/app/modals/timeoff/floating-modal/floating-modal.component.html","./src/app/modals/timeoff/review-cashout-request-modal/review-cashout-request-modal.component.ts","./src/app/modals/timeoff/review-cashout-request-modal/review-cashout-request-modal.component.html","./src/app/modals/timeoff/review-timeoff-request-modal/review-timeoff-request-modal.component.ts","./src/app/modals/timeoff/review-timeoff-request-modal/review-timeoff-request-modal.component.html","./src/app/modals/timeoff/view-company-holiday-modal/view-company-holiday-modal.component.ts","./src/app/modals/timeoff/view-company-holiday-modal/view-company-holiday-modal.component.html","./src/app/modals/timeoff/view-group-timeoff-modal/view-group-timeoff-modal.component.ts","./src/app/modals/timeoff/view-group-timeoff-modal/view-group-timeoff-modal.component.html","./src/app/modals/timeoff/view-group-timeoff-modal/webix-datatable.component.ts","./src/app/pages/admin/services/admin.service.ts","./src/app/pages/approval/services/approval.service.ts","./src/app/pages/checklist/services/checklist.service.ts","./src/app/pages/crew-timecard/services/crew-timecard.service.ts","./src/app/pages/employee/services/employee.service.ts","./src/app/pages/employee/services/employeetraining.service.ts","./src/app/pages/field/service/field.service.ts","./src/app/pages/hiring/services/applicant.service.ts","./src/app/pages/hiring/services/hiring.service.ts","./src/app/pages/home/services/home.service.ts","./src/app/pages/office/services/office-data.service.ts","./src/app/pages/office/services/office.service.ts","./src/app/pages/performance/services/performance.service.ts","./src/app/pages/timeoff/time-off.service.ts","./src/app/shared/component/auto-complete-email-t-c-b/auto-complete-email-t-c-b.component.ts","./src/app/shared/component/auto-complete-email-t-c-b/auto-complete-email-t-c-b.component.html","./src/app/shared/component/auto-complete-email/auto-complete-email.component.ts","./src/app/shared/component/auto-complete-email/auto-complete-email.component.html","./src/app/shared/component/crew-timecard-grid/crew-timecard-grid.component.ts","./src/app/shared/component/crew-timecard-grid/crew-timecard-grid.component.html","./src/app/shared/component/crew-timecard-grid/services/crew-timecard-data.service.ts","./src/app/shared/component/crew-timecard-grid/services/crew-timecard-grid.service.ts","./src/app/shared/component/crew-timecard-grid/services/crew-timecard-manager.service.ts","./src/app/shared/component/file-upload/file-upload.component.ts","./src/app/shared/component/file-upload/file-upload.component.html","./src/app/shared/component/multiple-date-selector/multiple-date-selector.component.ts","./src/app/shared/component/multiple-date-selector/multiple-date-selector.component.html","./src/app/shared/component/rich-text-editor/rich-text-editor.component.ts","./src/app/shared/component/rich-text-editor/rich-text-editor.component.html","./src/app/shared/component/search-drop-down/search-drop-down.component.ts","./src/app/shared/component/search-drop-down/search-drop-down.component.html","./src/app/shared/component/time-worked/services/time-worked.service.ts","./src/app/shared/component/time-worked/time-worked.component.ts","./src/app/shared/component/time-worked/time-worked.component.html","./src/app/shared/directive/check-box-yn.directive.ts","./src/app/shared/directive/elastic.directive.ts","./src/app/shared/directive/fileread.directive.ts","./src/app/shared/directive/percent-number.directive.ts","./src/app/shared/directive/phone-format.directive.ts","./src/app/shared/directive/ssn-format.directive.ts","./src/app/shared/directive/time-validate.directive.ts","./src/app/shared/directive/uszip-format.directive.ts","./src/app/shared/pipe/days-and-hours.pipe.ts","./src/app/shared/pipe/domsafe.pipe.ts","./src/app/shared/pipe/order-by.pipe.ts","./src/app/shared/shared.module.ts","./src/app/url-serializer/custom-url-serializer.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes, UrlSerializer } from '@angular/router';\r\n\r\n//Resolver Service\r\nimport { AnonPortalSettingsResolverService } from './core/resolver/anon-portal-settings-resolver.service';\r\nimport { EmployeeInfoResolverService } from './core/resolver/employee-info-resolver.service';\r\nimport { PortalSettingsResolverService } from './core/resolver/portal-settings-resolver.service';\r\n\r\n//URL Custom Serialization\r\nimport { CustomUrlSerializer } from './url-serializer/custom-url-serializer';\r\n\r\n//Layout Components\r\nimport { HomeLayoutComponent } from './layout/home-layout/home-layout.component';\r\nimport { OnboardingLayoutComponent } from './layout/onboarding-layout/onboarding-layout.component';\r\nimport { OfficeLayoutComponent } from './layout/office-layout/office-layout.component';\r\n\r\n//Note: Add new routing path all in lowercase\r\nconst routes: Routes = [\r\n //Pages using Default Layout\r\n {\r\n path: '',\r\n component: HomeLayoutComponent,\r\n resolve: {\r\n employee: EmployeeInfoResolverService,\r\n portalSetting: PortalSettingsResolverService\r\n },\r\n children: [\r\n {\r\n path: '',\r\n redirectTo: 'home'\r\n },\r\n {\r\n path: 'admin',\r\n loadChildren: () => import('./pages/admin/admin.module').then(m => m.AdminModule)\r\n },\r\n {\r\n path: 'approval',\r\n loadChildren: () => import('./pages/approval/approval.module').then(m => m.ApprovalModule)\r\n },\r\n {\r\n path: 'aprouter',\r\n loadChildren: () => import('./pages/aprouter/aprouter.module').then(m => m.AprouterModule)\r\n },\r\n {\r\n path: 'checklist',\r\n loadChildren: () => import('./pages/checklist/checklist.module').then(m => m.ChecklistModule)\r\n },\r\n {\r\n path: 'crewtimecard',\r\n loadChildren: () => import('./pages/crew-timecard/crew-timecard.module').then(m => m.CrewTimecardModule)\r\n },\r\n {\r\n path: 'crew/timecard',\r\n loadChildren: () => import('./pages/crew-timecard/crew-timecard.module').then(m => m.CrewTimecardModule)\r\n },\r\n {\r\n path: 'employee',\r\n loadChildren: () => import('./pages/employee/employee.module').then(m => m.EmployeeModule)\r\n },\r\n {\r\n path: 'equipment',\r\n loadChildren: () => import('./pages/equipment/equipment.module').then(m => m.EquipmentModule)\r\n },\r\n {\r\n path: 'field',\r\n loadChildren: () => import('./pages/field/field.module').then(m => m.FieldModule)\r\n },\r\n {\r\n path: 'hiring',\r\n loadChildren: () => import('./pages/hiring/hiring.module').then(m => m.HiringModule)\r\n },\r\n {\r\n path: 'home',\r\n loadChildren: () => import('./pages/home/home.module').then(m => m.HomeModule)\r\n },\r\n {\r\n path: 'performance',\r\n loadChildren: () => import('./pages/performance/performance.module').then(m => m.PerformanceModule)\r\n },\r\n {\r\n path: 'plant',\r\n loadChildren: () => import('./pages/equipment/equipment.module').then(m => m.EquipmentModule)\r\n },\r\n {\r\n path: 'timeoff',\r\n loadChildren: () => import('./pages/timeoff/timeoff.module').then(m => m.TimeoffModule)\r\n }\r\n ],\r\n },\r\n //Pages using Onboarding Layout\r\n {\r\n path: '',\r\n component: OnboardingLayoutComponent,\r\n resolve: {\r\n portalSetting: AnonPortalSettingsResolverService\r\n },\r\n children: [\r\n {\r\n path: 'careers',\r\n loadChildren: () => import('./pages/careers/careers.module').then(m => m.CareersModule)\r\n }\r\n ]\r\n },\r\n //Pages using Office Tools Layout\r\n {\r\n path: '',\r\n component: OfficeLayoutComponent,\r\n resolve: {\r\n employee: EmployeeInfoResolverService,\r\n portalSetting: PortalSettingsResolverService\r\n },\r\n children: [\r\n {\r\n path: 'office',\r\n loadChildren: () => import('./pages/office/office.module').then(m => m.OfficeModule)\r\n }\r\n ]\r\n },\r\n //Pages with no Navbar\r\n {\r\n path: '',\r\n resolve: {\r\n employee: EmployeeInfoResolverService,\r\n portalSetting: PortalSettingsResolverService\r\n },\r\n children: [\r\n {\r\n path: 'reportgateway',\r\n loadChildren: () => import('./pages/report-gateway/report-gateway.module').then(m => m.ReportGatewayModule)\r\n }\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n RouterModule.forRoot(routes)\r\n ],\r\n providers: [\r\n {\r\n provide: UrlSerializer,\r\n useClass: CustomUrlSerializer\r\n }\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'HRIM';\r\n constructor() {\r\n\r\n }\r\n ngOnInit(): void {\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n","import { APP_BASE_HREF } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { XSRFHeaderInterceptor } from './http-interceptors/xsrf-header-interceptor';\r\nimport { SortablejsModule } from 'nxt-sortablejs';\r\n\r\n//App Component\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\n\r\n//Supporting multiple layout\r\nimport { LayoutModule } from './layout/layout.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n ModalModule.forRoot(),\r\n AppRoutingModule,\r\n BsDatepickerModule.forRoot(),\r\n LayoutModule,\r\n SortablejsModule.forRoot({\r\n animation: 150\r\n })\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: XSRFHeaderInterceptor, multi: true },\r\n { provide: APP_BASE_HREF, useValue: '/' }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { EmployeeInfoService } from '../../../core/services/employee-info.service';\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { HomeService } from '../../../pages/home/services/home.service';\r\nimport { EmployeeService } from './../../../pages/employee/services/employee.service';\r\nimport { SignalRService } from './../../services/signal-r.service';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EventService } from '../../services/event.service';\r\nimport { ClockinJobModalComponent } from 'src/app/modals/home/clockin-job-modal/clockin-job-modal.component';\r\nimport { ErrorModalComponent } from 'src/app/modals/shared/error-modal/error-modal.component'\r\nimport { ClockoutModalComponent } from 'src/app/modals/home/clockout-modal/clockout-modal.component'\r\nimport { PaperlessModalComponent } from 'src/app/modals/home/paperless-modal/paperless-modal.component'\r\nimport { PasswordWarningModalComponent } from 'src/app/modals/home/password-warning-modal/password-warning-modal.component'\r\nimport { WarningModalComponent } from '../../../modals/shared/warning-modal/warning-modal.component';\r\nimport { AlertModalComponent } from '../../../modals/shared/alert-modal/alert-modal.component';\r\nimport { OrderByPipe } from './../../../shared/pipe/order-by.pipe';\r\nimport moment from 'moment';\r\nimport { HttpClient, HttpRequest, HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { Subscription } from 'rxjs';\r\nimport { ConfirmationModalComponent } from 'src/app/modals/home/confirmation-modal/confirmation-modal.component';\r\n\r\n@Component({\r\n selector: 'app-navigation',\r\n templateUrl: './navigation.component.html',\r\n styleUrls: ['./navigation.component.css']\r\n})\r\n\r\nexport class NavigationComponent implements OnInit {\r\n pRCO: number;\r\n loginMode: string;\r\n isOver: boolean;\r\n portalSettings: any;\r\n employeeInfo: any;\r\n formData: { [key: string]: any } = {};\r\n requestObj: { [key: string]: any } = {};\r\n modules: any;\r\n menu: any[] = [];\r\n format: string;\r\n position: any;\r\n clockStatus: { [key: string]: any } = {};\r\n showTeamLinkOnNav: boolean;\r\n viewpointOneUrl: string;\r\n ViewpointAnalyticsURL: string;\r\n hotlistMenu: boolean;\r\n userNameMenu: boolean;\r\n teamMenu: boolean;\r\n unapprovedRequestCount: number;\r\n moduleCategories: any[];\r\n hotlistItems: any[] = [];\r\n moduleCategoriesMobile: any[];\r\n navBarClockInEnabled: boolean;\r\n requestingLocation: boolean = true;\r\n geolocationEnabled: boolean;\r\n performingClockAction: boolean;\r\n siteUrl: string;\r\n languagePack: boolean;\r\n clockInUsePhase: boolean;\r\n showPaperless: boolean;\r\n newFiles: any[] = [];\r\n isSafari: boolean;\r\n isMobileIos: any;\r\n currencySymbol: string;\r\n image: any = null;\r\n showImageNow: boolean;\r\n submitCount: number;\r\n apInvoiceShow: boolean;\r\n apEnabled: boolean;\r\n helpLink: string;\r\n feedbackEmail: string;\r\n fieldToolsCount: number;\r\n expenseReport: string = '/Employee/ExpenseReport'\r\n isExpensePage: boolean = window.location.pathname.indexOf(this.expenseReport.toLowerCase()) != -1;\r\n unapprovedInvoiceRoute: string = \"/APRouter/Index\";\r\n unapprovedPersonalInfoRoute: string = \"/Admin/PersonalInfoRequests\";\r\n unapprovedTimeRoute: string = \"/Approval/Index\";\r\n jobApprovalRoute: string = \"/Approval/JobApproval\";\r\n fieldToolsIssues: string = \"/IssueTracker/Index\";\r\n timeOffDashboard: string = \"/Approval/ManageTimeOff\";\r\n progressApprove: string = \"/Field/ProgressEntryApproval\";\r\n benefitRequest: string = \"/Approval/BenefitsRequests\";\r\n dependentRequest: string = \"/Approval/DependentRequests\";\r\n poReview: string = \"/Approval/PurchaseOrderReview\";\r\n expenseApproval: string = \"/Approval/ExpenseApproval\";\r\n jobBillingReview: string = \"/Billing/BillingReview\"\r\n userAccess: string = \"/Admin/ManageEmployees\";\r\n printHuddle: string = \"/Field/PrintHuddle\";\r\n newExID: any;\r\n upload: any;\r\n fileData: any[];\r\n innerCounter: number;\r\n openModalLeft: number;\r\n isModuleAdmin: boolean;\r\n suggestionUrl: string = \"https://keystyle.ideas.aha.io/ideas\";\r\n errorMsg: string;\r\n portalName: string;\r\n logoUrl: string;\r\n orderByPipe: any;\r\n hideBar: boolean = window.location.pathname.includes(this.printHuddle.toLowerCase());\r\n quickAddAlert: any;\r\n showOfficeRoute: boolean;\r\n\r\n constructor(portalSettingsService: PortalSettingsService, employeeInfoService: EmployeeInfoService, private homeService: HomeService, private employeeService: EmployeeService, private modalService: BsModalService, private ngbModalService: NgbModal, public HttpClient: HttpClient, private signalRService: SignalRService, private eventService: EventService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n this.signalRService.establishHub('notificationHub','sendLogoutSignal');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.showOfficeRoute = false;\r\n this.signalRService.logoutEvent.subscribe((filename: any) => {\r\n window.location.href = \"/Account/Logout?signalRLogout=true\";\r\n });\r\n this.orderByPipe = new OrderByPipe();\r\n this.getUserContext();\r\n this.clockInUsePhase = this.portalSettings.ClockInUsePhase.ConfigValue == \"1\";\r\n this.showTeamLinkOnNav = this.portalSettings.ShowTeamLinkOnNav.ConfigValue == 1;\r\n this.navBarClockInEnabled = this.portalSettings.NavBarClockInEnabled.ConfigValue == \"1\";\r\n this.siteUrl = \"kdstimecard://\" + window.location.origin;\r\n this.viewpointOneUrl = \"https://team.viewpoint.com\";\r\n this.ViewpointAnalyticsURL = \"https://team.viewpoint.com/vo/analytics/\" + this.portalSettings.ViewpointOneEnterpriseID.ConfigValue + \"/home\";\r\n this.showPaperless = (this.portalSettings.ShowC1095Paperless.ConfigValue == 1 || this.portalSettings.ShowW2Paperless.ConfigValue == 1 || this.portalSettings.ShowPaystubPaperless.ConfigValue == 1 || this.portalSettings.AllowPaperlessInfoChange.ConfigValue == \"1\" || this.portalSettings.ShowPaperlessCarrier.ConfigValue == \"1\") ? true : false;\r\n if (this.employeeInfo.IsBulletinAdmin || this.employeeInfo.IsChecklistAdmin || this.employeeInfo.IsHuddleAdmin || this.employeeInfo.IsOnboardAdmin || this.employeeInfo.IsPurchasingAdmin || this.employeeInfo.IsSecurityAdmin ||\r\n this.employeeInfo.IsTimecardAdmin || this.employeeInfo.IsTrainingAdmin || this.employeeInfo.IsTrainingClassAdmin || this.employeeInfo.IsVacationAdmin || this.employeeInfo.IsVacationDashAdmin) {\r\n this.isModuleAdmin = true;\r\n }\r\n else {\r\n this.isModuleAdmin = false;\r\n }\r\n if (this.navBarClockInEnabled) {\r\n setTimeout(() => {\r\n //geocoder = new google.maps.Geocoder();\r\n this.getClockInStatus();\r\n }, 1000);\r\n }\r\n \r\n this.openModalLeft = (window.innerWidth - 200) / 2;\r\n this.formData = {};\r\n this.fileData = [];\r\n this.formData.fileDrop = null;\r\n this.fieldToolsCount = this.employeeInfo.IssueCount;;\r\n this.isSafari = navigator.userAgent.indexOf(\"Safari\") > -1;\r\n this.isMobileIos = navigator.userAgent.match(/(iPad|iPhone|iPod touch);.*(OS 7_|OS 8_|OS 9_|OS 10_|OS 11_|OS 12_\\d)/i);\r\n if (this.isMobileIos != null && this.isSafari) {\r\n $('#NavBar').addClass('mobileSafari');\r\n }\r\n var currencyFormatSymbols = this.portalSettings.CurrencyFormatPerPRCo.ConfigValue;\r\n this.currencySymbol = \"$\";\r\n if (currencyFormatSymbols && currencyFormatSymbols.trim() != \"\") {\r\n currencyFormatSymbols.split(\",\").forEach(val => {\r\n var arrayEntry = val.split(\":\");\r\n var currencyObject = { PRCo: parseInt(arrayEntry[0]), Currency: arrayEntry[1] }\r\n if (this.employeeInfo && currencyObject.PRCo == this.employeeInfo.PRCo) {\r\n this.currencySymbol = currencyObject.Currency;\r\n }\r\n });\r\n }\r\n this.feedbackEmail = this.portalSettings.FeedbackEmail.ConfigValue;\r\n this.apEnabled = this.portalSettings.EnableAPInvoiceReview.ConfigValue == \"1\";\r\n this.helpLink = this.portalSettings.HelpLink.ConfigValue;\r\n if (this.portalSettings.CountryDateCode.ConfigValue == \"US\") {\r\n this.format = \"MM/DD/yyyy\";\r\n } else {\r\n this.format = \"DD/MM/yyyy\";\r\n }\r\n this.getModules();\r\n this.eventService.on('modulesChanged',() => { this.getModules(); });\r\n this.eventService.on('approvedExpenseChangedBroadcast', () => { this.modifyApprovedExpenses(); });\r\n this.eventService.on('approvedTimecardsChanged', () => { this.getEmployeeInfo(); })\r\n this.eventService.on('expenseMinus', () => { this.subtractExpense(); });\r\n this.eventService.on('approvedInvoicesAdd', () => { this.addApprovedInvoices(); });\r\n this.eventService.on('approvedInvoicesMinus', () => { this.subtractApprovedInvoices(); });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.employeeInfo.ShowConsentForm && this.showPaperless) {\r\n this.openModal();\r\n this.paperLessModal();\r\n }\r\n }\r\n\r\n getUserContext() {\r\n this.homeService.getUserContext().then((response: any) => {\r\n this.pRCO = response.PRCo;\r\n this.isOver = response.IsOver;\r\n this.loginMode = response.LoginMode;\r\n if (this.employeeInfo.LoginType != \"Identity\" && this.employeeInfo.PasswordResetStatus != null && window.location.pathname.toLowerCase().indexOf(\"changeaccountpassword\") == -1) {\r\n if ((this.portalSettings.PasswordResetSchedule.ConfigValue > 0 || this.portalSettings.RequirePasswordChangeOnAdminUpdate.ConfigValue == \"1\") && this.employeeInfo.PasswordResetStatus <= 0 && this.loginMode == \"viewpoint\") {\r\n this.openPasswordWarningModal();\r\n }\r\n }\r\n this.checkCompanyLogo();\r\n this.getPortalName();\r\n });\r\n }\r\n\r\n getModules() {\r\n if (this.employeeInfo != null) {\r\n this.unapprovedRequestCount = this.employeeInfo.TimecardCount + this.employeeInfo.PersonalInfoCount + this.employeeInfo.TimeOffCount +\r\n this.employeeInfo.ProgressApprovalCount + this.employeeInfo.UnapprovedBenefitRequestCount + this.employeeInfo.UnapprovedDependentRequestCount;\r\n }\r\n this.homeService.getModules().then((response: any[]) => {\r\n this.modules = response;\r\n this.groupModules();\r\n //Get Counts\r\n response.forEach(val => {\r\n if (val.ModuleID == 130) {\r\n this.showOfficeRoute = true;\r\n }\r\n if (val.ModuleID == 8) {\r\n this.apInvoiceShow = true;\r\n if (this.apEnabled && this.apInvoiceShow) {\r\n this.homeService.getAPCount().then((response: number) => {\r\n if (response != null) {\r\n this.employeeInfo.InvoiceCount = response;\r\n if (response != -1)\r\n this.unapprovedRequestCount += this.employeeInfo.InvoiceCount;\r\n }\r\n });\r\n\r\n }\r\n }\r\n if (val.ModuleID == 68) {\r\n this.homeService.getPOReviewCount().then((response: number) => {\r\n if (response != null) {\r\n this.employeeInfo.POReviewCount = response;\r\n if (response != -1)\r\n this.unapprovedRequestCount += this.employeeInfo.POReviewCount;\r\n }\r\n });\r\n }\r\n if (val.ModuleID == 74) {\r\n this.homeService.getExpenseApprovalCount().then((response: number) => {\r\n if (response != null) {\r\n if (response != -1) {\r\n this.employeeInfo.ExpenseApprovalCount = response;\r\n if (this.employeeInfo.ExpenseApprovalCount > 0)\r\n this.unapprovedRequestCount += this.employeeInfo.ExpenseApprovalCount;\r\n } else {\r\n this.employeeInfo.ExpenseApprovalCount = 0;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n openModal3() {\r\n document.getElementById('modalNav3').style.display = 'block';\r\n document.getElementById('modalNav3').style.left = this.openModalLeft + 'px';\r\n document.getElementById('fadeNav3').style.display = 'block';\r\n }\r\n\r\n closeModal3() {\r\n document.getElementById('modalNav3').style.display = 'none';\r\n document.getElementById('fadeNav3').style.display = 'none';\r\n }\r\n\r\n checkCompanyLogo() {\r\n this.homeService.getCompanyLogo(this.pRCO, \"s\").then((response) => {\r\n this.image = response == \"\" ? null : response;\r\n this.showImageNow = true;\r\n this.logoUrl = \"/Company/GetLogo?co=\" + this.pRCO + \"&size=S\";\r\n });\r\n }\r\n\r\n getPortalName() {\r\n this.homeService.getPortalName(this.pRCO).then((response) => {\r\n this.portalName = response == \"\" ? null : response;\r\n });\r\n }\r\n\r\n readFile(file, call) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) { return call(e, file.name) };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n uploadFiles(val2: any): Subscription {\r\n var data = { expenseItemID: this.newExID, photoFileData: val2.File, photoFileType: val2.Filename };\r\n val2.Filedata.upload = new HttpRequest(\r\n 'POST',\r\n \"/employee/AddAttachmentToLine\",\r\n data, {\r\n reportProgress: true\r\n })\r\n return this.HttpClient.request(val2.Filedata.upload).subscribe((event: HttpEvent) => {\r\n switch (event.type) {\r\n case HttpEventType.UploadProgress:\r\n val2.Progress = Math.round(event.loaded / event.total * 100);\r\n if (val2.Progress == 100) {\r\n val2.AttchDone = true;\r\n this.innerCounter++;\r\n }\r\n break;\r\n case HttpEventType.Response:\r\n this.submitCount++;\r\n this.openExpenseModal();\r\n val2.Filedata.result = event.body;\r\n }\r\n },\r\n error => this.errorMsg = error.message\r\n )\r\n }\r\n\r\n openExpenseModal() {\r\n if (this.submitCount != null && this.newFiles != null) {\r\n if (this.submitCount == this.newFiles.length && this.submitCount != 0) {\r\n this.formData.selectedAll = false;\r\n this.formData.fileDrop = null;\r\n this.formData.selectCount = 0;\r\n this.quickAddAlert = { type: \"success\", msg: \"Great! Your item has been added and is available for coding under \\\"Items Pending Submission\\\".\" };\r\n this.closeModal3();\r\n let modalRef = this.ngbModalService.open(ConfirmationModalComponent, { size: 'lg', backdrop: 'static' });\r\n modalRef.componentInstance.data = this.upload;\r\n modalRef.componentInstance.selectedEmployee = this.employeeInfo\r\n modalRef.componentInstance.errorMsg = this.errorMsg\r\n modalRef.result.then((result) => {\r\n this.formData.selectedAll = false;\r\n this.formData.selectCount = 0;\r\n });\r\n }\r\n }\r\n }\r\n\r\n quickAdd() {\r\n setTimeout(() => {\r\n this.newExID = null;\r\n if (this.formData.fileDrop.length > 0) {\r\n this.submitCount = 0;\r\n var hour: any = new Date().getHours();\r\n var APM = \" AM\";\r\n if (hour == 24) { hour = 0; APM = \" PM\"; }\r\n if (hour == 12) { APM = \" PM\"; }\r\n if (hour > 12) { hour = hour - 12; APM = \" PM\"; }\r\n if (hour < 10) { hour = \"0\" + hour.toString(); }\r\n var min: any = new Date().getMinutes();\r\n if (min < 10) { min = \"0\" + min };\r\n var sec: any = new Date().getSeconds();\r\n if (sec < 10) { sec = \"0\" + sec };\r\n var expenseItemID = -1\r\n var expenseDateStr = moment().format(\"YYYY-MM-DD\");\r\n var description = \"Quick Add at \" + hour + \":\" + min + \":\" + sec + APM\r\n var userKeyId = (this.formData.selectedEmployee == null ? this.employeeInfo.UserKeyID : this.formData.selectedEmployee.UserKeyID)\r\n\r\n this.employeeService.insertUpdateExpenseItem(expenseItemID, null, description, null, null, null, null, null, userKeyId, null, null, null, null, null, null, null, null, null, null, expenseDateStr).then((response: any) => {\r\n if (response.success) {\r\n this.openModal3();\r\n this.upload = response;\r\n this.newExID = response.newID;\r\n this.newFiles = [];\r\n this.fileData = [];\r\n\r\n for (var i = 0; i < this.formData.fileDrop.length; i++) {\r\n this.formData.fileDrop[i].nameEdit = \"\";\r\n for (var y = 0; y < this.formData.fileDrop[i].name.substr(0, this.formData.fileDrop[i].name.lastIndexOf('.') + 1).length; y++) {\r\n if (this.formData.fileDrop[i].name[y] != \" \" && this.formData.fileDrop[i].name[y] != \"&\" && this.formData.fileDrop[i].name[y] != \"*\" && this.formData.fileDrop[i].name[y] != \":\" &&\r\n this.formData.fileDrop[i].name[y] != \";\" && this.formData.fileDrop[i].name[y] != \"|\" && this.formData.fileDrop[i].name[y] != \"=\" && this.formData.fileDrop[i].name[y] != \",\" &&\r\n this.formData.fileDrop[i].name[y] != \".\" && this.formData.fileDrop[i].name[y] != \"/\" && this.formData.fileDrop[i].name[y] != \"\\\"\" && this.formData.fileDrop[i].name[y] != \"[\" &&\r\n this.formData.fileDrop[i].name[y] != \"]\")\r\n this.formData.fileDrop[i].nameEdit += this.formData.fileDrop[i].name[y];\r\n }\r\n this.formData.fileDrop[i].nameEdit += this.formData.fileDrop[i].name.substr(this.formData.fileDrop[i].name.lastIndexOf('.'), this.formData.fileDrop[i].name.length);\r\n }\r\n\r\n for (var i = 0; i < this.formData.fileDrop.length; i++) {\r\n var n = 0;\r\n this.innerCounter = 0;\r\n this.readFile(this.formData.fileDrop[i], (e, filename: string) => {\r\n setTimeout(() => {\r\n this.fileData.push({ data: e.target.result.toString().split(\",\"), size: e.total, name: filename });\r\n if (n == (this.formData.fileDrop.length - 1)) {\r\n this.fileData.forEach(val => {\r\n this.formData.fileDrop.forEach(val2 => {\r\n if (val2.size == val.size && val.name == val2.name) {\r\n this.newFiles.push({ File: val.data[1], Filename: val2.nameEdit, Filedata: val2, Type: val.data[0].split(\"/\")[0] });\r\n }\r\n });\r\n });\r\n if (this.formData.fileDrop && this.formData.fileDrop.length >= 1) {\r\n this.newFiles.forEach(val2 => {\r\n if (val2.Progress != 100 && val2.File != null) {\r\n var temp = val2.Type;\r\n var type = \"file\";\r\n if (temp == \"data:image\")\r\n type = \"Photo\";\r\n this.uploadFiles(val2);\r\n }\r\n });\r\n }\r\n }\r\n n++;\r\n });\r\n });\r\n };\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n openGlobalNav() {\r\n document.getElementById(\"globalSideNav\").style.width = \"100%\";\r\n this.menu = [];\r\n this.hotlistMenu = false;\r\n this.userNameMenu = false;\r\n };\r\n\r\n groupModules() {\r\n this.moduleCategories = [];\r\n this.moduleCategoriesMobile = [];\r\n this.hotlistItems = [];\r\n\r\n let hotlistItems = [];\r\n let moduleCategories = [];\r\n let moduleCategoriesMobile = [];\r\n\r\n var temp = {}\r\n var temp2 = {};\r\n var tempMobile = [];\r\n var temp2Mobile = [];\r\n\r\n this.modules.forEach(val => {\r\n if (val.ModuleCatgSeq != 100) {\r\n if (temp.hasOwnProperty(val.ModuleCatgName) && val.ModuleCatgName != null && val.ModuleShowInNav) {\r\n temp[val.ModuleCatgName].push(val);\r\n } else if (val.ModuleCatgName != null && val.ModuleShowInNav) {\r\n temp[val.ModuleCatgName] = [];\r\n temp[val.ModuleCatgName].push(val);\r\n }\r\n var tf = false;\r\n if (hotlistItems.length == 0 && val.IsHotlistItem && val.ModuleShowInNav) {\r\n hotlistItems.push(val);\r\n }\r\n hotlistItems.forEach((val2: any, key2: any) => {\r\n if (val2.ModuleName == val.ModuleName) {\r\n tf = true;\r\n }\r\n if (key2 == (hotlistItems.length - 1) && !tf && val.IsHotlistItem && val.ModuleShowInNav) {\r\n hotlistItems.push(val);\r\n }\r\n });\r\n }\r\n });\r\n\r\n hotlistItems = this.orderByPipe.transform(hotlistItems, \"ModulePrettyShortName\", \"asc\");\r\n for (let key in temp) {\r\n var groupCount = 0;\r\n var managementCount = 0;\r\n var tempDetail = temp[key];\r\n tempDetail.forEach(val => {\r\n if (val.ModuleCatgID == 1) {\r\n if (temp2[\"My Tools\"] == null)\r\n temp2[\"My Tools\"] = {};\r\n if (temp2[\"Management\"] == null)\r\n temp2[\"Management\"] = {};\r\n if (val.ModuleSubCatgID == 1 || val.ModuleSubCatgID == 18 || val.ModuleSubCatgID == 33) {\r\n if (temp2[\"My Tools\"].hasOwnProperty(val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName)) {\r\n temp2[\"My Tools\"][val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName].push(val);\r\n } else {\r\n temp2[\"My Tools\"][val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName] = [];\r\n temp2[\"My Tools\"][val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName].push(val);\r\n }\r\n } else {\r\n managementCount++;\r\n if (temp2[\"Management\"].hasOwnProperty(val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName)) {\r\n temp2[\"Management\"][val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName].push(val);\r\n } else {\r\n temp2[\"Management\"][val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName] = [];\r\n temp2[\"Management\"][val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName].push(val);\r\n groupCount++;\r\n }\r\n }\r\n if (managementCount == 0) {\r\n delete temp2[\"Management\"];\r\n }\r\n } else {\r\n if (temp2.hasOwnProperty(val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName)) {\r\n temp2[val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName].push(val);\r\n } else {\r\n temp2[val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName] = [];\r\n temp2[val.ModuleSubCatgSeq + \",\" + val.ModuleSubCatgName].push(val);\r\n groupCount++;\r\n }\r\n }\r\n });\r\n var temp3 = [];\r\n for (let key3 in temp2) {\r\n temp3.push({ catName: key3, items: temp2[key3], catID: tempDetail[0].ModuleCatgID });\r\n }\r\n moduleCategories.push({ barName: key, list: temp3, catID: tempDetail[0].ModuleCatgID, groupCount: groupCount });\r\n temp2 = {};\r\n }\r\n\r\n //group modules by category\r\n this.modules.forEach(module => {\r\n if (module.ModuleCatgSeq != 100 && module.ModuleShowInNav) {\r\n if (tempMobile[module.ModuleCatgSeq] == null) {\r\n tempMobile[module.ModuleCatgSeq] = [];\r\n }\r\n tempMobile[module.ModuleCatgSeq].push(module);\r\n }\r\n });\r\n\r\n //remove unused array values\r\n tempMobile = tempMobile.filter(function (n) { return n != undefined });\r\n for (let catgKey in tempMobile) {\r\n moduleCategoriesMobile[catgKey] = {};\r\n temp2Mobile[catgKey] = {};\r\n var category = tempMobile[catgKey];\r\n category.forEach(module => {\r\n if (moduleCategoriesMobile[catgKey].CategoryName == null) {\r\n moduleCategoriesMobile[catgKey].CategoryName = module.ModuleCatgName;\r\n moduleCategoriesMobile[catgKey].ModuleCount = 0;\r\n }\r\n var subCategory = module.ModuleSubCatgName != null ? module.ModuleSubCatgName : 0;\r\n if (temp2Mobile[catgKey][subCategory] == null) {\r\n temp2Mobile[catgKey][subCategory] = [];\r\n }\r\n temp2Mobile[catgKey][subCategory].push(module);\r\n moduleCategoriesMobile[catgKey].ModuleCount++;\r\n });\r\n }\r\n\r\n for (let catgKey in temp2Mobile) {\r\n moduleCategoriesMobile[catgKey].Modules = [];\r\n var category = temp2Mobile[catgKey];\r\n for (let subCatgKey in category) {\r\n var subCategory = category[subCatgKey];\r\n if (subCatgKey != \"CategoryName\" && subCatgKey != \"ModuleCount\") {\r\n subCategory.sort(function (a, b) {\r\n if (a.ModuleSortSeq < b.ModuleSortSeq)\r\n return -1;\r\n if (a.ModuleSortSeq > b.ModuleSortSeq)\r\n return 1;\r\n return 0;\r\n });\r\n subCategory.forEach(val => {\r\n moduleCategoriesMobile[catgKey].Modules.push(val);\r\n });\r\n }\r\n }\r\n }\r\n\r\n this.hotlistItems = hotlistItems;\r\n this.moduleCategories = moduleCategories;\r\n this.moduleCategoriesMobile = moduleCategoriesMobile;\r\n }\r\n\r\n openPasswordWarningModal() {\r\n let modalRef = this.ngbModalService.open(PasswordWarningModalComponent, { size: 'md', backdrop: 'static', keyboard: false });\r\n }\r\n\r\n paperLessModal() {\r\n let modalRef = this.ngbModalService.open(PaperlessModalComponent, { size: 'lg', backdrop: 'static' });\r\n modalRef.componentInstance.data = this.employeeInfo;\r\n modalRef.componentInstance.portalSettings = this.portalSettings;\r\n \r\n modalRef.result.then((result) => {\r\n this.homeService.getEmployeeInfo().then((response: any[]) => {\r\n this.employeeInfo = response;\r\n });\r\n this.closeModal();\r\n });\r\n }\r\n\r\n changeLanguage(type: string) {\r\n this.homeService.changeLanguage(type).then((response) => {\r\n window.location.reload();\r\n });\r\n }\r\n\r\n postClockAction($event: any, ignoreLocation: boolean) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.performingClockAction = true;\r\n this.requestObj = {};\r\n\r\n if (this.clockInUsePhase && !this.clockStatus.ClockAction) {\r\n const initialState = {\r\n portalSettings: this.portalSettings,\r\n employeeInfo: this.employeeInfo,\r\n backdrop: 'static'\r\n };\r\n\r\n let modalRef = this.modalService.show(ClockinJobModalComponent, { initialState, ignoreBackdropClick: true, keyboard: true });\r\n\r\n modalRef.onHide.subscribe((reason: any) => {\r\n var result = modalRef.content;\r\n if (result.userAction == \"cancel\") {\r\n this.performingClockAction = false;\r\n } else {\r\n if (result != null && result.userAction == \"Clock In\") {\r\n if (!ignoreLocation && this.position != null && this.position.coords != null) {\r\n this.requestObj.gPSLat = this.position.coords.latitude;\r\n this.requestObj.gPSLong = this.position.coords.longitude;\r\n }\r\n if (result.formData.selectedJob != null) {\r\n this.requestObj.jCJMKeyID = result.formData.selectedJob.JCJMKeyID;\r\n }\r\n if (result.formData.selectedPhase != null) {\r\n this.requestObj.jCJPKeyID = result.formData.selectedPhase.JCJPKeyID;\r\n }\r\n var currentTime = moment();\r\n this.requestObj.clockTimeString = currentTime.format(\"MM/DD/YYYY h:mm:ss a\");\r\n this.homeService.postClockAction(this.requestObj).then((response: any) => {\r\n if (response.success) {\r\n this.getClockInStatus();\r\n }\r\n else {\r\n this.performingClockAction = false;\r\n const initialState = {\r\n modalData: { modalTitle: \"An Error Ocurred\", modalMessage: response.error },\r\n backdrop: 'static'\r\n }\r\n let modalRef = this.modalService.show(ErrorModalComponent, { initialState, ignoreBackdropClick: true, keyboard: true });\r\n }\r\n });\r\n }\r\n else {\r\n this.performingClockAction = false;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n if (this.portalSettings.RequireSignClockOut.ConfigValue == \"1\" && this.clockStatus.ClockAction) {\r\n const initialState = {\r\n portalSettings: this.portalSettings,\r\n employeeInfo: this.employeeInfo,\r\n backdrop: 'static'\r\n };\r\n\r\n let modalRef = this.modalService.show(ClockoutModalComponent, { initialState, ignoreBackdropClick: true, keyboard: true });\r\n\r\n modalRef.onHide.subscribe((reason: any) => {\r\n var result = modalRef.content.userAction;\r\n if (result == \"close\") {\r\n this.performingClockAction = false;\r\n } else {\r\n if (!ignoreLocation && this.position != null && this.position.coords != null) {\r\n this.requestObj.gPSLat = this.position.coords.latitude;\r\n this.requestObj.gPSLong = this.position.coords.longitude;\r\n }\r\n this.requestObj.signatureData = result;\r\n var currentTime = moment();\r\n this.requestObj.clockTimeString = currentTime.format(\"MM/DD/YYYY h:mm:ss a\");\r\n this.homeService.postClockAction(this.requestObj).then((response: any) => {\r\n if (response.success) {\r\n this.getClockInStatus();\r\n }\r\n else {\r\n this.performingClockAction = false;\r\n const initialState = {\r\n modalData: { modalTitle: \"An Error Ocurred\", modalMessage: response.error },\r\n backdrop: 'static'\r\n }\r\n let modalRef = this.modalService.show(ErrorModalComponent, { initialState, ignoreBackdropClick: true, keyboard: true });\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n if (!ignoreLocation && this.position != null && this.position.coords != null) {\r\n this.requestObj.gPSLat = this.position.coords.latitude;\r\n this.requestObj.gPSLong = this.position.coords.longitude;\r\n }\r\n var currentTime = moment();\r\n this.requestObj.clockTimeString = currentTime.format(\"MM/DD/YYYY h:mm:ss a\");\r\n this.homeService.postClockAction(this.requestObj).then((response: any) => {\r\n if (response.success) {\r\n this.getClockInStatus();\r\n }\r\n else {\r\n this.performingClockAction = false;\r\n const initialState = {\r\n modalData: { modalTitle: \"An Error Ocurred\", modalMessage: response.error },\r\n backdrop: 'static'\r\n }\r\n let modalRef = this.modalService.show(ErrorModalComponent, { initialState, ignoreBackdropClick: true, keyboard: true });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n unbindViewpointID() {\r\n const initialState = {\r\n portalSettings: this.portalSettings,\r\n employeeInfo: this.employeeInfo,\r\n modalData: { modalTitle: \"Unlink Viewpoint ID\", modalMessage: \"Are you sure you want to unbind your Keystyle account from your Viewpoint account?\", modalAction: \"Unbind\", closeButtonText: \"Cancel\", warningLevel: \"primary\" },\r\n backdrop: 'static'\r\n };\r\n\r\n let modalRef = this.modalService.show(WarningModalComponent, { initialState, ignoreBackdropClick: true, keyboard: true });\r\n\r\n modalRef.onHide.subscribe((reason: any) => {\r\n var result = modalRef.content.userAction;\r\n if (result == \"Unbind\") {\r\n this.homeService.unbindViewpointID().then((response: any) => {\r\n if (response.success) {\r\n //this.alert = { type: \"success\", msg: \"Email reminder sent\" }; --Unused alert\r\n const initialState = {\r\n portalSettings: this.portalSettings,\r\n employeeInfo: this.employeeInfo,\r\n modalData: { modalTitle: \"Unlink Viewpoint ID\", modalMessage: \"Keystyle account unbound from Viewpoint ID successfully.\", closeButtonText: \"Close\", alertLevel: \"success\" },\r\n backdrop: 'static'\r\n };\r\n let modalRef = this.modalService.show(AlertModalComponent, { initialState, ignoreBackdropClick: true, keyboard: true });\r\n } else {\r\n const initialState = {\r\n portalSettings: this.portalSettings,\r\n employeeInfo: this.employeeInfo,\r\n modalData: { modalTitle: \"Unlink Viewpoint ID\", modalMessage: response.error, closeButtonText: \"Close\", alertLevel: \"danger\" },\r\n backdrop: 'static'\r\n };\r\n let modalRef = this.modalService.show(AlertModalComponent, { initialState, ignoreBackdropClick: true, keyboard: true });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n getClockInStatus() {\r\n var currentTime = moment();\r\n var currentTimeString = currentTime.format(\"MM/DD/YYYY h:mm:ss a\");\r\n this.homeService.getClockInStatus(false, currentTimeString).then((response) => {\r\n if (response != null) {\r\n this.performingClockAction = false;\r\n this.clockStatus = response;\r\n this.getLocation();\r\n if (this.clockStatus.ClockTime != null) {\r\n this.clockStatus.ClockTimeDisplay = moment(parseInt(this.clockStatus.ClockTime.substring(6))).utc().format(this.format.toUpperCase() + \" hh:mm a\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n getLocation() {\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(position => {\r\n this.requestingLocation = false;\r\n this.geolocationEnabled = true;\r\n this.position = position;\r\n });\r\n }\r\n else {\r\n this.requestingLocation = false;\r\n }\r\n }\r\n\r\n subStringFromComma(text: string) {\r\n var temp = text.split(',');\r\n return temp[1];\r\n }\r\n\r\n closeMenusSection(number: any, type: any) {\r\n if (number != null && this.menu[number]) {\r\n this.menu[number] = false;\r\n return;\r\n }\r\n else if (type === 'h' && !number && this.hotlistMenu) {\r\n this.hotlistMenu = false;\r\n return;\r\n }\r\n else if (type === 't' && !number && this.teamMenu) {\r\n this.teamMenu = false;\r\n return;\r\n }\r\n else if (type === 'n' && !number && this.userNameMenu) {\r\n this.userNameMenu = false;\r\n return;\r\n }\r\n else {\r\n for (var i = 0; i < this.moduleCategories.length; i++) {\r\n this.menu[i] = false;\r\n }\r\n this.hotlistMenu = false;\r\n this.userNameMenu = false;\r\n this.teamMenu = false;\r\n\r\n if (number != null) {\r\n this.menu[number] = true;\r\n }\r\n if (type === 'h' && !number) {\r\n this.hotlistMenu = true;\r\n }\r\n if (type === 't' && !number) {\r\n this.teamMenu = true;\r\n }\r\n if (type === 'n' && !number) {\r\n this.userNameMenu = true;\r\n }\r\n }\r\n }\r\n\r\n logout() {\r\n sessionStorage.clear();\r\n window.location.href = \"/Account/Logout\";\r\n }\r\n\r\n openModal() {\r\n document.getElementById('fadeNav').style.display = 'block';\r\n }\r\n\r\n closeModal() {\r\n document.getElementById('fadeNav').style.display = 'none';\r\n }\r\n\r\n //approvedTimecardsChanged & approvedDependentChanged\r\n getEmployeeInfo() {\r\n this.homeService.getEmployeeInfo().then((response: any[]) => {\r\n this.employeeInfo = response;\r\n this.unapprovedRequestCount = this.employeeInfo.TimecardCount + this.employeeInfo.PersonalInfoCount + this.employeeInfo.TimeOffCount +\r\n this.employeeInfo.ProgressApprovalCount + this.employeeInfo.UnapprovedBenefitRequestCount + this.employeeInfo.UnapprovedDependentRequestCount;\r\n\r\n if (this.employeeInfo.InvoiceCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.InvoiceCount;\r\n }\r\n if (this.employeeInfo.POReviewCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.POReviewCount;\r\n }\r\n if (this.employeeInfo.ExpenseApprovalCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.ExpenseApprovalCount;\r\n }\r\n });\r\n }\r\n\r\n //approvedPendingPOChanged\r\n getPendingCount() {\r\n this.homeService.getPOReviewCount().then((response: any) => {\r\n if (response != null) {\r\n this.employeeInfo.POReviewCount = response;\r\n if (response != -1) {\r\n this.unapprovedRequestCount = this.employeeInfo.TimecardCount + this.employeeInfo.PersonalInfoCount + this.employeeInfo.TimeOffCount +\r\n this.employeeInfo.ProgressApprovalCount + this.employeeInfo.UnapprovedBenefitRequestCount + this.employeeInfo.UnapprovedDependentRequestCount;\r\n\r\n if (this.employeeInfo.InvoiceCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.InvoiceCount;\r\n }\r\n if (this.employeeInfo.POReviewCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.POReviewCount;\r\n }\r\n if (this.employeeInfo.ExpenseApprovalCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.ExpenseApprovalCount;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n //approvedTimeoffChanged\r\n modifyApprovedTimeOff() {\r\n this.employeeInfo.TimeOffCount--;\r\n if (this.employeeInfo.TimeOffCount < 0) {\r\n this.employeeInfo.TimeOffCount = 0;\r\n }\r\n this.unapprovedRequestCount = this.employeeInfo.TimecardCount + this.employeeInfo.PersonalInfoCount + this.employeeInfo.TimeOffCount +\r\n this.employeeInfo.ProgressApprovalCount + this.employeeInfo.UnapprovedBenefitRequestCount + this.employeeInfo.UnapprovedDependentRequestCount;\r\n }\r\n\r\n //approvedInvoicesAdd\r\n addApprovedInvoices() {\r\n if (this.apEnabled && this.apInvoiceShow) {\r\n this.employeeInfo.InvoiceCount++;\r\n\r\n this.unapprovedRequestCount = this.employeeInfo.TimecardCount + this.employeeInfo.PersonalInfoCount + this.employeeInfo.TimeOffCount +\r\n this.employeeInfo.ProgressApprovalCount + this.employeeInfo.UnapprovedBenefitRequestCount + this.employeeInfo.UnapprovedDependentRequestCount;\r\n\r\n if (this.employeeInfo.POReviewCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.POReviewCount;\r\n }\r\n if (this.employeeInfo.ExpenseApprovalCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.ExpenseApprovalCount;\r\n }\r\n\r\n this.unapprovedRequestCount += this.employeeInfo.InvoiceCount;\r\n this.homeService.updateAPCount(this.employeeInfo.InvoiceCount).then((response: any) => { });\r\n }\r\n }\r\n\r\n //approvedInvoicesMinus\r\n subtractApprovedInvoices() {\r\n if (this.apEnabled && this.apInvoiceShow && this.employeeInfo.InvoiceCount != -1) {\r\n this.employeeInfo.InvoiceCount--;\r\n if (this.employeeInfo.InvoiceCount < 0) {\r\n this.employeeInfo.InvoiceCount = 0;\r\n }\r\n this.unapprovedRequestCount = this.employeeInfo.TimecardCount + this.employeeInfo.PersonalInfoCount + this.employeeInfo.TimeOffCount +\r\n this.employeeInfo.ProgressApprovalCount + this.employeeInfo.UnapprovedBenefitRequestCount + this.employeeInfo.UnapprovedDependentRequestCount;\r\n\r\n if (this.employeeInfo.POReviewCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.POReviewCount;\r\n }\r\n if (this.employeeInfo.ExpenseApprovalCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.ExpenseApprovalCount;\r\n }\r\n\r\n this.unapprovedRequestCount += this.employeeInfo.InvoiceCount;\r\n this.homeService.updateAPCount(this.employeeInfo.InvoiceCount).then((response: any) => { });\r\n }\r\n }\r\n\r\n //expenseMinus\r\n subtractExpense() {\r\n this.employeeInfo.ExpenseApprovalCount--;\r\n if (this.employeeInfo.ExpenseApprovalCount < 0) {\r\n this.employeeInfo.ExpenseApprovalCount = 0;\r\n }\r\n this.unapprovedRequestCount = this.employeeInfo.TimecardCount + this.employeeInfo.PersonalInfoCount + this.employeeInfo.TimeOffCount +\r\n this.employeeInfo.ProgressApprovalCount + this.employeeInfo.UnapprovedBenefitRequestCount + this.employeeInfo.UnapprovedDependentRequestCount;\r\n\r\n if (this.employeeInfo.InvoiceCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.InvoiceCount;\r\n }\r\n if (this.employeeInfo.POReviewCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.POReviewCount;\r\n }\r\n if (this.employeeInfo.ExpenseApprovalCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.ExpenseApprovalCount;\r\n }\r\n if (this.employeeInfo.ExpenseApprovalCount == null) {\r\n this.employeeInfo.ExpenseApprovalCount = 0;\r\n }\r\n this.homeService.updateEXCount(this.employeeInfo.ExpenseApprovalCount).then((response: any) => { });\r\n }\r\n\r\n //approvedBenefitMinus\r\n subtractApprovedBenefit() {\r\n this.homeService.getCount().then((response: any) => {\r\n this.employeeInfo.UnapprovedBenefitRequestCount = response;\r\n\r\n this.unapprovedRequestCount = this.employeeInfo.TimecardCount + this.employeeInfo.PersonalInfoCount + this.employeeInfo.TimeOffCount +\r\n this.employeeInfo.ProgressApprovalCount + this.employeeInfo.UnapprovedBenefitRequestCount + this.employeeInfo.UnapprovedDependentRequestCount;\r\n\r\n if (this.apEnabled && this.apInvoiceShow) {\r\n this.unapprovedRequestCount += this.employeeInfo.InvoiceCount;\r\n }\r\n\r\n if (this.employeeInfo.POReviewCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.POReviewCount;\r\n }\r\n if (this.employeeInfo.ExpenseApprovalCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.ExpenseApprovalCount;\r\n }\r\n })\r\n }\r\n\r\n //approvedExpensesChanged\r\n modifyApprovedExpenses() {\r\n this.homeService.getExpenseApprovalCount().then((response: any) => {\r\n if (response != null) {\r\n if (response != -1) {\r\n this.employeeInfo.ExpenseApprovalCount = response;\r\n this.unapprovedRequestCount = this.employeeInfo.TimecardCount + this.employeeInfo.PersonalInfoCount + this.employeeInfo.TimeOffCount +\r\n this.employeeInfo.ProgressApprovalCount + this.employeeInfo.UnapprovedBenefitRequestCount + this.employeeInfo.UnapprovedDependentRequestCount;\r\n\r\n if (this.employeeInfo.InvoiceCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.InvoiceCount;\r\n }\r\n if (this.employeeInfo.POReviewCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.POReviewCount;\r\n }\r\n if (this.employeeInfo.ExpenseApprovalCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.ExpenseApprovalCount;\r\n }\r\n if (this.employeeInfo.ExpenseApprovalCount == null) {\r\n this.employeeInfo.ExpenseApprovalCount = 0;\r\n }\r\n } else {\r\n this.employeeInfo.ExpenseApprovalCount = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n //productionApprovalChanged\r\n modifyProductionApproval(count: number) {\r\n this.employeeInfo.ProgressApprovalCount = count > 0 ? count : 0;\r\n\r\n this.unapprovedRequestCount = this.employeeInfo.TimecardCount + this.employeeInfo.PersonalInfoCount + this.employeeInfo.TimeOffCount +\r\n this.employeeInfo.ProgressApprovalCount + this.employeeInfo.UnapprovedBenefitRequestCount + this.employeeInfo.UnapprovedDependentRequestCount;\r\n\r\n if (this.employeeInfo.InvoiceCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.InvoiceCount;\r\n }\r\n if (this.employeeInfo.POReviewCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.POReviewCount;\r\n }\r\n if (this.employeeInfo.ExpenseApprovalCount > 0) {\r\n this.unapprovedRequestCount += this.employeeInfo.ExpenseApprovalCount;\r\n }\r\n if (this.employeeInfo.ExpenseApprovalCount == null) {\r\n this.employeeInfo.ExpenseApprovalCount = 0;\r\n }\r\n }\r\n\r\n closeGlobalNav() {\r\n document.getElementById(\"globalSideNav\").style.width = \"0\";\r\n this.closeMenusSection(null, null);\r\n }\r\n\r\n}","","import { Component, OnInit } from '@angular/core';\r\nimport { EmployeeInfoService } from '../../../core/services/employee-info.service';\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { SignalRService } from './../../services/signal-r.service';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EventService } from '../../services/event.service';\r\nimport { HomeService } from '../../../pages/home/services/home.service';\r\nimport { OfficeService } from '../../../pages/office/services/office.service';\r\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { OfficeDataService } from '../../../pages/office/services/office-data.service';\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { ErrorModalComponent } from 'src/app/modals/shared/error-modal/error-modal.component'\r\nimport { WarningModalComponent } from '../../../modals/shared/warning-modal/warning-modal.component';\r\nimport { AlertModalComponent } from '../../../modals/shared/alert-modal/alert-modal.component';\r\nimport { OrderByPipe } from './../../../shared/pipe/order-by.pipe';\r\nimport moment from 'moment';\r\nimport { HttpClient, HttpRequest, HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { Subscription } from 'rxjs';\r\nimport { HostListener } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'app-office-nav',\r\n templateUrl: './office-nav.component.html',\r\n styleUrls: ['./office-nav.component.css'],\r\n})\r\nexport class OfficeNavComponent implements OnInit {\r\n portalSettings: any;\r\n employeeInfo: any;\r\n formData: { [key: string]: any } = {};\r\n image: any = null;\r\n showImageNow: boolean;\r\n pRCO: number;\r\n portalName: string;\r\n loginMode: string;\r\n isOver: boolean;\r\n logoUrl: string;\r\n companyList = [];\r\n groupedFormList = [];\r\n selectedFormList = [];\r\n shortMenu: boolean;\r\n\r\n constructor(portalSettingsService: PortalSettingsService, employeeInfoService: EmployeeInfoService, private modalService: BsModalService, private ngbModalService: NgbModal, private router: Router,\r\n public HttpClient: HttpClient, private signalRService: SignalRService, private eventService: EventService, private homeService: HomeService, private officeService: OfficeService,\r\n public officeDataService: OfficeDataService, private utilityService: UtilityService ) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n this.signalRService.establishHub('notificationHub', 'sendLogoutSignal');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.shortMenu = window.innerWidth < 500;\r\n this.utilityService.openModal();\r\n this.officeDataService.OfficeNavBarOn = true;\r\n this.getCompany();\r\n this.getUserContext();\r\n }\r\n\r\n private getCompany() {\r\n this.officeService.getCompanies().then((response: any) => {\r\n this.companyList = response;\r\n this.officeDataService.SGFCompanyList = this.companyList;\r\n if (response != null) {\r\n var count = 0;\r\n this.companyList.forEach((val, key) => {\r\n if (val.IsDefault) {\r\n count++;\r\n this.formData.selectedCompany = val.HQCo;\r\n }\r\n })\r\n if (count == 0) {\r\n this.formData.selectedCompany = this.companyList[0].HQCo;\r\n }\r\n this.officeDataService.SGFCompany = this.formData.selectedCompany;\r\n this.getForm();\r\n }\r\n }).catch((error) => {\r\n this.utilityService.closeModal();\r\n });\r\n }\r\n\r\n private getForm() {\r\n this.selectedFormList = [];\r\n this.groupedFormList = [];\r\n this.officeService.getForms(this.formData.selectedCompany, null).then((response: any) => {\r\n this.officeDataService.SGFFormList = response;\r\n var tempObject = {};\r\n var isFormExist = false;\r\n let groupedFormList = [];\r\n response.forEach((val, key) => {\r\n if (!tempObject.hasOwnProperty(val.ModuleLongName))\r\n tempObject[val.ModuleLongName] = [];\r\n tempObject[val.ModuleLongName].push(val);\r\n\r\n if ((window.location.pathname == \"/office/maintenancegrid\") && val.FormName == this.officeDataService.SGFForm)\r\n isFormExist = true;\r\n });\r\n\r\n Object.entries(tempObject).forEach((val: any, key) => {\r\n var tempObj = {};\r\n val[1].forEach((val2, key2) => {\r\n if (!tempObj.hasOwnProperty(val2.FormGroup))\r\n tempObj[val2.FormGroup] = [];\r\n tempObj[val2.FormGroup].push(val2);\r\n })\r\n\r\n groupedFormList.push({ groupDisplay: val[0], formList: Object.values(tempObj) });\r\n })\r\n\r\n //add inquiries\r\n groupedFormList.push({ groupDisplay: \"Inquiries\", formList: [] });\r\n this.groupedFormList = groupedFormList.sort((a, b) => { return a.groupDisplay > b.groupDisplay ? 1 : -1; });\r\n this.utilityService.closeModal();\r\n if (isFormExist) {\r\n this.officeDataService.boradcast(\"updateForm\");\r\n } else {\r\n this.officeDataService.boradcast(\"removeForm\");\r\n }\r\n })\r\n }\r\n\r\n public groupSelected(groupData: any) {\r\n if (groupData.groupDisplay == \"Inquiries\") {\r\n this.router.navigate(['/office/inquiries']);\r\n $('#navbarMenu').removeClass(\"show\");\r\n }\r\n else {\r\n this.selectedFormList = groupData.formList;\r\n }\r\n \r\n }\r\n\r\n public itemSelected(formData: any) {\r\n this.officeDataService.SGFCompany = this.formData.selectedCompany;\r\n this.officeDataService.SGFForm = formData.FormName;\r\n this.officeDataService.SGFTitle = formData.FormDesc;\r\n $('#navbarMenu').removeClass(\"show\");\r\n this.officeDataService.boradcast(\"updateForm\");\r\n this.router.navigate(['/office/maintenancegrid']);\r\n }\r\n\r\n private getUserContext() {\r\n this.homeService.getUserContext().then((response: any) => {\r\n this.pRCO = response.PRCo;\r\n this.isOver = response.IsOver;\r\n this.loginMode = response.LoginMode;\r\n\r\n this.checkCompanyLogo();\r\n this.getPortalName();\r\n });\r\n }\r\n\r\n private getPortalName() {\r\n this.homeService.getPortalName(this.pRCO).then((response) => {\r\n this.portalName = response == \"\" ? null : response;\r\n });\r\n }\r\n\r\n private checkCompanyLogo() {\r\n this.homeService.getCompanyLogo(this.pRCO, \"s\").then((response) => {\r\n this.image = response == \"\" ? null : response;\r\n this.showImageNow = true;\r\n this.logoUrl = \"/Company/GetLogo?co=\" + this.pRCO + \"&size=S\";\r\n });\r\n }\r\n\r\n public companyChange() {\r\n this.utilityService.openModal();\r\n this.officeDataService.SGFCompany = this.formData.selectedCompany;\r\n //TODO - fix this spelling error\r\n this.officeDataService.boradcast(\"companyChanged\");\r\n this.getForm();\r\n $('#navbarMenu').removeClass(\"show\");\r\n }\r\n\r\n public routeToReportGateway() {\r\n $('#navbarMenu').removeClass(\"show\");\r\n this.officeDataService.boradcast(\"updateReportGateway\");\r\n this.officeDataService.RGWCat = this.selectedFormList[0][0].ModuleShortName;\r\n this.router.navigate(['/office/reportgateway']);\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n this.shortMenu = window.innerWidth < 500;\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
    {{subGroup[0].FormGroup}}
    \r\n
  • {{item.FormDesc}}
  • \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 { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { PortalSettingsService } from '../services/portal-settings.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnonPortalSettingsResolverService implements Resolve {\r\n\r\n constructor(private http: HttpClient, private portalSettings: PortalSettingsService) { }\r\n\r\n\r\n resolve(): any {\r\n if (this.portalSettings.getPortalSettings() == null) {\r\n return this.http.get('/Account/GetPortalSettingsAnon')\r\n .toPromise()\r\n .then((response) => {\r\n this.portalSettings.setPortalSettings(response);\r\n });\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { EmployeeInfoService } from '../services/employee-info.service';\r\nimport { LanguagePackService } from '../services/language-pack.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeInfoResolverService implements Resolve {\r\n\r\n constructor(private http: HttpClient, private employeeInfoService: EmployeeInfoService, private languagePackService: LanguagePackService) { }\r\n\r\n resolve(): any {\r\n if (this.employeeInfoService.getEmployeeInfo() == null) {\r\n return this.http.get('/Employee/GetInfo')\r\n .toPromise()\r\n .then((response) => {\r\n this.employeeInfoService.setEmployeeInfo(response);\r\n var employeeInfo = this.employeeInfoService.getEmployeeInfo();\r\n if (employeeInfo != null) {\r\n return this.http.get('/Employee/GetLanguagePack?language=' + employeeInfo.LanguageCode)\r\n .toPromise()\r\n .then((languageResponse) => {\r\n this.languagePackService.setLanguagePack(languageResponse);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { PortalSettingsService } from '../services/portal-settings.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PortalSettingsResolverService implements Resolve {\r\n\r\n constructor(private http: HttpClient, private portalSettings: PortalSettingsService) { }\r\n\r\n\r\n resolve(): any {\r\n if (this.portalSettings.getPortalSettings() == null) {\r\n return this.http.get('/Account/GetPortalSettings')\r\n .toPromise()\r\n .then((response) => {\r\n this.portalSettings.setPortalSettings(response);\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeInfoService {\r\n private EmployeeInfo;\r\n constructor() { }\r\n\r\n public setEmployeeInfo(value) {\r\n this.EmployeeInfo = value;\r\n }\r\n\r\n public getEmployeeInfo() {\r\n return this.EmployeeInfo;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class EventService {\r\n private subject;\r\n eventHandler: Subject;\r\n\r\n constructor() {\r\n this.eventHandler = new Subject();\r\n }\r\n\r\n broadcast(eventName) {\r\n this.eventHandler.next(eventName);\r\n }\r\n\r\n on(eventName, callback) {\r\n this.eventHandler.pipe(\r\n filter((event) => {\r\n return event === eventName;\r\n })\r\n ).subscribe(callback);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguagePackService {\r\n private LanguagePack;\r\n constructor() { }\r\n\r\n public setLanguagePack(value) {\r\n this.LanguagePack = value;\r\n }\r\n\r\n public getLanguagePack() {\r\n return this.LanguagePack;\r\n }\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PortalSettingsService {\r\n private PortalSettings;\r\n constructor() { }\r\n\r\n public setPortalSettings(value) {\r\n this.PortalSettings = value;\r\n }\r\n\r\n public getPortalSettings() {\r\n return this.PortalSettings;\r\n }\r\n}\r\n","import { Injectable, EventEmitter } from '@angular/core';\r\nimport { Connection, hubConnection, Proxy } from 'signalr-no-jquery';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SignalRService {\r\n private connection: Connection;\r\n private proxyHub: Proxy;\r\n downloadCompletedEvent = new EventEmitter();\r\n connectionEvent = new EventEmitter();\r\n logoutEvent = new EventEmitter();\r\n sendProgressFileNameEvent = new EventEmitter();\r\n private eventName: string;\r\n\r\n constructor() { }\r\n\r\n establishHub(proxyhubname: string, eventName: string) {\r\n this.connection = hubConnection();\r\n this.proxyHub = this.connection.createHubProxy(proxyhubname);\r\n this.eventName = eventName;\r\n this.registerOnserverEvents();\r\n this.startConnection();\r\n this.reConnect();\r\n }\r\n\r\n private startConnection(): void {\r\n this.connection.start()\r\n .done(() => {\r\n this.connectionEvent.emit();\r\n })\r\n .fail((error: any) => {\r\n console.log('Could not connect' + error);\r\n });\r\n }\r\n\r\n //Mozilla SignalR disconnection issue\r\n private reConnect(): void {\r\n this.connection.disconnected(() => {\r\n setTimeout(() => {\r\n this.connection.start().done(() => {\r\n this.proxyHub.on(this.eventName, (filename: string) => {\r\n setTimeout(() => {\r\n if (this.eventName == 'downloadComplete') {\r\n this.downloadCompletedEvent.emit(filename);\r\n }\r\n else if (this.eventName == 'sendProgressFileName') {\r\n this.sendProgressFileNameEvent.emit(filename);\r\n }\r\n else {\r\n this.logoutEvent.emit(filename);\r\n }\r\n }, 1000);\r\n });\r\n })\r\n });\r\n })\r\n }\r\n\r\n private registerOnserverEvents(): void {\r\n this.proxyHub.on(this.eventName, (filename: string) => {\r\n setTimeout(() => {\r\n if (this.eventName == 'downloadComplete') {\r\n this.downloadCompletedEvent.emit(filename);\r\n }\r\n else if (this.eventName == 'sendProgressFileName') {\r\n this.sendProgressFileNameEvent.emit(filename);\r\n }\r\n else {\r\n this.logoutEvent.emit(filename);\r\n }\r\n }, 1000);\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PortalSettingsService } from './portal-settings.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TimeParserService {\r\n\tportalSettings: any;\r\n\ttime24HourMode: boolean;\r\n\r\n\tconstructor(portalSettingsService: PortalSettingsService) {\r\n\t\tthis.portalSettings = portalSettingsService.getPortalSettings();\r\n\t\tthis.time24HourMode = this.portalSettings.Timecard24Hours.ConfigValue == \"1\";\r\n }\r\n\r\n parseTime(str: any) {\r\n var DateJs = Date;\r\n try {\r\n if (str == '' || str == null) return null;\r\n return DateJs.parseExact(str, \"HH\") || DateJs.parseExact(str, \"H\")\r\n || DateJs.parseExact(str, \"hh:mm tt\")\r\n || DateJs.parseExact(str, \"h:mm tt\")\r\n || DateJs.parseExact(str, \"h:mmtt\")\r\n || DateJs.parseExact(str, \"h:mm\")\r\n || DateJs.parseExact(str, \"h tt\")\r\n || DateJs.parseExact(str, \"htt\")\r\n || DateJs.parseExact(str, \"h\")\r\n || DateJs.parseExact(str, \"HH:mm\");\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n parseStartStop(value: any, mode: string, strict: boolean = false) {\r\n\t\tif (value != null && value != \"\") {\r\n\t\t\tif (value.length > 8) {\r\n\t\t\t\tvalue = value.substr(value.lastIndexOf(\" \") + 1);\r\n\t\t\t}\r\n\t\t\tlet timeStr = value;\r\n\t\t\ttimeStr = timeStr.trim().replace(\" \", \"\");\r\n\t\t\tlet timeOfDay = timeStr.toUpperCase().indexOf('A') != -1\r\n\t\t\t\t? 'AM'\r\n\t\t\t\t: timeStr.toUpperCase().indexOf('P') != -1\r\n\t\t\t\t\t? 'PM' : null;\r\n\t\t\t//detect non-colon time\r\n\t\t\tif (timeOfDay == null && timeStr.trim().length > 2 && timeStr.indexOf(\":\") == -1) {\r\n\t\t\t\ttimeStr = timeStr.slice(0, timeStr.length - 2) + \":\" + timeStr.slice(timeStr.length - 2);\r\n\t\t\t}\r\n\t\t\telse if (timeStr.length > 4 && timeStr.indexOf(\":\") == -1) {\r\n\t\t\t\tlet tempTimeStr = timeStr.toLowerCase();\r\n\t\t\t\ttempTimeStr = tempTimeStr.replace(\" \", \"\").replace(\"am\", \"\").replace(\"pm\", \"\").trim();\r\n\t\t\t\ttempTimeStr = tempTimeStr.slice(0, tempTimeStr.length - 2) + \":\" + tempTimeStr.slice(tempTimeStr.length - 2);\r\n\t\t\t\ttimeStr = tempTimeStr + \" \" + timeOfDay;\r\n\t\t\t}\r\n\t\t\tlet timeObj = this.parseTime(timeStr);\r\n\t\t\tlet isValid = timeStr != '' && timeObj != null;\r\n\t\t\tif (isValid) {\r\n\t\t\t\t//Adjust time of new entries based on if the entry was Start or Stop\r\n\t\t\t\tif (timeOfDay == null && !this.time24HourMode) {\r\n\t\t\t\t\tif (mode == \"StartTime\") {\r\n\t\t\t\t\t\t//hours format\r\n\t\t\t\t\t\tif (timeStr >= 1 && timeStr <= 5) {\r\n\t\t\t\t\t\t\ttimeObj.addHours(12);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//colon format\r\n\t\t\t\t\t\tlet tempTimeStr = timeStr.replace(\":\", \"\");\r\n\t\t\t\t\t\tif (tempTimeStr >= 100 && tempTimeStr <= 559) {\r\n\t\t\t\t\t\t\ttimeObj.addHours(12);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (mode == \"StopTime\") {\r\n\t\t\t\t\t\t//hours format\r\n\t\t\t\t\t\tif (timeStr >= 1 && timeStr <= 8) {\r\n\t\t\t\t\t\t\ttimeObj.addHours(12);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//colon format\r\n\t\t\t\t\t\tlet tempTimeStr = timeStr.replace(\":\", \"\");\r\n\t\t\t\t\t\tif (tempTimeStr >= 100 && tempTimeStr <= 859) {\r\n\t\t\t\t\t\t\ttimeObj.addHours(12);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tlet newTimeStr;\r\n\t\t\t\tif (this.time24HourMode)\r\n\t\t\t\t\tnewTimeStr = timeObj.toString('HH:mm');\r\n\t\t\t\telse\r\n\t\t\t\t\tnewTimeStr = timeObj.toString('hh:mm tt');\r\n\t\t\t\tif (timeStr != newTimeStr) {\r\n\t\t\t\t\treturn newTimeStr\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (strict)\r\n\t\t\t\treturn \"Invalid Time\";\r\n\r\n\t\t\treturn timeStr;\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tconvertTimeString(timeStr) {\r\n\t\tlet hours = parseInt(timeStr.substr(0, timeStr.indexOf(\":\")));\r\n\t\tlet minutes = parseInt(timeStr.substr(timeStr.indexOf(\":\") + 1, 2));\r\n\t\tif (timeStr.indexOf(\"PM\") > -1) {\r\n\t\t\t//do not add 12 to noon\r\n\t\t\tif (hours != 12)\r\n\t\t\t\thours += 12\r\n\t\t}\r\n\t\telse {\r\n\t\t\t//handle midnight\r\n\t\t\tif (hours == 12) {\r\n\t\t\t\thours = 0;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn hours + minutes / 60;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { EmployeeInfoService } from './employee-info.service';\r\nimport { EventService } from './event.service';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TimeoutModalComponent } from '../../modals/shared/timeout-modal/timeout-modal.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TimeoutService {\r\n\r\n //How frequently to check for session expiration in milliseconds\r\n private sess_pollInterval: number = 10000;\r\n //Minutes the session is valid\r\n private sess_expiration: number;\r\n //Minutes before the warning\r\n private sess_warning: number;\r\n private sess_lastActivity: Date;\r\n private sess_intervalID: any;\r\n private timeoutModalOpen: boolean;\r\n private sess_timedout: boolean;\r\n private isSaving: boolean;\r\n private refreshingTimeout: boolean;\r\n private http: HttpClient;\r\n private employeeInfo: any;\r\n\r\n\r\n constructor(http: HttpClient, employeeInfoService: EmployeeInfoService,\r\n private eventService: EventService, private ngbModalService: NgbModal) {\r\n this.http = http;\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n }\r\n\r\n initializeTimeoutConfig() {\r\n this.http.get(\r\n \"/Admin/GetTimeoutLength\").subscribe((response) => {\r\n var timeoutConfig = response;\r\n this.initTimeout(timeoutConfig);\r\n });\r\n }\r\n\r\n\r\n initTimeout(timeoutConfig: any) {\r\n this.sess_expiration = timeoutConfig;\r\n this.sess_warning = timeoutConfig - 1;\r\n this.initializeTimeout();\r\n }\r\n\r\n sessionTimedOut() {\r\n return this.sess_timedout;\r\n }\r\n\r\n\r\n private initializeTimeout() {\r\n this.sess_lastActivity = new Date();\r\n this.setTimeoutInterval();\r\n }\r\n\r\n private setTimeoutInterval() {\r\n this.sess_intervalID = setInterval(this.timeoutInterval, this.sess_pollInterval);\r\n }\r\n\r\n\r\n private clearTimeoutInterval() {\r\n clearInterval(this.sess_intervalID);\r\n }\r\n\r\n refreshSession() {\r\n this.refreshSessionInternal();\r\n }\r\n\r\n private refreshSessionInternal() {\r\n this.http.post(\"/Account/Refresh\", null, { responseType: 'text' }).subscribe((response: any) => {\r\n this.timeoutModalOpen = false;\r\n this.refreshTimeoutInternal();\r\n });\r\n }\r\n\r\n refreshTimeout() {\r\n this.sess_timedout = false;\r\n this.refreshTimeoutInternal();\r\n }\r\n\r\n private refreshTimeoutInternal() {\r\n this.refreshingTimeout = true;\r\n this.clearTimeoutInterval();\r\n\r\n this.http.get(\"/Admin/GetTimeoutLength\").subscribe((response) => {\r\n var timeoutConfig = Number(response.toString());\r\n this.sess_expiration = timeoutConfig;\r\n this.sess_warning = timeoutConfig - 1;\r\n this.initializeTimeout();\r\n this.refreshingTimeout = false;\r\n });\r\n }\r\n\r\n getLastActivityTime() {\r\n var now = new Date();\r\n var diff = now.valueOf() - this.sess_lastActivity.valueOf();\r\n return diff / 1000 / 60;\r\n }\r\n\r\n getTimeoutConfig() {\r\n return this.sess_expiration;\r\n }\r\n\r\n getRefreshingTimeout() {\r\n return this.refreshingTimeout;\r\n }\r\n\r\n private timeoutInterval = () => {\r\n var now = new Date();\r\n var diff = now.valueOf() - this.sess_lastActivity.valueOf();\r\n var diffMins = (diff / 1000 / 60);\r\n\r\n if (diffMins >= this.sess_warning) {\r\n this.sess_timedout = true;\r\n if (!this.isSaving) {\r\n this.eventService.broadcast('saveTimecard');\r\n this.isSaving = true;\r\n }\r\n if (!this.timeoutModalOpen) {\r\n this.timeoutModalOpen = true;\r\n let modalRef = this.ngbModalService.open(TimeoutModalComponent, { size: 'sm', backdrop: 'static', keyboard: false });\r\n\r\n modalRef.result.then((result) => {\r\n if (result == 'refresh') {\r\n this.refreshSession();\r\n }\r\n else if (result == 'logout') {\r\n this.clearTimeoutInterval();\r\n this.timeoutModalOpen = false;\r\n window.location.href = \"/Account/Logout\";\r\n }\r\n });\r\n }\r\n\r\n if (diffMins >= this.sess_expiration) {\r\n if (this.employeeInfo == null && document.referrer != null) {\r\n if (document.referrer.toLowerCase().indexOf(\"jobdetails\") > -1)\r\n window.location.href = \"/Account/Logout?timedOut=true&applicant=true\";\r\n else\r\n window.location.href = \"/Account/Logout?timedOut=true&onboard=true\";\r\n } else\r\n window.location.href = \"/Account/Logout?timedOut=true\";\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PortalSettingsService } from './portal-settings.service';\r\nimport { EmployeeInfoService } from './employee-info.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n portalSettings: any;\r\n employeeInfo: any;\r\n\r\n constructor(portalSettingsService: PortalSettingsService, employeeInfoService: EmployeeInfoService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n }\r\n\r\n public getDeviceType() {\r\n const ua = navigator.userAgent;\r\n\r\n if (/(tablet|ipad|playbook|silk|Macintosh)|(android(?!.*mobi))/i.test(ua)) {\r\n return \"tablet\";\r\n }\r\n if (/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(ua)) {\r\n return \"mobile\";\r\n }\r\n return \"desktop\";\r\n };\r\n\r\n public isMobileMode() {\r\n if (typeof window.orientation !== \"undefined\")\r\n return true;\r\n var check = false;\r\n ((a) => { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true })(navigator.userAgent || navigator.vendor);\r\n return check;\r\n }\r\n\r\n public getDateFormat() {\r\n if (this.portalSettings.CountryDateCode.ConfigValue == \"AU\" || this.portalSettings.CountryDateCode.ConfigValue == \"CAN\") {\r\n return \"dd/MM/yyyy\";\r\n }\r\n else {\r\n return \"MM/dd/yyyy\";\r\n }\r\n }\r\n\r\n public getDefaultDatepickerOptions(){\r\n let format = this.getDateFormat();\r\n return {\r\n dateInputFormat: format.toUpperCase(),\r\n containerClass: \"theme-blue\",\r\n showTodayButton: true,\r\n showClearButton: true,\r\n clearPosition: \"left\",\r\n showWeekNumbers: false\r\n };\r\n }\r\n\r\n public getTimeSpanInterval() {\r\n let intervalConfig = parseInt(this.portalSettings.TimeSpanInterval.ConfigValue);\r\n if (intervalConfig != 15 && intervalConfig != 30 && intervalConfig != 60) {\r\n intervalConfig = 0;\r\n }\r\n return intervalConfig;\r\n }\r\n\r\n public fadeLabel(status) {\r\n var hour = new Date().getHours();\r\n var APM = \" AM\";\r\n var hourStr, minStr;\r\n hourStr = hour.toString();\r\n if (hour == 24) { hour = 0; APM = \" PM\"; }\r\n if (hour == 12) { APM = \" PM\"; }\r\n if (hour > 12) { hour = hour - 12; APM = \" PM\"; }\r\n if (hour < 10) { hourStr = \"0\" + hour.toString(); }\r\n var min = new Date().getMinutes();\r\n minStr = min.toString();\r\n if (min < 10) { minStr = \"0\" + min.toString() };\r\n var sec = new Date().getSeconds();\r\n if (sec < 10) { minStr = \"0\" + sec.toString() };\r\n return ({ status: (status ? \"success\" : \"danger\"), time: hourStr + \":\" + minStr + \":\" + sec + APM });\r\n }\r\n\r\n public formatAttachmentName(fileName) {\r\n return fileName.substr(0, fileName.lastIndexOf('.')).replace(/[^a-zA-Z0-9]/gi, '') + fileName.substr(fileName.lastIndexOf('.'), fileName.length);\r\n }\r\n\r\n public openModal() {\r\n document.getElementById('modal').style.display = 'block';\r\n document.getElementById('modal').style.left = (window.innerWidth - 200) / 2 + 'px';\r\n document.getElementById('fade').style.display = 'block';\r\n }\r\n\r\n public closeModal() {\r\n document.getElementById('modal').style.display = 'none';\r\n document.getElementById('fade').style.display = 'none';\r\n }\r\n\r\n public getCurrencySymbol() {\r\n var currencyFormatSymbols = this.portalSettings.CurrencyFormatPerPRCo.ConfigValue;\r\n\r\n var currencySymbol = \"$\";\r\n if (currencyFormatSymbols && currencyFormatSymbols.trim() !== \"\") {\r\n currencyFormatSymbols.split(\",\").forEach((val: string) => {\r\n var arrayEntry = val.split(\":\");\r\n var currencyObject = { PRCo: parseInt(arrayEntry[0]), Currency: arrayEntry[1] }\r\n if (this.employeeInfo && currencyObject.PRCo == this.employeeInfo.PRCo) {\r\n currencySymbol = currencyObject.Currency;\r\n }\r\n });\r\n }\r\n\r\n return currencySymbol;\r\n }\r\n\r\n public rdlNameList() {\r\n return {\r\n \"BenefitWindowAuditOverride\": \"BenefitWindowAuditReport.rdl\", \"CrewTimecardReportName\": \"HRIM_CrewTimecard.rdl\", \"DRTOverrideRDL\": \"HRIM_DailyTimeReport.rdl\",\r\n \"DailyHuddleRDLOverRide\": \"HRIM_HuddleDHCompliance.rdl\", \"DailyHuddleTPRDLOverRide\": \"HRIM_HuddleTPCompliance.rdl\", \"DailyReportSSRSOverride\": \"HRIM_DailyReport.rdl\",\r\n \"JCDetailRDLOverride\": \"JCDetail.rdl\", \"JobApprovalReportOverride\": \"HRIM_JobApproval.rdl\", \"POPendingSSRSOverride\": \"HRIM_PendingPurchaseOrder.rdl\", \"JCDetailRDLOverrideNexGen\": \"JobCostDetail.rdl\",\r\n \"POSSRSOverride\": \"HRIM_PurchaseOrder.rdl\", \"RDLOverride\": \"HRIM_ExpenseReport.rdl\", \"ShippingLabelRDLOverride\": \"HRIM_ShippingLabel.rdl\",\r\n \"TimecardRptName\": \"HRIM_Timecard.rdl\", \"TotalCompRptName\": \"HRTotalCompensation.rdl\", \"TrainingRosterRDLOverride\": \"HRIM_TrainingRoster.rdl\", \"TimecardAuditOverride\": \"HRIM_TimecardAudit.rdl\",\r\n \"TrainingTranscriptRDLOverride\": \"HRIM_TrainingTranscript.rdl\", \"WorkCompleteRDL\": \"HRIM_SMWorkCompleted.rdl\", \"SMForm\": \"HRIM_SMForm.rdl\", \"1\": \"1095CIndividual.rdl\", \"2\": \"BenefitExport.rdl\", \"3\": \"BenefitsGrid.rdl\", \"4\": \"ChecklistExport.rdl\",\r\n \"5\": \"HRIM_ADGetPaperConsent.rdl\", \"6\": \"HRIM_ApplicantSummary.rdl\", \"7\": \"HRIM_BulletinExport.rdl\", \"8\": \"HRIM_Checklist.rdl\", \"10\": \"HRIM_DailySchedulePrint.rdl\",\r\n \"11\": \"HRIM_DailyTimecardPrint.rdl\", \"22\": \"HRIM_I9.rdl\", \"12\": \"HRIM_I9Page2.rdl\", \"13\": \"HRIM_JobTemplate.rdl\", \"14\": \"HRIM_OnBoarding.rdl\", \"15\": \"HRIM_PerformanceGraph.rdl\",\r\n \"16\": \"HRIM_PerformanceReview.rdl\", \"17\": \"HRIM_PerformanceTabular.rdl\", \"18\": \"HRIM_ReqSummary.rdl\", \"19\": \"HRIM_SelfIdentify.rdl\", \"20\": \"HRIM_TrainingExport.rdl\",\r\n \"21\": \"HRIM_UnapprovedBenefitRequests.rdl\", \"23\": \"HRIM_W4.rdl\", \"24\": \"HRIM_W4es.rdl\", \"25\": \"HRIM_W4Template.rdl\", \"26\": \"RMProjectSchedule.rdl\", \"27\": \"RMRoleSchedule.rdl\", \"28\": \"HRIM_W4_2020.rdl\",\r\n \"30\": \"HRIM_ApplicantExport.rdl\", \"31\": \"HRIM_ApplicantActiveStatusSummary.rdl\", \"32\": \"HRIM_ApplicantDemographics.rdl\", \"33\": \"HRIM_ApplicantSourcing.rdl\",\r\n \"34\": \"HRIM_ApplicantTimeToHire.rdl\", \"35\": \"HRIM_SelfIdentify_2020.rdl\", \"36\": \"HRIM_ApplicantOfferToHire.rdl\", \"37\": \"1095CIndividual2020.rdl\", \"38\": \"HRIM_SelfIdentify_2023.rdl\",\r\n \"39\": \"HRIM_I9Nov2023.rdl\", \"40\": \"HRIM_I9SupA.rdl\", \"41\": \"HRIM_I9SupB.rdl\"\r\n };\r\n }\r\n\r\n public checkFileExtension(fileType) {\r\n if (fileType != null &&\r\n (fileType.toLowerCase() == \"pdf\" || fileType.toLowerCase() == \".pdf\" ||\r\n fileType.toLowerCase() == \"jpg\" || fileType.toLowerCase() == \".jpg\" ||\r\n fileType.toLowerCase() == \"jpeg\" || fileType.toLowerCase() == \".jpeg\" ||\r\n fileType.toLowerCase() == \"png\" || fileType.toLowerCase() == \".png\" ||\r\n fileType.toLowerCase() == \"gif\" || fileType.toLowerCase() == \".gif\" ||\r\n fileType.toLowerCase() == \"tiff\" || fileType.toLowerCase() == \".tiff\" ||\r\n fileType.toLowerCase() == \"tif\" || fileType.toLowerCase() == \".tif\" ||\r\n fileType.toLowerCase() == \"bmp\" || fileType.toLowerCase() == \".bmp\"))\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n public base64ArrayBuffer(arrayBuffer: any) {\r\n var base64 = ''\r\n var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\r\n\r\n var bytes = new Uint8Array(arrayBuffer)\r\n var byteLength = bytes.byteLength\r\n var byteRemainder = byteLength % 3\r\n var mainLength = byteLength - byteRemainder\r\n\r\n var a, b, c, d\r\n var chunk\r\n\r\n // Main loop deals with bytes in chunks of 3\r\n for (var i = 0; i < mainLength; i = i + 3) {\r\n // Combine the three bytes into a single integer\r\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]\r\n\r\n // Use bitmasks to extract 6-bit segments from the triplet\r\n a = (chunk & 16515072) >> 18 // 16515072 = (2^6 - 1) << 18\r\n b = (chunk & 258048) >> 12 // 258048 = (2^6 - 1) << 12\r\n c = (chunk & 4032) >> 6 // 4032 = (2^6 - 1) << 6\r\n d = chunk & 63 // 63 = 2^6 - 1\r\n\r\n // Convert the raw binary segments to the appropriate ASCII encoding\r\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]\r\n }\r\n\r\n // Deal with the remaining bytes and padding\r\n if (byteRemainder == 1) {\r\n chunk = bytes[mainLength]\r\n\r\n a = (chunk & 252) >> 2 // 252 = (2^6 - 1) << 2\r\n\r\n // Set the 4 least significant bits to zero\r\n b = (chunk & 3) << 4 // 3 = 2^2 - 1\r\n\r\n base64 += encodings[a] + encodings[b] + '=='\r\n } else if (byteRemainder == 2) {\r\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]\r\n\r\n a = (chunk & 64512) >> 10 // 64512 = (2^6 - 1) << 10\r\n b = (chunk & 1008) >> 4 // 1008 = (2^6 - 1) << 4\r\n\r\n // Set the 2 least significant bits to zero\r\n c = (chunk & 15) << 2 // 15 = 2^4 - 1\r\n\r\n base64 += encodings[a] + encodings[b] + encodings[c] + '='\r\n }\r\n\r\n return base64\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpHandler,\r\n HttpRequest,\r\n} from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n/** Pass untouched request through to the next request handler. */\r\n@Injectable()\r\nexport class XSRFHeaderInterceptor implements HttpInterceptor {\r\n intercept(\r\n req: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n const modifiedReq = req.clone({\r\n headers: req.headers\r\n .set(\r\n \"X-XSRF-Token\",\r\n $('input[name=\"__RequestVerificationToken\"]').val().toString()\r\n )\r\n .set(\"Cache-Control\", \"no-cache\")\r\n .set(\"Pragma\", \"no-cache\"),\r\n });\r\n return next.handle(modifiedReq);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n//services\r\nimport { TimeoutService } from '../../core/services/timeout.service';\r\n\r\n@Component({\r\n selector: 'app-home-layout',\r\n templateUrl: './home-layout.component.html',\r\n styleUrls: ['./home-layout.component.css']\r\n})\r\n\r\nexport class HomeLayoutComponent implements OnInit {\r\n\r\n constructor(private timeoutService: TimeoutService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.timeoutService.initializeTimeoutConfig();\r\n }\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ngfModule } from 'angular-file';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AppRoutingModule } from '.././app-routing.module';\r\nimport { HomeLayoutComponent } from './home-layout/home-layout.component';\r\nimport { OnboardingLayoutComponent } from './onboarding-layout/onboarding-layout.component';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { ModalsModule } from '../modals/modals.module';\r\nimport { NavigationComponent } from '../core/components/navigation/navigation.component';\r\nimport { OfficeNavComponent } from '../core/components/office-nav/office-nav.component';\r\nimport { OfficeLayoutComponent } from './office-layout/office-layout.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n OnboardingLayoutComponent,\r\n NavigationComponent,\r\n HomeLayoutComponent,\r\n OfficeNavComponent,\r\n OfficeLayoutComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n ModalsModule,\r\n AppRoutingModule,\r\n ngfModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n HomeLayoutComponent,\r\n OnboardingLayoutComponent,\r\n OfficeLayoutComponent\r\n ]\r\n})\r\nexport class LayoutModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n//services\r\nimport { TimeoutService } from '../../core/services/timeout.service';\r\n\r\n@Component({\r\n selector: 'app-office-layout',\r\n templateUrl: './office-layout.component.html',\r\n styleUrls: ['./office-layout.component.css']\r\n})\r\nexport class OfficeLayoutComponent implements OnInit {\r\n noNav: boolean;\r\n\r\n constructor(private timeoutService: TimeoutService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (window.location.pathname == \"/reportgateway/index\")\r\n this.noNav = true;\r\n this.timeoutService.initializeTimeoutConfig();\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { PortalSettingsService } from '../../core/services/portal-settings.service';\r\nimport { EventService } from 'src/app/core/services/event.service';\r\nimport { HomeService } from '../../pages/home/services/home.service';\r\n\r\n@Component({\r\n selector: 'app-onboarding-layout',\r\n templateUrl: './onboarding-layout.component.html',\r\n styleUrls: ['./onboarding-layout.component.css']\r\n})\r\nexport class OnboardingLayoutComponent implements OnInit {\r\n portalSettings: any;\r\n isSafari: boolean;\r\n isMobileIos: any;\r\n showLogout: boolean = false;\r\n showAT: boolean = false;\r\n showON: boolean = false;\r\n oNLogoCo: number;\r\n portalName: string;\r\n logoUrl: string;\r\n\r\n constructor(portalSettingsService: PortalSettingsService, private homeService: HomeService, private eventService: EventService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.oNLogoCo = this.portalSettings.OnboardingLogoCo.ConfigValue;\r\n this.isSafari = navigator.userAgent.indexOf(\"Safari\") > -1;\r\n this.isMobileIos = navigator.userAgent.match(/(iPad|iPhone|iPod touch);.*(OS 7_|OS 8_|OS 9_|OS 10_|OS 11_|OS 12_\\d)/i);\r\n if (this.isMobileIos != null && this.isSafari) {\r\n $('#NavBar').addClass('mobileSafari');\r\n }\r\n this.logoUrl = \"/Company/GetLogo?co=\" + this.oNLogoCo + \"&size=S\";\r\n if (window.location.pathname.toLowerCase().indexOf(\"welcome\") == -1) {\r\n this.showLogout = true;\r\n }\r\n this.eventService.on('ISAT', () => {\r\n this.showAT = true;\r\n this.showON = false;\r\n });\r\n this.eventService.on('ISON', () => {\r\n this.showAT = false;\r\n this.showON = true;\r\n });\r\n this.getPortalName();\r\n }\r\n\r\n getPortalName() {\r\n this.homeService.getPortalName(this.oNLogoCo).then((response) => {\r\n this.portalName = response == \"\" ? null : response;\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-delete-bulletin-modal',\r\n templateUrl: './delete-bulletin-modal.component.html',\r\n styleUrls: ['./delete-bulletin-modal.component.css']\r\n})\r\nexport class DeleteBulletinModalComponent {\r\n @Input() bulletinHeader: string;\r\n\r\n constructor(private ngbActiveModal:NgbActiveModal) { }\r\n\r\n deleteClicked() {\r\n this.ngbActiveModal.close('delete');\r\n };\r\n\r\n cancelClicked() {\r\n this.ngbActiveModal.close('cancel');\r\n };\r\n\r\n}\r\n","
\r\n

Delete Bulletin

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

\r\n Are you sure you want to delete the bulletin \"{{bulletinHeader}}\" ?\r\n

\r\n
\r\n\r\n
\r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-delete-user-group-members-modal',\r\n templateUrl: './delete-user-group-members-modal.component.html',\r\n styleUrls: ['./delete-user-group-members-modal.component.css']\r\n})\r\nexport class DeleteUserGroupMembersModalComponent implements OnInit {\r\n\r\n constructor(private ngbActiveModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n deleteClicked() {\r\n this.ngbActiveModal.close(\"delete\");\r\n}\r\n\r\n cancelClicked() {\r\n this.ngbActiveModal.close(\"cancel\");\r\n }\r\n}\r\n","
\r\n

Delete Category

\r\n
\r\n
\r\n Are you sure you to DELETE this category?\r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { catchError, debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\r\nimport { OrderByPipe } from './../../../../shared/pipe/order-by.pipe';\r\nimport { EmployeeService } from '../../../../pages/employee/services/employee.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { concat } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-edit-vendor-modal',\r\n templateUrl: './edit-vendor-modal.component.html',\r\n styleUrls: ['./edit-vendor-modal.component.css']\r\n})\r\nexport class EditVendorModalComponent implements OnInit {\r\n @Input() data: any;\r\n orderByPipe: any;\r\n selectedPRGroup: any = {};\r\n prGroupObservables: any = {};\r\n\r\n constructor(private employeeService: EmployeeService, public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n this.orderByPipe = new OrderByPipe();\r\n this.registerObservables();\r\n }\r\n\r\n registerObservables() {\r\n this.prGroupObservables[\"prGroupInput$\"] = new Subject();\r\n this.prGroupObservables[\"prGroup$\"] = new Observable();\r\n this.prGroupObservables[\"prGroup$\"] = concat(\r\n this.prGroupObservables[\"prGroupInput$\"].pipe(\r\n debounceTime(500),\r\n distinctUntilChanged(),\r\n switchMap(async (term: any) => {\r\n let result: any = await this.employeeService.getVendors(term);\r\n result.forEach((val: any, key) => {\r\n val.VendorFullName = val.VendorName + \" (Group \" + val.VendorGroup + \")\";\r\n })\r\n return result;\r\n })\r\n )\r\n );\r\n }\r\n\r\n public saveClicked() {\r\n this.data.ExpenseAPVMKeyID = this.selectedPRGroup.Value.APVMKeyID;\r\n this.activeModal.close(\"save\");\r\n };\r\n\r\n public cancelClicked() {\r\n this.activeModal.close(\"cancel\");\r\n };\r\n}\r\n","
\r\n

Update Vendor

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { catchError, debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\r\nimport { OrderByPipe } from './../../../../shared/pipe/order-by.pipe';\r\nimport { EmployeeService } from '../../../../pages/employee/services/employee.service';\r\nimport { PortalSettingsService } from '../../../../core/services/portal-settings.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EventService } from '../../../../core/services/event.service';\r\nimport { concat } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-expense-approval-modal',\r\n templateUrl: './expense-approval-modal.component.html',\r\n styleUrls: ['./expense-approval-modal.component.css']\r\n})\r\nexport class ExpenseApprovalModalComponent implements OnInit {\r\n @Input() data: any; //was alldata\r\n @Input() mode: any;\r\n @Input() currentPageData: any;\r\n @Input() single: any;\r\n portalSettings: any;\r\n formData: { [key: string]: any } = {};\r\n allCount: number;\r\n pageCount: number;\r\n submitString: string;\r\n Reviewer: any;\r\n reviewerList: any;\r\n ReviewerOnSubmit: boolean;\r\n isRequestSubmitted: boolean;\r\n multi: boolean;\r\n approverList: any;\r\n reviewerObservables: any = {};\r\n\r\n constructor(portalSettingsService: PortalSettingsService, private employeeService: EmployeeService, public activeModal: NgbActiveModal, private eventService: EventService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formData.Notes = null;\r\n this.allCount = 0;\r\n this.pageCount = 0;\r\n this.submitString = \"\";\r\n this.formData.selectedReviewer = {};\r\n this.Reviewer = [];\r\n this.reviewerList = [];\r\n this.ReviewerOnSubmit = this.portalSettings.ReviewerOnSubmit.ConfigValue == \"1\";\r\n this.isRequestSubmitted = false;\r\n\r\n if (this.single != null && this.ReviewerOnSubmit)\r\n this.GetApprovalHistoryByItem();\r\n\r\n this.data.forEach((val: any) => {\r\n if (val.Selected)\r\n this.allCount++;\r\n });\r\n\r\n this.currentPageData.forEach((val: any) => {\r\n if (val.Selected)\r\n this.pageCount++;\r\n });\r\n\r\n if (this.pageCount < this.allCount && this.single == null)\r\n this.multi = true;\r\n else\r\n this.multi = false;\r\n }\r\n\r\n registerObservables() {\r\n this.reviewerObservables[\"ReviewerInput$\"] = new Subject();\r\n this.reviewerObservables[\"Reviewer$\"] = concat(\r\n this.reviewerObservables[\"ReviewerInput$\"].pipe(\r\n debounceTime(500),\r\n distinctUntilChanged(),\r\n switchMap(async (term: any) => {\r\n let result: any = await this.employeeService.getReviewers(this.formData.selectedReviewer.Label);\r\n return result;\r\n })\r\n )\r\n );\r\n }\r\n\r\n private GetApprovalHistoryByItem() {\r\n this.employeeService.getApprovalHistoryByItem(this.single.ExpenseItemID).then((response: any) => {\r\n this.approverList = response;\r\n })\r\n }\r\n\r\n public addReviewer() {\r\n this.reviewerList.push({ reviewer: this.formData.selectedReviewer.Value, reviewerName: this.formData.selectedReviewer.Label });\r\n this.formData.selectedReviewer = null;\r\n }\r\n\r\n public removeReviewer(data, index) {\r\n this.reviewerList = [];\r\n }\r\n\r\n public pageClicked(type) {\r\n this.isRequestSubmitted = true;\r\n this.submitString = \"\";\r\n if (this.single == null) {\r\n this.data.forEach((val: any) => {\r\n if (val.Selected) {\r\n this.submitString += val.ExpenseItemID + \",\";\r\n this.eventService.broadcast('expenseMinus');\r\n }\r\n })\r\n } else {\r\n this.submitString = this.single.ExpenseItemID;\r\n this.eventService.broadcast('expenseMinus');\r\n }\r\n if (type == \"A\" && this.reviewerList.length > 0) {\r\n this.employeeService.addReviewer(this.submitString, this.reviewerList[0].reviewer.Reviewer).then((response: any) => {\r\n this.employeeService.approveItems(this.submitString, type, this.formData.Notes).then((response2: any) => {\r\n this.activeModal.close({ status: response2.success, type: type, error: response2.error });\r\n });\r\n });\r\n } else {\r\n this.employeeService.approveItems(this.submitString, type, this.formData.Notes).then((response: any) => {\r\n this.activeModal.close({ status: response.success, type: type, error: response.error });\r\n });\r\n }\r\n }\r\n\r\n public cancelClicked() {\r\n this.activeModal.close();\r\n }\r\n}\r\n","
\r\n

Expense Approval

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

You are about to approve multiple expense items.

\r\n

0\">Selected items on this page: {{pageCount}}

\r\n

All unapproved items: {{allCount}}

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

This action will approvereject the expense line(s) selected.

\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 { Component, OnInit, Input } from '@angular/core';\r\nimport { EmployeeService } from '../../../../pages/employee/services/employee.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UtilityService } from '../../../../core/services/utility.service';\r\n\r\n@Component({\r\n selector: 'app-manage-cat-modal',\r\n templateUrl: './manage-cat-modal.component.html',\r\n styleUrls: ['./manage-cat-modal.component.css']\r\n})\r\nexport class ManageCatModalComponent implements OnInit {\r\n formData: { [key: string]: any } = {};\r\n catList: any;\r\n lastSave: { [key: string]: any } = {};\r\n labelFade: any;\r\n\r\n constructor(private utilityService: UtilityService, private employeeService: EmployeeService, public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n this.getCat();\r\n }\r\n\r\n public getCat() {\r\n this.employeeService.getCategory().then((response: any) => {\r\n this.catList = response;\r\n })\r\n }\r\n\r\n public deleteTrigger(data, type) {\r\n if (type == \"yes\")\r\n data.deleteTrigger = true;\r\n else\r\n data.deleteTrigger = false;\r\n }\r\n\r\n public addCat() {\r\n this.employeeService.catgAddEdit(-1, this.formData.newName, true).then((response: any) => {\r\n this.saveLabel(response.success);\r\n this.formData.newName = null;\r\n this.getCat();\r\n })\r\n }\r\n\r\n public updateCat(data) {\r\n this.employeeService.catgAddEdit(data.ExpenseCatgID, data.ExpenseCatgName, data.IsActive).then((response: any) => {\r\n this.saveLabel(response.success);\r\n })\r\n }\r\n\r\n public deleteCat(data) {\r\n this.employeeService.catgDelete(data.ExpenseCatgID).then((response: any) => {\r\n this.saveLabel(response.success);\r\n this.getCat();\r\n })\r\n }\r\n\r\n public saveLabel(status: boolean) {\r\n this.labelFade = false;\r\n this.lastSave = this.utilityService.fadeLabel(status);\r\n setTimeout(() => {\r\n this.labelFade = true;\r\n }, 2000);\r\n }\r\n\r\n public closeClicked() {\r\n this.activeModal.close();\r\n }\r\n}\r\n","
\r\n

Manage Expense Categories

\r\n Save Successful - {{lastSave.time}}\r\n Save Fail - {{lastSave.time}}\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
Please add a category from the top.
\r\n 0\">\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
Category Name
Active
\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
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { OrderByPipe } from './../../../../shared/pipe/order-by.pipe';\r\nimport { EmployeeService } from '../../../../pages/employee/services/employee.service';\r\nimport { PortalSettingsService } from '../../../../core/services/portal-settings.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EventService } from '../../../../core/services/event.service';\r\nimport { UtilityService } from '../../../../core/services/utility.service';\r\n\r\n@Component({\r\n selector: 'app-manage-mileage-rate-modal',\r\n templateUrl: './manage-mileage-rate-modal.component.html',\r\n styleUrls: ['./manage-mileage-rate-modal.component.css']\r\n})\r\nexport class ManageMileageRateModalComponent implements OnInit {\r\n formData: { [key: string]: any } = {};\r\n rateList: any;\r\n lastSave: { [key: string]: any } = {};\r\n labelFade: any;\r\n\r\n constructor(private utilityService: UtilityService, private employeeService: EmployeeService, public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n this.getRate()\r\n }\r\n\r\n public getRate() {\r\n this.employeeService.getMileageRate().then((response: any) => {\r\n this.rateList = response;\r\n })\r\n }\r\n\r\n public deleteTrigger(data, type) {\r\n if (type == \"yes\")\r\n data.deleteTrigger = true;\r\n else\r\n data.deleteTrigger = false;\r\n }\r\n\r\n public addEditCat(data?: any) {\r\n this.employeeService.addEditMileageRate((data == null ? -1 : data.ExpenseMileageRateID), (data == null ? this.formData.newRate : data.MileageRate), (data == null ? this.formData.newDescription : data.RateDescription), (data == null ? this.formData.newPRCo : data.PRCo)).then((response: any) => {\r\n this.saveLabel(response.success);\r\n this.formData.newRate = null;\r\n this.formData.newDescription = null;\r\n this.formData.newPRCo = null;\r\n this.getRate();\r\n })\r\n }\r\n\r\n public deleteCat(data) {\r\n this.employeeService.deleteMileageRate(data.ExpenseMileageRateID).then((response: any) => {\r\n this.saveLabel(response.success);\r\n this.getRate();\r\n })\r\n }\r\n\r\n public saveLabel(status: boolean) {\r\n this.labelFade = false;\r\n this.lastSave = this.utilityService.fadeLabel(status);\r\n setTimeout(() => {\r\n this.labelFade = true;\r\n }, 2000);\r\n }\r\n\r\n public closeClicked() {\r\n this.activeModal.close();\r\n }\r\n}\r\n","
\r\n

Manage Mileage Rates

\r\n Save Successful - {{lastSave.time}}\r\n Save Fail - {{lastSave.time}}\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
Please add a mileage rate from the top.
\r\n 0\">\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
PRCo
\r\n
\r\n
Mileage Rate
\r\n
\r\n
Rate 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 \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 { Component, OnInit, Input } from '@angular/core';\r\nimport { EmployeeService } from '../../../../pages/employee/services/employee.service';\r\nimport { PortalSettingsService } from '../../../../core/services/portal-settings.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UtilityService } from '../../../../core/services/utility.service';\r\nimport moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-process-expense-modal',\r\n templateUrl: './process-expense-modal.component.html',\r\n styleUrls: ['./process-expense-modal.component.css']\r\n})\r\nexport class ProcessExpenseModalComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() prco: any;\r\n @Input() prGroup: any;\r\n @Input() type: any;\r\n portalSettings: any;\r\n monthFormat: string;\r\n exAddAPReftoPosting: boolean;\r\n showAPRef: boolean;\r\n formData: { [key: string]: any } = {};\r\n ProcessType: any;\r\n defaultEarnCode: any;\r\n approvedCount: number;\r\n unApprovedCount: number;\r\n sum: number;\r\n payPeriodList: any;\r\n paySeqList: any;\r\n earnCodeList: any;\r\n currencySymbol: string;\r\n submitString: any;\r\n datePickerOptionsMonth: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean; setViewMode: string };\r\n vendorList: any;\r\n\r\n constructor(private employeeService: EmployeeService, public activeModal: NgbActiveModal, portalSettingsService: PortalSettingsService, private utilityService: UtilityService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.currencySymbol = this.utilityService.getCurrencySymbol();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.datePickerOptionsMonth = { dateInputFormat: \"MM/YYYY\", containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false, setViewMode: \"month\" };\r\n this.exAddAPReftoPosting = this.portalSettings.ExAddAPReftoPosting.ConfigValue == \"1\"\r\n this.showAPRef = this.portalSettings.ExAddAPReftoPosting.ConfigValue == \"1\" && this.portalSettings.ExpensePostingType.ConfigValue.toLowerCase() != \"p\";\r\n this.formData.aPRef = null;\r\n this.ProcessType = this.type != \"C\" ? this.portalSettings.ExpensePostingType.ConfigValue : this.type;\r\n this.defaultEarnCode = this.portalSettings.EXCompanyEarnCodeMapping.ConfigValue;\r\n this.formData.SelectedPayPeriod = null;\r\n this.formData.SelectedPaySeq = null;\r\n this.formData.SelectedEarnCode = null;\r\n this.formData.SelectedVendor = null;\r\n this.approvedCount = 0;\r\n this.unApprovedCount = 0;\r\n this.sum = 0.0;\r\n this.submitString = \"\";\r\n\r\n this.data.forEach((val: any, key) => {\r\n if (val.Selected) {\r\n if (val.IsApproved) {\r\n this.approvedCount++;\r\n } else {\r\n this.unApprovedCount++;\r\n }\r\n this.sum += val.Amount;\r\n }\r\n })\r\n\r\n this.getPayPeriods();\r\n this.getEarnCodes();\r\n if (this.type == \"C\")\r\n this.getCreditCardVendors();\r\n }\r\n\r\n public getPayPeriods() {\r\n this.employeeService.getPayPeriods(this.prco, this.prGroup).then((response: any) => {\r\n this.payPeriodList = response;\r\n })\r\n }\r\n\r\n public getPaySeq() {\r\n this.employeeService.getPaySeq(this.formData.SelectedPayPeriod.PRPCKeyID).then((response: any) => {\r\n this.paySeqList = response;\r\n })\r\n }\r\n\r\n private getEarnCodes() {\r\n this.employeeService.getEarnCodes(this.prco).then((response: any) => {\r\n this.earnCodeList = response;\r\n this.earnCodeList.forEach((val: any, key) => {\r\n if (val.IsDefault)\r\n this.formData.SelectedEarnCode = val.EarnCode;\r\n val.DisplayName = val.EarnCode + ' - ' + val.EarnCodeDescription;\r\n });\r\n this.earnCodeList.unshift({\r\n EarnCode: null,\r\n EarnCodeDescription: \"Use Earn Code Specified on Expense Line\",\r\n IsDefault: false,\r\n DisplayName: \"Use Earn Code Specified on Expense Line\"\r\n\r\n });\r\n if (!this.formData.SelectedEarnCode) {\r\n this.formData.SelectedEarnCode = this.earnCodeList[0].EarnCode;\r\n }\r\n })\r\n }\r\n\r\n private getCreditCardVendors() {\r\n this.utilityService.openModal();\r\n this.employeeService.getCreditCardvendors(this.prco).then((response: any)=>{\r\n this.utilityService.closeModal();\r\n if (response != null && response.length > 0) {\r\n this.vendorList = response;\r\n this.formData.SelectedVendor = this.vendorList[0].KeyID;\r\n }\r\n });\r\n}\r\n\r\n public processClicked(method) {\r\n this.utilityService.openModal();\r\n this.data.forEach((val: any, key) => {\r\n if (val.Selected) {\r\n this.submitString += val.ExpenseItemID + \",\";\r\n }\r\n })\r\n if (this.formData.selectedMonth != null) {\r\n if (this.formData.selectedMonth.getDate() > 1) {\r\n this.formData.selectedMonth = new Date(this.formData.selectedMonth.getFullYear(), this.formData.selectedMonth.getMonth(), 1);\r\n }\r\n }\r\n this.employeeService.processExpense(method, (this.formData.SelectedPayPeriod == null ? null : this.formData.SelectedPayPeriod.PRPCKeyID), this.formData.SelectedPaySeq,\r\n this.formData.SelectedEarnCode, this.submitString, this.prco, moment(this.formData.selectedMonth).format(\"YYYY-MM-DD\"), this.formData.aPRef, null, this.formData.SelectedVendor).then((response: any) => {\r\n this.utilityService.closeModal();\r\n this.activeModal.close(response);\r\n })\r\n }\r\n\r\n public onOpenCalendar(container) {\r\n container.monthSelectHandler = (event: any): void => {\r\n container._store.dispatch(container._actions.select(event.date));\r\n };\r\n container.setViewMode('month');\r\n }\r\n\r\n public cancelClicked() {\r\n this.activeModal.close();\r\n }\r\n}\r\n","
\r\n

Move to Batch

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Total # of Items Selected: {{approvedCount+unApprovedCount}}
\r\n
Total Cost of Items Selected: {{sum|currency:currencySymbol}}
\r\n
# of Approved Items: {{approvedCount}}
\r\n
# of Unapproved Items: {{unApprovedCount}}
\r\n
\r\n
\r\n
0\" class=\"alert alert-warning\" role=\"alert\">\r\n You have selected items that are not approved. If you process these items, the manager(s) of the\r\n unapproved employees will not be notified.\r\n
\r\n\r\n
\r\n All selected items have been approved and are ready for processing!\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

Process Expenses via Payroll

\r\n
\r\n
\r\n
\r\n
\r\n This process will create a new timecard batch for the pay period and pay sequence selected\r\n below. Expense items selected will be moved to the batch for subsequent validation and\r\n processing in Vista.\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

Process Expenses via AP

\r\n
\r\n
\r\n
\r\n This process will create a new AP transaction batch for subsequent validation and processing in\r\n Vista. Expense items selected will be moved to the batch as individual invoices for each submitted\r\n expense package.\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

Process Credit Card Transactions

\r\n
\r\n
\r\n
\r\n This process will create a new AP transaction batch for subsequent validation and processing in\r\n Vista. A single invoice will be created with the each expense item as a detail line.\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
0\">\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 { Component, OnInit, Input } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { OrderByPipe } from './../../../../shared/pipe/order-by.pipe';\r\nimport { EmployeeService } from '../../../../pages/employee/services/employee.service';\r\nimport { PortalSettingsService } from '../../../../core/services/portal-settings.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UtilityService } from '../../../../core/services/utility.service';\r\nimport moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-re-process-expense-modal',\r\n templateUrl: './re-process-expense-modal.component.html',\r\n styleUrls: ['./re-process-expense-modal.component.css']\r\n})\r\nexport class ReProcessExpenseModalComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() prco: any;\r\n @Input() prGroup: any;\r\n portalSettings: any;\r\n showAPRef: boolean;\r\n datePickerOptionsMonth: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean; setViewMode: string; adaptivePosition: boolean };\r\n formData: { [key: string]: any } = {};\r\n defaultEarnCode: any;\r\n ProcessType: any;\r\n payPeriodList: any;\r\n paySeqList: any;\r\n earnCodeList: any;\r\n batchListP: any;\r\n batchListA: any;\r\n batchListE: any;\r\n\r\n constructor(private employeeService: EmployeeService, public activeModal: NgbActiveModal, portalSettingsService: PortalSettingsService, private utilityService: UtilityService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.showAPRef = this.portalSettings.ExAddAPReftoPosting.ConfigValue == \"1\" && this.portalSettings.ExpensePostingType.ConfigValue.toLowerCase() != \"p\";\r\n this.datePickerOptionsMonth = { dateInputFormat: \"YYYY/MM\", containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false, setViewMode: \"month\", adaptivePosition: true };\r\n this.formData.aPRef = null;\r\n this.defaultEarnCode = this.portalSettings.EXCompanyEarnCodeMapping.ConfigValue;\r\n this.ProcessType = this.portalSettings.ExpensePostingType.ConfigValue;\r\n this.formData.SelectedBatchP = null;\r\n this.formData.SelectedBatchA = null;\r\n this.formData.SelectedPayPeriod = null;\r\n this.formData.SelectedPaySeq = null;\r\n this.formData.SelectedEarnCode = null;\r\n this.getBatch();\r\n this.getPayPeriods();\r\n this.getEarnCodes();\r\n }\r\n\r\n private getPayPeriods() {\r\n this.employeeService.getPayPeriods(this.prco, this.prGroup).then((response: any) => {\r\n this.payPeriodList = response;\r\n })\r\n }\r\n\r\n public getPaySeq() {\r\n this.employeeService.getPaySeq(this.formData.SelectedPayPeriod.PRPCKeyID).then((response: any) => {\r\n this.paySeqList = response\r\n })\r\n }\r\n\r\n private getEarnCodes() {\r\n this.employeeService.getEarnCodes(this.prco).then((response: any) => {\r\n this.earnCodeList = response;\r\n this.earnCodeList.forEach((val: any, key) => {\r\n if (val.IsDefault)\r\n this.formData.SelectedEarnCode = val.EarnCode;\r\n val.DisplayName = val.EarnCode + ' - ' + val.EarnCodeDescription;\r\n })\r\n this.earnCodeList.unshift({\r\n EarnCode: null,\r\n EarnCodeDescription: \"Use Earn Code Specified on Expense Line\",\r\n IsDefault: false,\r\n DisplayName: \"Use Earn Code Specified on Expense Line\"\r\n\r\n });\r\n if (!this.formData.SelectedEarnCode) {\r\n this.formData.SelectedEarnCode = this.earnCodeList[0].EarnCode;\r\n }\r\n })\r\n }\r\n\r\n private getBatch() {\r\n this.employeeService.getReprocessBatches(this.prco).then((response: any) => {\r\n this.batchListP = [];\r\n this.batchListA = [];\r\n this.batchListE = [];\r\n\r\n response.forEach((val: any, key) => {\r\n val.display = val.BatchID + ' - ' + val.BatchMthDisplay;\r\n if (val.BatchSource == \"P\")\r\n this.batchListP.push(val);\r\n else if (val.BatchSource == \"A\")\r\n this.batchListA.push(val);\r\n else\r\n this.batchListE.push(val);\r\n })\r\n if (this.batchListP.length < 1)\r\n this.batchListP.push({ display: \"No Batch\", HQBCKeyID: null });\r\n if (this.batchListA.length < 1)\r\n this.batchListA.push({ display: \"No Batch\", HQBCKeyID: null });\r\n if (this.batchListE.length < 1)\r\n this.batchListE.push({ display: \"No Batch\", HQBCKeyID: null });\r\n })\r\n }\r\n\r\n public processClicked(type) {\r\n this.employeeService.processExpense(type, null, this.formData.SelectedPaySeq, this.formData.SelectedEarnCode, null, this.prco,\r\n (type == \"E\" ? moment(this.formData.selectedMonthE).format(\"YYYY-MM-DD\") : (type == \"A\" ? moment(this.formData.selectedMonthA).format(\"YYYY-MM-DD\") : \"null\")), this.formData.aPRef,\r\n (type == \"E\" ? this.formData.SelectedBatchE : (type == \"P\" ? this.formData.SelectedBatchP : this.formData.SelectedBatchA))).then((response: any) => {\r\n this.activeModal.close(response);\r\n })\r\n }\r\n\r\n public onOpenCalendar(container) {\r\n container.monthSelectHandler = (event: any): void => {\r\n container._store.dispatch(container._actions.select(event.date));\r\n };\r\n container.setViewMode('month');\r\n }\r\n\r\n public cancelClicked() {\r\n this.activeModal.close();\r\n }\r\n}","
\r\n

Reinitialize Batch

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

Reprocess PR Expenses

\r\n
\r\n
\r\n
\r\n This process will create a new PR Timecard Entry batch with all expense transactions from the selected batch. Use this feature when you accidentally canceled a previous batch prior to finalization.\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

Reprocess AP Expenses

\r\n
\r\n
\r\n
\r\n This process will create a new AP transaction batch containing all expense transactions from the selected batch. Use this feature when you accidentally canceled a previous batch prior to finalization.\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

Reprocess Credit Card Expenses

\r\n
\r\n
\r\n
\r\n This process will create a new Credit Card transaction batch containing all expense transactions from the selected batch. Use this feature when you accidentally canceled a previous batch prior to finalization.\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
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { OrderByPipe } from './../../../../shared/pipe/order-by.pipe';\r\nimport { EmployeeService } from '../../../../pages/employee/services/employee.service';\r\nimport { PortalSettingsService } from '../../../../core/services/portal-settings.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UtilityService } from '../../../../core/services/utility.service';\r\n\r\n@Component({\r\n selector: 'app-send-reminder-expense-modal',\r\n templateUrl: './send-reminder-expense-modal.component.html',\r\n styleUrls: ['./send-reminder-expense-modal.component.css']\r\n})\r\nexport class SendReminderExpenseModalComponent implements OnInit {\r\n @Input() prco: any;\r\n portalSettings: any;\r\n counter: number;\r\n ReminderEmailList: any;\r\n orderByPipe: any;\r\n filterBy: any;\r\n reverse: boolean;\r\n\r\n constructor(private employeeService: EmployeeService, public activeModal: NgbActiveModal, portalSettingsService: PortalSettingsService, private utilityService: UtilityService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.orderByPipe = new OrderByPipe();\r\n this.employeeService.getUnSubmittedExpenseReminder(false, this.prco).then((response: any) => {\r\n this.ReminderEmailList = [];\r\n response.forEach((val: any, key) => {\r\n if (val != null)\r\n this.ReminderEmailList.push(val);\r\n })\r\n\r\n if (this.ReminderEmailList != null) {\r\n this.ReminderEmailList = this.orderByPipe.transform(this.ReminderEmailList, \"FirstName\", this.reverse ? \"asc\" : \"desc\");\r\n this.counter = this.ReminderEmailList.length;\r\n }\r\n })\r\n }\r\n\r\n public reminderClicked() {\r\n this.utilityService.openModal();\r\n this.employeeService.getUnSubmittedExpenseReminder(true, this.prco).then((response: any) => {\r\n this.utilityService.closeModal();\r\n this.activeModal.close();\r\n });\r\n }\r\n\r\n public cancelClicked() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n public sortGridReminder(filterBy) {\r\n if (this.filterBy != filterBy) {\r\n this.filterBy = filterBy;\r\n this.reverse = false;\r\n } else {\r\n this.reverse = !this.reverse;\r\n }\r\n this.ReminderEmailList = this.orderByPipe.transform(this.ReminderEmailList, filterBy, this.reverse ? \"asc\" : \"desc\");\r\n }\r\n}\r\n","
\r\n

Send Email Reminder

\r\n
\r\n
\r\n
\r\n Employees with unsubmitted expenses\r\n
\r\n
0\">\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 Employee\r\n chevron_up_thick\r\n chevron_down_thick\r\n \r\n \r\n \r\n Name\r\n chevron_up_thick\r\n chevron_down_thick\r\n \r\n \r\n \r\n Email\r\n chevron_up_thick\r\n chevron_down_thick\r\n \r\n
{{data.Employee}}{{data.FirstName}} {{data.LastName}}{{data.Email}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n {{counter}} recipients will be notified.\r\n \r\n \r\n
","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { AdminService } from 'src/app/pages/admin/services/admin.service';\r\n@Component({\r\n\tselector: 'app-send-bulletin-email-modal',\r\n\ttemplateUrl: './send-bulletin-email-modal.component.html',\r\n\tstyleUrls: ['./send-bulletin-email-modal.component.css']\r\n})\r\nexport class SendBulletinEmailModalComponent {\r\n\t@Input() bulletin: { [key: string]: any };\r\n\t\r\n\tconstructor(private ngbActiveModal: NgbActiveModal, private adminService: AdminService) { }\r\n\r\n\tsendClicked() {\r\n\t\tthis.adminService.bulletinSendPendingReminder(this.bulletin.BulletinID).then((response: any) => {\r\n\t\t\tif (response.success)\r\n\t\t\t\tthis.ngbActiveModal.close('true');\r\n\t\t\telse\r\n\t\t\t\tthis.ngbActiveModal.close('false');\r\n\t\t});\r\n\t};\r\n\r\n\tcancelClicked() {\r\n\t\tthis.ngbActiveModal.dismiss();\r\n\t};\r\n\r\n}\r\n","
\r\n

Send Reminder

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

This will notify all employees that have not yet signed or acknowledged the following document:

\r\n

{{bulletin.BulletinHeadline}}

\r\n

Continue?

\r\n
\r\n\r\n
\r\n \r\n \r\n
","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgForm } from '@angular/forms';\r\n\r\n//Services\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { HiringService } from './../../../pages/hiring/services/hiring.service';\r\nimport { ApplicantService } from './../../../pages/hiring/services/applicant.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-edit-personal-modal',\r\n templateUrl: './edit-personal-modal.component.html',\r\n styleUrls: ['./edit-personal-modal.component.css']\r\n})\r\n\r\nexport class EditPersonalModalComponent implements OnInit {\r\n @ViewChild('applyForm', { static: true }) applyForm: NgForm;\r\n @Input() isOnboarding: any;\r\n @Input() info: any;\r\n portalSettings: any;\r\n format: string;\r\n formData: { [key: string]: any } = {};\r\n sourceDisplay: { [key: string]: any } = {};\r\n personalInfoRequire: { [key: string]: any } = {};\r\n datePickerOptions: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean };\r\n mobileMode: boolean;\r\n today: any;\r\n requireReqSourceOnJobReq: boolean;\r\n personalInfoRequireList: any[] = [];\r\n stateList: any[] = [];\r\n maritalStatusList: any[] = [];\r\n sourceList: any[] = [];\r\n phoneMask: any;\r\n oNPerInTaskCustomText: any;\r\n\r\n constructor(portalSettingsService: PortalSettingsService, private hiringService: HiringService, private applicantService: ApplicantService, private utilityService: UtilityService, public activeModal: NgbActiveModal) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.format = utilityService.getDateFormat().toUpperCase();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formData = {};\r\n this.sourceDisplay = {};\r\n this.mobileMode = this.utilityService.isMobileMode();\r\n this.datePickerOptions = { dateInputFormat: this.format, containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false };\r\n this.today = new Date();\r\n this.requireReqSourceOnJobReq = this.portalSettings.RequireReqSourceOnJobReq.ConfigValue == 1;\r\n this.personalInfoRequire = { FirstName: false, LastName: false, Email: false, Cell: false, Phone: false, Birthday: false, Contact: false, Address1: false, Address2: false, City: false, State: false, Zip: false, Country: false, MidName: false, Suffix: false, MaritalStatus: false };\r\n this.personalInfoRequireList = (this.info.IsOnboarding ? (this.portalSettings.SetRequireFieldsPersonal.ConfigValue != null ? this.portalSettings.SetRequireFieldsPersonal.ConfigValue.split(',') : []) : (this.portalSettings.ATSSetRequireFieldsPersonal.ConfigValue != null ? this.portalSettings.ATSSetRequireFieldsPersonal.ConfigValue.split(',') : []));\r\n if (this.personalInfoRequireList.length > 0) {\r\n this.personalInfoRequireList.forEach((val: any) => {\r\n this.personalInfoRequire[val] = true;\r\n })\r\n }\r\n this.phoneMask = this.portalSettings.PhoneMask.ConfigValue ? this.portalSettings.PhoneMask.ConfigValue.replace(/9/g, '_') : \"\";\r\n this.oNPerInTaskCustomText = this.portalSettings.ONPerInTaskCustomText.ConfigValue;\r\n this.getPersonalInfo();\r\n this.getVistaOptions();\r\n }\r\n\r\n getPersonalInfo() {\r\n this.applicantService.getPersonalInfo().then((response: any) => {\r\n if (response != null) {\r\n Object.entries(response).forEach(([key, val]) => {\r\n if (!this.formData.hasOwnProperty(key)) {\r\n if (key == \"Birthday\")\r\n this.formData[key] = val != null ? new Date(parseInt(moment(val).utc().format(\"YYYY\")), parseInt(moment(val).utc().format(\"MM\")) - 1, parseInt(moment(val).utc().format(\"DD\")), 0, 0, 0, 0) : null;\r\n else\r\n this.formData[key] = val;\r\n }\r\n });\r\n\r\n if (this.formData.Country == null)\r\n if (this.portalSettings[\"CountryDateCode\"].ConfigValue == \"US\")\r\n this.formData.Country = \"US\";\r\n else if (this.portalSettings[\"CountryDateCode\"].ConfigValue == \"AU\")\r\n this.formData.Country = \"AU\";\r\n else\r\n this.formData.Country = \"CA\";\r\n\r\n this.getState();\r\n this.getMaritalStatus();\r\n }\r\n });\r\n }\r\n\r\n getState() {\r\n this.hiringService.getDependentLookupByColumnName(\"State\", this.formData.Country).then((response: any) => {\r\n this.stateList = response;\r\n });\r\n }\r\n\r\n getMaritalStatus() {\r\n this.hiringService.getMaritalStatus().then((response: any) => {\r\n this.maritalStatusList = response;\r\n });\r\n }\r\n\r\n countryChange() {\r\n this.formData.State = null;\r\n this.formData.Zip = null;\r\n if (this.formData.Country != 'O') {\r\n this.formData.CountryOther = null;\r\n this.getState();\r\n }\r\n }\r\n\r\n getVistaOptions() {\r\n var requestParam = \"reqID=\" + this.info.ReqID + \"&optionType=contactsource\" ;\r\n this.hiringService.getVistaOptions(requestParam).then((response: any) => {\r\n this.sourceList = response;\r\n if (response != null) {\r\n response.forEach((val: any, key: any) => {\r\n this.sourceDisplay[val] = key;\r\n })\r\n }\r\n });\r\n }\r\n\r\n containAt() {\r\n var count = 0;\r\n if (this.formData.Email != null) {\r\n for (var i = 0; i < this.formData.Email.length; i++) {\r\n if (this.formData.Email[i] == \"@\" && i != this.formData.Email.length - 1)\r\n count++;\r\n }\r\n }\r\n if (count == 0)\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n checkContact(where: string) {\r\n if (this.formData.Contact == \"C\" && this.formData.Cell != null && this.formData.Cell != '' && where == \"C\")\r\n this.formData.Contact = null;\r\n if (this.formData.Contact == \"P\" && this.formData.Phone != null && this.formData.Phone != '' && where == \"P\")\r\n this.formData.Contact = null;\r\n }\r\n\r\n saveClicked() {\r\n this.hiringService.personalInfoEdit(this.info.OnboardID, this.formData.FirstName, this.formData.LastName, this.formData.Email, this.formData.Phone, this.formData.Address1, this.formData.Address2, this.formData.City, this.formData.State, this.formData.Cell,\r\n this.formData.Zip, this.formData.Contact, this.formData.ContactSource, this.formData.ContactSourceNotes, null, this.formData.Country, this.formData.MidName, this.formData.Suffix, null, (this.formData.Birthday != null ? moment(this.formData.Birthday).format(\"YYYY-MM-DD\") : \"\"), this.formData.MaritalStatus, this.formData.CountryOther, false, null).then((response: any) => {\r\n this.activeModal.close();\r\n });\r\n }\r\n\r\n cancelClicked = function () {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n updatePhoneAndZip(data: string, field: string) {\r\n switch (field) {\r\n case 'Cell':\r\n this.formData.Cell = data;\r\n break;\r\n case 'Phone':\r\n this.formData.Phone = data;\r\n break;\r\n case 'Zip':\r\n this.formData.Zip = data;\r\n break;\r\n }\r\n }\r\n\r\n}","
\r\n

Personal Info Update

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
today)\">Date of Birth must not be in the future
\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 Cell\r\n Email\r\n Phone\r\n Mail\r\n \r\n
\r\n
\r\n
\r\n
\r\n *\r\n
\r\n today}\"\r\n style=\"background-color:#ffffff\"\r\n name=\"BirthDay\">\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n \r\n {{data.DisplayValue}}\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 {{data.DisplayValue}}\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 USA\r\n CANADA\r\n AUSTRALIA\r\n OTHER\r\n \r\n
\r\n
\r\n *\r\n \r\n
\r\n
\r\n
\r\n
\r\n
0 && !isOnboarding\">\r\n
\r\n \r\n
\r\n
\r\n \r\n {{data.DisplayValue}}\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 { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n//Services\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { SignalRService } from './../../../core/services/signal-r.service';\r\nimport { HiringService } from './../../../pages/hiring/services/hiring.service';\r\n\r\n@Component({\r\n selector: 'app-onboard-submitted-modal',\r\n templateUrl: './onboard-submitted-modal.component.html',\r\n styleUrls: ['./onboard-submitted-modal.component.css']\r\n})\r\nexport class OnboardSubmittedModalComponent implements OnInit {\r\n @Input() loginStatus: any;\r\n @Input() info: any;\r\n @Input() reqID: any;\r\n @Input() status: any;\r\n portalSettings: any;\r\n jobTargetTrackingURL: any;\r\n alert: any;\r\n openModalLeft: any;\r\n\r\n constructor(portalSettingsService: PortalSettingsService, private utilityService: UtilityService, private signalRService: SignalRService, private hiringService: HiringService, public activeModal: NgbActiveModal) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.signalRService.establishHub('progressHub', 'downloadComplete');\r\n }\r\n\r\n ngOnInit(): void {\r\n //SignalR connection\r\n this.signalRService.downloadCompletedEvent.subscribe((filename: any) => {\r\n setTimeout(() => {\r\n this.utilityService.closeModal();\r\n }, 1000);\r\n });\r\n this.jobTargetTrackingURL = this.portalSettings.JobTargetTrackingURL.ConfigValue;\r\n this.openModalLeft = (window.innerWidth - 200) / 2;\r\n if (this.status) {\r\n this.alert = ({ type: \"success\", msg: \"Your tasks are complete - no further action is required.\" });\r\n }\r\n else {\r\n this.alert = ({ type: \"danger\", msg: \"Your tasks were not submitted successfully. Please try again or contact your administrator.\" });\r\n }\r\n }\r\n\r\n closeClicked() {\r\n if (!this.info.IsOnboarding)\r\n window.location.href = \"/Careers/BrowseJobs\";\r\n else\r\n window.location.href = \"/Careers/Welcome\";\r\n }\r\n\r\n returnClicked() {\r\n window.location.href = \"/Hiring/JobReqDetail/#\" + (this.reqID != null ? this.reqID : this.info.ReqID) + \"/JR/stage=/search=\";\r\n }\r\n\r\n downloadRDL() {\r\n this.openModal();\r\n }\r\n\r\n openModal() {\r\n document.getElementById('modal').style.display = 'block';\r\n document.getElementById('modal').style.left = this.openModalLeft + 'px';\r\n document.getElementById('fade').style.display = 'block';\r\n }\r\n}","
\r\n

Thanks for submitting!

\r\n
\r\n
\r\n
\r\n {{alert.msg}}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UtilityService } from 'src/app/core/services/utility.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ChecklistService } from 'src/app/pages/checklist/services/checklist.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-create-new-checklist-modal',\r\n templateUrl: './create-new-checklist-modal.component.html',\r\n styleUrls: ['./create-new-checklist-modal.component.css']\r\n})\r\nexport class CreateNewChecklistModalComponent implements OnInit {\r\n\r\n @Input() mode : any;\r\n mobileMode: boolean = false;\r\n formData: { [key: string]: any } = {};\r\n templates: any[] = [];\r\n templateCategoryIDs: { [key: string]: number } = { \"C\": 1, \"O\": -1, \"P\": -2, \"H\": -4 };\r\n\r\n constructor(private activeModal: NgbActiveModal, private utilityService: UtilityService, private checklistService: ChecklistService) {\r\n this.mobileMode = this.utilityService.isMobileMode();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.utilityService.openModal();\r\n this.getTemplateCategories();\r\n }\r\n\r\n getTemplateCategories() {\r\n this.checklistService.getTemplateCategories(this.templateCategoryIDs[this.mode]).then((response: any) => {\r\n if (response != null && response.length > 0) {\r\n response.forEach((val: any) => {\r\n if (val.ChecklistTemplateIsActive && ((this.mode == 'C' && val.ChecklistTemplateCatgID == 1) || (this.mode == 'H' && val.ChecklistTemplateCatgID == -4)))\r\n this.templates.push({ DisplayValue: val.ChecklistTemplateCatgName + \" - \" + val.ChecklistTemplateName, ChecklistTemplateID: val.ChecklistTemplateID })\r\n });\r\n if (this.templates != null && this.templates.length > 0) {\r\n this.formData.selectedTemplate = this.templates[0].ChecklistTemplateID;\r\n }\r\n this.utilityService.closeModal();\r\n }\r\n else {\r\n this.utilityService.closeModal();\r\n }\r\n });\r\n }\r\n \r\n\r\n createClicked() {\r\n this.activeModal.close(this.formData.selectedTemplate);\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.close('cancel');\r\n }\r\n\r\n}\r\n","
\r\n

Create New {{mode == 'C' ? 'Checklist': 'Action Item'}}

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

\r\n Select a {{mode == 'C' ? 'checklist': 'action item'}} template:\r\n

\r\n \r\n {{data.DisplayValue}}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n//service imports\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { ChecklistService } from 'src/app/pages/checklist/services/checklist.service';\r\n\r\n@Component({\r\n selector: 'app-distribute-checklists-modal',\r\n templateUrl: './distribute-checklists-modal.component.html',\r\n styleUrls: ['./distribute-checklists-modal.component.css']\r\n})\r\nexport class DistributeChecklistsModalComponent implements OnInit {\r\n @ViewChild('notificationForm', { static: false }) notificationForm: NgForm;\r\n @Input() checklists: any;\r\n @Input() mode: any;\r\n formData: { [key: string]: any } = {};\r\n validComboDrag: any;\r\n dragFiles: any;\r\n fileData: any[] = [];\r\n newFiles: any[] = [];\r\n innerCounter: number = 0;\r\n emailSendWait: boolean = false;\r\n alert: any;\r\n emailList: any[];\r\n templateCategoryIDs: { [key: string]: number } = { \"C\": 1, \"O\": -1, \"P\": -2, \"H\": -4 };\r\n\r\n constructor(public activeModal: NgbActiveModal, private utilityService: UtilityService, private checklistService: ChecklistService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formData.ToEmail = [];\r\n this.generateFilenames();\r\n }\r\n\r\n generateFilenames() {\r\n this.checklists.forEach((val: any) => {\r\n if (val.InspectedOnDisplay != null)\r\n val.Filename = val[\"Checklist_Type\"].replace(/[^a-zA-z\\d]/g, '') + \"_\" + val.InspectedOnDisplay.replace(/\\//g, '_') + \"_\" + val.ChecklistInstanceID + \".pdf\";\r\n else\r\n val.Filename = val[\"Checklist_Type\"].replace(/[^a-zA-z\\d]/g, '') + \"_\" + val.ChecklistInstanceID + \".pdf\";\r\n });\r\n }\r\n\r\n deleteAttachment(file: any) {\r\n var index = this.newFiles.indexOf(file);\r\n this.newFiles.splice(index, 1);\r\n if (this.newFiles.length == 0)\r\n this.newFiles.push({ File: null, Filename: null });\r\n }\r\n\r\n private readFile(file: any, call: any) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) { return call(e, file.name) };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n upload() {\r\n this.fileData = [];\r\n var currentUpload = this.formData.fileDrop;\r\n this.formData.fileDrop = [];\r\n for (var i = 0; i < currentUpload.length; i++) {\r\n currentUpload[i].nameEdit = this.utilityService.formatAttachmentName(currentUpload[i].name);\r\n }\r\n\r\n if (currentUpload != null) {\r\n for (var i = 0; i < currentUpload.length; i++) {\r\n var n = 0;\r\n this.innerCounter = 0;\r\n this.readFile(currentUpload[i], (e: any, fileName: string) => {\r\n setTimeout(() => {\r\n this.fileData.push({ data: e.target.result.toString().split(\",\"), size: e.total, name: fileName });\r\n if (n == (currentUpload.length - 1)) {\r\n this.fileData.forEach((val: any) => {\r\n currentUpload.forEach((val2: any) => {\r\n if (val2.size == val.size && val.name == val2.name) {\r\n this.newFiles.push({ File: val.data[1], Filename: val2.nameEdit, Filedata: val2, Type: val.data[0].split(\"/\")[0] });\r\n }\r\n });\r\n });\r\n }\r\n n++;\r\n });\r\n });\r\n };\r\n }\r\n }\r\n\r\n sendClicked() {\r\n this.emailSendWait = true;\r\n var checklistInstanceIDs = [];\r\n var templateID = [];\r\n var filenames = [];\r\n var newFilenames = [];\r\n var newFiles = [];\r\n var toEmail = [];\r\n this.formData.ToEmail.forEach((val: any) => {\r\n if (val != null)\r\n toEmail.push(val.EmailAddress);\r\n });\r\n this.checklists.forEach((val: any) => {\r\n checklistInstanceIDs.push(val[\"ChecklistInstanceID\"]);\r\n templateID.push(val[\"ChecklistTemplateID\"]);\r\n filenames.push(val.Filename);\r\n });\r\n this.newFiles.forEach((val: any) => {\r\n if (val.Filename && val.File) {\r\n newFilenames.push(val.Filename);\r\n newFiles.push(val.File);\r\n }\r\n });\r\n this.checklistService.sendChecklists(checklistInstanceIDs, filenames, null, toEmail, this.formData.Subject, this.formData.Message, newFilenames, newFiles, templateID, null, null, null, null,this.templateCategoryIDs[this.mode]).then((response: any) => {\r\n if (response.success) {\r\n this.alert = { type: \"success\", msg: (this.mode == \"C\" ? \"Checklists\" : \"Action Items\") + \" sent successfully.\" }\r\n this.emailSendWait = false;\r\n }\r\n else {\r\n this.alert = { type: \"danger\", msg: response.data.error }\r\n this.emailSendWait = false;\r\n }\r\n });\r\n }\r\n\r\n closeClicked() {\r\n this.activeModal.close('close');\r\n }\r\n\r\n closeAlert() {\r\n this.alert = null;\r\n }\r\n}","
\r\n

Distribute {{mode == 'C' ? 'Checklists' : 'Action Items'}}

\r\n
\r\n
\r\n
\r\n
\r\n {{alert.msg}}\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
\r\n
\r\n
\r\n
\r\n Drop a file or Click to upload\r\n
\r\n
\r\n
\r\n
\r\n {{file.Filename}}\r\n Remove\r\n
\r\n
0 && file.Progress < 100\">\r\n
{{file.Progress}}%
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\"Loading...\"
\r\n \r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UtilityService } from '../../../../core/services/utility.service';\r\nimport { ChecklistService } from '../../../../pages/checklist/services/checklist.service';\r\nimport { OrderByPipe } from '../../../../shared/pipe/order-by.pipe';\n\n\n@Component({\n selector: 'app-advance-item-modal',\n templateUrl: './advance-item-modal.component.html',\n styleUrls: ['./advance-item-modal.component.css']\n})\nexport class AdvanceItemModalComponent implements OnInit {\n @Input() item: any;\n @Input() mode: string;\n @Input() itemGroup: any;\n @Input() templateId: number;\n @Input() itemGroups: any;\n @Input() index: number;\n @Input() dropdownTypeList: any[];\n\n orderByPipe: OrderByPipe\n formData: { [key: string]: any } = {};\n personalInfoList: any[] = [];\n lastSave: { [key: string]: any } = {};\n\n constructor(private utilityService: UtilityService, private checklistService: ChecklistService, public activeModal: NgbActiveModal) { }\n\n ngOnInit(): void {\n this.orderByPipe = new OrderByPipe();\n this.personalInfoList = [{ value: \"Address1\", display: \"Address 1\" }, { value: \"Address2\", display: \"Address 2\" }, { value: \"Birthday\", display: \"Birthday\" }, { value: \"City\", display: \"City\" }, { value: \"Cell\", display: \"Cell\" },\n { value: \"Country\", display: \"Country\" }, { value: \"Email\", display: \"Email\" }, { value: \"FirstName\", display: \"First Name\" }, { value: \"LastName\", display: \"Last Name\" }, { value: \"MidName\", display: \"Middle Name\" },\n { value: \"Phone\", display: \"Phone\" }, { value: \"Suffix\", display: \"Suffix\" }, { value: \"State\", display: \"State\" }, { value: \"Zip\", display: \"Zip\" }];\n\n }\n\n fadeLabel(status: boolean) {\n this.formData.labelFade = false;\n this.lastSave = this.utilityService.fadeLabel(status);\n setTimeout(() => {\n this.formData.labelFade = true;\n }, 2000);\n }\n\n toggleActive() {\n this.checklistService.templateItemToggleActive(this.item.ChecklistTemplateItemID, this.item.IsActive).then((response: any) => {\n if (response != null) {\n this.fadeLabel(response.success);\n this.getChecklistItems();\r\n }\n });\n }\n\n closeClicked() {\n this.activeModal.dismiss();\n }\n\n updateItem(item: any, templateID: number) {\n this.updateShowTH();\n let requestObj = { checklistTemplateItemID: item.ChecklistTemplateItemID, checklistTemplateItemGrpID: item.ChecklistTemplateItemGrpID, responseTypeID: item.ResponseTypeID, itemPrompt: item.ItemPrompt, itemNumber: item.ItemNumber, itemLongPrompt: item.ItemLongPrompt, checklistLookupID: item.ChecklistLookupID, maxResponseLength: item.MaxResponseLength, validationRegex: item.ValidationRegex, personalInfoField: item.PersonalInfoField, isAdminField: item.IsAdminField, isRequiredAttachment: (item.ShowAttachments ? item.IsRequiredAttachment : false), rebindDropdown: item.RebindDropdown, showComments: item.ShowComments ,showAttachments: item.ShowAttachments, isRequired: item.IsRequired };\n\n this.checklistService.addUpdateTemplateItem(requestObj).then((response: any) => { //handle ChecklistTemplateItemID refresh the after the new row update with id -1\n if (response != null) {\n this.fadeLabel(response.success);\n this.checklistService.getItemsByTemplateID(this.templateId).then((response: any) => {\n if (response != null) {\n var temp = response;\n temp = this.orderByPipe.transform(temp, [\"ItemGrpName\", \"ChecklistTemplateItemID\"], \"asc\");\n var newIndex = 0;\n temp.forEach((val: any) => {\n if (val.ChecklistTemplateItemGrpID == templateID) {\n newIndex = val.ChecklistTemplateItemID\n }\n })\n this.itemGroups.forEach((val: any) => {\n if (val.ChecklistTemplateItemGrpID == templateID) {\n if (val.Items[this.index].ChecklistTemplateItemID == -1)\n val.Items[this.index].ChecklistTemplateItemID = newIndex;\n }\n })\n }\n });\n }\n });\n }\n\n getChecklistItems() {\n this.itemGroups.forEach((val: any) => {\n val.Items = [];\n });\n this.checklistService.getItemsByTemplateID(this.templateId).then((response: any) => {\n if (response != null) {\n response.forEach((val: any) => {\n this.itemGroups.forEach((group: any) => {\n if (val.ChecklistTemplateItemGrpID == group.ChecklistTemplateItemGrpID) {\n group.Items.push(val);\n }\n });\n });\n this.updateShowTH();\n }\n });\n }\n\n updateShowTH() {\n if (this.itemGroups != null) {\n this.itemGroups.forEach((val: any) => {\n if (val != null) {\n var count = 0;\n val.Items.forEach((val2: any) => {\n if (val2.ResponseTypeID == 7 || val2.ResponseTypeID == 8 || val2.ResponseTypeID == 9 || val2.ResponseTypeID == 15) {\n count++;\n return false;\n }\n });\n if (count == 0)\n val.showTH = false;\n else\n val.showTH = true;\n }\n });\n }\r\n }\n\n}\n\n\n\n","
\r\n

Advanced Settings - {{item.ItemPrompt}}

\r\n
\r\n Save Successful - {{lastSave.time}}\r\n Save Fail - {{lastSave.time}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{data.GroupName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n {{data.display}}\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 \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","import { Component, Input, OnInit } from '@angular/core';\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AdminService } from '../../../../pages/admin/services/admin.service';\r\nimport { UserGroupModalComponent } from '../../../shared/user-group-modal/user-group-modal.component';\r\n\n@Component({\n selector: 'app-enable-checklist-workflow-modal',\n templateUrl: './enable-checklist-workflow-modal.component.html',\n styleUrls: ['./enable-checklist-workflow-modal.component.css']\n})\nexport class EnableChecklistWorkflowModalComponent implements OnInit{\n\n @Input() mode: any;\n @Input() templateInfo: any;\n userGroups: any[] = [];\n itemChanged: boolean = false;\n currentUserGroupID: number;\n\n constructor(public activeModal: NgbActiveModal, private modalService: NgbModal, private adminService: AdminService) { }\n\n ngOnInit(): void {\n this.getUserGroup();\n if (this.templateInfo.WorkflowInclUserGroupID == null) {\n this.templateInfo.WorkflowInclUserGroupID = -2;\n }\n this.currentUserGroupID = this.templateInfo.WorkflowInclUserGroupID;\n }\n\n workflowEnabled() {\n this.itemChanged = true;\n this.templateInfo.WorkflowInclPM = false;\n this.templateInfo.WorkflowInclJobRev = false;\n this.templateInfo.WorkflowInclInvRev = false;\n this.templateInfo.WorkflowInclTimecardManager = false;\n this.templateInfo.WorkflowInclUserGroupID = -2;\n this.currentUserGroupID = -2;\n }\n\n updateItem() {\n this.itemChanged = true;\n }\n\n userGroupChange() {\n if (this.templateInfo.WorkflowInclUserGroupID == -1) {\r\n this.editUserGroup();\r\n }\r\n else {\r\n this.currentUserGroupID = this.templateInfo.WorkflowInclUserGroupID;\r\n this.updateItem();\r\n }\r\n }\n\n saveClicked() {\n if (this.itemChanged) {\n this.activeModal.close(this.templateInfo);\n }\n\n else {\n this.activeModal.dismiss();\n }\n }\n\n editUserGroup() {\n let modalRef = this.modalService.open(UserGroupModalComponent, { size: 'md', backdrop: 'static' });\n modalRef.componentInstance.data = null;\n modalRef.result.then((result: any) => {\n if (result != null && result.success) {\n this.templateInfo.WorkflowInclUserGroupID = result.UserGroupID;\n this.currentUserGroupID = result.UserGroupID;\n this.getUserGroup();\n this.updateItem();\n }\n else {\n this.templateInfo.WorkflowInclUserGroupID = this.currentUserGroupID;\n }\n\n }).catch((res) => { });\n }\n\n getUserGroup() {\n this.adminService.getUserGroup().then((response: any) => {\n if (response != null) {\n this.userGroups = response;\n }\n });\n }\n\n}\n","
\r\n

{{mode != 'H' ? 'Checklist' : 'Action Item'}} Workflow

\r\n
\r\n
\r\n
\r\n
\r\n Enable Workflow For This Template?\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Route to PM?
\r\n Email the project manager from PM Projects when checklists are submitted.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Route to Job Reviewers?
\r\n Email reviewers on JC Jobs when checklists are submitted.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Route to Member of Invoice Rev. Group?
\r\n Email reviewers on the assigned Invoice Reviewer Group for the job when checklists are submitted.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Route to Manager?
\r\n Email the manager assigned to the employee for timecard approval when action items are submitted.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n User Group to Route To:\r\n \r\n {{data.UserGroupName}}\r\n \r\n Email employees in the above user group when {{mode != 'H'? 'checklists' : 'action items'}} are submitted.\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ChecklistService } from '../../../../pages/checklist/services/checklist.service';\n\n@Component({\n selector: 'app-create-new-template-modal',\n templateUrl: './create-new-template-modal.component.html',\n styleUrls: ['./create-new-template-modal.component.css']\n})\nexport class CreateNewTemplateModalComponent implements OnInit {\n @Input() option: string;\n @Input() mode: string;\n formData: { [key: string]: any } = {};\n templateList: any[] = [];\n templateCategoryIDs: { [key: string]: number } = { \"C\": 1, \"O\": -1, \"P\": -2, \"H\": -4 };\n\n constructor(private checklistService: ChecklistService, public activeModal: NgbActiveModal) { }\n\n ngOnInit(): void {\n if (this.option == \"C\") {\n this.checklistService.getChecklistTemplates(this.templateCategoryIDs[this.mode]).then((response: any) => {\n if (response != null) {\n var templates = response;\n var filteredTemplates = [];\n templates.forEach((val: any) => {\n if (this.mode == \"O\" && val.ChecklistTemplateCatgID == -1) {\n filteredTemplates.push(val);\n }\n else if (this.mode == \"P\" && val.ChecklistTemplateCatgID != -1 && val.ChecklistTemplateIsActive) {\n filteredTemplates.push(val);\n }\n else if (this.mode == \"H\" && val.ChecklistTemplateCatgID == -4) {\n filteredTemplates.push(val);\r\n }\n else {\n if (val.ChecklistTemplateCatgID == 1) {\n filteredTemplates.push(val);\n }\n }\n })\n this.templateList = filteredTemplates;\n }\n });\n }\n }\n\n createClicked() {\n this.activeModal.close(this.formData.newTemplate);\n }\n\n copyClicked() {\n this.activeModal.close(this.formData);\n }\n\n cancelClicked() {\n if (this.option == \"C\") {\n this.activeModal.dismiss();\n }\n else {\n this.activeModal.close(\"cancel\");\n }\n }\n\n}\n","
\r\n

Create New Template

\r\n

Copy New Template

\r\n
\r\n
\r\n
\r\n \r\n \r\n {{template.ChecklistTemplateName}}\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { concat, from, Observable, of, Subject } from 'rxjs';\r\nimport { catchError, debounceTime, distinctUntilChanged, switchMap, tap } from 'rxjs/operators';\r\n\r\n//service imports\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { ChecklistService } from 'src/app/pages/checklist/services/checklist.service';\r\nimport { AdminService } from 'src/app/pages/admin/services/admin.service';\r\nimport { EmployeeService } from './../../../pages/employee/services/employee.service';\r\n\r\n//Pipe imports\r\nimport { OrderByPipe } from '../../../shared/pipe/order-by.pipe';\r\n\r\n\r\n@Component({\r\n selector: 'app-view-checklist-workflow-modal',\r\n templateUrl: './view-checklist-workflow-modal.component.html',\r\n styleUrls: ['./view-checklist-workflow-modal.component.css']\r\n})\r\nexport class ViewChecklistWorkflowModalComponent implements OnInit {\r\n @ViewChild('signaturePad', { static: false }) signaturePad;\r\n @Input() checklistInstanceID: number;\r\n @Input() checklistDetails: any;\r\n @Input() submitMode: any;\r\n @Input() isSubmitted: boolean;\r\n @Input() latitude: any;\r\n @Input() longitude: any;\r\n @Input() canNotify: boolean;\r\n @Input() mode: any;\r\n portalSettings: any;\r\n enableCheckboxSign: boolean = false;\r\n formData: { [key: string]: any } = {};\r\n confirmRefresh: boolean = false;\r\n refreshing: boolean = false;\r\n notifying: boolean = false;\r\n submitting: boolean = false;\r\n alert: any;\r\n reviewers: any[] = [];\r\n typeSign: boolean = false;\r\n redBorder: boolean = false;\r\n submitSignImg: any;\r\n hideClick: boolean = false;\r\n showClickMsg: boolean = false;\r\n emailSendWait: boolean = false;\r\n orderByPipe: any;\r\n rowOrder: string;\r\n reverse: boolean = false;\r\n checklistInstanceIDs: any;\r\n rawImgData: any;\r\n templateCategoryIDs: { [key: string]: number } = { \"C\": 1, \"O\": -1, \"P\": -2, \"H\": -4 };\r\n\r\n employee$: Observable;\r\n employeeInput$ = new Subject();\r\n employeeLoading = false;\r\n\r\n constructor(portalSettingsService: PortalSettingsService, public activeModal: NgbActiveModal, private utilityService: UtilityService, private checklistService: ChecklistService, private adminService: AdminService, private employeeService: EmployeeService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.orderByPipe = new OrderByPipe();\r\n this.enableCheckboxSign = this.portalSettings.EnableCheckboxSign.ConfigValue == \"1\";\r\n this.getChecklistReviewers(null);\r\n this.registerLookups();\r\n }\r\n\r\n private registerLookups() {\r\n //register observables used by super lookups\r\n\r\n this.employee$ = concat(\r\n this.employeeInput$.pipe(\r\n debounceTime(500),\r\n distinctUntilChanged(),\r\n switchMap(term => ((term != null && term.length > 1) ?\r\n from(this.adminService.getHRUsers(term,false,null)).pipe(\r\n catchError(() => of([]))) : of([])\r\n ))\r\n )\r\n );\r\n }\r\n\r\n getChecklistReviewers(initialized: any) {\r\n this.checklistService.getChecklistReviewers(this.checklistInstanceID).then((response: any) => {\r\n this.refreshing = false;\r\n if (response.length == 0 && !initialized) {\r\n this.initializeChecklistReviewers();\r\n }\r\n else {\r\n this.reviewers = response;\r\n }\r\n });\r\n }\r\n\r\n requestRefresh() {\r\n this.confirmRefresh = true;\r\n }\r\n\r\n initializeChecklistReviewers() {\r\n this.refreshing = true;\r\n this.checklistService.initializeChecklistReviewers(this.checklistInstanceID).then((response: any) => {\r\n if (response.success) {\r\n this.getChecklistReviewers(true);\r\n }\r\n else {\r\n this.alert = { type: \"danger\", msg: response.error };\r\n this.refreshing = false;\r\n }\r\n });\r\n }\r\n\r\n removeReviewer(reviewer) {\r\n reviewer.ConfirmDelete = true;\r\n }\r\n\r\n confirmRemove(reviewer) {\r\n this.refreshing = true;\r\n this.checklistService.deleteChecklistReviewers(reviewer.ChecklistRevID).then((response: any) => {\r\n if (response.success) {\r\n this.getChecklistReviewers(true);\r\n }\r\n else {\r\n this.alert = { type: \"danger\", msg: response.error };\r\n this.refreshing = false;\r\n }\r\n })\r\n }\r\n\r\n addReviewer() {\r\n this.refreshing = true;\r\n this.checklistService.addChecklistReviewer(this.formData.selectedEmployee, this.checklistInstanceID, this.mode == \"H\" ? \"Action Item Specific Reviewer\" : \"Checklist Specific Reviewer\").then((response: any) => {\r\n if (response.success) {\r\n this.getChecklistReviewers(true);\r\n }\r\n else {\r\n this.alert = { type: \"danger\", msg: response.error };\r\n this.refreshing = false;\r\n }\r\n });\r\n }\r\n\r\n submitClicked() {\r\n if(this.signaturePad != null){\r\n if (!this.signaturePad.isEmpty() || this.typeSign) {\r\n this.submitting = true;\r\n this.notifyReviewers(true);\r\n } else {\r\n this.redBorder = true;\r\n }\r\n }else if(this.submitSignImg != null){\r\n this.submitting = true;\r\n this.notifyReviewers(true);\r\n }else{\r\n this.redBorder = true;\r\n }\r\n }\r\n\r\n realNotifyReviewers() {\r\n this.notifying = true;\r\n this.checklistInstanceIDs = this.checklistInstanceID;\r\n var filenames = [];\r\n if (this.checklistDetails.InspectedOnDisplay != null) {\r\n filenames[0] = this.checklistDetails[\"ChecklistTemplateName\"].replace(/[^0-9a-zA-z]/g, \" \") + \"_\" + this.checklistDetails.InspectedOnDisplay.replace(/\\//g, \"_\") + \".pdf\";\r\n } else {\r\n filenames[0] = this.checklistDetails[\"ChecklistTemplateName\"].replace(/[^0-9a-zA-z]/g, \" \") + \".pdf\";\r\n }\r\n var templateID = [this.checklistDetails.ChecklistTemplateID];\r\n var toEmail = [];\r\n for (var i = 0; i < this.reviewers.length; i++) {\r\n if (this.reviewers[i].Email != null && this.reviewers[i].Email != \"\") {\r\n if (toEmail.indexOf(this.reviewers[i].Email) == -1)\r\n toEmail.push(this.reviewers[i].Email);\r\n }\r\n }\r\n var subject = this.checklistDetails[\"ChecklistTemplateName\"] + \" Routed for your Review\";\r\n var message = \"A \" + this.checklistDetails[\"ChecklistTemplateName\"] + \" has been routed for your review. A copy has been attached to this email, and a direct link to the portal is available below:

\" + window.location.href;\r\n\r\n this.checklistService.initializeChecklistReviewers(this.checklistInstanceIDs).then((response: any) => {\r\n if (response.success) {\r\n this.checklistService.sendChecklists(this.checklistInstanceIDs, filenames, null, toEmail, subject, message, [], [], templateID, null, null, null, null, this.templateCategoryIDs[this.mode]).then((response: any) => {\r\n if (response.success) {\r\n this.alert = { type: \"success\", msg: this.mode == \"H\" ? \"Action Items sent successfully.\" : \"Checklists sent successfully.\" }\r\n }\r\n else {\r\n this.alert = { type: \"danger\", msg: response.error }\r\n }\r\n this.notifying = false;\r\n this.emailSendWait = false;\r\n });\r\n } else {\r\n this.notifying = false;\r\n }\r\n });\r\n }\r\n\r\n notifyReviewers(submit) {\r\n this.notifying = true;\r\n this.checklistInstanceIDs = this.checklistInstanceID;\r\n var filenames = [];\r\n if (this.checklistDetails.InspectedOnDisplay != null) {\r\n filenames[0] = this.checklistDetails[\"ChecklistTemplateName\"].replace(/[^0-9a-zA-z]/g, \" \") + \"_\" + this.checklistDetails.InspectedOnDisplay.replace(/\\//g, \"_\") + \".pdf\";\r\n } else {\r\n filenames[0] = this.checklistDetails[\"ChecklistTemplateName\"].replace(/[^0-9a-zA-z]/g, \" \") + \".pdf\";\r\n }\r\n var templateID = [this.checklistDetails.ChecklistTemplateID];\r\n var toEmail = [];\r\n for (var i = 0; i < this.reviewers.length; i++) {\r\n if (this.reviewers[i].Email != null && this.reviewers[i].Email != \"\") {\r\n if (toEmail.indexOf(this.reviewers[i].Email) == -1)\r\n toEmail.push(this.reviewers[i].Email);\r\n }\r\n }\r\n var subject = this.checklistDetails[\"ChecklistTemplateName\"] + \" Routed for your Review\";\r\n var message = \"A \" + this.checklistDetails[\"ChecklistTemplateName\"] + \" has been routed for your review. A copy has been attached to this email, and a direct link to the portal is available below:

\" + window.location.href;\r\n\r\n this.checklistService.sendChecklistSign(this.typeSign ? this.rawImgData : this.signaturePad.toDataURL().replace(/^data:image\\/(png|jpg);base64,/, \"\"), this.checklistInstanceID, this.typeSign, this.latitude, this.longitude).then((response: any) => {\r\n if (response.success) {\r\n this.checklistService.sendChecklists(this.checklistInstanceIDs, filenames, null, toEmail, subject, message, [], [], templateID, null, null, null, null, this.templateCategoryIDs[this.mode]).then((response: any) => {\r\n if (response.success) {\r\n this.notifying = false;\r\n this.alert = { type: \"success\", msg: this.mode == \"H\" ? \"Action Items sent successfully.\" : \"Checklists sent successfully.\" }\r\n this.emailSendWait = false;\r\n if (submit) {\r\n window.location.href = \"/Checklist/Index\" + (this.mode == \"H\" ? (\"/#/mode/\" + this.mode) : \"\");\r\n //$uibModalInstance.close({ data: this.signaturePad.toDataURL(), typeSign: this.typeSign });\r\n }\r\n }\r\n else {\r\n this.alert = { type: \"danger\", msg: response.error }\r\n this.emailSendWait = false;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n setRowSort(col) {\r\n if (this.rowOrder == col) {\r\n this.reverse = !this.reverse;\r\n }\r\n else {\r\n this.rowOrder = col;\r\n this.reverse = false;\r\n }\r\n\r\n this.reviewers = this.orderByPipe.transform(this.reviewers, this.rowOrder, this.reverse ? \"desc\" : \"asc\");\r\n }\r\n\r\n closeClicked() {\r\n this.activeModal.close();\r\n }\r\n\r\n closeAlert() {\r\n this.alert = null;\r\n }\r\n\r\n getTypeSign(type: string) {\r\n if (this.signaturePad.isEmpty()) {\r\n this.typeSign = true;\r\n if (this.typeSign) {\r\n this.employeeService.getTypeSign(type).then((response: any) => {\r\n this.rawImgData = response;\r\n this.submitSignImg = \"data:image/png;base64,\" + response;\r\n });\r\n }\r\n this.hideClick = true;\r\n this.showClickMsg = false;\r\n } else {\r\n this.showClickMsg = true;\r\n }\r\n }\r\n\r\n clear() {\r\n this.typeSign = false;\r\n if (this.signaturePad != null)\r\n this.signaturePad.clear();\r\n this.showClickMsg = false;\r\n this.hideClick = false;\r\n }\r\n\r\n}","
\r\n

\r\n {{mode == 'H' ? 'Action Item Workflow' : 'Checklist Workflow'}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {{alert.msg}}\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
{{reviewer.UserFullName}}{{reviewer.ReviewerSource}}\r\n \r\n Remove\r\n \r\n \r\n Confirm Delete\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 Please sign in the box below when you finish your {{mode == 'H' ? 'action item' : 'checklist'}}.\r\n
\r\n
\r\n
Press \"Clear\" before generating your signature image.
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Sign above
\r\n \r\n \r\n
By signing above, I agree that the signature and initials will be the electronic representation of my signature and initials for all purposes when I (or my agent) use them on documents, including legally binding contracts - just the same as a pen-and-paper signature or initial.
\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 { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CrewTimecardService } from '../../../pages/crew-timecard/services/crew-timecard.service';\r\n\r\n@Component({\r\n selector: 'app-copy-crew-line-modal',\r\n templateUrl: './copy-crew-line-modal.component.html',\r\n styleUrls: ['./copy-crew-line-modal.component.css']\r\n})\r\nexport class CopyCrewLineModalComponent implements OnInit {\r\n @ViewChild('groupClockForm', { static: true }) groupClockForm: NgForm;\r\n @Input() crewsList: any[];\r\n @Input() employees: any[];\r\n @Input() row: any;\r\n @Input() rowProperties: any[];\r\n @Input() sharedColumnInfo: any;\r\n @Input() payPeriod: any;\r\n\r\n addDisable: boolean;\r\n selectedCrew: any;\r\n selectedEmployees: any[] = [];\r\n showCraftClassBox: boolean;\r\n showEarnCodeDefaultCheckbox: boolean;\r\n useEmplDefaultCraftClass: boolean = true;\r\n useEmplDefaultEarnCode: boolean;\r\n\r\n constructor(private crewTimecardService: CrewTimecardService, public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n \r\n this.addDisable = false;\r\n //Remove Employee of Selected Row From Employee Dropdown\r\n let employeeOfSelectedRow = this.row.Employee.substring(0, this.row.Employee.indexOf(\"@\"));\r\n this.showCraftClassBox = ((this.sharedColumnInfo.Craft != null && this.sharedColumnInfo.Craft.ColumnVisibilityModeID > 2) ||\r\n (this.sharedColumnInfo.Class != null && this.sharedColumnInfo.Class.ColumnVisibilityModeID > 2));\r\n this.showEarnCodeDefaultCheckbox = this.rowProperties.indexOf(\"EarnCode\") > -1;\r\n this.useEmplDefaultEarnCode = true;\r\n for (let i = 0; i < this.employees.length; i++) {\r\n if (this.employees[i].Employee == employeeOfSelectedRow) {\r\n this.employees.splice(i, 1);\r\n }\r\n }\r\n\r\n //238738: Retrieved data from Database uses GMT to represent PostDate column\r\n if (this.rowProperties.indexOf(\"PostDate\") > -1 && this.row[\"PostDate\"] != null && typeof this.row[\"PostDate\"].getMonth == 'function') {\r\n let yyyy = this.row[\"PostDate\"].getFullYear().toString();\r\n let mm = (this.row[\"PostDate\"].getMonth() + 1).toString();\r\n let dd = this.row[\"PostDate\"].getDate().toString();\r\n this.row[\"PostDate\"] = yyyy + \"/\" + mm + \"/\" + dd;\r\n }\r\n\r\n //238738: Type Dropdown values are pushed manually. Hence default label need to be assigned.\r\n if (this.rowProperties.indexOf(\"Type\") > -1 && this.row.Type != null) {\r\n let type = this.row.Type.substr(0, this.row.Type.indexOf('@'));\r\n switch (type) {\r\n case \"J\":\r\n this.row[\"Type___@Value\"] = \"J - Job\";\r\n break;\r\n case \"M\":\r\n this.row[\"Type___@Value\"] = \"M - Mechanic\";\r\n break;\r\n case \"S\":\r\n this.row[\"Type___@Value\"] = \"S - SM Work Order\";\r\n break;\r\n }\r\n }\r\n }\r\n\r\n crewChanged() {\r\n this.selectedEmployees = [];\r\n if (this.selectedCrew != null && this.selectedCrew.Crew != \"\") {\r\n let selectedEmployees = [];\r\n this.crewTimecardService.getCrewMember(this.selectedCrew.PRCRKeyID).then((response: any[]) => {\r\n let crewMemberList = response;\r\n let employeeMap = this.employees.map((x) => { return x.Employee });\r\n for (let i = 0; i < crewMemberList.length; i++) {\r\n let crewMember = crewMemberList[i];\r\n let employeeIndex = employeeMap.indexOf(crewMember.Employee);\r\n if (employeeIndex > -1) {\r\n selectedEmployees.push(this.employees[employeeIndex]);\r\n }\r\n }\r\n this.selectedEmployees = selectedEmployees;\r\n });\r\n }\r\n }\r\n\r\n selectAllEmployees() {\r\n this.selectedEmployees = this.employees;\r\n }\r\n\r\n selectNoneEmployees() {\r\n this.selectedEmployees = [];\r\n }\r\n\r\n addClicked() {\r\n this.activeModal.close({\r\n selectedEmployees: this.selectedEmployees,\r\n useEmpDefaultCraftClass: this.useEmplDefaultCraftClass,\r\n useEmplDefaultEarnCode: this.useEmplDefaultEarnCode\r\n })\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n}\r\n","
\r\n

Copy Line for Multiple Employees

\r\n
This will copy the selected line to one or more other employees.
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{sharedColumnInfo[rowProperty].IsCombo ? row[rowProperty + \"___@Value\"] : row[rowProperty]}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{crew.Crew}} - {{crew.CrewName}}\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 {{item.EmployeeDisplayName}}\r\n x\r\n
\r\n
50\">\r\n {{items.length - 50}} more selected...\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Use employee's default Craft / Class\r\n
\r\n
\r\n Use employee's default Earncode\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 { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PageChangedEvent } from 'ngx-bootstrap/pagination';\r\nimport { CrewTimecardService } from '../../../pages/crew-timecard/services/crew-timecard.service';\r\n\r\n@Component({\r\n selector: 'app-edit-cell-value-modal',\r\n templateUrl: './edit-cell-value-modal.component.html',\r\n styleUrls: ['./edit-cell-value-modal.component.css']\r\n})\r\nexport class EditCellValueModalComponent implements OnInit {\r\n @Input() options: any[];\r\n @Input() column: any;\r\n @Input() mode: string;\r\n @Input() requestParams: any;\r\n\r\n filteredOptions: any[];\r\n currentPage: number;\r\n itemsPerPage: number;\r\n pagedOptions: any[];\r\n searchText: string;\r\n\r\n constructor(public activeModal: NgbActiveModal, private crewTimecardService: CrewTimecardService) { }\r\n\r\n ngOnInit(): void {\r\n this.currentPage = 1;\r\n this.itemsPerPage = 10;\r\n this.filteredOptions = [];\r\n this.pagedOptions = [];\r\n this.searchText = null;\r\n if(this.mode != \"super\")\r\n this.updatePagedOptions();\r\n }\r\n\r\n keydownEvent(e) {\r\n if (e.which === 13) {\r\n if (this.filteredOptions.length > 0) {\r\n this.activeModal.close(this.filteredOptions[0].id);\r\n }\r\n }\r\n }\r\n\r\n optionSelected(option) {\r\n this.activeModal.close(option);\r\n }\r\n\r\n clearValue() {\r\n this.activeModal.close({ id: \"null\", value: \"\" });\r\n }\r\n\r\n \r\n\r\n pageChanged(event: PageChangedEvent) {\r\n let begin = ((event.page - 1) * this.itemsPerPage);\r\n let end = begin + this.itemsPerPage;\r\n this.pagedOptions = this.filteredOptions.slice(begin, end);\r\n }\r\n\r\n filterChanged() {\r\n if (this.mode == \"super\") {\r\n if (this.searchText.length > 2)\r\n this.getCellValues();\r\n else {\r\n this.filteredOptions = [];\r\n let begin = ((this.currentPage - 1) * this.itemsPerPage);\r\n let end = begin + this.itemsPerPage;\r\n this.pagedOptions = this.filteredOptions.slice(begin, end);\r\n }\r\n }\r\n else {\r\n this.updatePagedOptions();\r\n }\r\n }\r\n\r\n updatePagedOptions() {\r\n this.filteredOptions = [];\r\n this.options.forEach((option) => {\r\n if (this.searchText == null || this.searchText == \"\" ||\r\n (option.value != null && option.value.toLowerCase().replace(/ /g, '').indexOf(this.searchText.toLowerCase().replace(/ /g, '')) != -1)\r\n ) {\r\n this.filteredOptions.push(option);\r\n }\r\n })\r\n\r\n let begin = ((this.currentPage - 1) * this.itemsPerPage);\r\n let end = begin + this.itemsPerPage;\r\n this.pagedOptions = this.filteredOptions.slice(begin, end);\r\n }\r\n\r\n getCellValues() {\r\n let rowData = this.requestParams.rowData;\r\n rowData.searchString = this.searchText;\r\n this.crewTimecardService.getCellPossibleValues(rowData).then((response: any) => {\r\n if (response != null) {\r\n let options = [];\r\n response.PossibleValues.forEach((value: any) => {\r\n options.push({\r\n id: value.Value + \"@row_\" + this.requestParams.currentCell.row,\r\n popUpLabel: value.Label,\r\n value: value.Label\r\n });\r\n })\r\n this.filteredOptions = options;\r\n let begin = ((this.currentPage - 1) * this.itemsPerPage);\r\n let end = begin + this.itemsPerPage;\r\n this.pagedOptions = this.filteredOptions.slice(begin, end);\r\n }\r\n });\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Matches: {{filteredOptions.length}}\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{option.popUpLabel}}
\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 { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-download-attachment-modal',\r\n templateUrl: './download-attachment-modal.component.html',\r\n styleUrls: ['./download-attachment-modal.component.css']\r\n})\r\nexport class DownloadAttachmentModalComponent implements OnInit {\r\n @Input() data: { [key: string]: any }\r\n @Input() plan: { [key: string]: any }\r\n formData: { [key: string]: any } = {};\r\n TypeAttachments: { [key: string]: any } = {};\r\n PlanAttachments: { [key: string]: any } = {};\r\n loading: boolean = true;\r\n\r\n constructor(private employeeService: EmployeeService, private ngbActiveModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n this.getAttachments();\r\n }\r\n\r\n getAttachments() {\r\n this.employeeService.getPlanAttachments(this.plan.BenefitType, '').then((response: any) => {\r\n this.TypeAttachments[this.plan.BenefitType] = response;\r\n this.employeeService.getPlanAttachments('', this.plan.PlanUniqueAttchID).then((response: any) => {\r\n this.PlanAttachments[this.plan.BenefitCode] = response;\r\n this.loading = false;\r\n });\r\n });\r\n }\r\n\r\n closeClicked() {\r\n this.ngbActiveModal.dismiss();\r\n }\r\n\r\n}\r\n","
\r\n

Plan Attachment(s)

\r\n
\r\n
\r\n {{plan.PlanName}}
\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 { Component, Input, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\n\r\n@Component({\r\n selector: 'app-finalize-submit-sign-modal',\r\n templateUrl: './finalize-submit-sign-modal.component.html',\r\n styleUrls: ['./finalize-submit-sign-modal.component.css']\r\n})\r\nexport class FinalizeSubmitSignModalComponent implements OnInit {\r\n @ViewChild('signaturePad', { static: false }) signaturePad;\r\n @Input() proxyData: { [key: string]: any };\r\n EnableCheckboxSign: boolean;\r\n signatureNEmpty: boolean;\r\n submitSignImg: any;\r\n formData: { [key: string]: any } = {};\r\n portalSettings: any;\r\n rawImgData: any;\r\n showClickMsg: boolean;\r\n hideClick: boolean;\r\n redBorder: boolean;\r\n panelWidth: number;\r\n\r\n constructor(private portalSettingsService: PortalSettingsService, private ngbActiveModal: NgbActiveModal, private employeeService: EmployeeService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.EnableCheckboxSign = this.portalSettings.EnableCheckboxSign.ConfigValue == \"1\" ? true : false;\r\n this.signatureNEmpty = false;\r\n this.submitSignImg = null;\r\n this.formData = {};\r\n this.redBorder = false;\r\n var width = $(\"#modal_size\").width();\r\n this.panelWidth = (width > 550 ? 550 : width) + 30;\r\n }\r\n\r\n clearSignature() {\r\n if (this.signaturePad != null)\r\n this.signaturePad.clear();\r\n this.signatureNEmpty = false;\r\n this.formData.typeSign = false;\r\n this.rawImgData = null;\r\n this.submitSignImg = null;\r\n this.showClickMsg = false;\r\n this.hideClick = false;\r\n }\r\n\r\n submitSignature() {\r\n if(this.proxyData == null)\r\n this.signatureTrigger();\r\n else\r\n this.ngbActiveModal.close();\r\n }\r\n\r\n closeSignature() {\r\n this.ngbActiveModal.dismiss();\r\n }\r\n\r\n signatureTrigger() {\r\n if (this.formData.typeSign) {\r\n this.ngbActiveModal.close(this.rawImgData);\r\n } else if (this.signaturePad.isEmpty() == false) {\r\n this.signatureNEmpty = true;\r\n this.ngbActiveModal.close(this.signaturePad.toDataURL().replace(/^data:image\\/(png|jpg);base64,/, \"\"));\r\n }\r\n else {\r\n this.signatureNEmpty = false;\r\n this.redBorder = true;\r\n }\r\n }\r\n\r\n clickSign(type: string) {\r\n if (this.signaturePad.isEmpty()) {\r\n this.formData.typeSign = true;\r\n this.employeeService.getTypeSign(type).then((response: any) => {\r\n this.rawImgData = response;\r\n this.submitSignImg = \"data:image/png;base64,\" + response;\r\n });\r\n this.hideClick = true;\r\n this.showClickMsg = false;\r\n } else {\r\n this.showClickMsg = true;\r\n }\r\n }\r\n\r\n}\r\n","
\r\n

Confirm Proxy Benefit Submissions

\r\n
\r\n
\r\n
\r\n
\r\n
Please sign in the box below to acknowledge that you have read and understand the contents of the document underneath.
\r\n
\r\n
Press \"Clear\" before generating your signature image.
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Sign above
\r\n \r\n \r\n
By signing above, I agree that the signature and initials will be the electronic representation of my signature and initials for all purposes when I (or my agent) use them on documents, including legally binding contracts - just the same as a pen-and-paper signature or initial.
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

Upon submission, your updates will be routed to your administrator for review and approval.

\r\n
\r\n
\r\n You are submitting the benefit elections as a proxy for {{proxyData.FullName}}. This election window will be marked as finalized without an employee signature since you are submitting as an administrator.\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\n@Component({\r\n selector: 'app-finalize-submited-modal',\r\n templateUrl: './finalize-submited-modal.component.html',\r\n styleUrls: ['./finalize-submited-modal.component.css']\r\n})\r\nexport class FinalizeSubmitedModalComponent implements OnInit {\r\n @Input() data:boolean;\r\n @Input() proxy:number;\r\n portalSettings: any;\r\n modalText: string;\r\n\r\n constructor(private portalSettingsService: PortalSettingsService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.modalText = this.data ? this.portalSettings.BenefitSubmitModalText.ConfigValue : \"There was an error finalizing your benefit. Please contact portal administrator.\";\r\n }\r\n okClicked () {\r\n if (this.proxy != null)\r\n window.location.href = \"/Approval/BenefitsDashboard\";\r\n else\r\n window.location.href = \"/Employee/BenefitsEnrollment\";\r\n }\r\n\r\n}\r\n","
\r\n

Benefit Submitted

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

{{modalText}}

\r\n
\r\n
\r\n \r\n
\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\n\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\n\r\n@Component({\r\n selector: 'app-reject-all-benefits-modal',\r\n templateUrl: './reject-all-benefits-modal.component.html',\r\n styleUrls: ['./reject-all-benefits-modal.component.css']\r\n})\r\nexport class RejectAllBenefitsModalComponent implements OnInit {\r\n @Input() data: any[];\r\n portalSettings: any;\r\n formData: { [key: string]: any } = {};\r\n rejectionText: string;\r\n showDeclineType: boolean;\r\n declineList: any[];\r\n @ViewChild('declineForm', { static: false }) declineForm: NgForm;\r\n\r\n constructor(private ngbActiveModal: NgbActiveModal, private portalSettingsService: PortalSettingsService, private employeeService: EmployeeService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.rejectionText = this.portalSettings.Step3RejectionText.ConfigValue != null ? this.portalSettings.Step3RejectionText.ConfigValue.replace(\"target=\\\"\\\"\", \"target=\\\"_blank\\\"\") : \"\";\r\n this.showDeclineType = this.portalSettings.BNDeclineComboBoxName.ConfigValue != null && this.portalSettings.BNDeclineComboBoxName.ConfigValue != \"\" ? true : false;\r\n this.getVistaOptions();\r\n this.formData.selectedDecline = null;\r\n }\r\n\r\n getVistaOptions() {\r\n this.employeeService.getVistaOptions(\"benefitdeclinereason\").then((response: any) => {\r\n this.declineList = response;\r\n });\r\n }\r\n \r\n declineClicked() {\r\n this.ngbActiveModal.close(this.formData);\r\n }\r\n\r\n cancelClicked() {\r\n this.ngbActiveModal.dismiss();\r\n }\r\n}\r\n","
\r\n

Decline All Coverages

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

Are you sure you want to decline coverage?

\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
","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UtilityService } from 'src/app/core/services/utility.service';\r\nimport { NgForm } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-update-benefits-modal',\r\n templateUrl: './update-benefits-modal.component.html',\r\n styleUrls: ['./update-benefits-modal.component.css']\r\n})\r\nexport class UpdateBenefitsModalComponent implements OnInit {\r\n @ViewChild('declineForm', { static: false }) declineForm: NgForm;\r\n @Input() category: string;\r\n @Input() mode: string;\r\n @Input() data: any[];\r\n @Input() selected: { [key: string]: any };\r\n @Input() proxyID: number;\r\n portalSettings: any;\r\n formData: { [key: string]: any } = {};\r\n dependents: any[] = [];\r\n filteredDependents: any[] = [];\r\n rejectionText: string;\r\n showDeclineType: boolean;\r\n notReachMinCount: boolean = false;\r\n MaxDependentCount: number;\r\n MinDependentCount: number;\r\n declineList: any[];\r\n alert: { type: string; msg: string; };\r\n showPrimaryInput: boolean;\r\n showSecondaryInput: boolean;\r\n fileData: any[];\r\n\r\n constructor(private portalSettingsService: PortalSettingsService, private employeeService: EmployeeService, private ngbActiveModal: NgbActiveModal, private utilityService: UtilityService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formData.newFiles = [];\r\n this.formData.Primary = null;\r\n this.formData.Secondary = null;\r\n this.formData.Notes = null;\r\n this.formData.primaryInput = null;\r\n this.formData.secondaryInput = null;\r\n this.formData.primaryRelationship = null;\r\n this.formData.secondaryRelationship = null;\r\n this.rejectionText = this.portalSettings.Step3RejectionText.ConfigValue != null ? this.portalSettings.Step3RejectionText.ConfigValue.replace(\"target=\\\"\\\"\", \"target=\\\"_blank\\\"\") : \"\";\r\n this.formData.selectedDecline = null;\r\n this.showDeclineType = this.portalSettings.BNDeclineComboBoxName.ConfigValue != null && this.portalSettings.BNDeclineComboBoxName.ConfigValue != \"\" ? true : false;\r\n this.formData.totalCount = 0;\r\n\r\n if (this.data != null && this.selected != null) {\r\n var selectedItem = null;\r\n for(const key in this.selected.SelectedValue){\r\n const val = this.selected.SelectedValue[key];\r\n if (val)\r\n selectedItem = key;\r\n };\r\n if (selectedItem != null) {\r\n this.formData.showAtt = this.selected.SelectedOption[selectedItem].CodeSettingIsAttachmentsAllowed;\r\n this.formData.showBen = this.selected.SelectedOption[selectedItem].CodeSettingIsBeneficiaryShown;\r\n this.formData.showBenFree = this.selected.SelectedOption[selectedItem].CodeSettingIsBenficiaryFreeText;\r\n this.formData.showDep = this.selected.SelectedOption[selectedItem].CodeSettingIsDependentsShown; //how portal setting benefit code works for 3? using this parameter?\r\n this.formData.showNote = this.selected.SelectedOption[selectedItem].CodeSettingIsDeclineNotesRequired;\r\n this.MaxDependentCount = this.selected.SelectedOption[selectedItem].MaxDependentCount;\r\n this.MinDependentCount = this.selected.SelectedOption[selectedItem].MinDependentCount;\r\n } else {\r\n this.data.forEach(val => {\r\n this.formData.showAtt = val.CodeSettingIsAttachmentsAllowed;\r\n this.formData.showBen = val.CodeSettingIsBeneficiaryShown;\r\n this.formData.showBenFree = val.CodeSettingIsBenficiaryFreeText;\r\n this.formData.showDep = val.CodeSettingIsDependentsShown; //how portal setting benefit code works for 3? using this parameter?\r\n this.formData.showNote = val.CodeSettingIsDeclineNotesRequired;\r\n this.MaxDependentCount = val.MaxDependentCount;\r\n this.MinDependentCount = val.MinDependentCount;\r\n return true;\r\n });\r\n }\r\n }\r\n if (this.mode != \"decline\") {\r\n this.getDependents();\r\n }\r\n\r\n if (this.mode == \"decline\") {\r\n this.employeeService.getVistaOptions(\"benefitdeclinereason\").then((response: any) => {\r\n this.declineList = response;\r\n });\r\n }\r\n\r\n }\r\n getDependents() {\r\n this.employeeService.getDependents(this.proxyID).then((response: any) => {\r\n this.dependents = response;\r\n if (this.formData.showBenFree)\r\n this.dependents = this.dependents.concat({ Name: \"Type in a name & relationship...\", KeyID: -1, DependentRequestID: null, Disabled: false });\r\n if (this.MaxDependentCount == 0 && this.formData.showDep) {\r\n this.alert = ({ type: \"warning\", msg: \"You've reached the maximum number of dependents for this option.\" });\r\n this.dependents.forEach(val => {\r\n val.Disabled = true;\r\n });\r\n }\r\n if (this.formData.totalCount < this.MinDependentCount && this.formData.showDep) {\r\n this.notReachMinCount = true;\r\n this.alert = ({ type: \"warning\", msg: \"You've not reached the minimum number of dependents for this option.\" });\r\n }\r\n });\r\n }\r\n\r\n updateCount() {\r\n this.formData.totalCount = 0;\r\n this.notReachMinCount = false;\r\n this.dependents.forEach(val => {\r\n if (val.IsSelected)\r\n this.formData.totalCount++;\r\n });\r\n if (this.formData.totalCount == this.MaxDependentCount) {\r\n this.dependents.forEach(val => {\r\n if (!val.IsSelected)\r\n val.Disabled = true;\r\n });\r\n } else {\r\n this.dependents.forEach(val => {\r\n val.Disabled = false;\r\n });\r\n }\r\n if (this.formData.totalCount == this.MaxDependentCount && this.formData.showDep)\r\n this.alert = ({ type: \"warning\", msg: \"You've reached the maximum number of dependents for this option.\" });\r\n else if (this.formData.totalCount < this.MinDependentCount && this.formData.showDep) {\r\n this.alert = ({ type: \"warning\", msg: \"You've not reached the minimum number of dependents for this option.\" });\r\n this.notReachMinCount = true;\r\n }\r\n else\r\n this.alert = null;\r\n }\r\n\r\n primaryChanged() {\r\n if (this.formData.Primary == null) {\r\n this.formData.Secondary = null;\r\n this.filteredDependents = [];\r\n this.showPrimaryInput = false;\r\n this.showSecondaryInput = false;\r\n }\r\n else {\r\n if (this.formData.Primary.KeyID == -1 && !this.formData.Primary.hasOwnProperty(\"SSN\"))\r\n this.showPrimaryInput = true;\r\n else\r\n this.showPrimaryInput = false;\r\n var filteredDependents = [];\r\n\r\n this.dependents.forEach(val => {\r\n if (this.formData.Primary.KeyID != val.KeyID || (this.formData.Primary.KeyID == -1 && val.Name == \"Type in a name & relationship...\") || (this.formData.Primary.KeyID == -1 && this.formData.Primary.Name != val.Name)) {\r\n filteredDependents.push(val);\r\n }\r\n });\r\n this.filteredDependents = filteredDependents;\r\n }\r\n }\r\n\r\n secondaryChanged() {\r\n if (this.formData.Secondary == null) {\r\n this.showSecondaryInput = false;\r\n } else {\r\n if (this.formData.Secondary.KeyID == -1 && !this.formData.Secondary.hasOwnProperty(\"SSN\"))\r\n this.showSecondaryInput = true;\r\n else\r\n this.showSecondaryInput = false;\r\n }\r\n }\r\n\r\n proceedClicked() {\r\n if (this.formData.Primary != null) {\r\n if (this.formData.Primary.KeyID == -1) {\r\n this.formData.Primary.NameP = this.formData.primaryInput;\r\n this.formData.Primary.RelationshipP = this.formData.primaryRelationship;\r\n }\r\n }\r\n if (this.formData.Secondary != null) {\r\n if (this.formData.Secondary.KeyID == -1) {\r\n this.formData.Secondary.NameS = this.formData.secondaryInput;\r\n this.formData.Secondary.RelationshipS = this.formData.secondaryRelationship;\r\n }\r\n }\r\n this.formData.type = \"proceed\";\r\n var dependents = [];\r\n this.dependents.forEach(val => {\r\n if (val.IsSelected) {\r\n dependents.push(val);\r\n }\r\n });\r\n this.formData.Dependents = dependents;\r\n this.ngbActiveModal.close(this.formData);\r\n }\r\n\r\n closeClicked() {\r\n this.formData.type = \"close\";\r\n this.ngbActiveModal.close(this.formData);\r\n }\r\n\r\n readFile(file, call) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) { return call(e, file.name) };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n upload() {\r\n this.fileData = [];\r\n var draggedFile = this.formData.fileDrop;\r\n this.formData.fileDrop = [];\r\n if (draggedFile != null) {\r\n for (var i = 0; i < draggedFile.length; i++) {\r\n var n = 0;\r\n this.readFile(draggedFile[i], (e: any, fileName: string) => {\r\n setTimeout(() => {\r\n this.fileData.push({ data: e.target.result.toString().split(\",\"), size: e.total, name: fileName });\r\n if (n == (draggedFile.length - 1)) {\r\n this.fileData.forEach(val => {\r\n draggedFile.forEach(val2 => {\r\n if (val2.size == val.size && val.name == val2.name) {\r\n this.formData.newFiles.push({ File: val.data[1], Filename: this.utilityService.formatAttachmentName(val2.name) });\r\n }\r\n });\r\n });\r\n }\r\n n++;\r\n });\r\n });\r\n };\r\n }\r\n }\r\n\r\n deleteUnsavedAttachment(file) {\r\n var index = this.formData.newFiles.indexOf(file);\r\n this.formData.newFiles.splice(index, 1);\r\n }\r\n\r\n\r\n}\r\n","
\r\n

Review your {{category}} election

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{alert.msg}}\r\n
\r\n
0\">\r\n
\r\n
\r\n Please select the beneficiaries you would like to associate this benefit with:\r\n
\r\n
\r\n Please select the dependents you would like to associate this benefit with:\r\n
\r\n
\r\n \r\n
\r\n \r\n {{dependent.Name}}\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 Are you sure you want to make no changes to your {{category}} election?
\r\n Your rates may be changed for the upcoming year.\r\n\r\n \r\n Notes:\r\n \r\n \r\n

\r\n\r\n
\r\n \r\n Are you sure you want to submit this change to your {{category}} election?\r\n \r\n\r\n \r\n Notes:\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Drop a file or Click to upload\r\n
\r\n
\r\n
\r\n
\r\n {{file.Filename}}\r\n Remove\r\n
\r\n
0\">\r\n
\r\n {{file.Progress}}%
\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 decline coverage?

\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
","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { ApprovalService } from 'src/app/pages/approval/services/approval.service';\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\nimport { OrderByPipe } from 'src/app/shared/pipe/order-by.pipe';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EmployeeInfoService } from 'src/app/core/services/employee-info.service';\r\nimport { UtilityService } from 'src/app/core/services/utility.service';\r\n@Component({\r\n selector: 'app-view-report-history-modal',\r\n templateUrl: './view-report-history-modal.component.html',\r\n styleUrls: ['./view-report-history-modal.component.css']\r\n})\r\nexport class ViewReportHistoryModalComponent implements OnInit {\r\n @Input() UserKeyID: number;\r\n formData: { [key: string]: any } = {};\r\n gridData: any[];\r\n predicate: any;\r\n reverse: boolean;\r\n orderByPipe: OrderByPipe\r\n gridDataFilter: any[];\r\n employeeInfo: any;\r\n\r\n constructor(private approvalService: ApprovalService, private employeeService: EmployeeService, private ngbActiveModal: NgbActiveModal, private employeeInfoService: EmployeeInfoService, private utilityService: UtilityService) {\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.orderByPipe = new OrderByPipe();\r\n this.formData.itemsPerPage = 10;\r\n this.formData.currentPage = 1;\r\n this.getGrid();\r\n }\r\n\r\n getGrid() {\r\n this.approvalService.getWindowHistory(this.UserKeyID).then((response: any) => {\r\n this.gridData = response;\r\n this.gridData.forEach(val => {\r\n val.showAttachment = false;\r\n });\r\n this.updateFilteredDocuments();\r\n });\r\n }\r\n\r\n viewAttachment(item) {\r\n var requestParam = \"moduleID=\" + 7 + \"&recordID=\" + item.BenefitUserWindowID;\r\n this.employeeService.getFileAttachmentList(requestParam).then((response: any) => {\r\n item.attachmentList = response;\r\n item.showAttachment = !item.showAttachment;\r\n });\r\n }\r\n\r\n updateFilteredDocuments() {\r\n var begin = ((this.formData.currentPage - 1) * this.formData.itemsPerPage);\r\n var end = begin + this.formData.itemsPerPage;\r\n this.gridDataFilter = this.gridData.slice(begin, end);\r\n };\r\n\r\n sortDashboardRows(predicate) {\r\n if (this.predicate != predicate) {\r\n this.predicate = predicate;\r\n this.reverse = false;\r\n } else {\r\n this.reverse = !this.reverse;\r\n }\r\n this.gridData = this.orderByPipe.transform(this.gridData, this.predicate, this.reverse ? \"desc\" : \"asc\");\r\n\r\n this.updateFilteredDocuments();\r\n }\r\n\r\n generateReport(userWindowID: number) {\r\n this.approvalService.saveWindowAuditReportData(userWindowID).then((response: any) => {\r\n this.getGrid();\r\n });\r\n }\r\n\r\n closeClicked() {\r\n this.ngbActiveModal.dismiss();\r\n }\r\n}\r\n","
\r\n

Benefit Window History for {{employeeInfo.FirstName}} {{employeeInfo.LastName}} ({{employeeInfo.Employee}})

\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 Audit Report
{{data.WindowDisplayName}}{{data.BenefitUserWindowID}}{{data.WindowStartDateDisplay}}{{data.WindowEndDateDisplay}}\r\n View\r\n
\r\n
There is no attachments.
\r\n \r\n
0\">\r\n {{data2.AttachmentFileName}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport moment from 'moment';\r\nimport { cloneDeep } from 'lodash';\r\nimport { forkJoin } from 'rxjs';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { EmployeeInfoService } from '../../../core/services/employee-info.service';\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { EmployeeService } from './../../../pages/employee/services/employee.service';\r\nimport { ApprovalService } from './../../../pages/approval/services/approval.service';\r\n\r\n@Component({\r\n selector: 'app-edit-dependent-modal',\r\n templateUrl: './edit-dependent-modal.component.html',\r\n styleUrls: ['./edit-dependent-modal.component.css']\r\n})\r\nexport class EditDependentModalComponent implements OnInit {\r\n @ViewChild('dependForm', { static: false }) dependForm: NgForm;\r\n @Input() dependent: any;\r\n @Input() mode: string;\r\n @Input() userID: number | null;\r\n mobileMode: boolean;\r\n portalSettings: any;\r\n employeeInfo: any;\r\n format: string;\r\n formData: { [key: string]: any } = {};\r\n originalData: { [key: string]: any } = {};\r\n gettingFilesData: boolean = false;\r\n savingDependent: boolean = false;\r\n btmText: any;\r\n newBornSSN: boolean;\r\n docsRequired: boolean;\r\n phoneMask: any;\r\n ssnMask: any;\r\n attachedFiles: number;\r\n savedFiles: any[];\r\n newFiles: any[];\r\n fileData: any[];\r\n relationshipList: any[] = [];\r\n hRDPKeyID: number;\r\n keyID: number;\r\n fields: any[] = [];\r\n groupedFields: any[] = [];\r\n dependentRequestID: number;\r\n isSubmitting: boolean;\r\n alert: any;\r\n validComboDrag: any;\r\n dragFiles: any;\r\n isLoading: boolean = true;\r\n fieldsToBind: number = 0;\r\n datePickerOptions: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean };\r\n\r\n constructor(public activeModal: NgbActiveModal, portalSettingsService: PortalSettingsService, employeeInfoService: EmployeeInfoService, private employeeService: EmployeeService, private approvalService: ApprovalService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.portalSettings[\"CountryDateCode\"].ConfigValue == \"US\") {\r\n this.format = \"MM/DD/YYYY\";\r\n }\r\n else {\r\n this.format = \"DD/MM/YYYY\";\r\n }\r\n this.datePickerOptions = { dateInputFormat: this.format.toUpperCase(), containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false };\r\n this.mobileMode = this.mobileAndTabletcheck();\r\n this.btmText = this.portalSettings.DependentBtmText.ConfigValue;\r\n this.newBornSSN = this.portalSettings.NewBorn30SSNNotRequire.ConfigValue == \"1\";\r\n this.docsRequired = this.portalSettings.DependentRequiresDocs.ConfigValue == \"1\";\r\n this.formData = {};\r\n this.originalData = {};\r\n this.gettingFilesData = false;\r\n this.savingDependent = false;\r\n this.phoneMask = this.portalSettings.PhoneMask.ConfigValue;\r\n this.formData.notes = \"\";\r\n //set SSN Mask\r\n switch (this.employeeInfo.EmplCountry) {\r\n case \"US\":\r\n this.ssnMask = \"999-99-9999\";\r\n break;\r\n case \"CA\":\r\n this.ssnMask = \"999-999-999\";\r\n break;\r\n default:\r\n this.ssnMask = \"999-99-9999\";\r\n break;\r\n }\r\n this.attachedFiles = 0;\r\n this.savedFiles = [];\r\n this.hRDPKeyID = this.dependent.KeyID;\r\n this.getRelationship();\r\n if (this.mode == \"approval\")\r\n this.keyID = this.dependent.HRDPKeyID;\r\n else if (this.mode == \"attachmentOnly\") {\r\n this.keyID = this.dependent.DependentRequestID;\r\n }\r\n else\r\n this.keyID = this.dependent.KeyID;\r\n var isAddressValidationEnabled = false;\r\n this.newFiles = [];\r\n }\r\n\r\n private mobileAndTabletcheck() {\r\n var check = false;\r\n (function (a) { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true })(navigator.userAgent || navigator.vendor);\r\n return check;\r\n }\r\n\r\n private getRelationship() {\r\n this.employeeService.getRelationship().then((response: any) => {\r\n this.relationshipList = [];\r\n response.forEach((val: any) => {\r\n this.relationshipList.push({ name: val, value: val });\r\n });\r\n this.getUserFields();\r\n });\r\n }\r\n\r\n checkSSN(field) {\r\n if (this.formData[field.FieldVPColumnName] != null) {\r\n if (this.formData[field.FieldVPColumnName].length != 11)\r\n this.formData[field.FieldVPColumnName] = null;\r\n }\r\n }\r\n\r\n addAttachment() {\r\n this.newFiles.push({ File: null, Filename: null });\r\n }\r\n\r\n deleteUnsavedAttachment = function (file) {\r\n var index = this.newFiles.indexOf(file);\r\n this.newFiles.splice(index, 1);\r\n }\r\n\r\n numDaysBetween(d1, d2) {\r\n var diff = Math.abs(d1.getTime() - d2.getTime());\r\n return diff / (1000 * 60 * 60 * 24);\r\n }\r\n\r\n check30Days = function (data) {\r\n if (data != null) {\r\n if (this.newBornSSN) {\r\n if (this.numDaysBetween(new Date(), data) < 31)\r\n this.ssnNotRequireOverride = true;\r\n else\r\n this.ssnNotRequireOverride = false;\r\n }\r\n }\r\n }\r\n\r\n private getUserFields() {\r\n this.employeeService.getDependentFields(this.keyID).then((response: any) => {\r\n this.fields = response;\r\n this.groupedFields = [];\r\n var temp = [];\r\n for (var i = 0; i < this.fields.length; i++) {\r\n if (this.fields[i].FieldDataType == 4) {\r\n if (this.fields[i].FieldValue != null) {\r\n var dateParts = this.fields[i].FieldValue.split(\"-\");\r\n var date = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);\r\n date.setHours(0, 0, 0, 0);\r\n this.formData[this.fields[i].FieldVPColumnName] = date;\r\n this.check30Days(date);\r\n }\r\n }\r\n else {\r\n if (this.fields[i].FieldDataType == 5) {\r\n this.fieldsToBind++;\r\n this.getFieldOptions(this.fields[i]);\r\n }\r\n if (this.fields[i].FieldVPColumnName == \"Relationship\") {\r\n if (this.relationshipList.length > 0) {\r\n for (let j = 0; j < this.relationshipList.length; j++) {\r\n if (this.relationshipList[j].value == this.fields[i].FieldValue) {\r\n this.formData[this.fields[i].FieldVPColumnName] = this.fields[i].FieldValue;\r\n break;\r\n } else {\r\n this.formData[this.fields[i].FieldVPColumnName] = null;\r\n }\r\n }\r\n } else {\r\n this.formData[this.fields[i].FieldVPColumnName] = this.fields[i].FieldValue;\r\n }\r\n } else\r\n this.formData[this.fields[i].FieldVPColumnName] = this.fields[i].FieldValue;\r\n }\r\n if (i > 0 && i % 2 == 0) {\r\n this.groupedFields.push(temp);\r\n temp = [];\r\n }\r\n temp.push(this.fields[i]);\r\n }\r\n if (this.mode == \"approval\") {\r\n if (this.dependent.DependentFieldData != \"\") {\r\n var dependentFieldData = this.dependent.DependentFieldData.DependentInformation.DependentField;\r\n //if only one field has changed, dependentFieldData is an object, else it is an array\r\n if (Object.prototype.toString.call(dependentFieldData) === '[object Array]') {\r\n dependentFieldData.forEach((val: any) => {\r\n if (val.Name == \"BirthDate\") {\r\n this.formData[val.Name] = new Date(parseInt(moment(val.Value).format(\"YYYY\")), parseInt(moment(val.Value).format(\"MM\")) - 1, parseInt(moment(val.Value).format(\"DD\")), 0, 0, 0, 0);\r\n }\r\n //#410452: Handling other dates fields in the screen\r\n else if (moment(val.Value, 'YYYY-MM-DD', true).isValid()) {\r\n this.formData[val.Name] = new Date(parseInt(moment(val.Value).format(\"YYYY\")), parseInt(moment(val.Value).format(\"MM\")) - 1, parseInt(moment(val.Value).format(\"DD\")), 0, 0, 0, 0);\r\n } else {\r\n this.formData[val.Name] = val.Value;\r\n }\r\n });\r\n }\r\n else {\r\n if (dependentFieldData.Name != null && dependentFieldData.Value != null) {\r\n if (dependentFieldData.Name == \"BirthDate\") {\r\n this.formData[dependentFieldData.Name] = new Date(parseInt(moment(dependentFieldData.Value).format(\"YYYY\")), parseInt(moment(dependentFieldData.Value).format(\"MM\")) - 1, parseInt(moment(dependentFieldData.Value).format(\"DD\")), 0, 0, 0, 0);\r\n } if (moment(dependentFieldData.Value, 'YYYY-MM-DD', true).isValid()) {\r\n this.formData[dependentFieldData.Name] = new Date(parseInt(moment(dependentFieldData.Value).format(\"YYYY\")), parseInt(moment(dependentFieldData.Value).format(\"MM\")) - 1, parseInt(moment(dependentFieldData.Value).format(\"DD\")), 0, 0, 0, 0);\r\n } else {\r\n this.formData[dependentFieldData.Name] = dependentFieldData.Value;\r\n }\r\n } \r\n }\r\n }\r\n this.getSavedAttachments();\r\n }\r\n this.originalData = cloneDeep(this.formData);\r\n if (this.fieldsToBind == 0) {\r\n this.isLoading = false;\r\n }\r\n if (temp.length > 0) {\r\n this.groupedFields.push(temp);\r\n }\r\n });\r\n }\r\n\r\n getSavedAttachments() {\r\n var requestParam = \"moduleID=\" + 29 + \"&recordID=\" + this.dependent.DependentRequestID;\r\n this.employeeService.getFileAttachmentList(requestParam).then((response: any) => {\r\n this.savedFiles = response;\r\n });\r\n }\r\n\r\n private getFieldOptions(field) {\r\n this.employeeService.getFieldOptions(field.FieldID).then((response: any) => {\r\n field.fieldOptions = [];\r\n field.fieldOptions[field.FieldVPColumnName] = response;\r\n this.fieldsToBind--;\r\n if (this.fieldsToBind == 0) {\r\n this.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.close('close');\r\n }\r\n\r\n saveClicked() {\r\n this.savingDependent = true;\r\n this.closeAlert();\r\n var postData = [];\r\n var changedKeys = [];\r\n\r\n //Get changed data\r\n for (let [key, value] of Object.entries(this.formData)) {\r\n if (this.originalData[key] !== value && !this.areDatesEqual(this.originalData[key], value)) {\r\n if (key.toLowerCase().indexOf(\"date\") > -1 && value != null) {\r\n //ISO date string is always in format of YYYY-MM-DDTHH:mm:ss.sssZ\r\n value = moment(value).toISOString(true);\r\n value = value.substr(0, value.indexOf(\"T\"));\r\n }\r\n if (key.toLowerCase().indexOf(\"phone\") > -1 && key.toLowerCase().indexOf(\"carrier\") == -1) {\r\n if (value == this.phoneMask) {\r\n value = \"\";\r\n }\r\n }\r\n if (key != \"fileDrop\") {\r\n postData.push({ Name: key, Value: value });\r\n changedKeys.push(key);\r\n }\r\n }\r\n }\r\n //If data was changed, submit\r\n this.isSubmitting = true;\r\n this.employeeService.submitDependents(this.dependent.KeyID, postData, false, this.userID).then((response: any) => {\r\n if (response.success) {\r\n this.dependentRequestID = response.dependentRequestID;\r\n if (this.dependentRequestID != null) {\r\n this.saveAttachments();\r\n }\r\n else {\r\n this.savingDependent = false;\r\n this.activeModal.close({ type: \"success\", msg: \"Dependent information updated successfully.\" });\r\n }\r\n }\r\n else {\r\n this.savingDependent = false;\r\n this.alert = { type: \"danger\", msg: \"An error occurred while updating dependent information.\" }\r\n }\r\n });\r\n\r\n }\r\n\r\n private readFile(file: any, call: any) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) { return call(e, file.name) };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n upload() {\r\n this.fileData = [];\r\n var currentUpload = this.formData.fileDrop;\r\n this.formData.fileDrop = [];\r\n for (var i = 0; i < currentUpload.length; i++) {\r\n currentUpload[i].nameEdit = \"\";\r\n for (var y = 0; y < currentUpload[i].name.substr(0, currentUpload[i].name.lastIndexOf('.') + 1).length; y++) {\r\n if (currentUpload[i].name[y] != \" \" && currentUpload[i].name[y] != \"&\" && currentUpload[i].name[y] != \"*\" && currentUpload[i].name[y] != \":\" &&\r\n currentUpload[i].name[y] != \";\" && currentUpload[i].name[y] != \"|\" && currentUpload[i].name[y] != \"=\" && currentUpload[i].name[y] != \",\" &&\r\n currentUpload[i].name[y] != \".\" && currentUpload[i].name[y] != \"/\" && currentUpload[i].name[y] != \"\\\"\" && currentUpload[i].name[y] != \"[\" &&\r\n currentUpload[i].name[y] != \"]\")\r\n currentUpload[i].nameEdit += currentUpload[i].name[y];\r\n }\r\n currentUpload[i].nameEdit += currentUpload[i].name.substr(currentUpload[i].name.lastIndexOf('.'), currentUpload[i].name.length);\r\n }\r\n\r\n if (currentUpload != null) {\r\n for (var i = 0; i < currentUpload.length; i++) {\r\n var n = 0;\r\n this.readFile(currentUpload[i], (e: any, fileName: string) => {\r\n setTimeout(() => {\r\n this.fileData.push({ data: e.target.result.toString().split(\",\"), size: e.total, name: fileName });\r\n if (n == (currentUpload.length - 1)) {\r\n this.fileData.forEach((val: any) => {\r\n currentUpload.forEach((val2: any) => {\r\n if (val2.size == val.size && val.name == val2.name) {\r\n this.newFiles.push({ File: val.data[1], Filename: val2.nameEdit, Filedata: val2, Type: val.data[0].split(\"/\")[0] });\r\n }\r\n });\r\n });\r\n }\r\n n++;\r\n });\r\n });\r\n };\r\n }\r\n }\r\n\r\n saveAttachments() {\r\n var promises = [];\r\n if (this.mode == \"attachmentOnly\" || this.mode == \"approval\") {\r\n this.dependentRequestID = this.dependent.DependentRequestID;\r\n }\r\n this.newFiles.forEach((attachment: any) => {\r\n if (attachment.File != null && attachment.Filename != null) {\r\n promises.push(this.employeeService.saveFileAttachment(29, this.dependentRequestID, attachment.File, attachment.Filename, \"file\", null, null, null).then((response: any) => {\r\n }));\r\n }\r\n });\r\n forkJoin(promises).subscribe({\r\n complete: () => {\r\n this.savingDependent = false;\r\n this.activeModal.close({ type: \"success\", msg: \"Dependent information updated successfully.\" });\r\n }\r\n });\r\n }\r\n\r\n approveClicked() {\r\n this.gettingFilesData = true;\r\n this.closeAlert();\r\n var postData = [];\r\n var changedKeys = [];\r\n var list = [];\r\n //Get changed data\r\n this.formData.forEach((value: any, key: any) => {\r\n if (this.originalData[key] !== value && !this.areDatesEqual(this.originalData[key], value)) {\r\n //#410452: Handling other dates fields in the screen\r\n if (moment(value, 'YYYY-MM-DD', true).isValid()) {\r\n value = moment(value).format(\"YYYY-MM-DD\");\r\n }\r\n postData.push({ Name: key, Value: value });\r\n changedKeys.push(key);\r\n }\r\n });\r\n\r\n this.isSubmitting = true;\r\n\r\n //toVPFile\r\n this.approvalService.dependentRequestAction(this.dependent.DependentRequestID, postData, \"A\", this.formData.notes).then((response: any) => {\r\n if (response.success) {\r\n this.saveAttachments();\r\n if (this.savedFiles.length > 0) {\r\n this.employeeService.sendFileAttachmentRawDataToVP(29, this.dependent.DependentRequestID, \"file\", null, null, null, null).then((response: any) => {\r\n this.gettingFilesData = false;\r\n if (response.success) {\r\n this.activeModal.close({ type: \"success\", msg: \"Dependent request approved.\" });\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.alert = { type: \"danger\", msg: \"An error occurred while approving the request.\" }\r\n }\r\n });\r\n }\r\n\r\n deleteClicked() {\r\n this.employeeService.submitDependents(this.dependent.KeyID, null, true, this.userID).then((response: any) => {\r\n this.activeModal.close({ type: \"danger\", msg: \"Your request to remove a dependent has been submitted.\" });\r\n });\r\n }\r\n\r\n rejectClicked() {\r\n this.approvalService.dependentRequestAction(this.dependent.DependentRequestID, [], \"R\", this.formData.notes).then((response: any) => {\r\n if (response.success) {\r\n this.activeModal.close({ type: \"success\", msg: \"Dependent request rejected.\" });\r\n }\r\n else {\r\n this.alert = { type: \"danger\", msg: \"An error occurred while rejecting the request.\" }\r\n }\r\n });\r\n }\r\n\r\n areDatesEqual(date, date2) {\r\n return !date && !date2 || date && date2 && date.getMonth && date.getTime() === date2.getTime();\r\n }\r\n\r\n closeAlert() {\r\n this.alert = null;\r\n }\r\n\r\n updatePhone(data: string, field: any) {\r\n this.formData[field] = data;\r\n }\r\n\r\n updateSSN(data: string, field: any) {\r\n this.formData[field] = data;\r\n }\r\n}\r\n","
\r\n

Edit Dependent

\r\n

Add New Dependent

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{alert.msg}}\r\n \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 {{data.name}}\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 {{option.DisplayValue}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Drop a file or Click to upload\r\n
\r\n
\r\n
\r\n
\r\n {{file.Filename}}\r\n Remove\r\n
\r\n
0 && file.Progress < 100\">\r\n
{{file.Progress}}%
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

*required

\r\n
\r\n
\r\n
\r\n
{{btmText}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \"Loading...\"\r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\n\r\n@Component({\r\n selector: 'app-copy-expense-line-modal',\r\n templateUrl: './copy-expense-line-modal.component.html',\r\n styleUrls: ['./copy-expense-line-modal.component.css']\r\n})\r\nexport class CopyExpenseLineModalComponent implements OnInit {\r\n @Input() data: any;\r\n constructor(public activeModal: NgbActiveModal, private employeeService: EmployeeService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n continueClicked() {\r\n this.employeeService.copyExpenseLine(this.data.ExpenseItemID).then((response: any) => {\r\n this.activeModal.close('continue');\r\n });\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.close('close');\r\n }\r\n}\r\n","
\r\n

Copy Expense

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

You are about to copy the line {{data.Description}}

\r\n
\r\n
\r\n \r\n \r\n
","import { switchMap } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { EmployeeInfoService } from '../../../../core/services/employee-info.service';\r\nimport { PortalSettingsService } from '../../../../core/services/portal-settings.service';\r\nimport { EmployeeService } from './../../../../pages/employee/services/employee.service';\r\nimport moment from 'moment';\r\nimport { CurrencyMaskInputMode } from \"ngx-currency\";\r\nimport { NgForm } from '@angular/forms';\r\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\r\nimport { ImageTransform } from 'ngx-image-cropper/lib/interfaces';\r\nimport { OrderByPipe } from './../../../../shared/pipe/order-by.pipe';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EventService } from 'src/app/core/services/event.service';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { WarningModalComponent } from 'src/app/modals/shared/warning-modal/warning-modal.component';\r\nimport { UtilityService } from '../../../../core/services/utility.service';\r\nimport { HomeService } from './../../../../pages/home/services/home.service';\r\nimport {\r\n PdfViewerComponent, LinkAnnotationService, BookmarkViewService, MagnificationService,\r\n ThumbnailViewService, ToolbarService, NavigationService, SignatureFieldSettings,\r\n AnnotationService, TextSearchService, TextSelectionService,\r\n PrintService, FormDesignerService, FormFieldsService, ValidateFormFieldsArgs\r\n} from '@syncfusion/ej2-angular-pdfviewer';\r\n\r\n@Component({\r\n selector: 'app-edit-expense-modal',\r\n templateUrl: './edit-expense-modal.component.html',\r\n styleUrls: ['./edit-expense-modal.component.css'],\r\n providers: [LinkAnnotationService, BookmarkViewService, MagnificationService,\r\n ThumbnailViewService, ToolbarService, NavigationService, SignatureFieldSettings,\r\n AnnotationService, TextSearchService, TextSelectionService,\r\n PrintService, FormDesignerService, FormFieldsService]\r\n})\r\nexport class EditExpenseModalComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() mode: string;\r\n @Input() selectedEmployee: any;\r\n @Input() where: string;\r\n public pdfviewerControl: PdfViewerComponent;\r\n @ViewChild('typeFields', { static: false }) typeFields: NgForm;\r\n portalSettings: any;\r\n orderByPipe: any;\r\n isOutOfBalance: boolean;\r\n exSubmitIndividualExpenseItem: boolean;\r\n preventSubmitNonCreditCard: boolean;\r\n mileageRateLabel: string;\r\n milesLabel: string;\r\n showTaxCodeOnMileage: boolean;\r\n currencySymbol: string;\r\n requireExpenseCodingForApproversOnly: boolean;\r\n exDisableLineRequireFields: boolean;\r\n switchDropdown: boolean;\r\n exEnabledEMCo: any;\r\n exEnabledGLCo: any;\r\n exEnabledJCCo: any;\r\n exEnabledSMCo: any;\r\n markAttachmentRequireBaseOnThreshold: any;\r\n requireAttachmentBasedOnMileage: boolean;\r\n showReviewer: boolean;\r\n mobileMode: boolean;\r\n saveInProgress: boolean;\r\n bindNewTaxCode: boolean;\r\n disableWhileSaving: boolean;\r\n format: string;\r\n formData: { [key: string]: any } = {};\r\n reimbursementList: any[];\r\n taxTypeList: { TaxType: number; TaxTypeDisplay: string; }[];\r\n ExpenseItemID: any;\r\n currentPRCo: any;\r\n showPending: boolean;\r\n showSaved: boolean;\r\n newFiles: any[];\r\n openModalLeft: number;\r\n savedFiles: any[];\r\n fieldsName: any[];\r\n groupedFields: any[];\r\n attachmentList: any[];\r\n umList: any[];\r\n itemDetails: { [key: string]: any } = {};\r\n isPR: boolean;\r\n lookupValues: { [key: string]: any } = {};\r\n lookupLoaded: { [key: string]: any } = {};\r\n itemDetailsCheck: { [key: string]: any } = {};\r\n lineTypeList: any[];\r\n reviewer: any[];\r\n reviewerList: any[];\r\n rateList: any[];\r\n taxCodeList: any[];\r\n creditList: any[];\r\n customerList: any[];\r\n employeeInfo: any;\r\n editNow: boolean;\r\n lastSave: { [key: string]: any } = {};\r\n catList: any[];\r\n cleanBoard: boolean;\r\n datePickerOptions: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean };\r\n fileData: any[];\r\n close: string;\r\n fields: any[];\r\n fieldProperties: any[];\r\n earnCodeList: any[];\r\n innerCounter: number;\r\n alert: string;\r\n showTaxAmount: boolean;\r\n gettingLookupValues: boolean;\r\n options: { [key: string]: any } = {};\r\n submitting: boolean;\r\n aPCo: any;\r\n errorMsg: string;\r\n stopCalculate: boolean;//Unassigned variable\r\n restrictJCCO: any; //Unassigned variable\r\n canSave: boolean;\r\n extenion: any;\r\n showViewer: boolean;\r\n disableSaveImage: boolean;\r\n enableEditImage: boolean;\r\n imageSrc: any;\r\n uploadImage: string;\r\n searchText: string;\r\n croppedImage: any;\r\n canvasRotation: number;\r\n transform: ImageTransform = {};\r\n customerNameSearch = new Subject();\r\n reviewerNameSearch = new Subject();\r\n lookupValueSearch = new Subject();\r\n lookupURL: string;\r\n lookupColumnName: string;\r\n preLoadLookup: boolean;\r\n selectFirstLookup: boolean;\r\n isMobileIos: any;\r\n transDateDaysLimit: string;\r\n isTransDateValid: boolean;\r\n service: any;\r\n\r\n constructor(public activeModal: NgbActiveModal, portalSettingsService: PortalSettingsService, employeeInfoService: EmployeeInfoService, private employeeService: EmployeeService,\r\n public HttpClient: HttpClient, private eventService: EventService, private sharedModalService: BsModalService, private modalService: NgbModal, private utilityService: UtilityService, private homeService: HomeService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n this.format = utilityService.getDateFormat().toUpperCase();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.service = \"/Api/PdfViewer\";\r\n this.orderByPipe = new OrderByPipe();\r\n this.datePickerOptions = { dateInputFormat: this.format.toUpperCase(), containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false };\r\n this.editNow = false;\r\n this.formData.selectedReviewer = {};\r\n this.lastSave.status = null;\r\n this.lastSave.time = null;\r\n this.mileageRateLabel = this.portalSettings.CountryDateCode.ConfigValue === \"CAN\" || this.portalSettings.CountryDateCode.ConfigValue === \"AU\" ? \"Rate / km\" : \"Mileage Rate\";\r\n this.milesLabel = this.portalSettings.CountryDateCode.ConfigValue === \"CAN\" || this.portalSettings.CountryDateCode.ConfigValue === \"AU\" ? \"Kilometers\" : \"Miles\";\r\n this.showTaxCodeOnMileage = this.portalSettings.ShowTaxCodeOnMileage.ConfigValue === \"1\";\r\n\r\n var currencyFormatSymbols = this.portalSettings.CurrencyFormatPerPRCo.ConfigValue;\r\n this.currencySymbol = \"$\";\r\n if (currencyFormatSymbols && currencyFormatSymbols.trim() !== \"\") {\r\n currencyFormatSymbols.split(\",\").forEach((val: string) => {\r\n var arrayEntry = val.split(\":\");\r\n var currencyObject = { PRCo: parseInt(arrayEntry[0]), Currency: arrayEntry[1] }\r\n if (this.employeeInfo && currencyObject.PRCo == this.employeeInfo.PRCo) {\r\n this.currencySymbol = currencyObject.Currency;\r\n }\r\n });\r\n }\r\n this.transDateDaysLimit = this.portalSettings[\"EXRestrictTransactionDateNumberofDays\"].ConfigValue;\r\n this.isTransDateValid = true;\r\n this.requireExpenseCodingForApproversOnly = this.portalSettings.RequireExpenseCodingForApproversOnly.ConfigValue == \"1\";\r\n this.exDisableLineRequireFields = this.portalSettings.ExDisableLineRequireFields.ConfigValue === \"1\";\r\n this.switchDropdown = this.portalSettings.SwitchJobToStandardSearchableDropdown.ConfigValue === \"1\";\r\n this.exEnabledEMCo = this.portalSettings.EXEnabledEMCo.ConfigValue != null ? this.portalSettings.EXEnabledEMCo.ConfigValue.split(\",\") : 0;\r\n this.exEnabledGLCo = this.portalSettings.EXEnabledGLCo.ConfigValue != null ? this.portalSettings.EXEnabledGLCo.ConfigValue.split(\",\") : 0;\r\n this.exEnabledJCCo = this.portalSettings.EXEnabledJCCo.ConfigValue != null ? this.portalSettings.EXEnabledJCCo.ConfigValue.split(\",\") : 0;\r\n this.exEnabledSMCo = this.portalSettings.EXEnabledSMCo.ConfigValue != null ? this.portalSettings.EXEnabledSMCo.ConfigValue.split(\",\") : 0;\r\n this.exSubmitIndividualExpenseItem = this.portalSettings.ExSubmitIndividualExpenseItem.ConfigValue == \"1\";\r\n this.markAttachmentRequireBaseOnThreshold = this.portalSettings.MarkAttachmentRequireBaseOnThreshold.ConfigValue;\r\n this.requireAttachmentBasedOnMileage = this.portalSettings.RequireAttachmentBasedOnMileage.ConfigValue == \"1\";\r\n this.preventSubmitNonCreditCard = this.portalSettings.PreventSubmitNonCreditCard.ConfigValue == \"1\";\r\n this.showReviewer = this.portalSettings.ReviewerOnSubmit.ConfigValue == \"1\" ? true : false;\r\n this.mobileMode = this.mobileAndTabletcheck();\r\n this.saveInProgress = false;\r\n this.where = this.where;\r\n this.bindNewTaxCode = false;\r\n this.disableWhileSaving = false;\r\n this.isOutOfBalance = this.data != null && this.data.ExpenseTransID != null && this.data.UnreconciledAmount != null;\r\n this.formData.UM = \"LS\";\r\n this.formData.ReimburseOrMileage = null;\r\n this.formData.CustomerName = null;\r\n this.formData.ExpenseTransID = null;\r\n this.formData.matchCreditCard = {};\r\n this.reimbursementList = [];\r\n this.taxTypeList = [{ TaxType: 0, TaxTypeDisplay: \"No Tax Type\" }, { TaxType: 1, TaxTypeDisplay: \"1 - Sales\" }, { TaxType: 2, TaxTypeDisplay: \"2 - Use\" }, { TaxType: 3, TaxTypeDisplay: \"3 - VAT\" }];\r\n this.ExpenseItemID = null;\r\n this.cleanBoard = true;\r\n if (this.where == \"dashboard\")\r\n this.cleanBoard = false;\r\n this.isMobileIos = navigator.userAgent.match(/(iPad|iPhone|iPod touch);.*(OS 11_0|OS 11_1|OS 11_2|OS 11_3)/i);\r\n if (this.isMobileIos != null) {\r\n $('body').addClass('iosBugFixCaret');\r\n }\r\n if (this.data != null) {\r\n this.currentPRCo = this.data.PRCo;\r\n this.ExpenseItemID = this.data.ExpenseItemID;\r\n for (let key in this.data) {\r\n let val = this.data[key];\r\n if (key === \"Job\") {\r\n this.formData[\"Job\"] = {};\r\n this.formData[\"Job\"].DatabaseValue = val;\r\n this.formData[\"JobLabel\"] = val;\r\n } else\r\n this.formData[key] = val;\r\n this.formData.Amount = this.data.Amount;\r\n }\r\n } else {\r\n this.data = { ExpenseItemID: -1 };\r\n this.ExpenseItemID = -1;\r\n if (this.selectedEmployee !== null) {\r\n if (this.selectedEmployee.PRCo === null) {\r\n this.currentPRCo = this.employeeInfo.PRCo;\r\n } else {\r\n this.currentPRCo = this.selectedEmployee.PRCo;\r\n }\r\n } else {\r\n this.currentPRCo = this.employeeInfo.PRCo;\r\n }\r\n }\r\n\r\n if (this.formData.TransDate !== null)\r\n this.formData.TransDateDisplay = moment(this.formData.TransDate).utc().format(this.format);\r\n\r\n var temp = this.portalSettings.LimitReimbursementOnSubmit.ConfigValue.split(',');\r\n\r\n temp.forEach((val: string) => {\r\n if (val == \"E\") {\r\n this.reimbursementList.push({ value: \"E\", display: \"Entertainment\" });\r\n } else if (val == \"R\") {\r\n this.reimbursementList.push({ value: \"R\", display: \"Expense\" });\r\n if (this.formData.ReimburseOrMileage == null) {\r\n this.formData.ReimburseOrMileage = \"R\";\r\n }\r\n } else if (val == \"M\" && this.formData.ExpenseTransID == null) {\r\n this.reimbursementList.push({ value: \"M\", display: \"Mileage\" });\r\n }\r\n });\r\n\r\n if (this.formData.ReimburseOrMileage == null) {\r\n this.formData.ReimburseOrMileage = this.reimbursementList[0].value;\r\n }\r\n\r\n this.showPending = true;\r\n this.showSaved = true;\r\n this.newFiles = [];\r\n this.openModalLeft = (window.innerWidth - 200) / 2;\r\n this.savedFiles = [];\r\n this.attachmentList = [];\r\n this.itemDetails = {};\r\n for (let key in this.data) {\r\n this.itemDetails[key] = this.data[key];\r\n }\r\n\r\n if (this.itemDetails.Equip !== undefined) {\r\n this.formData.equipTempName = this.itemDetails.Equip;\r\n }\r\n if (this.itemDetails.Job !== undefined) {\r\n this.formData.jobTempName = this.itemDetails.Job;\r\n }\r\n if (this.itemDetails.Material !== undefined) {\r\n this.formData.materialTempName = this.itemDetails.Material;\r\n }\r\n if (this.itemDetails.SMWorkOrder !== undefined) {\r\n this.formData.smWorkOrderTempName = this.itemDetails.SMWorkOrder;\r\n }\r\n if (this.itemDetails.WO !== undefined) {\r\n this.formData.woTempName = this.itemDetails.WO;\r\n }\r\n\r\n this.formData.ExpenseDate = this.formData.ExpenseDate != null ? new Date(parseInt(moment(this.formData.ExpenseDate).utc().format(\"YYYY\")), parseInt(moment(this.formData.ExpenseDate).utc().format(\"MM\")) - 1, parseInt(moment(this.formData.ExpenseDate).utc().format(\"DD\")), 0, 0, 0, 0) : new Date();\r\n\r\n if (this.selectedEmployee != null && this.selectedEmployee.DefaultBlankDate && this.ExpenseItemID == -1) {\r\n this.formData.ExpenseDate = null;\r\n }\r\n\r\n this.isPR = this.portalSettings.ExpensePostingType.ConfigValue.toLowerCase() == \"p\";\r\n this.lookupValues = {};\r\n this.lookupLoaded = [];\r\n this.itemDetailsCheck = {};\r\n this.lineTypeList = [];\r\n var lineTypeListCopy = {};\r\n var oriLineTypeList = {};\r\n oriLineTypeList[\"1\"] = \"Job\";\r\n\r\n oriLineTypeList[\"3\"] = \"Expense\";\r\n oriLineTypeList[\"4\"] = \"Equipment\";\r\n oriLineTypeList[\"5\"] = \"EM Work Order\";\r\n if (!this.isPR) {\r\n oriLineTypeList[\"6\"] = \"PO\";\r\n \r\n }\r\n oriLineTypeList[\"8\"] = \"SM Work Order\";\r\n\r\n this.portalSettings.ExpenseLineType.ConfigValue.split(\",\").forEach((val: string) => {\r\n if (oriLineTypeList.hasOwnProperty(val)) {\r\n this.lineTypeList.push({ index: parseInt(val), name: oriLineTypeList[val] });\r\n lineTypeListCopy[val] = true;\r\n }\r\n });\r\n\r\n if (lineTypeListCopy.hasOwnProperty(this.formData.LineChargeType))\r\n this.formData.LineChargeType = (this.formData.LineChargeType == null ? this.lineTypeList[0].index : this.formData.LineChargeType);\r\n else {\r\n this.clearField();\r\n this.formData.LineChargeType = this.lineTypeList[0].index;\r\n }\r\n this.openModal();\r\n this.getMileageList();\r\n this.getUM();\r\n this.getFieldsByLineItem();\r\n this.getCatg();\r\n\r\n if (this.formData.ExpenseTransID === null)\r\n this.getCreditCardList();\r\n\r\n if (this.mode !== \"new\")\r\n this.getAttachment();\r\n\r\n this.reviewer = [];\r\n this.reviewerList = [];\r\n this.options = { align: 'left', prefix: this.currencySymbol, precision: 2, nullable: true, inputMode: CurrencyMaskInputMode.NATURAL };\r\n this.typeSearch()\r\n }\r\n\r\n mobileAndTabletcheck() {\r\n var check = false;\r\n (function (a) { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true })(navigator.userAgent || navigator.vendor);\r\n return check;\r\n }\r\n\r\n typeSearch() {\r\n this.customerNameSearch\r\n .pipe(\r\n switchMap(customerNameSearch => this.employeeService.getCustomerNames(this.formData.CustomerName))\r\n )\r\n .subscribe(data => {\r\n var response: any = data;\r\n var list: any[] = [];\r\n response.forEach((val: any, key: any) => {\r\n list.push({ Key: key, DisplayValue: val });\r\n });\r\n this.customerList = list;\r\n });\r\n\r\n this.reviewerNameSearch\r\n .pipe(\r\n switchMap(reviewerNameSearch => this.employeeService.getReviewers(this.formData.selectedReviewer.Label))\r\n )\r\n .subscribe(data => {\r\n var reviewer: any = data;\r\n this.reviewer = reviewer;\r\n });\r\n\r\n this.lookupValueSearch\r\n .pipe(\r\n switchMap(lookupValueSearch => this.employeeService.getlookupURL(this.lookupURL))\r\n )\r\n .subscribe(data => {\r\n var response: any = data;\r\n if (this.preLoadLookup && response.length == 1)\r\n return this.setLookUps(this.lookupColumnName, true, response);\r\n else if (!this.preLoadLookup)\r\n return this.setLookUps(this.lookupColumnName, this.selectFirstLookup, response);\r\n });\r\n\r\n }\r\n\r\n searchReviewer() {\r\n if (this.formData.selectedReviewer.Label != null && this.formData.selectedReviewer.Label.length > 1) {\r\n this.reviewerNameSearch.next();\r\n }\r\n }\r\n\r\n addReviewer() {\r\n this.reviewerList.push({ reviewer: this.formData.selectedReviewer.Value, reviewerName: this.formData.selectedReviewer.Label });\r\n this.formData.selectedReviewer = {};\r\n }\r\n\r\n removeReviewer(index: any) {\r\n this.reviewerList.splice(index, 1);\r\n }\r\n\r\n getCreditCardList() {\r\n this.employeeService.getCreditCardList(this.selectedEmployee).then((response: any) => {\r\n this.creditList = response;\r\n if (this.creditList != null) {\r\n this.creditList.forEach((val: any) => {\r\n if (val.TransDate !== null)\r\n val.TransDateDisplay = moment(val.TransDate).utc().format(this.format);\r\n val.displayValue = val.TransDateDisplay + \" \" + val.TransDescription + \" \" + this.currencySymbol + val.TransAmount;\r\n });\r\n }\r\n })\r\n }\r\n\r\n unlinkCreditCard() {\r\n this.openModal();\r\n this.employeeService.unlinkItem(this.selectedEmployee === null ? null : this.selectedEmployee.UserKeyID, this.ExpenseItemID).then((response: any) => {\r\n this.cleanBoard = false;\r\n if (response.success) {\r\n this.formData.ExpenseTransID = null;\r\n this.getCreditCardList();\r\n this.formData.matchCreditCard = null;\r\n this.isOutOfBalance = false;\r\n }\r\n this.closeModal();\r\n });\r\n };\r\n\r\n getMileageList() {\r\n this.employeeService.getMileageRate(this.currentPRCo).then((response: any) => {\r\n this.rateList = response;\r\n this.rateList.forEach((val: any) => {\r\n if (val.MileageRate.toFixed(2).length > val.MileageRate.toString().length)\r\n val.mileageRateDisplay = val.MileageRate.toFixed(2);\r\n else\r\n val.mileageRateDisplay = val.MileageRate;\r\n });\r\n if (this.rateList.length > 0) {\r\n if (this.formData.ReimburseOrMileage == \"M\") {\r\n var rateExist = false;\r\n if (this.formData.UnitCost != null) {\r\n this.rateList.forEach((val: any) => {\r\n if (val.MileageRate == this.formData.UnitCost) {\r\n rateExist = true;\r\n }\r\n });\r\n }\r\n if (!rateExist)\r\n this.formData.UnitCost = this.rateList[0].MileageRate;\r\n }\r\n }\r\n this.getCompanySetting();\r\n });\r\n }\r\n\r\n getCompanySetting() {\r\n this.employeeService.expenseSettingsByPRCo(this.currentPRCo).then((response: any) => {\r\n if (this.mode == \"new\") {\r\n if (this.portalSettings[\"CountryDateCode\"].ConfigValue == \"US\") {\r\n this.formData.TaxType = 1;\r\n }\r\n else {\r\n this.formData.TaxType = 3;\r\n }\r\n\r\n if (this.portalSettings[\"ExpenseTaxTypeDefaultOverride\"].ConfigValue != null)\r\n this.formData.TaxType = parseInt(this.portalSettings[\"ExpenseTaxTypeDefaultOverride\"].ConfigValue);\r\n }\r\n\r\n this.showTaxAmount = response[0].ShowTaxAmount;\r\n this.aPCo = response[0].APCo;\r\n\r\n if ((this.mode == \"new\" || this.formData.TaxCode == null) && this.formData.TaxType != 0) {\r\n if(this.formData.ReimburseOrMileage != 'M' || (this.formData.ReimburseOrMileage == 'M' && this.showTaxCodeOnMileage)){\r\n this.formData.TaxCode = response[0].TaxCode; \r\n this.bindNewTaxCode = true;\r\n }\r\n }\r\n\r\n if (this.formData.TaxType != 0) {\r\n this.getTaxCode();\r\n }\r\n });\r\n }\r\n\r\n getTaxCode() {\r\n this.employeeService.getTaxCodes(this.formData.TaxType).then((response: any) => {\r\n this.taxCodeList = response;\r\n this.taxCodeList.unshift({ EffectiveRate: 0, TaxCode: null, TaxCodeDisplay: \"No Tax Code\" });\r\n if (this.formData.TaxCode != null) {\r\n var count = 0;\r\n response.forEach((val: any) => {\r\n if (val.TaxCode == this.formData.TaxCode)\r\n count++;\r\n });\r\n if (count == 0)\r\n this.formData.TaxCode = null;\r\n }\r\n if (this.formData.Amount != null && this.showTaxAmount && this.taxCodeList.length > 0 && (this.formData.TaxAmount == null || this.bindNewTaxCode)) {\r\n this.calculateTaxAmount();\r\n this.bindNewTaxCode = false;\r\n }\r\n if (this.formData.ReimburseOrMileage == \"M\") {\r\n this.calculatMileage();\r\n }\r\n });\r\n }\r\n\r\n calculatMileage() {\r\n if (this.formData.UnitCost != null && this.formData.Units != null)\r\n this.formData.MileTotal = this.formData.UnitCost * this.formData.Units;\r\n else\r\n this.formData.MileTotal = null;\r\n\r\n if (this.formData.MileTotal != null && this.formData.TaxCode != null && this.taxCodeList != null)\r\n this.calculateCanTaxAmount();\r\n this.saveItem('open');\r\n }\r\n\r\n calculateCanTaxAmount() {\r\n if (this.formData.MileTotal != null && this.formData.TaxCode != null) {\r\n var tempRate = null;\r\n\r\n this.taxCodeList.forEach((val: any) => {\r\n if (this.formData.TaxCode == val.TaxCode)\r\n tempRate = val.EffectiveRate;\r\n });\r\n if (this.formData.TaxType == 2)\r\n this.formData.TaxAmount = this.formData.MileTotal * tempRate;\r\n else\r\n this.formData.TaxAmount = (this.formData.MileTotal / (1 + tempRate)) * tempRate;\r\n } else\r\n this.formData.TaxAmount = null;\r\n }\r\n\r\n calculateTaxAmount() {\r\n if (this.formData.Amount != null && this.formData.TaxCode != null) {\r\n var tempRate = null;\r\n this.taxCodeList.forEach((val: any) => {\r\n if (this.formData.TaxCode == val.TaxCode)\r\n tempRate = val.EffectiveRate;\r\n });\r\n if (this.formData.TaxType == 2)\r\n this.formData.TaxAmount = this.formData.Amount * tempRate;\r\n else\r\n this.formData.TaxAmount = (this.formData.Amount / (1 + tempRate)) * tempRate;\r\n } else\r\n this.formData.TaxAmount = null;\r\n }\r\n\r\n amountChange(where: string) {\r\n if (where === \"amount\") {\r\n if (isNaN(this.formData.Amount)) {\r\n this.formData.Amount = null;\r\n } else {\r\n if (this.formData.Amount !== null && this.showTaxAmount && this.formData.TaxCode !== null) {\r\n var tempRate = null;\r\n this.taxCodeList.forEach((val: any) => {\r\n if (this.formData.TaxCode === val.TaxCode)\r\n tempRate = val.EffectiveRate;\r\n });\r\n if (this.formData.TaxType == 2)\r\n this.formData.TaxAmount = this.formData.Amount * tempRate\r\n else\r\n this.formData.TaxAmount = this.formData.Amount / (1 + tempRate) * tempRate;\r\n } else\r\n this.formData.TaxAmount = null;\r\n }\r\n this.isOutOfBalance = this.formData.ExpenseTransID != null && (this.formData.Amount != null && this.formData.Amount != this.formData.matchCreditCard.UnreconciledAmount);\r\n } else {\r\n if (isNaN(this.formData.TaxAmount)) {\r\n this.formData.TaxAmount = null;\r\n }\r\n }\r\n this.saveItem('open');\r\n }\r\n\r\n getCatg() {\r\n this.employeeService.getCategory().then((response: any) => {\r\n this.catList = [];\r\n response.forEach((val: any) => {\r\n if (val.IsActive)\r\n this.catList.push(val);\r\n });\r\n });\r\n this.closeModal();\r\n }\r\n\r\n readFile(file, call) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) { return call(e, file.name) };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n getCustomerNamesSearch() {\r\n if (this.formData.CustomerName != null && this.formData.CustomerName.length >= 2) {\r\n this.customerNameSearch.next();\r\n }\r\n }\r\n\r\n blurSave() {\r\n this.cleanBoard = false;\r\n this.saveItem('open');\r\n }\r\n\r\n calculatTotal(saveTrigger: boolean) {\r\n if (this.formData.Units != null && this.formData.UnitCost != null && !isNaN(this.formData.UnitCost)) {\r\n this.formData.Amount = this.formData.Units * this.formData.UnitCost;\r\n this.amountChange(\"amount\");\r\n }\r\n if (saveTrigger)\r\n this.saveItem('open');\r\n }\r\n\r\n rorMUpdate() {\r\n if (this.formData.ReimburseOrMileage == \"M\") {\r\n this.formData.UM = null;\r\n this.formData.Units = null;\r\n this.formData.TaxCode = null;\r\n this.formData.TaxAmount = null;\r\n this.formData.MileTotal = null;\r\n this.formData.UnitCost = null;\r\n this.formData.Amount = null;\r\n this.formData.CustomerName = null;\r\n this.formData.CustomerCount = null;\r\n this.formData.OurFirmCount = null;\r\n } else if (this.formData.ReimburseOrMileage == \"R\") {\r\n this.formData.CustomerName = null;\r\n this.formData.CustomerCount = null;\r\n this.formData.OurFirmCount = null;\r\n this.calculatTotal(false);\r\n } else {\r\n this.calculatTotal(false);\r\n }\r\n\r\n this.saveItem('open');\r\n }\r\n\r\n saveItem(close: string) {\r\n if (this.ExpenseItemID == -1) {\r\n this.disableWhileSaving = true;\r\n }\r\n\r\n if (this.formData.ExpenseDate != null && this.transDateDaysLimit != null && this.employeeInfo != null) {\r\n var transDate = moment(this.formData.ExpenseDate).format(this.format);\r\n var restrictedTransDate = moment(new Date()).subtract(this.transDateDaysLimit, \"days\").format(this.format);\r\n if (transDate < restrictedTransDate && !this.employeeInfo.IsExpenseAdmin) {\r\n this.isTransDateValid = false;\r\n this.disableWhileSaving = false;\r\n }\r\n else if (transDate < restrictedTransDate && this.employeeInfo.IsExpenseAdmin && close == 'submit') {\r\n const initialState = {\r\n modalData: {\r\n modalTitle: \"Confirm Message\",\r\n modalMessage: 'Transaction date is beyond allowed expense date. Are you sure you want to continue?',\r\n modalAction: \"Continue\", closeButtonText: \"Cancel\", warningLevel: \"success\"\r\n },\r\n backdrop: 'static',\r\n size: 'md'\r\n };\r\n let modalRef = this.sharedModalService.show(WarningModalComponent, { initialState, ignoreBackdropClick: true, keyboard: true });\r\n modalRef.onHide.subscribe((reason: any) => {\r\n var result = modalRef.content;\r\n if (result.userAction == \"Continue\") {\r\n this.saveDetail(close);\r\n }\r\n });\r\n }\r\n else {\r\n this.isTransDateValid = true;\r\n this.disableWhileSaving = false;\r\n this.saveDetail(close);\r\n }\r\n }\r\n else {\r\n this.saveDetail(close);\r\n }\r\n }\r\n\r\n saveDetail(close: string) {\r\n this.saveInProgress = true;\r\n if (((this.showTaxAmount && ((Math.abs(this.formData.TaxAmount) <= Math.abs(this.formData.Amount) && this.formData.Amount != null && this.formData.TaxAmount != null) ||\r\n (this.formData.Amount != null && this.formData.TaxAmount == null) && (this.formData.ReimburseOrMileage == \"R\" || this.formData.ReimburseOrMileage == \"E\")) || this.formData.ReimburseOrMileage == \"M\") || !this.showTaxAmount)\r\n && (this.formData.Description != null && this.formData.Description != '') && (this.typeFields.form.valid || this.exDisableLineRequireFields) &&\r\n ((this.formData.Amount != null && this.formData.Amount != '' && (this.formData.ReimburseOrMileage == \"R\" || this.formData.ReimburseOrMileage == \"E\")) ||\r\n (this.formData.ReimburseOrMileage == \"M\" && (this.formData.UnitCost != null && this.formData.Units != null)))\r\n && (this.formData.LineChargeType != 4 || this.itemDetails.Equip != null || this.exDisableLineRequireFields) && (this.selectedEmployee != null ? (!this.selectedEmployee.DefaultBlankDate || (this.selectedEmployee.DefaultBlankDate && this.formData.ExpenseDate != null)) : this.formData.ExpenseDate != null)) {\r\n this.employeeService.insertUpdateExpenseItem(\r\n this.ExpenseItemID,\r\n this.formData.ExpenseCatgID,\r\n this.formData.Description,\r\n this.formData.Amount,\r\n this.formData.TaxAmount,\r\n this.formData.Vendor,\r\n this.itemDetails.JCCo,\r\n this.itemDetails.Job,\r\n this.selectedEmployee === null ? this.data.SubmittedByUserKeyID : this.selectedEmployee.UserKeyID,\r\n this.formData.CustomerName,\r\n this.itemDetails.Phase,\r\n this.itemDetails.GLCo,\r\n this.itemDetails.GLAcct,\r\n this.itemDetails.SMCo,\r\n this.itemDetails.SMWorkOrder,\r\n this.itemDetails.EMCo,\r\n this.formData.Units,\r\n (this.formData.ReimburseOrMileage === \"M\" ? \"EA\" : this.formData.UM),\r\n this.formData.UnitCost,\r\n moment(this.formData.ExpenseDate, this.format).format(\"YYYY-MM-DD\"),\r\n this.formData.ReimburseOrMileage,\r\n this.formData.CustomerCount,\r\n this.formData.OurFirmCount,\r\n this.formData.Note,\r\n this.itemDetails.JCCType,\r\n (this.selectedEmployee === null ? this.data.SubmittedByUserKeyID : this.selectedEmployee.UserKeyID),\r\n this.formData.TaxCode,\r\n this.itemDetails.PO,\r\n this.itemDetails.POItem,\r\n this.itemDetails.SL,\r\n this.itemDetails.SLItem,\r\n this.itemDetails.WO,\r\n this.itemDetails.WOItem,\r\n this.itemDetails.Equip,\r\n this.itemDetails.CostCode,\r\n this.itemDetails.EMCType,\r\n this.itemDetails.CompType,\r\n this.itemDetails.Component,\r\n this.itemDetails.INCo,\r\n this.itemDetails.Loc,\r\n this.itemDetails.Material,\r\n this.itemDetails.Scope,\r\n this.itemDetails.POItemLine,\r\n this.itemDetails.SMCostType,\r\n this.formData.LineChargeType,\r\n this.itemDetails.EarnCode,\r\n this.formData.AttendeeName,\r\n this.formData.TaxType == 0 ? null : this.formData.TaxType\r\n ).then((response: any) => {\r\n this.fadeLabel(response.success);\r\n this.cleanBoard = false;\r\n if (this.ExpenseItemID == -1) {\r\n this.ExpenseItemID = response.newID;\r\n this.mode = \"edit\";\r\n }\r\n if (this.newFiles.length > 0) {\r\n this.attachmentUpload(response.newID, close);\r\n }\r\n this.disableWhileSaving = false;\r\n this.saveInProgress = false;\r\n if (close == \"close\") {\r\n this.activeModal.close();\r\n } else if (close == 'submit') {\r\n this.submitItem();\r\n }\r\n });\r\n } else {\r\n if (close == 'close') {\r\n this.closeModal();\r\n } else if (close == 'submit') {\r\n this.submitItem();\r\n }\r\n this.disableWhileSaving = false;\r\n this.saveInProgress = false;\r\n }\r\n}\r\n\r\n submitItem() {\r\n this.submitting = true;\r\n this.employeeService.submitItems(this.ExpenseItemID, this.formData.Description, this.selectedEmployee == null ? this.data.SubmittedByUserKeyID : this.selectedEmployee.UserKeyID).then((response: any) => {\r\n this.eventService.broadcast('approvedExpenseChangedBroadcast');\r\n var reviewerArray = [];\r\n this.reviewerList.forEach((val: any) => {\r\n reviewerArray.push(val.reviewer.Reviewer);\r\n });\r\n if (reviewerArray.length > 0) {\r\n this.employeeService.addReviewer(response.newID, reviewerArray).then((response: any) => {\r\n this.activeModal.close(response.success);\r\n });\r\n } else {\r\n this.activeModal.close(response.success);\r\n }\r\n });\r\n }\r\n\r\n clearField() {\r\n for (let key in this.itemDetails) {\r\n this.itemDetails[key] = null;\r\n }\r\n this.formData.equipTempName = null;\r\n this.formData.jobTempName = null;\r\n this.formData.materialTempName = null;\r\n this.formData.smWorkOrderTempName = null;\r\n this.formData.woTempName = null;\r\n this.formData.equipTemp = null;\r\n this.formData.jobTemp = null;\r\n this.formData.materialTemp = null;\r\n this.formData.smWorkOrderTemp = null;\r\n this.formData.woTemp = null;\r\n }\r\n\r\n typeChanged() {\r\n this.clearField();\r\n this.getFieldsByLineItem();\r\n //#435764: Saving item on type change\r\n this.saveItem('open');\r\n }\r\n\r\n getFieldsByLineItem() {\r\n this.openModal();\r\n this.employeeService.getFieldsByLineItem(this.formData.LineChargeType, null).then((response: any) => {\r\n this.fields = response;\r\n this.lookupValues = {};\r\n this.fieldProperties = [];\r\n this.itemDetailsCheck = {};\r\n this.fields.forEach((val: any) => {\r\n this.fieldProperties[val.ColumnName] = {};\r\n this.fieldProperties[val.ColumnName].Visible = true;\r\n this.fieldProperties[val.ColumnName].Required = val.Req;\r\n if (val.ColumnName == \"UM\")\r\n this.fieldProperties[val.ColumnName].Required = true;\r\n if (val.ColumnName != \"Description\" && !((val.ColumnName == \"GLCo\" || val.ColumnName == \"GLAcct\") && !this.formData.ExpenseTransID && this.isPR) &&\r\n !(val.ColumnName == \"Material\" && this.formData.LineChargeType != 2)) {\r\n this.itemDetailsCheck[val.ColumnName] = val.Req;\r\n }\r\n if (this.lookupValues[val.ColumnName] == null) {\r\n this.lookupValues[val.ColumnName] = [];\r\n }\r\n });\r\n if (this.formData.LineChargeType == 3 && !this.formData.ExpenseTransID && this.isPR) {\r\n this.fields.push({ FieldLabel: \"EarnCode\", ColumnName: \"EarnCode\", Req: \"true\", IsCombo: 1 });\r\n this.fieldProperties[\"EarnCode\"] = {};\r\n this.fieldProperties[\"EarnCode\"].Visible = true;\r\n this.fieldProperties[\"EarnCode\"].Required = true;\r\n this.itemDetailsCheck[\"EarnCode\"] = true;\r\n this.getEarnCodes();\r\n }\r\n\r\n if (this.formData.LineChargeType == 1)\r\n this.loadValues(\"JCCo\", null, null, null, true);\r\n else if (this.formData.LineChargeType == 3)\r\n this.loadValues(\"GLCo\", null, null, null, true);\r\n else if (this.formData.LineChargeType == 4 || this.formData.LineChargeType == 5)\r\n this.loadValues(\"EMCo\", null, null, null, true);\r\n else if (this.formData.LineChargeType == 8)\r\n this.loadValues(\"SMCo\", null, null, null, true);\r\n\r\n this.closeModal();\r\n if (this.formData.LineChargeType == 6 && this.itemDetails.ItemType != null) {\r\n this.getPOFields('');\r\n }\r\n else {\r\n this.groupFields();\r\n }\r\n });\r\n }\r\n\r\n loadValues(columnName: string, selectFirst?: boolean, searchText?: string, isSuper?: any, preload?: boolean) {\r\n this.gettingLookupValues = true;\r\n this.preLoadLookup = preload;\r\n this.lookupColumnName = columnName;\r\n this.selectFirstLookup = selectFirst;\r\n var tempPOCo = null;\r\n if (this.formData.LineChargeType == 6 && this.itemDetails.PO != null) {\r\n this.lookupValues[\"PO\"].forEach((val: any) => {\r\n if (val.DatabaseValue == this.itemDetails.PO) {\r\n tempPOCo = val.POCo;\r\n }\r\n })\r\n }\r\n\r\n this.lookupURL = \"/employee/GetLookups?columnName=\"\r\n + columnName\r\n + \"&lineType=\" + this.formData.LineChargeType\r\n + (!this.itemDetails.JCCo || this.itemDetails.JCCo === undefined ? '' : \"&jCCo=\" + this.itemDetails.JCCo)\r\n + (!this.itemDetails.Job || this.itemDetails.Job === undefined ? '' : \"&job=\" + encodeURIComponent(this.itemDetails.Job))\r\n + (!this.itemDetails.Phase || this.itemDetails.Phase === undefined ? '' : \"&phase=\" + encodeURIComponent(this.itemDetails.Phase))\r\n + (!this.itemDetails.JCCType || this.itemDetails.JCCType === undefined ? '' : \"&jCCType=\" + this.itemDetails.JCCType)\r\n + (!this.itemDetails.Material || this.itemDetails.Material === undefined ? '' : \"&material=\" + encodeURIComponent(this.itemDetails.Material))\r\n + (!this.itemDetails.Description || this.itemDetails.Description === undefined ? '' : \"&description= \" + encodeURIComponent(this.itemDetails.Description))\r\n + (!this.itemDetails.GLCo || this.itemDetails.GLCo === undefined ? '' : \"&gLCo=\" + this.itemDetails.GLCo)\r\n + (!this.itemDetails.INCo || this.itemDetails.INCo === undefined ? '' : \"&iNCo=\" + this.itemDetails.INCo)\r\n + (!this.itemDetails.EMCo || this.itemDetails.EMCo === undefined ? '' : \"&eMCo=\" + this.itemDetails.EMCo)\r\n + (!this.itemDetails.Equip || this.itemDetails.Equip === undefined ? '' : \"&equip=\" + this.itemDetails.Equip)\r\n + (!this.itemDetails.CompType || this.itemDetails.CompType === undefined ? '' : \"&compType=\" + this.itemDetails.CompType)\r\n + (!this.itemDetails.CostCode || this.itemDetails.CostCode === undefined ? '' : \"&costCode=\" + this.itemDetails.CostCode)\r\n + (!this.itemDetails.WO || this.itemDetails.WO === undefined ? '' : \"&wO=\" + this.itemDetails.WO)\r\n + (!this.itemDetails.WOItem || this.itemDetails.WOItem === undefined ? '' : \"&wOItem=\" + this.itemDetails.WOItem)\r\n + (!this.aPCo || this.aPCo === undefined ? '' : \"&pOCo=\" + ((this.formData.LineChargeType == \"6\" && tempPOCo != null) ? tempPOCo : this.aPCo))\r\n + (!this.itemDetails.Loc || this.itemDetails.Loc === undefined ? '' : \"&loc=\" + this.itemDetails.Loc)\r\n + (!this.itemDetails.SMCo || this.itemDetails.SMCo === undefined ? '' : \"&sMCo=\" + this.itemDetails.SMCo)\r\n + (!this.itemDetails.SMWorkOrder || this.itemDetails.SMWorkOrder === undefined ? '' : \"&sMWorkOrder=\" + this.itemDetails.SMWorkOrder)\r\n + (!this.itemDetails.PO || this.itemDetails.PO === undefined ? '' : \"&pO=\" + this.itemDetails.PO)\r\n + (!this.itemDetails.POItem || this.itemDetails.POItem === undefined ? '' : \"&pOItem=\" + this.itemDetails.POItem)\r\n + (!this.itemDetails.POItemLine || this.itemDetails.POItemLine === undefined ? '' : \"&pOItemLine=\" + this.itemDetails.POItemLine)\r\n + (!this.itemDetails.SMScope || this.itemDetails.SMScope === undefined ? '' : \"&sMScope=\" + this.itemDetails.SMScope)\r\n + \"&userKeyID=\" + (this.selectedEmployee == null ? this.data.SubmittedByUserKeyID : this.selectedEmployee.UserKeyID)\r\n + \"&expenseItemId=\" + this.ExpenseItemID;\r\n\r\n if (columnName == \"PO\")\r\n this.lookupURL = \"/employee/GetPOLookup?userKeyID=\" + (this.selectedEmployee == null ? this.data.SubmittedByUserKeyID : this.selectedEmployee.UserKeyID) + \"&expenseItemID=\" + this.ExpenseItemID;\r\n\r\n if (searchText !== null && searchText !== undefined) {\r\n this.lookupURL += \"&searchText=\" + searchText;\r\n }\r\n\r\n if (isSuper && isSuper !== undefined) {\r\n this.lookupValueSearch.next();\r\n }\r\n else {\r\n this.lookupValueSearch.next();\r\n }\r\n }\r\n\r\n setLookUps(columnName: string, selectFirst: boolean, response: any) {\r\n this.gettingLookupValues = false;\r\n this.lookupValues[columnName] = [];\r\n this.lookupValues[columnName] = response;\r\n //place null value for clearing\r\n if (this.exDisableLineRequireFields || !this.fieldProperties[columnName].Required)\r\n this.lookupValues[columnName].unshift({ DatabaseValue: null, DisplayValue: \"No \" + columnName, POCo: null });\r\n this.lookupLoaded[columnName] = true;\r\n if (columnName == \"PO\") {\r\n response.forEach((val: any) => {\r\n if (val.POCo != null)\r\n val.DisplayValue = val.POCo + \" - \" + val.DisplayValue;\r\n });\r\n }\r\n if (selectFirst && this.lookupValues[columnName].length > 0 && this.itemDetails[columnName] == null) {\r\n //242741: If portal setting - Company Restrictions is assigned with only one Company code, then default them in corresponding combo box.\r\n if (((this.exEnabledEMCo.length == 1 && columnName == \"EMCo\") || (this.exEnabledGLCo.length == 1 && columnName == \"GLCo\") || (this.exEnabledJCCo.length == 1 && columnName == \"JCCo\") || (this.exEnabledSMCo.length == 1 && columnName == \"SMCo\")) && this.lookupValues[columnName].length == 2) {\r\n this.itemDetails[columnName] = this.lookupValues[columnName][1].DatabaseValue;\r\n }\r\n else {\r\n this.itemDetails[columnName] = this.lookupValues[columnName][0].DatabaseValue;\r\n }\r\n this.fieldChanged({ ColumnName: columnName });\r\n } else {\r\n if (columnName == \"JCCo\" || columnName == \"GLCo\" || columnName == \"JCCType\") {\r\n var checkCount = 0;\r\n\r\n response.forEach((val: any) => {\r\n if ((parseInt(val.DatabaseValue) == this.itemDetails.JCCo && columnName == \"JCCo\") || (parseInt(val.DatabaseValue) == this.itemDetails.GLCo && columnName == \"GLCo\")\r\n || (parseInt(val.DatabaseValue) == this.itemDetails.JCCType && columnName == \"JCCType\")) {\r\n this.itemDetails[columnName] = val.DatabaseValue;\r\n checkCount++;\r\n }\r\n });\r\n if (checkCount == 0) {\r\n if (this.exDisableLineRequireFields || !this.fieldProperties[columnName].Required) {\r\n if (this.lookupValues[columnName].length == 2) {\r\n this.itemDetails[columnName] = this.lookupValues[columnName][1].DatabaseValue;\r\n }\r\n } else {\r\n if (this.lookupValues[columnName].length == 1) {\r\n this.itemDetails[columnName] = this.lookupValues[columnName][0].DatabaseValue;\r\n }\r\n }\r\n if (columnName == \"JCCType\")\r\n this.fieldChanged({ ColumnName: columnName });\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n getPOFields(newValues: any) {\r\n var oldPOFields = this.fields;\r\n this.itemDetailsCheck = {};\r\n this.employeeService.getFieldsByLineItem(this.formData.LineChargeType, this.itemDetails[\"ItemType\"]).then((response: any) => {\r\n this.fields = response;\r\n //if the old field no longer exists, delete the value\r\n oldPOFields.forEach((oldField: any) => {\r\n var fieldFound = false;\r\n this.fields.forEach((newField: any) => {\r\n if (oldField.ColumnName == newField.ColumnName) {\r\n fieldFound = true;\r\n return false;\r\n }\r\n this.itemDetailsCheck[newField.ColumnName] = newField.Req;\r\n });\r\n if (!fieldFound) {\r\n this.itemDetails[oldField.ColumnName] = null;\r\n }\r\n this.lookupValues[oldField.ColumnName] = [];\r\n this.lookupLoaded[oldField.ColumnName] = false;\r\n });\r\n if (newValues != '')\r\n this.bindPOValues(newValues);\r\n else\r\n this.groupFields();\r\n });\r\n }\r\n\r\n bindPOValues(newValues: any) {\r\n this.fields.forEach((field: any) => {\r\n var columnName = field.ColumnName;\r\n if (columnName != \"PO\" && columnName != \"POItem\" && columnName != \"POItemLine\") {\r\n this.itemDetails[field.ColumnName] = newValues[field.ColumnName];\r\n }\r\n if (columnName == \"Job\") {\r\n this.formData.jobTemp = newValues.Job;\r\n this.formData.jobTempName = newValues.Job;\r\n }\r\n if (columnName == \"Phase\") {\r\n this.formData.phaseTemp = newValues.Phase;\r\n this.formData.phaseTempName = newValues.Phase;\r\n }\r\n if (columnName == \"Equip\") {\r\n this.formData.equipTemp = newValues.Equip;\r\n this.formData.equipTempName = newValues.Equip;\r\n }\r\n if (columnName == \"Material\") {\r\n this.formData.materialTemp = newValues.Material;\r\n this.formData.materialTempName = newValues.Material;\r\n }\r\n if (columnName == \"SMWorkOrder\") {\r\n this.formData.smWorkOrderTemp = newValues.SMWorkOrder;\r\n this.formData.smWorkOrderTempName = newValues.SMWorkOrder;\r\n }\r\n if (columnName == \"WO\") {\r\n this.formData.woTemp = newValues.WO;\r\n this.formData.woTempName = newValues.WO;\r\n }\r\n if (columnName != \"PO\") {\r\n this.lookupValues[field.ColumnName] = [];\r\n this.lookupLoaded[field.ColumnName] = false;\r\n }\r\n });\r\n\r\n //Amounts\r\n this.formData.UM = null;\r\n for (let val in this.lookupValues.UM) {\r\n if (this.lookupValues.UM[val].DatabaseValue == newValues.UM) {\r\n this.formData.UM = newValues.UM;\r\n }\r\n }\r\n this.formData.UnitCost = newValues.CurUnitCost;\r\n if (!this.stopCalculate) {\r\n this.formData.Units = newValues.CurUnits;\r\n this.formData.Amount = newValues.TotalCost;\r\n this.formData.ECM = newValues.CurECM;\r\n if (newValues.TaxCode !== null) {\r\n this.formData.TaxCode = newValues.TaxCode;\r\n this.formData.TaxType = newValues.TaxType;\r\n this.getTaxCode();\r\n this.formData.TaxBasis = newValues.TotalCost;\r\n this.formData.TaxAmt = newValues.TotalTax;\r\n } else {\r\n this.formData.TaxCode = null;\r\n this.formData.TaxType = null;\r\n this.taxCodeList = [];\r\n this.formData.TaxBasis = 0;\r\n this.formData.TaxAmt = 0;\r\n }\r\n } else if (this.formData.UM != \"LS\" && this.stopCalculate) {\r\n this.formData.Units = this.formData.Amount / newValues.CurUnitCost;\r\n } else if (this.formData.UM == \"LS\") {\r\n this.formData.UnitCost = 0;\r\n this.formData.Units = 0;\r\n }\r\n }\r\n\r\n getEarnCodes() {\r\n this.openModal();\r\n this.employeeService.getEarnCodes(this.currentPRCo).then((response: any) => {\r\n this.earnCodeList = response;\r\n response.forEach((val: any) => {\r\n if (val.IsDefault)\r\n this.formData.SelectedEarnCode = val.EarnCode;\r\n })\r\n this.closeModal();\r\n });\r\n }\r\n\r\n groupFields() {\r\n this.fieldsName = [];\r\n this.groupedFields = [];\r\n var group = [];\r\n for (var i = 0; i < this.fields.length; i++) {\r\n if (group.length == 20) {\r\n this.groupedFields.push(group);\r\n group = [];\r\n if (this.fieldProperties[this.fields[i].ColumnName] != null) {\r\n if (this.fieldProperties[this.fields[i].ColumnName].Visible && this.fields[i].ColumnName != \"ItemType\")\r\n group.push(this.fields[i]);\r\n }\r\n }\r\n else {\r\n if (this.fieldProperties[this.fields[i].ColumnName] != null) {\r\n if (this.fieldProperties[this.fields[i].ColumnName].Visible && this.fields[i].ColumnName != \"ItemType\")\r\n group.push(this.fields[i]);\r\n }\r\n }\r\n if (this.fieldProperties[this.fields[i].ColumnName] != null) {\r\n if (this.fieldProperties[this.fields[i].ColumnName].Visible && this.fields[i].ColumnName != \"ItemType\")\r\n this.fieldsName.push({ name: this.fields[i].ColumnName });\r\n }\r\n }\r\n if (group.length != 0) {\r\n this.groupedFields.push(group);\r\n }\r\n this.populateFields();\r\n }\r\n\r\n populateFields() {\r\n var savedData = {};\r\n this.fields.forEach((val: any) => {\r\n if (val.ColumnName !== \"Description\" && !((val.ColumnName === \"GLCo\" || val.ColumnName === \"GLAcct\") && this.isPR) &&\r\n !(val.ColumnName === \"Material\" && this.formData.LineChargeType !== 2)) {\r\n if (this.itemDetails[val.ColumnName]) {\r\n savedData[val.ColumnName] = this.itemDetails[val.ColumnName];\r\n }\r\n else {\r\n savedData[val.ColumnName] = null;\r\n }\r\n if (val.ColumnName === 'Equip') {\r\n this.formData.equipTemp = savedData[val.ColumnName];\r\n this.formData.equipTempname = savedData[val.ColumnName];\r\n }\r\n if (val.ColumnName === 'Job') {\r\n this.formData.jobTemp = savedData[val.ColumnName];\r\n this.formData.jobTempName = savedData[val.ColumnName];\r\n }\r\n if (val.ColumnName === 'Material') {\r\n this.formData.materialTemp = savedData[val.ColumnName];\r\n this.formData.materialTempName = savedData[val.ColumnName];\r\n }\r\n if (val.ColumnName === 'SMWorkOrder') {\r\n this.formData.smWorkOrderTemp = savedData[val.ColumnName];\r\n this.formData.smWorkOrderTempName = savedData[val.ColumnName];\r\n }\r\n if (val.ColumnName === 'WO') {\r\n this.formData.woTemp = savedData[val.ColumnName];\r\n this.formData.woTempName = savedData[val.ColumnName];\r\n }\r\n }\r\n });\r\n //274187 - Ensure Empty data is not assigned for other Line Types\r\n if (Object.keys(savedData).length != 0) {\r\n this.itemDetails = savedData;\r\n }\r\n this.willSave();\r\n if (this.restrictJCCO) {\r\n this.fields.forEach((val: any) => {\r\n if ((val.ColumnName === \"JCCo\" || val.ColumnName === \"GLCo\"))\r\n this.loadValues(val.ColumnName, false, null);\r\n });\r\n }\r\n }\r\n\r\n getUM() {\r\n this.employeeService.getLookups().then((response: any) => {\r\n this.umList = response;\r\n });\r\n }\r\n\r\n pendingTrigger() {\r\n this.showPending = !this.showPending;\r\n }\r\n\r\n savedTrigger() {\r\n this.showSaved = !this.showSaved;\r\n }\r\n\r\n cancelClicked() {\r\n if (this.cleanBoard)\r\n this.activeModal.dismiss();\r\n else {\r\n this.activeModal.close();\r\n }\r\n }\r\n\r\n creditCardAction() {\r\n this.openModal();\r\n this.employeeService.transAction(this.formData.matchCreditCard.ExpenseTransID, (this.selectedEmployee === null ? null : this.selectedEmployee.UserKeyID), \"M\", this.ExpenseItemID, null).then((response: any) => {\r\n this.cleanBoard = false;\r\n this.formData.ExpenseTransID = this.formData.matchCreditCard.ExpenseTransID;\r\n this.formData.TransDateDisplay = this.formData.matchCreditCard.TransDateDisplay;\r\n this.formData.TransVendor = this.formData.matchCreditCard.TransVendor;\r\n this.formData.TransDescription = this.formData.matchCreditCard.TransDescription;\r\n this.formData.TransAmount = this.formData.matchCreditCard.TransAmount;\r\n this.isOutOfBalance = this.formData.Amount != this.formData.matchCreditCard.UnreconciledAmount;\r\n this.isOutOfBalance = this.formData.Amount != this.formData.matchCreditCard.UnreconciledAmount;\r\n\r\n this.lookupValues[\"PO\"] = [];\r\n this.lookupValues[\"POItem\"] = [];\r\n this.lookupValues[\"POItemLine\"] = [];\r\n this.itemDetails.PO = null;\r\n this.itemDetails.POItem = null;\r\n this.itemDetails.POItemLine = null;\r\n\r\n this.closeModal();\r\n });\r\n };\r\n\r\n getAttachment() {\r\n this.savedFiles = [];\r\n this.newFiles = [];\r\n this.employeeService.getLineAttachments(this.ExpenseItemID).then((response: any) => {\r\n this.savedFiles = response;\r\n if (this.savedFiles && this.savedFiles.length > 0) {\r\n this.formData.selectedAttachment = this.savedFiles[0];\r\n }\r\n this.attachmentList = [];\r\n this.savedFiles.forEach((val: any) => {\r\n var tempExten = val.AttachmentFileName.substr(val.AttachmentFileName.lastIndexOf(\".\"), val.AttachmentFileName.length);\r\n if (tempExten.toLowerCase() === \".jpg\" || tempExten.toLowerCase() === \".jpeg\" || tempExten.toLowerCase() === \".png\" || tempExten.toLowerCase() === \".tif\" || tempExten.toLowerCase() === \".tiff\")\r\n this.attachmentList.push(val);\r\n this.attachmentChange();\r\n\r\n });\r\n\r\n this.closeModal();\r\n });\r\n }\r\n\r\n attachmentChange() {\r\n this.extenion = this.formData.selectedAttachment.AttachmentFileName.substr(this.formData.selectedAttachment.AttachmentFileName.lastIndexOf(\".\"), this.formData.selectedAttachment.AttachmentFileName.length);\r\n if (this.utilityService.checkFileExtension(this.extenion)) {\r\n this.showViewer = true;\r\n this.homeService.getPdfData(this.formData.selectedAttachment.FileAttachmentID).then((response: any) => {\r\n var pdfviewer = (document.getElementById('pdfViewer')).ej2_instances[0];\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"SubmitForm\"), false);\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"OpenOption\"), false);\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"CommentTool\"), false);\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"PrintOption\"), false);\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"AnnotationEditTool\"), false);\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"FormDesignerEditTool\"), false);\r\n pdfviewer.documentPath = \"data:application/pdf;base64,\" + (response);\r\n pdfviewer.downloadFileName = this.formData.selectedAttachment.AttachmentFileName.substring(0, this.formData.selectedAttachment.AttachmentFileName.indexOf('.')) + \".pdf\";\r\n }).catch((error: any) => {\r\n\r\n });\r\n } else {\r\n this.showViewer = false;\r\n }\r\n };\r\n\r\n deleteUnsavedAttachment(file) {\r\n var index = this.newFiles.indexOf(file);\r\n this.newFiles.splice(index, 1);\r\n }\r\n\r\n upload() {\r\n this.fileData = [];\r\n var currentUpload = this.formData.fileDrop;\r\n this.formData.fileDrop = [];\r\n this.openModal();\r\n for (var i = 0; i < currentUpload.length; i++) {\r\n currentUpload[i].nameEdit = \"\";\r\n for (var y = 0; y < currentUpload[i].name.substr(0, currentUpload[i].name.lastIndexOf('.') + 1).length; y++) {\r\n if (currentUpload[i].name[y] !== \" \" && currentUpload[i].name[y] !== \"&\" && currentUpload[i].name[y] !== \"*\" && currentUpload[i].name[y] !== \":\" &&\r\n currentUpload[i].name[y] !== \";\" && currentUpload[i].name[y] !== \"|\" && currentUpload[i].name[y] !== \"=\" && currentUpload[i].name[y] !== \",\" &&\r\n currentUpload[i].name[y] !== \".\" && currentUpload[i].name[y] !== \"/\" && currentUpload[i].name[y] !== \"\\\"\" && currentUpload[i].name[y] !== \"[\" &&\r\n currentUpload[i].name[y] !== \"]\")\r\n currentUpload[i].nameEdit += currentUpload[i].name[y];\r\n }\r\n currentUpload[i].nameEdit += currentUpload[i].name.substr(currentUpload[i].name.lastIndexOf('.'), currentUpload[i].name.length);\r\n }\r\n\r\n if (currentUpload !== null) {\r\n for (var i = 0; i < currentUpload.length; i++) {\r\n var preLoad = 0;\r\n this.readFile(currentUpload[i], (e, filename: string) => {\r\n setTimeout(() => {\r\n this.fileData.push({ data: e.target.result.toString().split(\",\"), size: e.total, name: filename });\r\n if (preLoad === (currentUpload.length - 1)) {\r\n this.fileData.forEach((val: any) => {\r\n currentUpload.forEach((val2: any) => {\r\n if (val2.size === val.size && val.name === val2.name) {\r\n this.newFiles.push({ File: val.data[1], Filename: val2.nameEdit, Filedata: val2, Type: val.data[0].split(\"/\")[0] });\r\n }\r\n });\r\n });\r\n if (this.ExpenseItemID != -1)\r\n this.attachmentUpload(this.ExpenseItemID, '');\r\n else\r\n this.blurSave();\r\n }\r\n preLoad++;\r\n });\r\n });\r\n };\r\n }\r\n this.closeModal();\r\n }\r\n\r\n fadeLabel(status: any) {\r\n this.formData.labelFade = false;\r\n this.formData.lastSave = this.utilityService.fadeLabel(status);\r\n setTimeout(() => {\r\n this.formData.labelFade = true;\r\n }, 2000);\r\n }\r\n\r\n attachmentUpload(ID: any, close: string) {\r\n this.openModal();\r\n this.close = close;\r\n this.formData.disableButton = true;\r\n this.innerCounter = 0;\r\n if (this.newFiles.length > 0) {\r\n this.newFiles.forEach((attachment: any) => {\r\n if (attachment.Progress != 100) {\r\n if (attachment.File != null && attachment.Filename != null) {\r\n this.showSaved = true;\r\n this.attachmentList.push({ ExpenseAttachmentID: ID, FileAttachmentID: '', AttachmentFileName: attachment.Filename, AttachmentFileData: attachment });\r\n this.savedFiles.push({ ExpenseAttachmentID: ID, FileAttachmentID: '', AttachmentFileName: attachment.Filename, AttachmentFileData: attachment });\r\n this.showPending = false;\r\n this.showSaved = true;\r\n this.HttpClient.request(new HttpRequest(\r\n 'POST',\r\n \"/employee/AddAttachmentToLine\",\r\n { expenseItemID: ID, photoFileData: attachment.File, photoFileType: attachment.Filename }, {\r\n reportProgress: true\r\n })).subscribe((event: HttpEvent) => {\r\n switch (event.type) {\r\n case HttpEventType.UploadProgress:\r\n attachment.Progress = Math.round(event.loaded / event.total * 100);\r\n if (attachment.Progress == 100) {\r\n attachment.AttchDone = true;\r\n }\r\n break;\r\n case HttpEventType.Response:\r\n this.innerCounter++;\r\n this.checkAttachmentInfo();\r\n attachment.Filedata.result = event.body;\r\n }\r\n },\r\n error => this.errorMsg = error.message\r\n )\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n checkAttachmentInfo() {\r\n if (this.innerCounter == this.newFiles.length && this.innerCounter != 0) {\r\n this.cleanBoard = false;\r\n var attachTF = true;\r\n var error = \"\";\r\n this.newFiles.forEach((val2: any) => {\r\n if (val2.Progress != 100 && val2.FileName != null)\r\n attachTF = false;\r\n });\r\n if (attachTF) {\r\n this.newFiles = [];\r\n this.formData.fileDrop = null;\r\n if (this.close == \"close\") {\r\n this.closeModal();\r\n }\r\n else\r\n this.getAttachment();\r\n } else {\r\n this.alert = \"Failed to save one or more attachments - \" + error;\r\n }\r\n }\r\n }\r\n\r\n fieldChanged(field: any) {\r\n if (field.ColumnName === \"JCCo\") {\r\n this.formData.jobTemp = null;\r\n this.formData.jobTempName = null;\r\n this.formData.phaseTemp = null;\r\n this.formData.phaseTempName = null;\r\n }\r\n if (field.ColumnName === \"EMCo\") {\r\n this.formData.equipTemp = null;\r\n this.formData.equipTempName = null;\r\n this.formData.woTemp = null;\r\n this.formData.woTempName = null;\r\n this.comboFocused(\"EMCo\", null);\r\n }\r\n if (field !== null) {\r\n switch (field.ColumnName) {\r\n case \"ItemType\":\r\n this.getPOFields('');\r\n break;\r\n case \"JCCo\":\r\n this.itemDetails.Job = null;\r\n this.lookupValues.Job = [];\r\n this.lookupLoaded.Job = false;\r\n this.itemDetails.Phase = null;\r\n this.lookupValues.Phase = [];\r\n this.lookupLoaded.Phase = false;\r\n this.formData.phaseTemp = null;\r\n this.formData.phaseTempName = null;\r\n this.itemDetails.JCCType = null;\r\n this.lookupValues.JCCType = [];\r\n this.lookupLoaded.JCCType = false;\r\n this.formData.selectedPayApp = null;\r\n this.comboFocused(\"Job\", null);\r\n break;\r\n case \"Equip\":\r\n this.itemDetails.Equip = this.formData.equipTemp;\r\n break;\r\n case \"GLCo\":\r\n this.itemDetails.GLAcct = null;\r\n this.lookupValues.GLAcct = [];\r\n this.lookupLoaded.GLAcct = false;\r\n this.comboFocused(\"GLAcct\", null);\r\n break;\r\n case \"Job\":\r\n this.itemDetails.Job = this.formData.jobTemp;\r\n this.itemDetails.Phase = null;\r\n this.lookupValues.Phase = [];\r\n this.lookupLoaded.Phase = false;\r\n this.formData.phaseTemp = null;\r\n this.formData.phaseTempName = null;\r\n this.itemDetails.JCCType = null;\r\n this.lookupValues.JCCType = [];\r\n this.lookupLoaded.JCCType = false;\r\n this.formData.selectedPayApp = null;\r\n break;\r\n case \"Phase\":\r\n this.lookupValues.JCCType = [];\r\n this.lookupLoaded.JCCType = false;\r\n this.loadValues(\"JCCType\", null, null, null, null);\r\n if (!this.lookupValues.JCCType || this.lookupValues.JCCType.length == 0 || !this.checkForJCCType(this.itemDetails.JCCType)) {\r\n this.itemDetails.JCCType = null;\r\n }\r\n break;\r\n case \"PO\":\r\n this.lookupLoaded[\"POItem\"] = false;\r\n this.lookupValues[\"POItem\"] = [];\r\n this.itemDetails.POItem = null;\r\n this.lookupLoaded[\"POItemLine\"] = false;\r\n this.lookupValues[\"POItemLine\"] = [];\r\n this.itemDetails.POItemLine = null;\r\n this.comboFocused(\"POItem\", true);\r\n break;\r\n case \"POItem\":\r\n this.lookupLoaded[\"POItemLine\"] = false;\r\n this.lookupValues[\"POItemLine\"] = [];\r\n this.itemDetails.POItemLine = null;\r\n this.comboFocused(\"POItemLine\", true);\r\n break;\r\n case \"POItemLine\":\r\n this.getFieldValuesByPOItem();\r\n break;\r\n case \"EMCo\":\r\n this.itemDetails.EMCType = null;\r\n this.lookupValues.EMCType = [];\r\n this.lookupLoaded.EMCType = false;\r\n this.itemDetails.WO = null;\r\n this.lookupValues.WO = [];\r\n this.formData.woTemp = null;\r\n this.lookupLoaded.WO = false;\r\n this.itemDetails.WOItem = null;\r\n this.lookupValues.WOItem = [];\r\n this.lookupLoaded.WOItem = false;\r\n this.itemDetails.Equipment = null;\r\n this.lookupValues.Equipment = [];\r\n this.lookupLoaded.Equipment = false;\r\n this.itemDetails.CostCode = null;\r\n this.lookupValues.CostCode = [];\r\n this.lookupLoaded.CostCode = false;\r\n break;\r\n case \"WO\":\r\n this.itemDetails.WO = this.formData.woTemp;\r\n this.itemDetails.WOItem = null;\r\n this.lookupValues.WOItem = [];\r\n this.lookupLoaded.WOItem = false;\r\n break;\r\n case \"SMWorkOrder\":\r\n this.itemDetails.SMWorkOrder = this.formData.smWorkOrderTemp;\r\n this.itemDetails.Scope = null;\r\n this.lookupValues.Scope = [];\r\n this.lookupLoaded.Scope = false;\r\n break;\r\n case \"Material\":\r\n this.itemDetails.Material = this.formData.materialTemp;\r\n this.formData.UM = null;\r\n this.lookupValues.UM = [];\r\n this.lookupLoaded.UM = false;\r\n break;\r\n //SL fields\r\n case \"SL\":\r\n this.itemDetails.SLItem = null;\r\n this.lookupValues.SLItem = [];\r\n this.lookupLoaded.SLItem = false;\r\n break;\r\n case \"SLItem\":\r\n //getSLDefaults();\r\n break;\r\n case \"CostCode\":\r\n this.itemDetails.EMCType = null;\r\n this.lookupValues.EMCType = [];\r\n this.lookupLoaded.EMCType = false;\r\n }\r\n }\r\n this.willSave();\r\n\r\n if (this.canSave) {\r\n this.blurSave();\r\n }\r\n }\r\n\r\n comboFocused(columnName: string, selectFirst: boolean) {\r\n if ((this.lookupValues[columnName] === null || this.lookupValues[columnName] === undefined || this.lookupValues[columnName].length === 0)) {\r\n this.loadValues(columnName, selectFirst, null, null, null);\r\n }\r\n }\r\n\r\n getFieldValuesByPOItem() {\r\n if (this.itemDetails.PO != null && this.itemDetails.POItem != null && this.itemDetails.POItemLine != null) {\r\n var tempPOCo = null;\r\n this.lookupValues[\"PO\"].forEach((val: any) => {\r\n if (val.DatabaseValue == this.itemDetails.PO) {\r\n tempPOCo = val.POCo;\r\n }\r\n })\r\n\r\n this.employeeService.getFieldValuesByPOItem(this.itemDetails.PO, this.itemDetails.POItem, this.itemDetails.POItemLine, tempPOCo).then((response: any) => {\r\n this.bindPOValues(response);\r\n });\r\n }\r\n }\r\n\r\n checkForJCCType(jccTypeId: any) {\r\n var isInJCCType = false;\r\n this.lookupValues.JCCType.forEach((value: any) => {\r\n if (parseInt(value.DatabaseValue) === parseInt(jccTypeId)) {\r\n isInJCCType = true;\r\n }\r\n });\r\n return isInJCCType;\r\n }\r\n\r\n willSave() {\r\n this.canSave = true;\r\n if (this.typeFields != null && this.typeFields.form.invalid) {\r\n for (let item in this.itemDetailsCheck) {\r\n if (this.itemDetailsCheck[item] && !this.itemDetails[item]) {\r\n this.canSave = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n switchEditImage() {\r\n this.disableSaveImage = true;\r\n this.enableEditImage = false;\r\n this.editNow = !this.editNow;\r\n if (this.editNow) {\r\n this.getAttachmentList();\r\n } else {\r\n this.getAttachment();\r\n }\r\n }\r\n\r\n getAttachmentList() {\r\n this.employeeService.getLineAttachments(this.ExpenseItemID).then((response: any) => {\r\n response = this.orderByPipe.transform(response, \"AttachmentFileName\", \"asc\");\r\n this.attachmentList = [];\r\n response.forEach((val: any) => {\r\n var tempExten = val.AttachmentFileName.substr(val.AttachmentFileName.lastIndexOf(\".\"), val.AttachmentFileName.length);\r\n if (tempExten.toLowerCase() == \".jpg\" || tempExten.toLowerCase() == \".jpeg\" || tempExten.toLowerCase() == \".png\" || tempExten.toLowerCase() == \".tif\" || tempExten.toLowerCase() == \".tiff\")\r\n this.attachmentList.push(val);\r\n });\r\n if (this.attachmentList.length > 0) {\r\n this.formData.selectedAttachment = this.attachmentList[0];\r\n this.getImageData();\r\n }\r\n });\r\n }\r\n\r\n deleteSavedAttachment(data: any) {\r\n this.employeeService.removeAttachment(data.ExpenseAttachmentID).then((response: any) => {\r\n this.openModal();\r\n this.getAttachment();\r\n this.cleanBoard = false;\r\n });\r\n };\r\n\r\n getImageData() {\r\n this.openModal();\r\n this.employeeService.getRawAttachmentData(this.formData.selectedAttachment.FileAttachmentID, true).then((response: any) => {\r\n this.uploadImage = (\"data:image/png;base64,\" + (response));\r\n this.imageSrc = this.uploadImage;\r\n this.closeModal();\r\n });\r\n }\r\n\r\n\r\n //Image Cropping\r\n imageCropped(event: ImageCroppedEvent) {\r\n this.croppedImage = event.base64;\r\n }\r\n\r\n applyRotateLeft() {\r\n this.canvasRotation--;\r\n this.flipAfterRotate();\r\n }\r\n\r\n applyRotateRight() {\r\n this.canvasRotation++;\r\n this.flipAfterRotate();\r\n }\r\n\r\n private flipAfterRotate() {\r\n const flippedH = this.transform.flipH;\r\n const flippedV = this.transform.flipV;\r\n this.transform = {\r\n ...this.transform,\r\n flipH: flippedV,\r\n flipV: flippedH\r\n };\r\n }\r\n\r\n\r\n restartJcrop() {\r\n this.canvasRotation = 0;\r\n this.croppedImage = null;\r\n this.transform = {};\r\n this.imageSrc = this.uploadImage;\r\n this.closeModal();\r\n }\r\n\r\n cancelCrop() {\r\n this.openModal();\r\n this.enableEditImage = false;\r\n this.restartJcrop();\r\n }\r\n\r\n\r\n allowCropping() {\r\n this.enableEditImage = true;\r\n this.restartJcrop();\r\n }\r\n\r\n saveEdit() {\r\n this.disableSaveImage = false;\r\n this.openModal();\r\n\r\n this.employeeService.removeAttachment(this.formData.selectedAttachment.ExpenseAttachmentID).then((response: any) => {\r\n this.employeeService.addAttachmentToLine(this.ExpenseItemID, this.croppedImage.split(\",\")[1], this.formData.selectedAttachment.AttachmentFileName).then((response: any) => {\r\n this.enableEditImage = false;\r\n if (this.editNow) {\r\n this.getAttachmentList();\r\n } else {\r\n this.getAttachment();\r\n }\r\n this.disableSaveImage = true;\r\n this.closeModal();\r\n\r\n this.restartJcrop();\r\n this.cleanBoard = false;\r\n });\r\n });\r\n\r\n }\r\n\r\n grabURI() {\r\n this.openModal();\r\n this.employeeService.removeAttachment(this.formData.selectedAttachment.ExpenseAttachmentID).then((response: any) => {\r\n this.employeeService.addAttachmentToLine(this.ExpenseItemID, this.croppedImage.split(\",\")[1], this.formData.selectedAttachment.AttachmentFileName).then((response: any) => {\r\n this.closeModal();\r\n this.cleanBoard = false;\r\n this.switchEditImage();\r\n });\r\n });\r\n }\r\n\r\n getLargeLookupValues(columnName: string, temp: any, tempName: any) {\r\n this.itemDetails[columnName] = this.formData[temp];\r\n if (this.formData[tempName] !== null && this.formData[tempName].length > 2) {\r\n this.loadValues(columnName, false, this.formData[tempName], true);\r\n }\r\n this.willSave();\r\n };\r\n\r\n saveClicked() {\r\n this.saveItem('close');\r\n };\r\n\r\n saveAndSubmitClicked() {\r\n this.saveItem('submit');\r\n };\r\n\r\n earnCodeChanged() {\r\n this.willSave();\r\n if (this.canSave) {\r\n this.blurSave();\r\n }\r\n }\r\n \r\n taxTypeChange() {\r\n if (this.formData.TaxType == 0) {\r\n this.formData.TaxCode = null;\r\n this.taxCodeList = [];\r\n } else {\r\n this.getTaxCode();\r\n }\r\n }\r\n\r\n umChange() {\r\n if (this.formData.UM !== \"LS\") {\r\n this.formData.Amount = null;\r\n this.formData.TaxCode = null;\r\n this.formData.TaxAmount = null;\r\n } else {\r\n this.formData.Units = null;\r\n this.formData.UnitCost = null;\r\n }\r\n }\r\n\r\n openModal() {\r\n document.getElementById('modalShare').style.display = 'block';\r\n document.getElementById('fadeShare').style.display = 'block';\r\n }\r\n\r\n closeModal() {\r\n document.getElementById('modalShare').style.display = 'none';\r\n document.getElementById('fadeShare').style.display = 'none';\r\n }\r\n}","
\r\n

New Edit Expense Item

\r\n Out of Balance\r\n You cannot submit with non credit card item.\r\n Save Successful - {{lastSave.time}}\r\n Save Fail - {{lastSave.time}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Linked to Credit Card Transaction {{formData.TransID}}
\r\n {{formData.TransDateDisplay}} {{formData.TransVendor}} {{formData.TransDescription}} {{currencySymbol}}{{formData.TransAmount}}\r\n Unlink\r\n
\r\n
\r\n
\r\n
0 && where == 'submit'\">\r\n Match to Credit Card\r\n \r\n {{data.displayValue}}\r\n \r\n
\r\n
0 && where == 'submit'\">\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Batch ID: {{formData.BatchID}} Month: {{formData.BatchMthDisplay}}\r\n
\r\n
\r\n
\r\n Transaction Date\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
0\">\r\n Category\r\n \r\n {{data.ExpenseCatgName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Item Description\r\n \r\n
\r\n
\r\n Vendor\r\n \r\n
\r\n
\r\n
\r\n
\r\n Note\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Reimbursement Mode
\r\n \r\n {{data.display}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Customer Name\r\n \r\n \r\n
\r\n
\r\n # of Cust. Attendees\r\n \r\n
\r\n
\r\n
\r\n
\r\n Attendee Name(s)\r\n \r\n
\r\n
\r\n # of Our Firm Attendees\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Unit of Measure\r\n \r\n {{data.DatabaseValue}}\r\n \r\n
\r\n
\r\n Unit Cost\r\n \r\n
\r\n
\r\n Qty.\r\n \r\n
\r\n
\r\n Total\r\n \r\n
\r\n
\r\n
\r\n Total Amount\r\n \r\n
\r\n
\r\n Tax Type\r\n \r\n {{data.TaxTypeDisplay}}\r\n \r\n
\r\n
\r\n Tax Code\r\n \r\n {{data.TaxCodeDisplay}}\r\n \r\n
\r\n
\r\n Tax Amount\r\n
{{formData.TaxAmount | currency : currencySymbol}}
\r\n = formData.Amount && formData.Amount > 0) || ((formData.TaxAmount <= formData.Amount || formData.TaxAmount > 0) && formData.Amount < 0)) && formData.Amount != null && formData.TaxAmount != 0)}\"\r\n class=\"form-control\" (blur)=\"amountChange('tax')\" [disabled]=\"formData.BatchID != null || disableWhileSaving\" />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{mileageRateLabel}}\r\n \r\n {{currencySymbol}}{{data.mileageRateDisplay}} - {{data.RateDescription}}\r\n \r\n
\r\n
\r\n {{milesLabel}}\r\n Kilometers\r\n \r\n
\r\n
\r\n {{milesLabel}} Total\r\n \r\n
\r\n
\r\n Tax Type\r\n \r\n {{data.TaxTypeDisplay}}\r\n \r\n
\r\n
\r\n Tax Code\r\n \r\n {{data.TaxCodeDisplay}}\r\n \r\n
\r\n
\r\n Tax Amount\r\n
{{formData.TaxAmount | currency : currencySymbol}}
\r\n = formData.MileTotal && formData.MileTotal != null && formData.TaxAmount != 0)}\" (blur)=\"amountChange('tax')\" [disabled]=\"formData.BatchID != null || disableWhileSaving\" [(ngModel)]=\"formData.TaxAmount\" />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Type Clear Coding\r\n \r\n {{data.name}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{field.FieldLabel}}\r\n
\r\n \r\n\r\n \r\n \r\n {{lookupValue.DisplayValue}}\r\n \r\n \r\n\r\n \r\n \r\n {{data.EarnCode}} - {{data.EarnCodeDescription}}\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

0)\">Attached Documentation

\r\n
\r\n
\r\n
= markAttachmentRequireBaseOnThreshold || markAttachmentRequireBaseOnThreshold == 0) && markAttachmentRequireBaseOnThreshold != null && formData.ReimburseOrMileage != 'M')) && !((newFiles && (newFiles != null && newFiles.length > 0)) || (savedFiles != null && savedFiles.length > 0)))}\"\r\n [class.invalid-drag]=\"validComboDrag===false\"\r\n [class.valid-drag]=\"validComboDrag\"\r\n (filesChange)=\"upload()\" [ngfFixOrientation]=\"false\">\r\n Drop a file or Click to upload\r\n
\r\n
\r\n
\r\n 0\">\r\n \r\n \r\n Attachments pending save\r\n \r\n
\r\n
\r\n {{file.Filename}}\r\n Remove\r\n
\r\n
0 && file.Progress < 100\">\r\n
{{file.Progress}}%
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0\">\r\n \r\n \r\n Saved Attachment\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\" [disabled]=\"disableWhileSaving\">\r\n
\r\n
\r\n \r\n {{data.AttachmentFileName}}\r\n \r\n \r\n
\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Select a primary reviewer for your expense submission
\r\n
\r\n
\r\n Reviewer\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
    0\">\r\n
  • \r\n
    \r\n Reviewer\r\n
    \r\n
    \r\n
  • \r\n
    \r\n
  • \r\n
    {{data.reviewer.ReviewerName}}
    \r\n \r\n
  • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n You have no images for edit.\r\n
\r\n
0\">\r\n
\r\n \r\n
\r\n
\r\n Select an Image\r\n \r\n {{data.AttachmentFileName}}>\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 To crop, click or tap the image below\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 { switchMap } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { EmployeeInfoService } from '../../../../core/services/employee-info.service';\r\nimport { PortalSettingsService } from '../../../../core/services/portal-settings.service';\r\nimport { EmployeeService } from './../../../../pages/employee/services/employee.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport { OrderByPipe } from './../../../../shared/pipe/order-by.pipe';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EventService } from 'src/app/core/services/event.service';\r\n\r\n@Component({\r\n selector: 'app-expense-bulk-update-modal',\r\n templateUrl: './expense-bulk-update-modal.component.html',\r\n styleUrls: ['./expense-bulk-update-modal.component.css']\r\n})\r\nexport class ExpenseBulkUpdateModalComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() selectedEmployee: any;\r\n @ViewChild('typeFields', { static: false }) typeFields: NgForm;\r\n portalSettings: any;\r\n orderByPipe: any;\r\n format: string;\r\n exDisableLineRequireFields: boolean;\r\n formData: { [key: string]: any } = {};\r\n earnCodeList: any[] = [];\r\n ExpenseItemID: any;\r\n newFiles: any[];\r\n savedFiles: any[];\r\n fieldsName: any[];\r\n groupedFields: any[];\r\n attachmentList: any[];\r\n itemDetails: { [key: string]: any } = {};\r\n isPR: boolean;\r\n lookupValues: { [key: string]: any } = {};\r\n lookupLoaded: { [key: string]: any } = {};\r\n itemDetailsCheck: { [key: string]: any } = {};\r\n lineTypeList: any[];\r\n employeeInfo: any;\r\n close: string;\r\n fields: any[];\r\n fieldProperties: any[];\r\n gettingLookupValues: boolean;\r\n restrictJCCO: any; //Unassigned variable\r\n lookupValueSearch = new Subject();\r\n lookupURL: string;\r\n lookupColumnName: string;\r\n preLoadLookup: boolean;\r\n itemIDString: any;\r\n sameEarnCode: boolean;\r\n firstEarnCode: any;\r\n fieldsLoaded: boolean;\r\n lineItemLoading: boolean;\r\n payAppOptions: any[];\r\n phaseChanged: boolean;\r\n canSave: boolean;\r\n selectFirstLookup: boolean;\r\n\r\n constructor(public activeModal: NgbActiveModal, portalSettingsService: PortalSettingsService, employeeInfoService: EmployeeInfoService, private employeeService: EmployeeService, public HttpClient: HttpClient, private eventService: EventService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.orderByPipe = new OrderByPipe();\r\n this.formData = {};\r\n if (this.portalSettings[\"CountryDateCode\"].ConfigValue == \"US\") {\r\n this.format = \"MM/DD/YYYY\";\r\n }\r\n else {\r\n this.format = \"DD/MM/YYYY\";\r\n }\r\n\r\n this.exDisableLineRequireFields = this.portalSettings.ExDisableLineRequireFields.ConfigValue === \"1\";\r\n this.isPR = this.portalSettings.ExpensePostingType.ConfigValue.toLowerCase() === \"p\";\r\n this.lineTypeList = [];\r\n var lineTypeListCopy = {};\r\n var oriLineTypeList = {};\r\n oriLineTypeList[\"1\"] = \"Job\";\r\n\r\n oriLineTypeList[\"3\"] = \"Expense\";\r\n oriLineTypeList[\"4\"] = \"Equipment\";\r\n oriLineTypeList[\"5\"] = \"EM Work Order\";\r\n oriLineTypeList[\"8\"] = \"SM Work Order\";\r\n\r\n this.portalSettings.ExpenseLineType.ConfigValue.split(\",\").forEach((val: string) => {\r\n if (oriLineTypeList.hasOwnProperty(val)) {\r\n this.lineTypeList.push({ index: parseInt(val), name: oriLineTypeList[val] });\r\n lineTypeListCopy[val] = true;\r\n }\r\n });\r\n\r\n if (lineTypeListCopy.hasOwnProperty(this.formData.LineChargeType))\r\n this.formData.LineChargeType = this.formData.LineChargeType === null ? this.lineTypeList[0].index : this.formData.LineChargeType;\r\n else {\r\n this.formData.LineChargeType = this.lineTypeList[0].index;\r\n }\r\n this.itemIDString = \"\";\r\n this.sameEarnCode = true;\r\n this.firstEarnCode = null;\r\n this.ExpenseItemID = null;\r\n this.data.forEach((val: any) => {\r\n if (val.Selected) {\r\n this.formData.ExpenseTransID = val.ExpenseTransID;\r\n this.itemIDString += val.ExpenseItemID + \",\";\r\n if (!this.ExpenseItemID) {\r\n this.ExpenseItemID = val.ExpenseItemID;\r\n }\r\n if (this.firstEarnCode == null) {\r\n this.firstEarnCode = val.PRCo;\r\n }\r\n if (this.firstEarnCode != val.PRCo) {\r\n this.sameEarnCode = false;\r\n }\r\n }\r\n });\r\n this.itemDetails = {};\r\n this.itemDetailsCheck = {};\r\n this.lookupValues = {};\r\n this.lookupLoaded = [];\r\n this.typeSearch();\r\n this.typeChanged();\r\n }\r\n\r\n typeSearch() {\r\n this.lookupValueSearch\r\n .pipe(\r\n switchMap(lookupValueSearch => this.employeeService.getlookupURL(this.lookupURL))\r\n )\r\n .subscribe(data => {\r\n var response: any = data;\r\n if (this.preLoadLookup && response.length == 1)\r\n return this.setLookUps(this.lookupColumnName, true, response);\r\n else if (!this.preLoadLookup)\r\n return this.setLookUps(this.lookupColumnName, this.selectFirstLookup, response);\r\n });\r\n }\r\n\r\n callClearField() {\r\n this.clearField();\r\n }\r\n\r\n clearField() {\r\n for (let key in this.itemDetails) {\r\n this.itemDetails[key] = null;\r\n }\r\n this.formData.equipTempName = null;\r\n this.formData.jobTempName = null;\r\n this.formData.materialTempName = null;\r\n this.formData.smWorkOrderTempName = null;\r\n this.formData.woTempName = null;\r\n this.formData.equipTemp = null;\r\n this.formData.jobTemp = null;\r\n this.formData.materialTemp = null;\r\n this.formData.smWorkOrderTemp = null;\r\n this.formData.woTemp = null;\r\n }\r\n\r\n typeChanged() {\r\n this.clearField();\r\n this.getFieldsByLineItem();\r\n }\r\n\r\n\r\n getEarnCodes() {\r\n this.openModal();\r\n this.employeeService.getEarnCodes(this.firstEarnCode).then((response: any) => {\r\n this.earnCodeList = response;\r\n response.forEach((val: any) => {\r\n if (val.IsDefault)\r\n this.formData.SelectedEarnCode = val.EarnCode;\r\n })\r\n this.closeModal();\r\n });\r\n }\r\n\r\n getFieldsByLineItem() {\r\n this.openModal();\r\n this.employeeService.getFieldsByLineItem(this.formData.LineChargeType, null).then((response: any) => {\r\n this.fields = response;\r\n this.lookupValues = {};\r\n this.fieldProperties = [];\r\n this.itemDetailsCheck = {};\r\n this.fields.forEach((val: any) => {\r\n this.fieldProperties[val.ColumnName] = {};\r\n this.fieldProperties[val.ColumnName].Visible = true;\r\n this.fieldProperties[val.ColumnName].Required = val.Req;\r\n if (val.ColumnName == \"UM\")\r\n this.fieldProperties[val.ColumnName].Required = true;\r\n if (val.ColumnName != \"Description\" && !((val.ColumnName == \"GLCo\" || val.ColumnName == \"GLAcct\") && !this.formData.ExpenseTransID && this.isPR) &&\r\n !(val.ColumnName == \"Material\" && this.formData.LineChargeType != 2)) {\r\n this.itemDetailsCheck[val.ColumnName] = val.Req;\r\n }\r\n if (this.lookupValues[val.ColumnName] == null) {\r\n this.lookupValues[val.ColumnName] = [];\r\n }\r\n });\r\n if (this.formData.LineChargeType == 3 && !this.formData.ExpenseTransID && this.isPR) {\r\n this.fields.push({ FieldLabel: \"EarnCode\", ColumnName: \"EarnCode\", Req: \"true\", IsCombo: 1 });\r\n this.fieldProperties[\"EarnCode\"] = {};\r\n this.fieldProperties[\"EarnCode\"].Visible = true;\r\n this.fieldProperties[\"EarnCode\"].Required = true;\r\n this.itemDetailsCheck[\"EarnCode\"] = true;\r\n this.getEarnCodes();\r\n }\r\n this.groupFields();\r\n this.closeModal();\r\n });\r\n }\r\n\r\n earnCodeChanged() {\r\n this.willSave();\r\n }\r\n\r\n openModal() {\r\n document.getElementById('modalShare').style.display = 'block';\r\n document.getElementById('fadeShare').style.display = 'block';\r\n }\r\n\r\n closeModal() {\r\n document.getElementById('modalShare').style.display = 'none';\r\n document.getElementById('fadeShare').style.display = 'none';\r\n }\r\n\r\n groupFields() {\r\n this.fieldsName = [];\r\n this.groupedFields = [];\r\n var group = [];\r\n for (var i = 0; i < this.fields.length; i++) {\r\n if (group.length == 20) {\r\n this.groupedFields.push(group);\r\n group = [];\r\n if (this.fieldProperties[this.fields[i].ColumnName] != null) {\r\n if (this.fieldProperties[this.fields[i].ColumnName].Visible && this.fields[i].ColumnName != \"ItemType\")\r\n group.push(this.fields[i]);\r\n }\r\n }\r\n else {\r\n if (this.fieldProperties[this.fields[i].ColumnName] != null) {\r\n if (this.fieldProperties[this.fields[i].ColumnName].Visible && this.fields[i].ColumnName != \"ItemType\")\r\n group.push(this.fields[i]);\r\n }\r\n }\r\n if (this.fieldProperties[this.fields[i].ColumnName] != null) {\r\n if (this.fieldProperties[this.fields[i].ColumnName].Visible && this.fields[i].ColumnName != \"ItemType\")\r\n this.fieldsName.push({ name: this.fields[i].ColumnName });\r\n }\r\n }\r\n if (group.length != 0) {\r\n this.groupedFields.push(group);\r\n }\r\n this.populateFields();\r\n this.fieldsLoaded = true;\r\n if (this.fieldsLoaded) {\r\n this.lineItemLoading = false;\r\n }\r\n }\r\n\r\n fieldChanged(field: any) {\r\n if (field.ColumnName === \"JCCo\") {\r\n this.formData.jobTemp = null;\r\n this.formData.jobTempName = null;\r\n this.formData.phaseTemp = null;\r\n this.formData.phaseTempName = null;\r\n }\r\n if (field.ColumnName === \"EMCo\") {\r\n this.formData.equipTemp = null;\r\n this.formData.equipTempName = null;\r\n this.formData.woTemp = null;\r\n this.formData.woTempName = null;\r\n this.comboFocused(\"EMCo\");\r\n }\r\n if (field !== null) {\r\n switch (field.ColumnName) {\r\n case \"ItemType\":\r\n //this.getPOFields();\r\n break;\r\n case \"JCCo\":\r\n this.itemDetails.Job = null;\r\n this.lookupValues.Job = [];\r\n this.lookupLoaded.Job = false;\r\n this.itemDetails.Phase = null;\r\n this.lookupValues.Phase = [];\r\n this.lookupLoaded.Phase = false;\r\n this.formData.phaseTemp = null;\r\n this.formData.phaseTempName = null;\r\n this.itemDetails.JCCType = null;\r\n this.lookupValues.JCCType = [];\r\n this.lookupLoaded.JCCType = false;\r\n this.formData.selectedPayApp = null;\r\n this.payAppOptions = [];\r\n this.comboFocused(\"Job\");\r\n break;\r\n case \"Equip\":\r\n this.itemDetails.Equip = this.formData.equipTemp;\r\n break;\r\n\r\n case \"Job\":\r\n this.itemDetails.Job = this.formData.jobTemp;\r\n this.itemDetails.Phase = null;\r\n this.lookupValues.Phase = [];\r\n this.lookupLoaded.Phase = false;\r\n this.formData.phaseTemp = null;\r\n this.formData.phaseTempName = null;\r\n this.itemDetails.JCCType = null;\r\n this.lookupValues.JCCType = [];\r\n this.lookupLoaded.JCCType = false;\r\n this.formData.selectedPayApp = null;\r\n //getPayAppOptions(true);\r\n break;\r\n case \"Phase\":\r\n this.phaseChanged = true;\r\n this.lookupValues.JCCType = [];\r\n this.lookupLoaded.JCCType = false;\r\n if (!this.lookupValues.JCCType || this.lookupValues.JCCType.length === 0)\r\n this.itemDetails.JCCType = null;\r\n\r\n break;\r\n case \"PO\":\r\n this.phaseChanged = false;\r\n this.lookupLoaded[\"POItem\"] = false;\r\n this.lookupValues[\"POItem\"] = [];\r\n this.comboFocused(\"POItem\", true);\r\n break;\r\n case \"POItem\":\r\n this.phaseChanged = false;\r\n break;\r\n\r\n case \"EMCo\":\r\n this.itemDetails.EMCType = null;\r\n this.lookupValues.EMCType = [];\r\n this.lookupLoaded.EMCType = false;\r\n this.itemDetails.WO = null;\r\n this.lookupValues.WO = [];\r\n this.formData.woTemp = null;\r\n this.lookupLoaded.WO = false;\r\n this.itemDetails.WOItem = null;\r\n this.lookupValues.WOItem = [];\r\n this.lookupLoaded.WOItem = false;\r\n this.itemDetails.Equipment = null;\r\n this.lookupValues.Equipment = [];\r\n this.lookupLoaded.Equipment = false;\r\n this.itemDetails.CostCode = null;\r\n this.lookupValues.CostCode = [];\r\n this.lookupLoaded.CostCode = false;\r\n break;\r\n case \"WO\":\r\n this.itemDetails.WO = this.formData.woTemp;\r\n this.itemDetails.WOItem = null;\r\n this.lookupValues.WOItem = [];\r\n this.lookupLoaded.WOItem = false;\r\n break;\r\n case \"SMWorkOrder\":\r\n this.itemDetails.SMWorkOrder = this.formData.smWorkOrderTemp;\r\n this.itemDetails.Scope = null;\r\n this.lookupValues.Scope = [];\r\n this.lookupLoaded.Scope = false;\r\n break;\r\n case \"Material\":\r\n this.itemDetails.Material = this.formData.materialTemp;\r\n this.itemDetails.UM = null;\r\n this.lookupValues.UM = [];\r\n this.lookupLoaded.UM = false;\r\n break;\r\n //SL fields\r\n case \"SL\":\r\n this.itemDetails.SLItem = null;\r\n this.lookupValues.SLItem = [];\r\n this.lookupLoaded.SLItem = false;\r\n break;\r\n case \"SLItem\":\r\n //this.getSLDefaults();\r\n }\r\n }\r\n this.willSave();\r\n };\r\n\r\n\r\n populateFields() {\r\n var savedData = {};\r\n this.fields.forEach((val: any) => {\r\n if (val.ColumnName !== \"Description\" && !((val.ColumnName === \"GLCo\" || val.ColumnName === \"GLAcct\") && this.isPR) &&\r\n !(val.ColumnName === \"Material\" && this.formData.LineChargeType !== 2)) {\r\n if (this.itemDetails[val.ColumnName]) {\r\n savedData[val.ColumnName] = this.itemDetails[val.ColumnName];\r\n }\r\n else {\r\n savedData[val.ColumnName] = null;\r\n }\r\n if (val.ColumnName === 'Equip') {\r\n this.formData.equipTemp = savedData[val.ColumnName];\r\n this.formData.equipTempname = savedData[val.ColumnName];\r\n }\r\n if (val.ColumnName === 'Job') {\r\n this.formData.jobTemp = savedData[val.ColumnName];\r\n this.formData.jobTempName = savedData[val.ColumnName];\r\n }\r\n if (val.ColumnName === 'Material') {\r\n this.formData.materialTemp = savedData[val.ColumnName];\r\n this.formData.materialTempName = savedData[val.ColumnName];\r\n }\r\n if (val.ColumnName === 'SMWorkOrder') {\r\n this.formData.smWorkOrderTemp = savedData[val.ColumnName];\r\n this.formData.smWorkOrderTempName = savedData[val.ColumnName];\r\n }\r\n if (val.ColumnName === 'WO') {\r\n this.formData.woTemp = savedData[val.ColumnName];\r\n this.formData.woTempName = savedData[val.ColumnName];\r\n }\r\n }\r\n });\r\n //274187 - Ensure Empty data is not assigned for other Line Types\r\n if (Object.keys(savedData).length != 0) {\r\n this.itemDetails = savedData;\r\n }\r\n this.willSave();\r\n if (this.restrictJCCO) {\r\n this.fields.forEach((val: any) => {\r\n if ((val.ColumnName === \"JCCo\" || val.ColumnName === \"GLCo\"))\r\n this.loadValues(val.ColumnName, false, null);\r\n });\r\n }\r\n }\r\n\r\n willSave() {\r\n this.canSave = true;\r\n if (!this.exDisableLineRequireFields) {\r\n for (let item in this.itemDetailsCheck) {\r\n if (this.itemDetailsCheck[item] && !this.itemDetails[item]) {\r\n this.canSave = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n getLargeLookupValues(columnName: string, temp: any, tempName: any) {\r\n this.itemDetails[columnName] = this.formData[temp];\r\n if (this.formData[tempName] !== null && this.formData[tempName].length > 2) {\r\n this.loadValues(columnName, false, this.formData[tempName], true);\r\n }\r\n this.willSave();\r\n\r\n if (!this.canSave) {\r\n this.typeFields.form.invalid;\r\n }\r\n }\r\n\r\n setLookUps(columnName: string, selectFirst: boolean, response: any) {\r\n this.gettingLookupValues = false;\r\n this.lookupValues[columnName] = [];\r\n this.lookupValues[columnName] = response;\r\n //place null value for clearing\r\n if (this.exDisableLineRequireFields || !this.fieldProperties[columnName].Required)\r\n this.lookupValues[columnName].unshift({ DatabaseValue: null, DisplayValue: \"No \" + columnName });\r\n this.lookupLoaded[columnName] = true;\r\n if (selectFirst && this.lookupValues[columnName].length > 1) {\r\n this.itemDetails[columnName] = this.lookupValues[columnName][0].DatabaseValue;\r\n this.fieldChanged({ ColumnName: columnName });\r\n } else {\r\n if (columnName === \"JCCo\" || columnName === \"GLCo\") {\r\n var checkCount = 0;\r\n\r\n response.forEach((val: any) => {\r\n if ((parseInt(val.DatabaseValue) == this.itemDetails.JCCo && columnName == \"JCCo\") || (parseInt(val.DatabaseValue) == this.itemDetails.GLCo && columnName == \"GLCo\")) {\r\n this.itemDetails[columnName] = val.DatabaseValue;\r\n checkCount++;\r\n }\r\n });\r\n\r\n if (checkCount === 0) {\r\n if (this.exDisableLineRequireFields || !this.fieldProperties[columnName].Required) {\r\n if (this.lookupValues[columnName].length == 2) {\r\n this.itemDetails[columnName] = this.lookupValues[columnName][1].DatabaseValue;\r\n }\r\n } else {\r\n if (this.lookupValues[columnName].length == 1) {\r\n this.itemDetails[columnName] = this.lookupValues[columnName][0].DatabaseValue;\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n\r\n loadValues(columnName: string, selectFirst?: boolean, searchText?: string, isSuper?: any, preload?: boolean) {\r\n this.gettingLookupValues = true;\r\n this.preLoadLookup = preload;\r\n this.lookupColumnName = columnName;\r\n this.selectFirstLookup = selectFirst;\r\n\r\n //var lineType = this.aPULKeyID == -1 ? this.lineType : lineItem.Type;\r\n this.lookupURL = \"/employee/GetLookups?columnName=\"\r\n + columnName\r\n + \"&lineType=\" + this.formData.LineChargeType\r\n + (!this.itemDetails.JCCo || this.itemDetails.JCCo === undefined ? '' : \"&jCCo=\" + this.itemDetails.JCCo)\r\n + (!this.itemDetails.Job || this.itemDetails.Job === undefined ? '' : \"&job=\" + this.itemDetails.Job)\r\n + (!this.itemDetails.Phase || this.itemDetails.Phase === undefined ? '' : \"&phase=\" + this.itemDetails.Phase)\r\n + (!this.itemDetails.JCCType || this.itemDetails.JCCType === undefined ? '' : \"&jCCType=\" + this.itemDetails.JCCType)\r\n + (!this.itemDetails.Material || this.itemDetails.Material === undefined ? '' : \"&material=\" + this.itemDetails.Material)\r\n + (!this.itemDetails.Description || this.itemDetails.Description === undefined ? '' : \"&description= \" + encodeURIComponent(this.itemDetails.Description))\r\n + (!this.itemDetails.GLCo || this.itemDetails.GLCo === undefined ? '' : \"&gLCo=\" + this.itemDetails.GLCo)\r\n + (!this.itemDetails.INCo || this.itemDetails.INCo === undefined ? '' : \"&iNCo=\" + this.itemDetails.INCo)\r\n + (!this.itemDetails.EMCo || this.itemDetails.EMCo === undefined ? '' : \"&eMCo=\" + this.itemDetails.EMCo)\r\n + (!this.itemDetails.Equip || this.itemDetails.Equip === undefined ? '' : \"&equip=\" + this.itemDetails.Equip)\r\n + (!this.itemDetails.CompType || this.itemDetails.CompType === undefined ? '' : \"&compType=\" + this.itemDetails.CompType)\r\n + (!this.itemDetails.CostCode || this.itemDetails.CostCode === undefined ? '' : \"&costCode=\" + this.itemDetails.CostCode)\r\n + (!this.itemDetails.WO || this.itemDetails.WO === undefined ? '' : \"&wO=\" + this.itemDetails.WO)\r\n + (!this.itemDetails.WOItem || this.itemDetails.WOItem === undefined ? '' : \"&wOItem=\" + this.itemDetails.WOItem)\r\n + (!this.itemDetails.pOCo || this.itemDetails.pOCo === undefined ? '' : \"&pOCo=\" + this.itemDetails.POCo)\r\n + (!this.itemDetails.Loc || this.itemDetails.Loc === undefined ? '' : \"&loc=\" + this.itemDetails.Loc)\r\n + (!this.itemDetails.SMCo || this.itemDetails.SMCo === undefined ? '' : \"&sMCo=\" + this.itemDetails.SMCo)\r\n + (!this.itemDetails.SMWorkOrder || this.itemDetails.SMWorkOrder === undefined ? '' : \"&sMWorkOrder=\" + this.itemDetails.SMWorkOrder)\r\n + (!this.itemDetails.PO || this.itemDetails.PO === undefined ? '' : \"&pO=\" + this.itemDetails.PO)\r\n + (!this.itemDetails.POItem || this.itemDetails.POItem === undefined ? '' : \"&pOItem=\" + this.itemDetails.POItem)\r\n + (!this.itemDetails.POItemLine || this.itemDetails.POItemLine === undefined ? '' : \"&pOItemLine=\" + this.itemDetails.POItemLine)\r\n + (!this.itemDetails.SMScope || this.itemDetails.SMScope === undefined ? '' : \"&sMScope=\" + this.itemDetails.SMScope)\r\n + \"&userKeyID=\" + (this.selectedEmployee === null ? this.data.SubmittedByUserKeyID : this.selectedEmployee.UserKeyID)\r\n + \"&expenseItemId=\" + this.ExpenseItemID;\r\n\r\n if (searchText !== null && searchText !== undefined) {\r\n this.lookupURL += \"&searchText=\" + searchText;\r\n }\r\n\r\n if (isSuper && isSuper !== undefined) {\r\n this.lookupValueSearch.next();\r\n }\r\n else {\r\n this.lookupValueSearch.next();\r\n }\r\n }\r\n\r\n comboFocused(columnName: string, selectFirst?: boolean) {\r\n if ((this.lookupValues[columnName] === null || this.lookupValues[columnName] === undefined || this.lookupValues[columnName].length === 0)) {\r\n this.loadValues(columnName, selectFirst, null, null, null);\r\n }\r\n }\r\n\r\n\r\n saveClicked() {\r\n this.employeeService.bulkEditItems(this.itemIDString, null,\r\n this.itemDetails.JCCo,\r\n this.itemDetails.Job,\r\n this.itemDetails.Phase,\r\n this.itemDetails.GLCo,\r\n this.itemDetails.GLAcct,\r\n this.itemDetails.SMCo,\r\n this.itemDetails.SMWorkOrder,\r\n this.itemDetails.EMCo,\r\n null,\r\n this.itemDetails.JCCType,\r\n this.itemDetails.SL,\r\n this.itemDetails.SLItem,\r\n this.itemDetails.WO,\r\n this.itemDetails.WOItem,\r\n this.itemDetails.Equip,\r\n this.itemDetails.CostCode,\r\n this.itemDetails.EMCType,\r\n this.itemDetails.CompType,\r\n this.itemDetails.Component,\r\n this.itemDetails.INCo,\r\n this.itemDetails.Loc,\r\n this.itemDetails.Material,\r\n this.itemDetails.Scope,\r\n this.itemDetails.POItemLine,\r\n this.itemDetails.SMCostType,\r\n this.formData.LineChargeType,\r\n (this.selectedEmployee === null ? null : this.selectedEmployee.UserKeyID),\r\n this.itemDetails.EarnCode).then((response: any) => {\r\n this.activeModal.close('close');\r\n });\r\n this.activeModal.close('close');\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.close();\r\n }\r\n\r\n}\r\n","
\r\n

\r\n Bulk Update\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n Type Clear Coding\r\n \r\n {{data.name}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{field.FieldLabel}}\r\n
\r\n \r\n\r\n \r\n \r\n {{lookupValue.DisplayValue}}\r\n \r\n \r\n\r\n \r\n \r\n {{data.EarnCode}} - {{data.EarnCodeDescription}}\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 You cannot use bulk edit to adjust the earn code if expenses were submitted by employees in different companies.\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EmployeeService } from './../../../../pages/employee/services/employee.service';\r\n\r\n@Component({\r\n selector: 'app-multi-match-credit-card-modal',\r\n templateUrl: './multi-match-credit-card-modal.component.html',\r\n styleUrls: ['./multi-match-credit-card-modal.component.css']\r\n})\r\nexport class MultiMatchCreditCardModalComponent implements OnInit {\r\n @Input() pendingGrid: any;\r\n @Input() currency: any;\r\n @Input() selectedEmployee: any;\r\n @Input() transID: any;\r\n formData: { [key: string]: any } = {};\r\n pendingList: any[] = [];\r\n\r\n constructor(public activeModal: NgbActiveModal, private employeeService: EmployeeService) { }\r\n\r\n ngOnInit(): void {\r\n this.pendingGrid.forEach((val: any) => {\r\n if (val.ExpenseTransID == null)\r\n this.pendingList.push(val);\r\n })\r\n this.pendingList.forEach((val: any) => {\r\n val.displayValue = val.ExpenseDateDisplay + \" \" + (val.Description == null ? \"\" : val.Description) + \" \" + this.currency + (val.Amount == null ? \"0.00\" : val.Amount)\r\n })\r\n }\r\n\r\n creditCardAction() {\r\n this.employeeService.transAction(this.transID, (this.selectedEmployee === null ? null : this.selectedEmployee.UserKeyID), \"M\", this.formData.selectedExpenseItem.ExpenseItemID, null).then((response: any) => {\r\n this.activeModal.close(\"recordMatched\");\r\n });\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.close(\"cancel\");\r\n }\r\n}\r\n","
\r\n

Multiple Matches Found

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{data.displayValue}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-rejected-notes-modal',\r\n templateUrl: './rejected-notes-modal.component.html',\r\n styleUrls: ['./rejected-notes-modal.component.css']\r\n})\r\nexport class RejectedNotesModalComponent{\r\n @Input() data: any;\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n\r\n closeClicked() {\r\n this.activeModal.close();\r\n }\r\n}","
\r\n

Expense Approval

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

Notes:
\r\n {{data.RejectedNotes}}\r\n

\r\n
\r\n
\r\n \r\n
","import moment from 'moment';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { concat, from, Observable, of, Subject } from 'rxjs';\r\nimport { catchError, debounceTime, distinctUntilChanged, switchMap, tap } from 'rxjs/operators';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\r\nimport { EmployeeInfoService } from '../../../../core/services/employee-info.service';\r\nimport { PortalSettingsService } from '../../../../core/services/portal-settings.service';\r\nimport { EmployeeService } from './../../../../pages/employee/services/employee.service';\r\nimport { EventService } from 'src/app/core/services/event.service';\r\nimport { UtilityService } from '../../../../core/services/utility.service';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { WarningModalComponent } from '../../../shared/warning-modal/warning-modal.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-submit-expense-modal',\r\n templateUrl: './submit-expense-modal.component.html',\r\n styleUrls: ['./submit-expense-modal.component.css']\r\n})\r\nexport class SubmitExpenseModalComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() mode: string;\r\n @Input() selectedEmployee: any;\r\n portalSettings: any;\r\n employeeInfo: any;\r\n currencySymbol: string;\r\n mobileMode: boolean;\r\n showTaxAmount: boolean;\r\n showReviewer: boolean;\r\n submitting: boolean;\r\n formData: { [key: string]: any } = {};\r\n total: number;\r\n submitString: string;\r\n Reviewer: any[];\r\n userAction: string;\r\n selectedData: any[];\r\n format: string;\r\n transDateDaysLimit: string;\r\n\r\n reviewer$: Observable;\r\n reviewerInput$ = new Subject();\r\n reviewerList: any[];\r\n reviewerLoading = false;\r\n\r\n constructor(public activeModal: NgbActiveModal, portalSettingsService: PortalSettingsService, employeeInfoService: EmployeeInfoService, private employeeService: EmployeeService, public HttpClient: HttpClient, private eventService: EventService, private utilityService: UtilityService, private sharedModalService: BsModalService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n this.format = utilityService.getDateFormat().toUpperCase();\r\n }\r\n\r\n ngOnInit(): void {\r\n var currencyFormatSymbols = this.portalSettings.CurrencyFormatPerPRCo.ConfigValue;\r\n this.currencySymbol = \"$\";\r\n if (currencyFormatSymbols && currencyFormatSymbols.trim() !== \"\") {\r\n currencyFormatSymbols.split(\",\").forEach((val: string) => {\r\n var arrayEntry = val.split(\":\");\r\n var currencyObject = { PRCo: parseInt(arrayEntry[0]), Currency: arrayEntry[1] }\r\n if (this.employeeInfo && currencyObject.PRCo == this.employeeInfo.PRCo) {\r\n this.currencySymbol = currencyObject.Currency;\r\n }\r\n });\r\n }\r\n this.mobileMode = this.mobileAndTabletcheck();\r\n this.showTaxAmount = this.portalSettings.EXShowTaxAmountOnApproval.ConfigValue == \"1\" ? true : false;\r\n this.showReviewer = this.portalSettings.ReviewerOnSubmit.ConfigValue == \"1\" ? true : false;\r\n this.transDateDaysLimit = this.portalSettings[\"EXRestrictTransactionDateNumberofDays\"].ConfigValue;\r\n this.submitting = false;\r\n this.formData = {};\r\n this.selectedData = [];\r\n this.total = 0;\r\n\r\n this.submitString = \"\";\r\n if (this.mode == \"multi\") {\r\n this.data.forEach((val: any) => {\r\n if (val.Selected) {\r\n this.selectedData.push(val);\r\n this.submitString += val.ExpenseItemID + \",\";\r\n this.total += val.Amount;\r\n }\r\n });\r\n }\r\n\r\n this.formData.selectedReviewer = {};\r\n this.Reviewer = [];\r\n this.reviewerList = [];\r\n this.registerLookups();\r\n }\r\n\r\n mobileAndTabletcheck() {\r\n var check = false;\r\n (function (a) { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true })(navigator.userAgent || navigator.vendor);\r\n return check;\r\n }\r\n\r\n private registerLookups() {\r\n //register observables used by super lookups\r\n\r\n this.reviewer$ = concat(\r\n this.reviewerInput$.pipe(\r\n debounceTime(500),\r\n distinctUntilChanged(),\r\n switchMap(term => ((term != null && term.length > 1) ?\r\n from(this.employeeService.getReviewers(term)).pipe(\r\n catchError(() => of([]))) : of([])\r\n ))\r\n )\r\n );\r\n }\r\n\r\n addReviewer() {\r\n this.reviewerList.push(this.formData.selectedReviewer.Value);\r\n this.formData.selectedReviewer.Value = null;\r\n }\r\n\r\n removeReviewer(data, index) {\r\n this.reviewerList.splice(index, 1);\r\n }\r\n\r\n submitClicked() {\r\n if (this.employeeInfo.IsExpenseAdmin && this.transDateDaysLimit != null && this.selectedData?.length > 0) {\r\n var isTransDateRestricted = false;\r\n let warningMessage: string = null;\r\n var restrictedTransDate = moment(new Date()).subtract(this.transDateDaysLimit, \"days\").format(this.format);\r\n this.selectedData.forEach((val: any) => {\r\n var transDate = moment(val.ExpenseDateDisplay).format(this.format);\r\n if (transDate < restrictedTransDate) {\r\n isTransDateRestricted = true;\r\n }\r\n });\r\n if (isTransDateRestricted && this.selectedData.length == 1) {\r\n warningMessage = 'Transaction date is beyond allowed expense date. Are you sure you want to continue?';\r\n }\r\n else if (isTransDateRestricted && this.selectedData.length > 1) {\r\n warningMessage = 'Transaction date is beyond allowed expense date for one or more expense items. Are you sure you want to continue?';\r\n }\r\n if (isTransDateRestricted && warningMessage != null) {\r\n const initialState = {\r\n modalData: {\r\n modalTitle: \"Confirm Message\",\r\n modalMessage: warningMessage,\r\n modalAction: \"Continue\", closeButtonText: \"Cancel\", warningLevel: \"success\"\r\n },\r\n backdrop: 'static',\r\n size: 'md'\r\n };\r\n let modalRef = this.sharedModalService.show(WarningModalComponent, { initialState, ignoreBackdropClick: true, keyboard: true });\r\n modalRef.onHide.subscribe((reason: any) => {\r\n var result = modalRef.content;\r\n if (result.userAction == \"Continue\") {\r\n this.submitItems();\r\n }\r\n });\r\n }\r\n else {\r\n this.submitItems();\r\n }\r\n }\r\n else {\r\n this.submitItems();\r\n }\r\n }\r\n\r\n submitItems() {\r\n this.submitting = true;\r\n this.employeeService.submitItems((this.mode == \"multi\" ? this.submitString : this.data.ExpenseItemID), this.formData.optionDescription, this.selectedEmployee.UserKeyID).then((response: any) => {\r\n if (response.success) {\r\n this.eventService.broadcast('approvedExpenseChangedBroadcast');\r\n var reviewerArray = [];\r\n this.reviewerList.forEach((val: any) => {\r\n reviewerArray.push(val.Reviewer);\r\n });\r\n this.userAction = \"submit\";\r\n if (reviewerArray.length > 0) {\r\n this.employeeService.addReviewer(response.newID, reviewerArray).then((response: any) => {\r\n this.activeModal.close('submit');\r\n });\r\n } else {\r\n this.activeModal.close('submit');\r\n }\r\n } else {\r\n this.activeModal.close('submit');\r\n }\r\n });\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.close();\r\n }\r\n}\r\n","-
\r\n

Submit Expense Report for Approval

\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
Transaction DateDescriptionUnitsUnit CostGross AmtTaxCharge To
{{data.ExpenseDateDisplay}}{{data.Description}}{{data.Units}}{{data.UnitCost | currency : currencySymbol}}{{0 | currency : currencySymbol}}{{data.Amount | currency : currencySymbol}}{{0 | currency : currencySymbol}}{{data.TaxAmount | currency : currencySymbol}}{{0 | currency : currencySymbol}}{{data.ChargeToLabel}}
Total: {{total | currency : currencySymbol}}
\r\n
\r\n
\r\n
{{data.ExpenseDateDisplay}}
\r\n
{{data.Description}}
\r\n
{{data.Units}}
\r\n
{{data.UnitCost | currency : currencySymbol}} {{0 | currency : currencySymbol}}
\r\n
{{data.Amount | currency : currencySymbol}}{{0 | currency : currencySymbol}}
\r\n
{{data.TaxAmount | currency : currencySymbol}}{{0 | currency : currencySymbol}}
\r\n
{{data.ChargeToLabel}}
\r\n
\r\n
\r\n
\r\n
Select a primary reviewer for your expense submission
\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
    \r\n Reviewer\r\n
    \r\n
    \r\n
  • \r\n
    \r\n
  • \r\n
    {{data.ReviewerName}}
    \r\n
    \r\n
  • \r\n
    \r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n@Component({\r\n selector: 'app-address-confirmation-modal',\r\n templateUrl: './address-confirmation-modal.component.html',\r\n styleUrls: ['./address-confirmation-modal.component.css']\r\n})\r\nexport class AddressConfirmationModalComponent {\r\n @Input() suggestedAddress : string\r\n @Input() badAddress : string\r\n\r\n constructor(private activeModal: NgbActiveModal) {}\r\n\r\n useSuggestedAddress () { \r\n this.activeModal.close('1'); \r\n };\r\n\r\n keepBadAddress() { \r\n this.activeModal.close('0'); \r\n };\r\n \r\n cancel () { \r\n this.activeModal.close('-1'); \r\n };\r\n}\r\n","
\r\n

Address Confirmation

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

The address you entered could not be validated. Did you mean:

\r\n

{{suggestedAddress}}

\r\n \r\n

The address you entered:

\r\n

{{badAddress}}

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

The address you entered could not be validated. You entered:

\r\n

{{badAddress}}

\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\n\r\n@Component({\r\n selector: 'app-update-dependent-address-modal',\r\n templateUrl: './update-dependent-address-modal.component.html',\r\n styleUrls: ['./update-dependent-address-modal.component.css']\r\n})\r\nexport class UpdateDependentAddressModalComponent implements OnInit {\r\n @Input() data: { [key: string]: any };\r\n dependents: any[];\r\n hasSelected: boolean;\r\n constructor(private employeeservice: EmployeeService, private activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n this.dependents = [];\r\n this.hasSelected = false;\r\n this.employeeservice.getDependents().then((response: any) => {\r\n if (!response || response == undefined || response.length == 0) {\r\n this.activeModal.close;\r\n }\r\n else {\r\n this.dependents = response;\r\n }\r\n });\r\n }\r\n\r\n updateDependent() {\r\n this.dependents.forEach(dependent => {\r\n if (dependent.selected) {\r\n var listItem = [{ Name: \"Address\", Value: this.data.Address }, { Name: \"Zip\", Value: this.data.Zip }, { Name: \"City\", Value: this.data.City }, { Name: \"State\", Value: this.data.State }];\r\n this.employeeservice.submitDependents(dependent.KeyID, listItem, false, null);\r\n }\r\n });\r\n this.activeModal.close();\r\n }\r\n\r\n checkIfAnySelected() {\r\n var isSelected = false;\r\n this.dependents.forEach(dependent => {\r\n if (dependent.selected) {\r\n isSelected = true;\r\n }\r\n });\r\n this.hasSelected = isSelected;\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n}\r\n","
\r\n

Update Dependents

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

Now that you've updated your address, would you like to make that same change to your dependents?

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{dependent.Name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EmployeeTrainingService } from './../../../../pages/employee/services/employeetraining.service';\r\n\r\n@Component({\r\n selector: 'app-register-training-past-classes-attachment-modal',\r\n templateUrl: './register-training-past-classes-attachment-modal.component.html',\r\n styleUrls: ['./register-training-past-classes-attachment-modal.component.css']\r\n})\r\nexport class RegisterTrainingPastClassesAttachmentModalComponent implements OnInit {\r\n @Input() classInfo: any;\r\n savedFiles: any[];\r\n\r\n constructor(public activeModal: NgbActiveModal, private employeeTrainingService: EmployeeTrainingService) { }\r\n\r\n ngOnInit(): void {\r\n this.savedFiles = [];\r\n this.getAttachmentList();\r\n }\r\n\r\n openModal() {\r\n document.getElementById('modalShare').style.display = 'block';\r\n document.getElementById('fadeShare').style.display = 'block';\r\n }\r\n\r\n closeModal() {\r\n document.getElementById('modalShare').style.display = 'none';\r\n document.getElementById('fadeShare').style.display = 'none';\r\n }\r\n\r\n getAttachmentList() {\r\n this.openModal();\r\n this.employeeTrainingService.getAttachment(89,this.classInfo.TrainingClassID).then((response: any) => {\r\n this.savedFiles = response;\r\n this.closeModal();\r\n });\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.dismiss();\r\n }\r\n}\r\n","
\r\n

Course Materials

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EmployeeTrainingService } from './../../../../pages/employee/services/employeetraining.service';\r\n\r\n@Component({\r\n selector: 'app-remove-class-modal',\r\n templateUrl: './remove-class-modal.component.html',\r\n styleUrls: ['./remove-class-modal.component.css']\r\n})\r\nexport class RemoveClassModalComponent implements OnInit {\r\n @Input() classInfo: any;\r\n\r\n constructor(public activeModal: NgbActiveModal, private employeeTrainingService: EmployeeTrainingService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n \r\n deleteClicked() {\r\n this.employeeTrainingService.removeClass(this.classInfo.TrainingClassID).then((response: any) => {\r\n this.activeModal.close();\r\n });\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.dismiss();\r\n }\r\n}\r\n","
\r\n

Unregister from Class

\r\n
\r\n
\r\n Are you sure you want to unregister for {{classInfo.ClassTitle}}?\r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-training-bulk-update-modal',\r\n templateUrl: './training-bulk-update-modal.component.html',\r\n styleUrls: ['./training-bulk-update-modal.component.css']\r\n})\r\nexport class TrainingBulkUpdateModalComponent implements OnInit {\r\n @Input() employeeData: any;\r\n @Input() trainData: any;\r\n\r\n constructor(private activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n confirmClicked() {\r\n this.activeModal.close();\r\n }\r\n\r\n closeClicked() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n}","
\r\n

Training Bulk Update

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

The following training codes will added for the following employees.

\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n Code\r\n
    \r\n
  • \r\n
    \r\n
  • \r\n
    \r\n {{data.CodeType}} - {{data.CodeDescription}}\r\n
    \r\n
  • \r\n
    \r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n Employee\r\n
    \r\n
  • \r\n
    \r\n
  • \r\n
    \r\n {{data.FullName}}\r\n
    \r\n
  • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EmployeeService } from '../../../../pages/employee/services/employee.service';\r\n\r\n@Component({\r\n selector: 'app-view-detail-modal',\r\n templateUrl: './view-detail-modal.component.html',\r\n styleUrls: ['./view-detail-modal.component.css']\r\n})\r\nexport class ViewDetailModalComponent implements OnInit {\r\n\r\n @Input() hideGrade: boolean = false;\r\n @Input() data: any;\r\n savedFiles: any[] = [];\r\n\r\n constructor(private employeeservice: EmployeeService, private activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n this.getAttachment();\r\n }\r\n\r\n getAttachment() {\r\n this.employeeservice.trainingAttachmentsGetList(this.data.ItemKeyID, this.data.SkillOrTraining).then((response: any[]) => {\r\n this.savedFiles = response;\r\n });\r\n }\r\n\r\n closeClicked() {\r\n this.activeModal.close();\r\n }\r\n\r\n}\r\n","
\r\n

Skill Detail: Training Detail: {{data.CodeDescription}}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{data.DateCertifiedDisplay}}\r\n
\r\n
\r\n
\r\n
\r\n {{data.DateExpiresDisplay}}\r\n
\r\n
\r\n
\r\n
\r\n {{data.Grade}}\r\n
\r\n
\r\n
\r\n
\r\n {{data.Status}}\r\n
\r\n
\r\n
\r\n
\r\n {{data.EmployeeName}}\r\n
\r\n
\r\n
\r\n
\r\n {{data.CodeDescription}}\r\n
\r\n
\r\n
\r\n
\r\n {{data.Notes}}\r\n
\r\n
\r\n
\r\n
\r\n {{data.SkillTesterName}}\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
","import { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Component, Input } from '@angular/core';\r\nimport { HiringService } from 'src/app/pages/hiring/services/hiring.service';\r\n\r\n@Component({\r\n selector: 'app-delete-onboard-employee-modal',\r\n templateUrl: './delete-onboard-employee-modal.component.html',\r\n styleUrls: ['./delete-onboard-employee-modal.component.css']\r\n})\r\nexport class DeleteOnboardEmployeeModalComponent {\r\n @Input() data: any;\r\n processing: boolean= false;\r\n alert: any;\r\n\r\n constructor(public activeModal: NgbActiveModal, private modalService: NgbModal, private hiringService: HiringService) {\r\n }\r\n\r\n deleteClick() {\r\n this.processing = true;\r\n this.hiringService.deleteOnboarding(this.data.OnboardID).then((response: any) => {\r\n if (response.success)\r\n this.activeModal.close(\"delete\");\r\n else\r\n this.alert = ({ type: \"danger\", msg: \"There were errors deleting the employee.\" });\r\n });\r\n }\r\n\r\n closeClick() {\r\n this.activeModal.dismiss();\r\n }\r\n \r\n}","
\r\n

Delete Employee

\r\n
\r\n
\r\n
{{alert.msg}}
\r\n

This will delete all onboarding details for {{data.FirstName}} {{data.LastName}}. Continue?

\r\n
\r\n
\r\n \r\n \r\n
","import { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Component, Input } from '@angular/core';\r\nimport { HiringService } from 'src/app/pages/hiring/services/hiring.service';\r\n@Component({\r\n selector: 'app-delete-reset-onboard-task-modal',\r\n templateUrl: './delete-reset-onboard-task-modal.component.html',\r\n styleUrls: ['./delete-reset-onboard-task-modal.component.css']\r\n})\r\nexport class DeleteResetOnboardTaskModalComponent{\r\n @Input() pageData: any;\r\n @Input() task: any;\r\n @Input() mode: any;\r\n alert: any;\r\n\r\n constructor(public activeModal: NgbActiveModal, private modalService: NgbModal, private hiringService: HiringService) {\r\n }\r\n\r\n resetClicked() {\r\n this.hiringService.deleteTask(this.task.OnboardTaskID).then((response: any) => {\r\n this.activeModal.close(response.success);\r\n })\r\n }\r\n\r\n deleteClicked() {\r\n this.hiringService.deleteTask(this.task.OnboardTaskID).then((response: any) => {\r\n if (response.success) {\r\n this.activeModal.close(this.alert = ({ type: \"success\", msg: \"Task has been deleted.\" }));\r\n } else {\r\n this.activeModal.close(this.alert = ({ type: \"danger\", msg: \"There were errors deleting the notification.\" }));\r\n }\r\n })\r\n }\r\n\r\n closeClicked() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n}","
\r\n

Reset Task

\r\n

Delete Task

\r\n
\r\n
\r\n
{{alert.msg}}
\r\n

Are you sure you want to reset remove the following task from {{pageData.FirstName}} {{pageData.LastName}}'s onboarding process?

\r\n\r\n

{{task.OnboardTaskName}}

\r\n
\r\n
\r\n \r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n// services \r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\nimport { SignalRService } from './../../../core/services/signal-r.service';\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { HiringService } from 'src/app/pages/hiring/services/hiring.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-i9-gen-modal',\r\n templateUrl: './i9-gen-modal.component.html',\r\n styleUrls: ['./i9-gen-modal.component.css']\r\n})\r\nexport class I9GenModalComponent implements OnInit {\r\n portalSettings: any;\r\n formData: { [key: string]: any } = {};\r\n loading: boolean = false;\r\n count: number = 0;\r\n format: string;\r\n progressCurrent: any;\r\n i9List: any[];\r\n alert: any;\r\n datePickerOptions: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean; adaptivePosition: boolean};\r\n mobileMode: boolean = false;\r\n\r\n constructor(portalSettingsService: PortalSettingsService, private signalRService: SignalRService, private utilityService: UtilityService, private hiringService: HiringService, private ngbActiveModal: NgbActiveModal) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.format = utilityService.getDateFormat();\r\n this.signalRService.establishHub('progressHub', 'sendProgressFileName');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.signalRService.sendProgressFileNameEvent.subscribe((fileName: any) => {\r\n this.progressCurrent = fileName;\r\n });\r\n this.datePickerOptions = { dateInputFormat: this.format.toUpperCase(), containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false, adaptivePosition: true};\r\n this.mobileMode = this.utilityService.isMobileMode();\r\n }\r\n\r\n getList() {\r\n if (this.formData.fromDate != null && this.formData.toDate != null) {\r\n this.hiringService.i9GenList(moment(this.formData.fromDate).format(\"YYYY/MM/DD\"), moment(this.formData.toDate).format(\"YYYY/MM/DD\")).then((response: any) => {\r\n this.i9List = [];\r\n response.forEach((val: any) => {\r\n this.i9List.push({ value: val.HRRMKeyID, name: val.FirstName + \" \" + val.LastName });\r\n this.count++;\r\n });\r\n this.formData.selectedEmployee = this.i9List;\r\n });\r\n }\r\n }\r\n\r\n employeeUpdate = function () {\r\n this.count = 0;\r\n this.formData.selectedEmployee.forEach((val: any) => {\r\n this.count++;\r\n });\r\n }\r\n\r\n genClicked() {\r\n this.loading = true;\r\n var employeeList = [];\r\n this.formData.selectedEmployee.forEach((val: any) => {\r\n employeeList.push(val.value);\r\n });\r\n\r\n this.hiringService.i9Gen(employeeList).then((response: any) => {\r\n this.loading = false;\r\n if (response.success) {\r\n this.alert = { type: \"success\", msg: \"All new I-9 were sent to Vista.\" }\r\n } else {\r\n this.alert = { type: \"danger\", msg: response.errorMessage }\r\n }\r\n });\r\n }\r\n\r\n closeClicked() {\r\n this.ngbActiveModal.close('close');\r\n }\r\n\r\n onSelectAll() {\r\n this.formData.selectedEmployee = this.i9List;\r\n this.employeeUpdate();\r\n }\r\n\r\n onClearAll() {\r\n this.formData.selectedEmployee = [];\r\n this.employeeUpdate();\r\n }\r\n\r\n closeAlert() {\r\n this.alert = null;\r\n }\r\n\r\n}\r\n","
\r\n

I-9 Utility

\r\n
\r\n
\r\n
\r\n
\r\n {{alert.msg}}\r\n \r\n
\r\n
\r\n
Use this process to send corrected I-9's to each new hire's HR Resource Master.
\r\n
\r\n
\r\n From Date: *\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n To Date: *\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n There are no employee on the selected date range...\r\n 0\">Employee List:\r\n 0\" style=\"max-height:400px; min-width: 135px;\"\r\n class=\"row col-lg-6\"\r\n [items]=\"i9List\"\r\n bindLabel=\"name\"\r\n [(ngModel)]=\"formData.selectedEmployee\"\r\n [multiple]=\"true\"\r\n placeholder=\"None Selected\"\r\n [closeOnSelect]=\"false\"\r\n [clearOnBackspace]=\"false\"\r\n dropdownPosition=\"bottom\"\r\n (change)=\"employeeUpdate()\">\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {{items[0].name}}\r\n 1\" class=\"ng-value\">{{items.length}} Selected\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Processing {{progressCurrent}}...\"Loading...\"\r\n \r\n \r\n \r\n
\r\n","import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-initialized-attach-modal',\r\n templateUrl: './initialized-attach-modal.component.html',\r\n styleUrls: ['./initialized-attach-modal.component.css']\r\n})\r\nexport class InitializedAttachModalComponent {\r\n\r\n @Input() pageData: any;\r\n alert: any;\r\n\r\n constructor(public activeModal: NgbActiveModal) {\r\n }\r\n\r\n confirmClicked() {\r\n this.activeModal.close();\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.dismiss();\r\n }\r\n}\r\n","
\r\n

Initialize Attachment

\r\n
\r\n
\r\n
This will attach all documents to the rehired employee's employee record. A new HR resource will NOT be created. Continue?
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n//services\r\nimport { EmployeeInfoService } from 'src/app/core/services/employee-info.service';\r\nimport { HiringService } from 'src/app/pages/hiring/services/hiring.service';\r\nimport { UtilityService } from 'src/app/core/services/utility.service';\r\nimport { TimeoutService } from 'src/app/core/services/timeout.service';\r\n\r\n@Component({\r\n selector: 'app-note-detail-action-modal',\r\n templateUrl: './note-detail-action-modal.component.html',\r\n styleUrls: ['./note-detail-action-modal.component.css']\r\n})\r\nexport class NoteDetailActionModalComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() viewMode: boolean;\r\n formData: { [key: string]: any } = {};\r\n updatingTimeout: boolean = false;\r\n employeeInfo: any;\r\n noteList: any[];\r\n lastSave: { [key: string]: any } = {};\r\n saveText: string;\r\n\r\n constructor(employeeInfoService: EmployeeInfoService, private hiringService: HiringService, private utilityService: UtilityService, public activeModal: NgbActiveModal, private timeoutService: TimeoutService) {\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getNote();\r\n }\r\n\r\n getNote() {\r\n this.hiringService.applicantNotesGet(this.data.OnboardID).then((response: any) => {\r\n this.noteList = response;\r\n });\r\n }\r\n\r\n editNote(data: any) {\r\n data.editing = !data.editing;\r\n }\r\n\r\n saveEdit(data: any) {\r\n this.hiringService.applicantNotesAddEdit(this.data.OnboardID, data.NoteText, this.data.ReqID, data.ReqApplicantNoteID).then((response: any) => {\r\n this.fadeLabel(response.success);\r\n data.editing = false;\r\n });\r\n }\r\n\r\n addClicked() {\r\n this.hiringService.applicantNotesAddEdit(this.data.OnboardID, this.formData.newNote, this.data.ReqID, -1).then((response: any) => {\r\n this.formData.newNote = null;\r\n this.fadeLabel(response.success);\r\n this.getNote();\r\n });\r\n }\r\n\r\n updateTimeout() {\r\n if (!this.timeoutService.getRefreshingTimeout()) {\r\n var lastActivityTime = this.timeoutService.getLastActivityTime();\r\n var timeoutConfig = this.timeoutService.getTimeoutConfig();\r\n if (timeoutConfig - lastActivityTime < 10) {\r\n this.timeoutService.refreshTimeout();\r\n }\r\n }\r\n }\r\n\r\n removeNote(data: any) {\r\n data.remove = true;\r\n }\r\n\r\n removeNoteCancel(data: any) {\r\n data.remove = false;\r\n }\r\n\r\n removeNoteConfirm(data: any) {\r\n this.hiringService.applicantNotesRemove(this.data.OnboardID, data.ReqApplicantNoteID).then((response: any) => {\r\n this.fadeLabel(response.success);\r\n this.getNote();\r\n });\r\n }\r\n\r\n closeClicked() {\r\n this.activeModal.dismiss();\r\n };\r\n\r\n fadeLabel(status: any, text?: string) {\r\n this.formData.labelFade = false;\r\n this.lastSave = this.utilityService.fadeLabel(status);\r\n this.saveText = text;\r\n setTimeout(() => {\r\n this.formData.labelFade = true;\r\n }, 2000);\r\n }\r\n\r\n}\r\n","
\r\n

Note - {{data.FirstName}} {{data.LastName}}

\r\n
\r\n Save Successful - {{lastSave.time}}\r\n Save Fail - {{lastSave.time}}\r\n
\r\n
\r\n
\r\n\r\n
    0\">\r\n
  • \r\n
    \r\n Date\r\n
    \r\n
    \r\n Author\r\n
    \r\n
    \r\n Notes\r\n
    \r\n
    \r\n
    \r\n
  • \r\n
    \r\n
    \r\n
  • \r\n
    \r\n
    \r\n {{data.DateAdded}}\r\n
    \r\n
    \r\n {{data.UserFullName}}\r\n
    \r\n
    \r\n {{data.NoteText}}\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 this note?\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 Add a Note:\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport moment from 'moment';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { HiringService } from 'src/app/pages/hiring/services/hiring.service';\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { EmployeeInfoService } from '../../../core/services/employee-info.service';\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { SignalRService } from './../../../core/services/signal-r.service';\r\nimport { CurrencyMaskInputMode } from 'ngx-currency';\r\nimport { cloneDeep } from 'lodash';\r\n\r\n@Component({\r\n selector: 'app-onboard-init-modal',\r\n templateUrl: './onboard-init-modal.component.html',\r\n styleUrls: ['./onboard-init-modal.component.css']\r\n})\r\n\r\nexport class OnboardInitModalComponent implements OnInit {\r\n @Input() personalInfoData: any;\r\n @Input() employee: any;\r\n @Input() employeeHRREFInfo: any;\r\n @Input() task: any;\r\n @Input() language: any;\r\n @Input() employeeList: any;\r\n @Input() expectHRRef: any;\r\n format: string;\r\n portalSettings: any;\r\n employeeInfo: any;\r\n formData: { [key: string]: any } = {};\r\n datePickerOptions: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean };\r\n mobileMode: boolean = false;\r\n deleteMode: boolean = false;\r\n taskDeleted: boolean = false;\r\n disableAttachmentUploadOnboarding: boolean = false;\r\n oNInitHirestoPayroll: boolean = false;\r\n autoAssignPREmpToHRRef: boolean = false;\r\n progressCurrent: any;\r\n currencySymbol: string;\r\n overtimeScheduleList: any[] = [];\r\n raceList: any[] = [];\r\n insuranceCodeList: any[] = [];\r\n timeRevList: any[] = [];\r\n prCompanies: any[] = [];\r\n hrCompanies: any[] = [];\r\n acaCode1: any[] = [];\r\n acaCode2: any[] = [];\r\n processed: boolean = false;\r\n processing: boolean = false;\r\n finishedLeave: boolean = false;\r\n pRGroups: any[] = [];\r\n employmentStatusList: any[] = [];\r\n localCodeList: any[] = [];\r\n crafts: any[] = [];\r\n classes: any[] = [];\r\n departments: any[] = [];\r\n earnCodes: any[] = [];\r\n alert: { [key: string]: any } = { type: null, msg: null };\r\n options: { [key: string]: any } = {};\r\n\r\n constructor(public activeModal: NgbActiveModal, private modalService: NgbModal, portalSettingsService: PortalSettingsService, employeeInfoService: EmployeeInfoService, private hiringService: HiringService, private utilityService: UtilityService, private signalRService: SignalRService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n this.format = utilityService.getDateFormat().toUpperCase();\r\n this.mobileMode = utilityService.isMobileMode();\r\n this.signalRService.establishHub('progressHub', 'sendProgressFileName');\r\n }\r\n\r\n ngOnInit(): void {\r\n //SignalR stuff\r\n this.signalRService.sendProgressFileNameEvent.subscribe((fileName: any) => {\r\n setTimeout(() => {\r\n this.progressCurrent = fileName;\r\n });\r\n });\r\n this.datePickerOptions = { dateInputFormat: this.format, containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false };\r\n this.deleteMode = false;\r\n this.taskDeleted = false;\r\n this.formData.Gender = this.employee.Gender == \"X\" ? null : this.employee.Gender;\r\n this.formData.Race = this.employee.RaceEthnic;\r\n this.formData.autoRef = false;\r\n this.formData.hrefCB = false;\r\n this.formData.HRCo = { CompanyName: null, HRCo: null };\r\n this.formData.hrRef = null;\r\n this.formData.futureDate = false;\r\n this.formData.expectHRRef = this.expectHRRef;\r\n this.disableAttachmentUploadOnboarding = this.portalSettings.DisableAttachmentUploadOnboarding.ConfigValue == \"1\" ? true : false;\r\n this.oNInitHirestoPayroll = this.portalSettings.ONInitHirestoPayroll.ConfigValue == \"1\";\r\n this.autoAssignPREmpToHRRef = this.portalSettings.AutoAssignPREmpToHRRef.ConfigValue == \"1\";\r\n //241320: Race is mandatory field to fill out for Admin if Onboardee chosen 'I do not wish to answer' option.\r\n if (this.formData.Race == \"X\") {\r\n this.formData.Race = null;\r\n }\r\n this.formData.PREmployeeDisable = false;\r\n\r\n if (this.employee.IsRehire) {\r\n this.formData.PREmployeeDisable = true;\r\n this.formData.PREmployee = this.employeeHRREFInfo.PREmp;\r\n }\r\n\r\n if (this.oNInitHirestoPayroll && this.autoAssignPREmpToHRRef) {\r\n this.formData.PREmployeeDisable = true;\r\n }\r\n \r\n var currencyFormatSymbols = this.portalSettings.CurrencyFormatPerPRCo.ConfigValue;\r\n this.currencySymbol = \"$\";\r\n if (currencyFormatSymbols && currencyFormatSymbols.trim() !== \"\") {\r\n currencyFormatSymbols.split(\",\").forEach((val: string) => {\r\n var arrayEntry = val.split(\":\");\r\n var currencyObject = { PRCo: parseInt(arrayEntry[0]), Currency: arrayEntry[1] }\r\n if (this.employeeInfo && currencyObject.PRCo == this.employeeInfo.PRCo) {\r\n this.currencySymbol = currencyObject.Currency;\r\n }\r\n });\r\n }\r\n\r\n this.options = { align: 'left', prefix: this.currencySymbol, precision: 4, nullable: true, inputMode: CurrencyMaskInputMode.NATURAL };\r\n\r\n this.overtimeScheduleList = [{ Value: \"N\", Description: \"None\" }, { Value: \"D\", Description: \"Daily\" }, { Value: \"W\", Description: \"Weekly\" }\r\n , { Value: \"C\", Description: \"Craft\" }, { Value: \"J\", Description: \"Job\" }, { Value: \"P\", Description: \"Posting Seq\" }];\r\n\r\n if (this.personalInfoData != null && this.personalInfoData.AnticipHireDate != null) {\r\n this.formData.hireDate = cloneDeep(this.personalInfoData.AnticipHireDate);\r\n }\r\n this.getHRCo();\r\n this.getPRCo();\r\n this.getACA();\r\n this.getRaceCodes();\r\n this.getTimeRevGroup();\r\n\r\n if (this.employeeHRREFInfo != null) {\r\n if (this.employeeHRREFInfo.HRRef) {\r\n this.formData.hrRef = parseInt(this.employeeHRREFInfo.HRRef);\r\n this.formData.hrefCB = true;\r\n }\r\n } else {\r\n if (this.formData.expectHRRef != null) {\r\n this.formData.hrRef = this.formData.expectHRRef;\r\n this.formData.PREmployee = this.formData.hrRef;\r\n }\r\n }\r\n\r\n }\r\n\r\n checkMaxLength() {\r\n if (this.oNInitHirestoPayroll && this.autoAssignPREmpToHRRef) {\r\n this.formData.PREmployee = this.formData.hrRef;\r\n }\r\n if (this.formData.hrRef.toString().length > 6)\r\n this.formData.hrRefDisable = true;\r\n else\r\n this.formData.hrRefDisable = false;\r\n }\r\n\r\n getRaceCodes() {\r\n this.hiringService.getRaceCodes().then((response: any) => {\r\n this.raceList = response;\r\n this.raceList.forEach((val: any) => {\r\n val.Race = val.Race.toString().trim();\r\n })\r\n\r\n if (this.formData.Race != null) {\r\n this.raceList.forEach((val: any) => {\r\n if (val.Race.toString().trim() == this.formData.Race.trim())\r\n this.formData.Race = val.Race.toString().trim();\r\n })\r\n }\r\n if (this.employee.IsRehire) {\r\n this.getRehireValues();\r\n }\r\n });\r\n }\r\n\r\n hrcoUpdate() {\r\n this.getEmploymentStatus();\r\n if (this.formData.PRCo == null) {\r\n this.prCompanies.forEach((val2: any) => {\r\n if (this.formData.HRCo.CompanyName == val2.PRCoNameMask) {\r\n this.formData.PRCo = val2.PRCo;\r\n this.pRCoChanged();\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n pRCoChanged() {\r\n this.formData.PRGroup = null;\r\n this.formData.Craft = null;\r\n this.formData.Class = null;\r\n this.formData.PRDept = null;\r\n this.formData.EarnCode = null;\r\n this.formData.InsCode = null;\r\n this.formData.LocalCode = null;\r\n\r\n this.getDropDownValues();\r\n }\r\n\r\n craftChanged() {\r\n this.formData.Class = null;\r\n this.getClass();\r\n }\r\n\r\n hireDateChange() {\r\n if (this.formData.hireDate > new Date)\r\n this.formData.futureDate = true;\r\n else\r\n this.formData.futureDate = false;\r\n }\r\n\r\n //initialize get methods\r\n\r\n getHRCo() {\r\n this.hiringService.getHRCO().then((response: any) => {\r\n this.hrCompanies = response;\r\n });\r\n }\r\n\r\n getACA() {\r\n this.acaCode1 = [];\r\n this.acaCode2 = [];\r\n this.hiringService.getACACode().then((response: any) => {\r\n response.forEach((val: any) => {\r\n if (val.ComboType == \"HRACACodeSeries1\")\r\n this.acaCode1.push(val);\r\n else\r\n this.acaCode2.push(val);\r\n });\r\n });\r\n }\r\n\r\n getPRCo() {\r\n this.hiringService.getPRCo().then((response: any) => {\r\n this.prCompanies = response;\r\n });\r\n }\r\n\r\n getPRGroup() {\r\n var data = this.formData.PRCo;\r\n this.hiringService.getCompanyGroups(data).then((response: any) => {\r\n this.pRGroups = response;\r\n });\r\n }\r\n \r\n getInsurance() {\r\n this.hiringService.getInsCodes().then((response: any) => {\r\n this.insuranceCodeList = response;\r\n if (this.formData.InsCode != null) {\r\n var isExist = false;\r\n response.forEach((val: any) => {\r\n if (val.InsCode == this.formData.InsCode)\r\n isExist = true;\r\n })\r\n if (!isExist)\r\n this.formData.InsCode = null;\r\n }\r\n this.utilityService.closeModal();\r\n });\r\n }\r\n\r\n getTimeRevGroup() {\r\n this.hiringService.getInsCodes().then((response: any) => {\r\n this.timeRevList = response;\r\n });\r\n }\r\n\r\n getEmploymentStatus() {\r\n this.hiringService.getEmploymentStatus(this.formData.HRCo.HRCo).then((response: any) => {\r\n this.employmentStatusList = response;\r\n });\r\n }\r\n\r\n getLocalCode() {\r\n this.hiringService.getLocalCode(this.formData.PRCo).then((response: any) => {\r\n this.localCodeList = response;\r\n });\r\n }\r\n\r\n getCraft() {\r\n var data = this.formData.PRCo;\r\n this.hiringService.getCraft(data).then((response: any) => {\r\n this.crafts = response;\r\n });\r\n }\r\n\r\n getClass() {\r\n this.hiringService.getClass(this.formData.PRCo, encodeURIComponent(this.formData.Craft)).then((response: any) => {\r\n this.classes = response;\r\n });\r\n }\r\n\r\n getPRDept() {\r\n this.hiringService.getPRDept(this.formData.PRCo).then((response: any) => {\r\n this.departments = response;\r\n });\r\n }\r\n\r\n getEarnCode() {\r\n this.hiringService.getEarnCode(this.formData.PRCo).then((response: any) => {\r\n this.earnCodes = response;\r\n });\r\n }\r\n\r\n closeClicked() {\r\n if (this.finishedLeave)\r\n window.location.href = \"/Hiring/OnboardingDashboard\";\r\n else\r\n this.activeModal.close();\r\n }\r\n\r\n autoRefChange() {\r\n if (this.formData.autoRef) {\r\n this.formData.hrRef = null;\r\n this.formData.PREmployee = null;\r\n }\r\n }\r\n\r\n initialize() {\r\n var requestObj = { raceEthnic: null };\r\n if (this.formData.Race != null) {\r\n this.raceList.forEach((val: any) => {\r\n if (val.Race.trim() == this.formData.Race.trim())\r\n requestObj.raceEthnic = val.Race;\r\n })\r\n }\r\n this.processing = true;\r\n this.hiringService.initializeEmployee(this.employee.OnboardID, this.formData.HRCo.HRCo, moment(this.formData.hireDate).format(\"MM/DD/YYYY\"), this.formData.hrRef, this.formData.PRCo, this.formData.PRGroup, this.formData.Craft, this.formData.Class, this.formData.PRDept, this.formData.EarnCode, this.formData.Gender, this.formData.Wage, requestObj.raceEthnic, this.formData.InsCode, this.formData.timesheetRevGroup, null, this.formData.CodeSeries1, this.formData.CodeSeries2, this.formData.EmploymentStatus, this.formData.LocalCode, this.formData.OvertimeSchedule, this.formData.PREmployee).then(async (response: any) => {\r\n if (response.success) {\r\n if (this.disableAttachmentUploadOnboarding) {\r\n this.alert = ({ type: \"success\", msg: this.employee.FirstName + \" \" + this.employee.LastName + \" has been successfully initialized to HR Company \" + this.formData.HRCo.HRCo + \" with the Employee Number \" + response.info[0].InitializedHRRef + (response.info[0].ReturnMessage != null ? (\". \" + response.info[0].ReturnMessage) : \"\") });\r\n this.processed = true;\r\n this.processing = false;\r\n this.finishedLeave = true;\r\n } else {\r\n await this.processOnboardingForms(response.info[0]);\r\n }\r\n\r\n if (response.info[0]['ReturnMessage']) {\r\n this.alert.msg += `\\n\\n${response.info[0]['ReturnMessage']}`;\r\n }\r\n\r\n } else {\r\n this.alert = { type: \"danger\", msg: response.error };\r\n this.finishedLeave = false;\r\n this.processed = true;\r\n this.processing = false;\r\n }\r\n });\r\n }\r\n\r\n async processOnboardingForms(info: any) {\r\n var instanceIDs = [];\r\n var templateIDs = [];\r\n var filenames = [];\r\n var filetypes = [];\r\n if (this.task != null) {\r\n for (var i = 0; i < this.task.length; i++) {\r\n if (this.task[i].OnboardChecklistInstanceID != null) {\r\n instanceIDs.push(this.task[i].OnboardChecklistInstanceID);\r\n templateIDs.push(this.task[i].ChecklistTemplateID);\r\n filenames.push(this.task[i].Filename);\r\n filetypes.push(\"Checklist\");\r\n }\r\n else if (this.task[i].OnboardBulletinID != null) {\r\n instanceIDs.push(this.task[i].OnboardBulletinID);\r\n templateIDs.push(-1);\r\n filenames.push(this.task[i].Filename);\r\n filetypes.push(\"Document\");\r\n }\r\n }\r\n }\r\n\r\n const response: any = await this.hiringService.processOnboardingForms(info.HRRMKeyID, this.employee.OnboardID, instanceIDs, templateIDs, filenames, filetypes, this.employee.IncludeW4, this.employee.IncludeI9, this.employee.IncludeIdentification, this.language, this.employee.ApplicantOnboardID, this.employee.IncludeDirectDeposit, this.employee.IncludeEmergencyContacts,)\r\n if (response.success) {\r\n this.alert = ({ type: \"success\", msg: this.employee.FirstName + \" \" + this.employee.LastName + \" has been successfully initialized to HR Company \" + this.formData.HRCo.HRCo + \" with the Employee Number \" + info.InitializedHRRef });\r\n this.processed = true;\r\n this.processing = false;\r\n this.finishedLeave = true;\r\n } else {\r\n this.alert = { type: \"danger\", msg: response.errorMessage };\r\n this.finishedLeave = false;\r\n this.processed = true;\r\n this.processing = false;\r\n }\r\n }\r\n\r\n getDropDownValues() {\r\n this.utilityService.openModal();\r\n this.getPRGroup();\r\n this.getLocalCode();\r\n this.getCraft();\r\n this.getPRDept();\r\n this.getEarnCode();\r\n this.getInsurance();\r\n }\r\n\r\n getRehireValues() {\r\n this.utilityService.openModal();\r\n this.formData.HRCo = { HRCo: this.employeeHRREFInfo.HRCo, CompanyName: null };\r\n this.hiringService.getRehireDetailsByHRRef(this.employeeHRREFInfo.HRRef, this.employeeHRREFInfo.HRCo).then((response: any) => {\r\n var reHireInfo = response[0];\r\n this.formData.PRCo = reHireInfo.PRCo;\r\n if (reHireInfo.Race != null) {\r\n this.raceList.forEach((val: any) => {\r\n if (val.Race.toString().trim() == reHireInfo.Race.trim())\r\n this.formData.Race = val.Race.toString().trim();\r\n })\r\n }\r\n this.getDropDownValues();\r\n this.formData.Wage = reHireInfo.ExpectedSalary;\r\n this.formData.PRGroup = reHireInfo.PRGroup;\r\n this.formData.InsCode = reHireInfo.StdInsCode;\r\n this.formData.Craft = reHireInfo.StdCraft;\r\n if (this.formData.Craft) {\r\n this.getClass();\r\n this.formData.Class = reHireInfo.StdClass;\r\n }\r\n this.formData.PRDept = reHireInfo.PRDept;\r\n this.formData.EarnCode = reHireInfo.EarnCode;\r\n this.getEmploymentStatus();\r\n });\r\n }\r\n\r\n}\r\n","
\r\n

Initialize to Vista

\r\n
\r\n
\r\n
\r\n
Initializing this employee will create the HR Resource for this record, migrate all attachments and submitted information to Vista.
\r\n
Since hire date is a future date, active check boxes will not be updated in Vista HR or PR.
\r\n
\r\n
\r\n
\r\n HR Company *\r\n \r\n {{hrCompany.CompanyName}}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Expected Hire Date *\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n EEOC Gender *\r\n \r\n M - Male\r\n F - Female\r\n \r\n
\r\n
\r\n
\r\n
\r\n Auto Generate HR Ref\r\n \r\n
\r\n
\r\n HR Ref *\r\n \r\n
\r\n
\r\n Race *\r\n \r\n {{data.Race}} - {{data.Description}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Hourly / Salary Amt.\r\n \r\n
\r\n
\r\n PR Employee *\r\n \r\n
\r\n
\r\n PRCo *\r\n \r\n {{prCompany.PRCoNameMask}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n PR Group *\r\n \r\n {{pRGroup.PRGroupName}}\r\n \r\n
\r\n
\r\n Insurance Code *\r\n \r\n {{data.InsCode}} - {{data.Description}}\r\n \r\n
\r\n
\r\n Craft\r\n \r\n {{craft.Craft}} - {{craft.CraftDescription}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Class\r\n \r\n {{class.Class}} - {{class.ClassDescription}}\r\n \r\n
\r\n
\r\n PR Department *\r\n \r\n {{department.PRDept}} - {{department.PRDeptDescription}}\r\n \r\n
\r\n
\r\n Default Earn Code *\r\n \r\n {{earnCode.EarnCode}} - {{earnCode.EarnCodeDescription}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Code Series 1\r\n \r\n {{data.DisplayValue}}\r\n \r\n
\r\n\r\n
\r\n Code Series 2\r\n \r\n {{data.DisplayValue}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Employment Status\r\n \r\n {{data.StatusCode}} - {{data.Description}}\r\n \r\n
\r\n\r\n
\r\n Local Code\r\n \r\n {{data.LocalCode}} - {{data.Description}}\r\n \r\n
\r\n
\r\n Overtime Schedule *\r\n \r\n {{data.Value}} - {{data.Description}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Processing {{progressCurrent}}...\"Loading...\"\r\n \r\n \r\n \r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { concat, from, Observable, of, Subject } from 'rxjs';\nimport { catchError, debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\r\n\r\nimport { EmployeeInfoService } from '../../../core/services/employee-info.service';\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { HiringService } from '../../../pages/hiring/services/hiring.service';\r\n\nimport { OrderByPipe } from './../../../shared/pipe/order-by.pipe';\n\r\n\n@Component({\n selector: 'app-onboarding-invitation-modal',\n templateUrl: './onboarding-invitation-modal.component.html',\n styleUrls: ['./onboarding-invitation-modal.component.css']\n})\n\nexport class OnboardingInvitationModalComponent implements OnInit {\n @Input() profileList: any[];\n\n portalSettings: any;\n employeeInfo: any;\n orderByPipe: any;\n formData: { [key: string]: any } = {};\n employees: any[] = [];\n showCheckSSN: boolean = false;\r\n processes: any[] = [];\r\n unusedProcesses: any[] = [];\r\n employeeLoading: boolean = false;\r\n employee$: Observable;\n employeeInput$ = new Subject();\r\n\n constructor(portalSettingsService: PortalSettingsService, employeeInfoService: EmployeeInfoService, private hiringService: HiringService, public activeModal: NgbActiveModal) {\n this.portalSettings = portalSettingsService.getPortalSettings();\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\n }\n\n ngOnInit(): void {\n this.orderByPipe = new OrderByPipe();\n this.showCheckSSN = this.portalSettings.ONCheckSSNOnInvite.ConfigValue == \"1\";\n this.registerLookups();\n }\n\n private registerLookups() {\n //register observables used by super lookups\n this.employee$ = concat(\n this.employeeInput$.pipe(\n debounceTime(500),\n distinctUntilChanged(),\n switchMap(term => ((term != null && term.length > 2) ?\n from(this.hiringService.getOnboardingEmployees(term)).pipe(\n catchError(() => of([]))) : of([])\n ))\n )\n );\n }\n\n checkSSN() {\n if (this.formData.noHireCheck != null && this.formData.noHireCheck.length != 11) {\n this.formData.noHireCheck = null;\n }\n }\n\n getAllDefaultsList() {\n this.hiringService.defaultsGetAllList(this.formData.profile).then((response: any[]) => {\n if (response != null) {\n var processes = response;\n var filteredProcesses = [];\n var unusedProcesses = [];\n processes.forEach((val: any) => {\n if (val.OnboardTaskIsDefault) {\n val.UseTask = true;\n filteredProcesses.push(val);\n }\n else {\n val.UseTask = false;\n unusedProcesses.push(val);\n }\n });\n this.processes = filteredProcesses;\n this.unusedProcesses = unusedProcesses;\r\n }\n });\n }\n\n addProcess() {\n this.formData.taskToAdd.UseTask = true;\n this.processes.push(this.formData.taskToAdd);\n this.unusedProcesses.splice(this.unusedProcesses.indexOf(this.formData.taskToAdd), 1);\n this.formData.taskToAdd = null;\n }\n\n employeeUpdate() {\n if (this.formData.employee != null) {\n setTimeout(() => {\n this.formData.firstName = this.formData.employee.FirstName;\n this.formData.lastName = this.formData.employee.LastName;\n this.formData.email = this.formData.employee.Email.trim();\n this.formData.noHireCheck = null;\n });\n }\n }\n\n sendClicked() {\n var usedProccesses = [];\n this.processes.forEach((val: any) => {\n usedProccesses.push(val.OnboardTaskDefID);\n });\n if (usedProccesses.length > 0) {\n this.formData.onboardTaskDefIDString = usedProccesses.join(',');\r\n }\n this.formData.action = \"send\";\n this.activeModal.close(this.formData);\n }\n\n removeTask(index: number) {\n this.unusedProcesses.push(this.processes[index]);\n this.unusedProcesses = this.orderByPipe.transform(this.unusedProcesses, \"StepName\", \"asc\");\n this.processes.splice(index, 1);\n }\n\n updateFormdata(data: string, field: any) {\n this.formData[field] = data;\r\n }\n\n cancelClicked() {\n this.activeModal.dismiss();\n }\n}\n\n","
\r\n

Send Onboarding Invitation

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n If the employee exists in the Resource Master, select below:\r\n \r\n \r\n
\r\n
\r\n
\r\n
Otherwise, input the new hire's information below:
\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 {{profile.OnboardProfileName}}\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 {{unusedProcess.StepName}}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
0 || unusedProcesses.length > 0\">\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 Step Name\r\n \r\n\r\n
{{process.StepName}}Remove
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { HiringService } from '../../../pages/hiring/services/hiring.service';\r\nimport { EmployeeService } from './../../../pages/employee/services/employee.service';\r\n\r\n@Component({\r\n selector: 'app-review-ddmodal',\r\n templateUrl: './review-ddmodal.component.html',\r\n styleUrls: ['./review-ddmodal.component.css']\r\n})\r\n\r\nexport class ReviewDDModalComponent implements OnInit {\r\n @Input() id: number;\r\n accountList: any[] = [];\r\n accountName: string[] = [\"Primary\", \"Secondary\", \"Third\", \"Fourth\"];\r\n\r\n constructor(public activeModal: NgbActiveModal, private employeeService: EmployeeService, private hiringService: HiringService) { }\r\n\r\n ngOnInit(): void {\r\n this.getDirectDeposit();\r\n }\r\n\r\n getDirectDeposit() {\r\n this.hiringService.getOnboardDirectDeposits(this.id).then((response: any[]) => {\r\n if (response != null) {\r\n this.accountList = response;\r\n this.accountList.forEach((val: any) => {\r\n this.getAttachmentList(val);\r\n });\r\n }\r\n });\r\n }\r\n\r\n getAttachmentList(data: any) {\r\n var requestParam = \"moduleID=\" + 601 + \"&recordID=\" + data.OnboardDirectDepositID + \"&onboarding=\" + true;\r\n this.employeeService.getFileAttachmentList(requestParam).then((response: any[]) => {\r\n if (response != null && response.length > 0) {\r\n data.Attachments = response[0];\r\n }\r\n });\r\n }\r\n\r\n closeClick() {\r\n this.activeModal.close();\r\n }\r\n\r\n}\r\n","
\r\n

Direct Deposit

\r\n
\r\n
\r\n
\r\n
\r\n
{{accountName[$index]}} Account
\r\n
\r\n
\r\n
\r\n \r\n

{{data.RoutingID}}

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

{{data.BankAcct}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Checking\r\n
\r\n
\r\n
\r\n \r\n Savings\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Percent\r\n
\r\n
\r\n
\r\n \r\n $ Amount\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n

{{data.Amount}}

\r\n

{{data.Pct}}

\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 { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n//services\r\nimport { HiringService } from 'src/app/pages/hiring/services/hiring.service';\r\nimport { UtilityService } from 'src/app/core/services/utility.service';\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\n\r\n@Component({\r\n selector: 'app-review-ecmodal',\r\n templateUrl: './review-ecmodal.component.html',\r\n styleUrls: ['./review-ecmodal.component.css']\r\n})\r\nexport class ReviewECModalComponent implements OnInit {\r\n\r\n @Input() id: any;\r\n contactList: any[];\r\n portalSettings: any;\r\n country: string;\r\n\r\n constructor(private hiringService: HiringService, public activeModal: NgbActiveModal, portalSettingsService: PortalSettingsService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.country = this.portalSettings.CountryDateCode.ConfigValue;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getContact();\r\n }\r\n\r\n getContact() {\r\n this.hiringService.getOnboardEmergencyContacts(this.id).then((response: any) => {\r\n if (response != null) {\r\n this.contactList = response;\r\n }\r\n });\r\n }\r\n\r\n expendRow(data: any) {\r\n data.Expended = !data.Expended;\r\n }\r\n\r\n closeClick = function () {\r\n this.activeModal.dismiss();\r\n }\r\n}\r\n","
\r\n

Emergency Contacts

\r\n
\r\n
\r\n
\r\n 0\">\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
NameRelationshipHome PhoneCell PhoneWork PhoneNote
{{row.ContactName}}{{row.Relationship}}{{row.HomePhone}}{{row.CellPhone}}{{row.WorkPhone}}{{row.Note}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Contact Name\r\n

{{row.ContactName}}

\r\n
\r\n
\r\n Relationship\r\n

\r\n {{row.Relationship}}\r\n

\r\n
\r\n
\r\n Home Phone\r\n

{{row.HomePhone}}

\r\n
\r\n
\r\n Cell Phone\r\n

{{row.CellPhone}}

\r\n
\r\n
\r\n Work Phone\r\n

{{row.WorkPhone}}

\r\n
\r\n
\r\n
\r\n
\r\n Address\r\n

{{row.Address}}

\r\n
\r\n
\r\n City\r\n

{{row.City}}

\r\n
\r\n
\r\n State\r\n Province\r\n

{{row.State}}

\r\n
\r\n
\r\n Zip\r\n Postal Code\r\n

{{row.Zip}}

\r\n
\r\n
\r\n
\r\n
\r\n Note\r\n

{{row.Note}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport moment, { utc } from 'moment';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n//services\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\nimport { UtilityService } from 'src/app/core/services/utility.service';\r\nimport { HiringService } from 'src/app/pages/hiring/services/hiring.service';\r\nimport { HomeService } from 'src/app/pages/home/services/home.service';\r\n\r\n@Component({\r\n selector: 'app-review-i9-modal',\r\n templateUrl: './review-i9-modal.component.html',\r\n styleUrls: ['./review-i9-modal.component.css']\r\n})\r\nexport class ReviewI9ModalComponent implements OnInit {\r\n\r\n @ViewChild('I9Form', { static: false }) I9Form: NgForm;\r\n @ViewChild('signaturePadS2', { static: false }) signaturePadS2;\r\n @ViewChild('signaturePadS3', { static: false }) signaturePadS3;\r\n @Input() id: number;\r\n @Input() viewMode: boolean;\r\n @Input() isRehire: boolean;\r\n portalSettings: any;\r\n i9Section3Require: boolean;\r\n enableCheckboxSign: boolean;\r\n requireFirstWorkdateOnI9: boolean;\r\n formData: { [key: string]: any } = {};\r\n sign: { [key: string]: any } = {};\r\n date: { [key: string]: any } = {};\r\n formData2: { [key: string]: any } = {};\r\n sign2: { [key: string]: any } = {};\r\n date2: { [key: string]: any } = {};\r\n validateCheck: boolean = false;\r\n mobileMode: boolean;\r\n format: string;\r\n datePickerOptions: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean; adaptivePosition: boolean };\r\n documentTitleAList12: any[] = [];\r\n documentTitleAList3: any[] = [];\r\n documentTitleAList4: any[] = [];\r\n documentTitleListOri: any[] = [];\r\n documentTitleBList: any[] = [];\r\n documentTitleCList12: any[] = [];\r\n documentTitleCList34: any[] = [];\r\n stateList: any[];\r\n q4NA: boolean = false;\r\n documentTitleAList: any[];\r\n documentTitleCList: any[];\r\n alert: string;\r\n latitude: any;\r\n longitude: any;\r\n panelWidth: number;\r\n signEmporAuthS2RedBorder: boolean;\r\n signEmporAuthS3RedBorder: boolean;\r\n monthDateFormat: string = \"MM/DD/YYYY\";\r\n new2023: any;\r\n\r\n constructor(portalSettingsService: PortalSettingsService, private utilityService: UtilityService, private hiringService: HiringService, private activeModal: NgbActiveModal, private homeService: HomeService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.mobileMode = this.utilityService.isMobileMode();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.new2023 = false;\r\n this.i9Section3Require = this.portalSettings.I9Section3Require.ConfigValue == \"1\";\r\n this.enableCheckboxSign = this.portalSettings.EnableCheckboxSign.ConfigValue == \"1\" ? true : false;\r\n this.requireFirstWorkdateOnI9 = this.portalSettings.RequireFirstWorkdateOnI9.ConfigValue == \"1\";\r\n this.viewMode = this.viewMode == true ? true : false;\r\n\r\n this.format = this.utilityService.getDateFormat();\r\n this.datePickerOptions = { dateInputFormat: this.format.toUpperCase(), containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false, adaptivePosition: true };\r\n\r\n if (this.isRehire)\r\n this.date2.S3SignatureDate = new Date(moment().format(this.monthDateFormat));\r\n else\r\n this.date2.S2SignatureDate = new Date(moment().format(this.monthDateFormat));\r\n\r\n this.formData2.ListBDocumentTitle = null; this.formData2.ListBIssuingAuthority = null; this.formData2.ListBDocumentNumber = null;\r\n this.formData2.ListAExpirationDateStr = null; this.formData2.ListAExpirationDateStr2 = null; this.formData2.ListAExpirationDateStr3 = null; this.formData2.ListBExpirationDateStr = null; this.formData2.ListCExpirationDateStr = null; this.formData2.S2EmployeeFirstDayStr = null; this.formData2.S2SignatureDateStr = null; this.formData2.S3RehireDateStr = null; this.formData2.S3ExpirationDateStr = null;\r\n this.formData2.S3SignatureDateStr = null; this.formData2.S2SignatureTypeSign = null; this.formData2.S3SignatureTypeSign = null;\r\n this.formData2.S2SignatureBinary = null; this.formData2.S3SignatureBinary = null;\r\n this.date2.ListBExpirationDate = null;\r\n this.formData2.ListCDocumentTitle = null; this.formData2.ListCIssuingAuthority = null; this.formData2.ListCDocumentNumber = null; this.date2.ListCExpirationDate = null;\r\n\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(position => {\r\n this.latitude = position.coords.latitude;\r\n this.longitude = position.coords.longitude;\r\n });\r\n }\r\n\r\n this.documentTitleAList12.push({ name: \"\", value: '' });\r\n this.documentTitleAList12.push({ name: \"U.S. Passport\", value: \"U.S. Passport\" });\r\n this.documentTitleAList12.push({ name: \"U.S. Passport Card\", value: \"U.S. Passport Card\" });\r\n\r\n this.documentTitleAList3.push({ name: \"\", value: '' });\r\n this.documentTitleAList3.push({ name: \"Perm. Resident Card (Form I-551)\", value: \"Perm. Resident Card (Form I-551)\" });\r\n this.documentTitleAList3.push({ name: \"Alien Reg. Receipt Card (Form I-551)\", value: \"Alien Reg. Receipt Card (Form I-551)\" });\r\n this.documentTitleAList3.push({ name: \"Foreign Passport with Temp. I-551 Stamp\", value: \"Foreign Passport with Temp. I-551 Stamp\" });\r\n this.documentTitleAList3.push({ name: \"Foreign Passport with Temp. I-551 MRIV\", value: \"Foreign Passport with Temp. I-551 MRIV\" });\r\n this.documentTitleAList3.push({ name: \"Receipt: Form I-94/I-94A w/I-551 stamp, photo\", value: \"Receipt: Form I-94/I-94A w/I-551 stamp, photo\" });\r\n this.documentTitleAList3.push({ name: \"Receipt: Replacement Perm. Res. Card (Form I-551)\", value: \"Receipt: Replacement Perm. Res. Card (Form I-551)\" });\r\n\r\n this.documentTitleAList4.push({ name: \"\", value: '' });\r\n this.documentTitleAList4.push({ name: \"Employment Auth. Document (Form I-766)\", value: \"Employment Auth. Document (Form I-766)\" });\r\n this.documentTitleAList4.push({ name: \"Foreign Passport, work-authorized nonimmigrant\", value: \"Foreign Passport, work-authorized nonimmigrant\" });\r\n this.documentTitleAList4.push({ name: \"FSM Passport with Form I-94\", value: \"FSM Passport with Form I-94\" });\r\n this.documentTitleAList4.push({ name: \"RMI Passport with Form I-94\", value: \"RMI Passport with Form I-94\" });\r\n this.documentTitleAList4.push({ name: \"Receipt: Replacement EAD (Form I-766)\", value: \"Receipt: Replacement EAD (Form I-766)\" });\r\n this.documentTitleAList4.push({ name: \"Receipt: Form I-94/I-94A w/refugee stamp (or RE class of admission)\", value: \"Receipt: Form I-94/I-94A w/refugee stamp (or RE class of admission)\" });\r\n this.documentTitleAList4.push({ name: \"Receipt: Foreign Passport, work-authorized nonimmigrant\", value: \"Receipt: Foreign Passport, work-authorized nonimmigrant\" });\r\n this.documentTitleAList4.push({ name: \"Receipt: FSM Passport with Form I-94\", value: \"Receipt: FSM Passport with Form I-94\" });\r\n this.documentTitleAList4.push({ name: \"Receipt: RMI Passport with Form I-94\", value: \"Receipt: RMI Passport with Form I-94\" });\r\n this.documentTitleAList4.push({ name: \"Student Form I-20\", value: \"Student Form I-20\" });\r\n\r\n this.documentTitleListOri.push({ name: \"\", value: '' });\r\n this.documentTitleListOri.push({ name: \"U.S. Passport\", value: \"U.S. Passport\" });\r\n this.documentTitleListOri.push({ name: \"U.S. Passport Card\", value: \"U.S. Passport Card\" });\r\n this.documentTitleListOri.push({ name: \"Perm. Resident Card (Form I-551)\", value: \"Perm. Resident Card (Form I-551)\" });\r\n this.documentTitleListOri.push({ name: \"Alien Reg. Receipt Card (Form I-551)\", value: \"Alien Reg. Receipt Card (Form I-551)\" });\r\n this.documentTitleListOri.push({ name: \"Foreign Passport with Temp. I-551 Stamp\", value: \"Foreign Passport with Temp. I-551 Stamp\" });\r\n this.documentTitleListOri.push({ name: \"Foreign Passport with Temp. I-551 MRIV\", value: \"Foreign Passport with Temp. I-551 MRIV\" });\r\n this.documentTitleListOri.push({ name: \"Employment Auth. Document (Form I-766)\", value: \"Employment Auth. Document (Form I-766)\" });\r\n this.documentTitleListOri.push({ name: \"Foreign Passport with Form I-94, endorsement\", value: \"Foreign Passport with Form I-94, endorsement\" });\r\n this.documentTitleListOri.push({ name: \"FSM Passport with Form I-94\", value: \"FSM Passport with Form I-94\" });\r\n this.documentTitleListOri.push({ name: \"RMI Passport with Form I-94\", value: \"RMI Passport with Form I-94\" });\r\n this.documentTitleListOri.push({ name: \"Receipt: Form I-94/I-94A w/I-551 stamp, photo\", value: \"Receipt: Form I-94/I-94A w/I-551 stamp, photo\" });\r\n this.documentTitleListOri.push({ name: \"Receipt: Form I-94/I-94A w/refugee stamp (or RE class of admission)\", value: \"Receipt: Form I-94/I-94A w/refugee stamp (or RE class of admission)\" });\r\n this.documentTitleListOri.push({ name: \"Social Security Card (Unrestricted)\", value: \"Social Security Card (Unrestricted)\" });\r\n this.documentTitleListOri.push({ name: \"Form FS-545\", value: \"Form FS-545\" });\r\n this.documentTitleListOri.push({ name: \"Form FS-240\", value: \"Form FS-240\" });\r\n this.documentTitleListOri.push({ name: \"Form DS-1350\", value: \"Form DS-1350\" });\r\n this.documentTitleListOri.push({ name: \"U.S. Birth certificate\", value: \"U.S. Birth certificate\" });\r\n this.documentTitleListOri.push({ name: \"Native American Tribal document\", value: \"Native American Tribal document\" });\r\n this.documentTitleListOri.push({ name: \"Form I-197\", value: \"Form I-197\" });\r\n this.documentTitleListOri.push({ name: \"Form I-179\", value: \"Form I-179\" });\r\n this.documentTitleListOri.push({ name: \"Employment auth. document (DHS)\", value: \"Employment auth. document (DHS)\" });\r\n this.documentTitleListOri.push({ name: \"Receipt: Replacement Perm. Res. Card (Form I-551)\", value: \"Receipt: Replacement Perm. Res. Card (Form I-551)\" });\r\n this.documentTitleListOri.push({ name: \"Receipt: Replacement Employment Auth. Document (Form I-766)\", value: \"Receipt: Replacement Employment Auth. Document (Form I-766)\" });\r\n this.documentTitleListOri.push({ name: \"Receipt: Replacement Foreign Passport with Form I-94 , endorsement\", value: \"Receipt: Replacement Foreign Passport with Form I-94 , endorsement\" });\r\n this.documentTitleListOri.push({ name: \"Receipt: Replacement FSM passport/Form I-94\", value: \"Receipt: Replacement FSM passport/Form I-94\" });\r\n this.documentTitleListOri.push({ name: \"Receipt: Replacement RMI passport/Form I-94\", value: \"Receipt: Replacement RMI passport/Form I-94\" });\r\n this.documentTitleListOri.push({ name: \"Receipt: Replacement Social Security Card\", value: \"Receipt: Replacement Social Security Card\" });\r\n this.documentTitleListOri.push({ name: \"Receipt: Replacement Birth Certificate\", value: \"Receipt: Replacement Birth Certificate\" });\r\n this.documentTitleListOri.push({ name: \"Receipt: Replacement Native American Tribal Document\", value: \"Receipt: Replacement Native American Tribal Document\" });\r\n this.documentTitleListOri.push({ name: \"Receipt: Replacement Employment Auth. Doc (DHS)\", value: \"Receipt: Replacement Employment Auth. Doc (DHS)\" });\r\n\r\n this.documentTitleBList.push({ name: \"\", value: '' });\r\n this.documentTitleBList.push({ name: \"Driver's License issued by state/territory\", value: \"Driver's License issued by state/territory\" });\r\n this.documentTitleBList.push({ name: \"ID card issed by state/territory\", value: \"ID card issed by state/territory\" });\r\n this.documentTitleBList.push({ name: \"Government ID\", value: \"Government ID\" });\r\n this.documentTitleBList.push({ name: \"School ID\", value: \"School ID\" });\r\n this.documentTitleBList.push({ name: \"Voter registration card\", value: \"Voter registration card\" });\r\n this.documentTitleBList.push({ name: \"U.S. Military card\", value: \"U.S. Military card\" });\r\n this.documentTitleBList.push({ name: \"U.S. Military draft record\", value: \"U.S. Military draft record\" });\r\n this.documentTitleBList.push({ name: \"Military dependent's ID card\", value: \"Military dependent's ID card\" });\r\n this.documentTitleBList.push({ name: \"USCG Merchant Mariner card\", value: \"USCG Merchant Mariner card\" });\r\n this.documentTitleBList.push({ name: \"Native American tribal document\", value: \"Native American tribal document\" });\r\n this.documentTitleBList.push({ name: \"Canadian driver's license\", value: \"Canadian driver's license\" });\r\n this.documentTitleBList.push({ name: \"School record (under age 18)\", value: \"School record (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Report card (under age 18)\", value: \"Report card (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Clinic record (under age 18)\", value: \"Clinic record (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Doctor record (under age 18)\", value: \"Doctor record (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Hospital record (under age 18)\", value: \"Hospital record (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Day-care record (under age 18)\", value: \"Day-care record (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Nursery School record (under age 18)\", value: \"Nursery School record (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Individual under Age 18\", value: \"Individual under Age 18\" });\r\n this.documentTitleBList.push({ name: \"Special Placement\", value: \"Special Placement\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement Driver's License\", value: \"Receipt Replacement Driver's License\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacemnet ID Card\", value: \"Receipt Replacemnet ID Card\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement Government ID\", value: \"Receipt Replacement Government ID\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement School ID\", value: \"Receipt Replacement School ID\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement Voter Reg. Card\", value: \"Receipt Replacement Voter Reg. Card\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement U.S. Military card\", value: \"Receipt Replacement U.S. Military card\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement Military Draft Record\", value: \"Receipt Replacement Military Draft Record\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement Military Dep. Card\", value: \"Receipt Replacement Military Dep. Card\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement Merchant Mariner Card\", value: \"Receipt Replacement Merchant Mariner Card\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement Native American Tribal Doc\", value: \"Receipt Replacement Native American Tribal Doc\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement Canadian DL.\", value: \"Receipt Replacement Canadian DL.\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement School Record (under age 18)\", value: \"Receipt Replacement School Record (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement Report Card (under age 18)\", value: \"Receipt Replacement Report Card (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement Clinic Record (under age 18)\", value: \"Receipt Replacement Clinic Record (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replacement Doctor Record (under age 18)\", value: \"Receipt Replacement Doctor Record (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replace. Hospital Record (under age 18)\", value: \"Receipt Replace. Hospital Record (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replace. Day-Card Record (under age 18)\", value: \"Receipt Replace. Day-Card Record (under age 18)\" });\r\n this.documentTitleBList.push({ name: \"Receipt Replace. Nursery School Record (under age 18)\", value: \"Receipt Replace. Nursery School Record (under age 18)\" });\r\n\r\n this.documentTitleCList12.push({ name: \"\", value: '' });\r\n this.documentTitleCList12.push({ name: \"Social Security Card (Unrestricted)\", value: \"Social Security Card (Unrestricted)\" });\r\n this.documentTitleCList12.push({ name: \"Form FS-545\", value: \"Form FS-545\" });\r\n this.documentTitleCList12.push({ name: \"Form FS-240\", value: \"Form FS-240\" });\r\n this.documentTitleCList12.push({ name: \"Form DS-1350\", value: \"Form DS-1350\" });\r\n this.documentTitleCList12.push({ name: \"U.S. Birth certificate\", value: \"U.S. Birth certificate\" });\r\n this.documentTitleCList12.push({ name: \"Native American tribal document\", value: \"Native American tribal document\" });\r\n this.documentTitleCList12.push({ name: \"Form I-197\", value: \"Form I-197\" });\r\n this.documentTitleCList12.push({ name: \"Form I-179\", value: \"Form I-179\" });\r\n this.documentTitleCList12.push({ name: \"Employment auth. document (DHS)\", value: \"Employment auth. document (DHS)\" });\r\n this.documentTitleCList12.push({ name: \"Receipt Replace. Unrestricted SS Card\", value: \"Receipt Replace. Unrestricted SS Card\" });\r\n this.documentTitleCList12.push({ name: \"Receipt Replacement Birth Certificate\", value: \"Receipt Replacement Birth Certificate\" });\r\n this.documentTitleCList12.push({ name: \"Receipt Replace. Native American Tribal Doc.\", value: \"Receipt Replace. Native American Tribal Doc.\" });\r\n this.documentTitleCList12.push({ name: \"Receipt Replace. Employment Auth. Doc (DHS)\", value: \"Receipt Replace. Employment Auth. Doc (DHS)\" });\r\n\r\n this.documentTitleCList34.push({ name: \"\", value: '' });\r\n this.documentTitleCList34.push({ name: \"Social Security Card (Unrestricted)\", value: \"Social Security Card (Unrestricted)\" });\r\n this.documentTitleCList34.push({ name: \"Native American tribal document\", value: \"Native American tribal document\" });\r\n this.documentTitleCList34.push({ name: \"Employment auth. document (DHS)\", value: \"Employment auth. document (DHS)\" });\r\n this.documentTitleCList34.push({ name: \"Receipt Replace. Unrestricted SS Card\", value: \"Receipt Replace. Unrestricted SS Card\" });\r\n this.documentTitleCList34.push({ name: \"Receipt Replace. Native American Tribal Doc.\", value: \"Receipt Replace. Native American Tribal Doc.\" });\r\n this.documentTitleCList34.push({ name: \"Receipt Replace. Employment Auth. Doc (DHS)\", value: \"Receipt Replace. Employment Auth. Doc (DHS)\" });\r\n\r\n this.getDependentLookupByColumnName();\r\n this.getI9ByOnboardID();\r\n this.oNGetI9ByOnboardIDStep2();\r\n }\r\n\r\n getDependentLookupByColumnName() {\r\n this.hiringService.getDependentLookupByColumnName(\"State\", null).then((response: any) => {\r\n this.stateList = response;\r\n });\r\n }\r\n\r\n getI9ByOnboardID() {\r\n this.hiringService.getI9ByOnboardID(this.id, 2).then((response: any) => {\r\n if (response.length > 0) {\r\n for (var [key, val] of Object.entries(response[0])) {\r\n if (key == \"IsPreparerUsed\") {\r\n if (val != null) {\r\n this.formData.IsPreparerUsedYN = val ? \"Y\" : \"N\";\r\n }\r\n } else if (key == \"S1BirthDate\") {\r\n if (val != null) {\r\n this.date.S1BirthDate = new Date(moment(val).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"S1AlienExpiration\") {\r\n if (val != null) {\r\n this.date.S1AlienExpiration = new Date(moment(val).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"S1SignatureDate\") {\r\n if (val != null) {\r\n this.date.S1SignatureDate = new Date(moment(val).utc().format(this.monthDateFormat));\r\n if ((new Date(parseInt(moment(val).utc().format(\"YYYY\"))\r\n , parseInt(moment(val).utc().format(\"MM\")) - 1\r\n , parseInt(moment(val).utc().format(\"DD\")), 0, 0, 0, 0)) >= (new Date(\"2023/10/4\")))\r\n this.new2023 = true;\r\n } else {\r\n if ((new Date()) >= (new Date(\"2023/10/4\")))\r\n this.new2023 = true;\r\n }\r\n } else if (key == \"PreparerSignatureDate\") {\r\n if (val != null) {\r\n this.date.PreparerSignatureDate = new Date(moment(val).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"S1SignatureBinary\") {\r\n if (val != null) {\r\n this.sign.signEmployeesubmitSignImg = \"data:image/png;base64,\" + (val);\r\n }\r\n } else if (key == \"PreparerSignatureBinary\") {\r\n if (val != null) {\r\n this.sign.signPreorTransubmitSignImg = \"data:image/png;base64,\" + (val);\r\n }\r\n }\r\n else {\r\n this.formData[key] = val;\r\n }\r\n }\r\n\r\n if (this.formData.IsPreparerUsedYN == \"Y\" && this.new2023) {\r\n this.formData.PreparerList = [];\r\n this.hiringService.onboardI9GetSupA(this.id).then((response: any) => {\r\n response.forEach((val: any) => {\r\n this.formData.PreparerList.push({\r\n PreparerSignatureDate: new Date(moment(val.Date).utc().format(\"MM/DD/YYYY\")), PreparerLastName: val.LastName, PreparerFirstName: val.FirstName, PreparerMiddleInitial: val.MiddleInitial, PreparerAddress: val.Address, PreparerCity: val.City,\r\n PreparerState: val.State, PreparerZip: val.ZipCode,\r\n signPreorTransubmitSignImg: (val.PreparerSignature != null ? \"data:image/png;base64,\" + (val.PreparerSignature) : null), seq: val.Seq\r\n })\r\n })\r\n });\r\n }\r\n\r\n this.formData2.S2EmpLastName = this.formData.S1LastName;\r\n this.formData2.S2EmpFirstName = this.formData.S1FirstName;\r\n this.formData2.S2EmpMiddleName = this.formData.S1MiddleInitial;\r\n this.formData2.S2EmpCitizenStatus = this.formData.S1CitizenStatus;\r\n\r\n if (this.formData.S1CitizenStatus == 4 && this.date.S1AlienExpiration == null) {\r\n this.q4NA = true;\r\n }\r\n\r\n if (this.formData.S1CitizenStatus == 1 || this.formData.S1CitizenStatus == 2) {\r\n this.documentTitleAList = this.documentTitleAList12;\r\n this.documentTitleCList = this.documentTitleCList12;\r\n } else if (this.formData.S1CitizenStatus == 3) {\r\n this.documentTitleAList = this.documentTitleAList3;\r\n this.documentTitleCList = this.documentTitleCList34;\r\n } else if (this.formData.S1CitizenStatus == 4) {\r\n this.documentTitleAList = this.documentTitleAList4;\r\n this.documentTitleCList = this.documentTitleCList34;\r\n }\r\n }\r\n });\r\n }\r\n\r\n oNGetI9ByOnboardIDStep2() {\r\n this.hiringService.oNGetI9ByOnboardIDStep2(this.id).then((response: any) => {\r\n if (response.length > 0) {\r\n for (const [key, val] of Object.entries(response[0])) {\r\n if (key == \"ListAExpirationDate\") {\r\n if (val != null) {\r\n this.date2.ListAExpirationDate = new Date(moment(val, this.format.toUpperCase()).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"ListAExpirationDate2\") {\r\n if (val != null) {\r\n this.date2.ListAExpirationDate2 = new Date(moment(val, this.format.toUpperCase()).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"ListAExpirationDate3\") {\r\n if (val != null) {\r\n this.date2.ListAExpirationDate3 = new Date(moment(val, this.format.toUpperCase()).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"ListBExpirationDate\") {\r\n if (val != null) {\r\n this.date2.ListBExpirationDate = new Date(moment(val, this.format.toUpperCase()).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"ListCExpirationDate\") {\r\n if (val != null) {\r\n this.date2.ListCExpirationDate = new Date(moment(val, this.format.toUpperCase()).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"S2EmployeeFirstDay\") {\r\n if (val != null) {\r\n this.date2.S2EmployeeFirstDay = new Date(moment(val, this.format.toUpperCase()).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"S2SignatureDate\") {\r\n if (val != null) {\r\n this.date2.S2SignatureDate = new Date(moment(val, this.format.toUpperCase()).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"S3ExpirationDate\") {\r\n if (val != null) {\r\n this.date2.S3ExpirationDate = new Date(moment(val, this.format.toUpperCase()).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"S3RehireDate\") {\r\n if (val != null) {\r\n this.date2.S3RehireDate = new Date(moment(val, this.format.toUpperCase()).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"S3SignatureDate\") {\r\n if (val != null) {\r\n this.date2.S3SignatureDate = new Date(moment(val, this.format.toUpperCase()).utc().format(this.monthDateFormat));\r\n }\r\n } else if (key == \"S2SignatureBinary\" && this.viewMode) {\r\n if (val != null) {\r\n this.sign2.signEmporAuthS2submitSignImg = \"data:image/png;base64,\" + (val);\r\n }\r\n } else if (key == \"S3SignatureBinary\" && this.viewMode) {\r\n if (val != null) {\r\n this.sign2.signEmporAuthS3submitSignImg = \"data:image/png;base64,\" + (val);\r\n }\r\n } else if (key != \"S2SignatureBinary\" && key != \"S3SignatureBinary\") {\r\n this.formData2[key] = val;\r\n }\r\n }\r\n\r\n this.date2.ListAExpirationDateinvalid = false;\r\n this.date2.ListAExpirationDateinvalid2 = false;\r\n this.date2.ListAExpirationDateinvalid3 = false;\r\n this.date2.ListBExpirationDateinvalid = false;\r\n this.date2.ListCExpirationDateinvalid = false;\r\n }\r\n });\r\n }\r\n\r\n checkDate(date: any, name: string) {\r\n var todayDate = new Date();\r\n if (date != null) {\r\n if ((date / 1) < todayDate.setHours(0, 0, 0, 0) / 1) {\r\n this.date2[name + \"invalid\"] = true;\r\n } else {\r\n this.date2[name + \"invalid\"] = false;\r\n }\r\n }\r\n else {\r\n this.date2[name + \"invalid\"] = false;\r\n }\r\n }\r\n\r\n saveI9() {\r\n this.validateCheck = true;\r\n this.checkSigned();\r\n if (!this.I9Form.form.invalid && !this.formData2.S2BusinessAddressInvalid) {\r\n this.alert = null;\r\n if (((this.sign2.signEmporAuthS2NotEmpty && !this.isRehire) ||\r\n (this.isRehire && ((this.i9Section3Require && this.sign2.signEmporAuthS3NotEmpty) || (!this.i9Section3Require && (this.sign2.signEmporAuthS2NotEmpty || this.sign2.signEmporAuthS3NotEmpty)))))\r\n && !this.date2.ListAExpirationDateinvalid && !this.date2.ListAExpirationDateinvalid2 && !this.date2.ListAExpirationDateinvalid3 && !this.date2.ListBExpirationDateinvalid && !this.date2.ListCExpirationDateinvalid) {\r\n\r\n this.formData2.OnboardID = this.id;\r\n\r\n\r\n if (this.date2.ListAExpirationDate != null) {\r\n this.formData2.ListAExpirationDateStr = moment(this.date2.ListAExpirationDate).utc().format(this.monthDateFormat);\r\n }\r\n if (this.date2.ListAExpirationDate2 != null) {\r\n this.formData2.ListAExpirationDateStr2 = moment(this.date2.ListAExpirationDate2).utc().format(this.monthDateFormat);\r\n }\r\n if (this.date2.ListAExpirationDate3 != null) {\r\n this.formData2.ListAExpirationDateStr3 = moment(this.date2.ListAExpirationDate3).utc().format(this.monthDateFormat);\r\n }\r\n if (this.date2.ListBExpirationDate != null) {\r\n this.formData2.ListBExpirationDateStr = moment(this.date2.ListBExpirationDate).utc().format(this.monthDateFormat);\r\n }\r\n if (this.date2.ListCExpirationDate != null) {\r\n this.formData2.ListCExpirationDateStr = moment(this.date2.ListCExpirationDate).utc().format(this.monthDateFormat);\r\n }\r\n if (this.date2.S2EmployeeFirstDay != null) {\r\n this.formData2.S2EmployeeFirstDayStr = moment(this.date2.S2EmployeeFirstDay).utc().format(this.monthDateFormat);\r\n }\r\n if (this.date2.S2SignatureDate != null) {\r\n this.formData2.S2SignatureDateStr = moment(this.date2.S2SignatureDate).utc().format(this.monthDateFormat);\r\n }\r\n if (this.date2.S3RehireDate != null) {\r\n this.formData2.S3RehireDateStr = moment(this.date2.S3RehireDate).utc().format(this.monthDateFormat);\r\n }\r\n if (this.date2.S3ExpirationDate != null) {\r\n this.formData2.S3ExpirationDateStr = moment(this.date2.S3ExpirationDate).utc().format(this.monthDateFormat);\r\n }\r\n if (this.date2.S3SignatureDate != null) {\r\n this.formData2.S3SignatureDateStr = moment(this.date2.S3SignatureDate).utc().format(this.monthDateFormat);\r\n }\r\n\r\n if (this.sign2.signEmporAuthS2typeSign) { // need to remove\r\n this.formData2.S2SignatureBinary = this.sign2.signEmporAuthS2rawImgData;\r\n } else {\r\n if (this.formData2.S2SignatureBinary == null)\r\n this.formData2.S2SignatureBinary = this.signaturePadS2.toDataURL().replace(/^data:image\\/(png|jpg);base64,/, \"\");\r\n }\r\n\r\n if (this.isRehire) {\r\n if (this.sign2.signEmporAuthS3rawImgData) { // need to remove\r\n this.formData2.S3SignatureBinary = this.sign2.signEmporAuthS3rawImgData;\r\n } else {\r\n if (this.formData2.S3SignatureBinary == null)\r\n this.formData2.S3SignatureBinary = this.signaturePadS3.toDataURL().replace(/^data:image\\/(png|jpg);base64,/, \"\");\r\n }\r\n }\r\n\r\n if (this.longitude != null)\r\n this.formData2.longitude = this.longitude;\r\n if (this.latitude != null)\r\n this.formData2.latitude = this.latitude;\r\n\r\n for (let [key, value] of Object.entries(this.formData2)) {\r\n if (value == \"\") {\r\n this.formData2[key] = null;\r\n }\r\n }\r\n this.hiringService.updateI9ByOnboardIDPart2(this.formData2).then((response: any) => {\r\n this.validateCheck = false;\r\n if (response.success) {\r\n this.activeModal.close(\"success\");\r\n } else {\r\n this.activeModal.close(\"fail\");\r\n }\r\n });\r\n } else {\r\n this.alert = \"Please fill out or correct all required fields.\";\r\n }\r\n } else {\r\n this.alert = \"Please fill out or correct all required fields. \";\r\n }\r\n }\r\n\r\n checkAddress(parmName: string) {\r\n var regex = /^ *((#\\d+)|((box|bin)[-. \\/\\\\]?\\d+)|(.*p[ \\.]? ?(o|0)[-. \\/\\\\]? *-?((box|bin)|b|(#|num)?\\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\\d+)|(p *-?\\/?(o)? *-?box)|post office box|((box|bin)|b) *(number|num|#)? *\\d+|(num|number|#) *\\d+)/i;\r\n var match = regex.exec(this.formData2[parmName]);\r\n if (match != null) {\r\n this.formData2[parmName + \"Invalid\"] = true;\r\n } else {\r\n this.formData2[parmName + \"Invalid\"] = false;\r\n }\r\n }\r\n\r\n closeClick() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n getTypeSign(type: string, name: string) {\r\n this.sign2[name + \"typeSign\"] = true;\r\n this.homeService.getTypeSign(type).then((response: any) => {\r\n this.sign2[name + \"rawImgData\"] = response;\r\n this.sign2[name + \"submitSignImg\"] = \"data:image/png;base64,\" + response;\r\n this.sign2[name + \"NotEmpty\"] = true;\r\n this.sign2[name + \"hideClick\"] = true;\r\n });\r\n this.sign2[name + \"showClickMsg\"] = false;\r\n }\r\n\r\n clickSign(type: string, name: string) {\r\n if (name == \"signEmporAuthS2\") {\r\n if (this.signaturePadS2.isEmpty()) {\r\n this.getTypeSign(type, name);\r\n } else {\r\n this.sign2[name + \"showClickMsg\"] = true;\r\n }\r\n }\r\n else if (name == \"signEmporAuthS3\") {\r\n if (this.signaturePadS3.isEmpty()) {\r\n this.getTypeSign(type, name);\r\n } else {\r\n this.sign2[name + \"showClickMsg\"] = true;\r\n }\r\n }\r\n }\r\n\r\n checkSigned() {\r\n if (this.isRehire) {\r\n if (this.signaturePadS3 != null) {\r\n if (this.signaturePadS3.isEmpty() == false) {\r\n this.sign2.signEmporAuthS3NotEmpty = true;\r\n this.signEmporAuthS3RedBorder = false;\r\n } else {\r\n this.signEmporAuthS3RedBorder = true;\r\n }\r\n }\r\n\r\n if (this.signaturePadS2 != null) {\r\n if (this.signaturePadS2.isEmpty() == false) {\r\n this.sign2.signEmporAuthS2NotEmpty = true;\r\n this.signEmporAuthS2RedBorder = false;\r\n } else {\r\n this.signEmporAuthS2RedBorder = true;\r\n }\r\n }\r\n } else if (!this.isRehire) {\r\n if (this.signaturePadS2 != null) {\r\n if (this.signaturePadS2.isEmpty() == false) {\r\n this.sign2.signEmporAuthS2NotEmpty = true;\r\n this.signEmporAuthS2RedBorder = false;\r\n } else {\r\n this.signEmporAuthS2RedBorder = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear(name: string) {\r\n if (name == \"signEmporAuthS3\" && this.signaturePadS3 != null) {\r\n this.signaturePadS3.clear();\r\n }\r\n else if (name == \"signEmporAuthS2\" && this.signaturePadS2 != null) {\r\n this.signaturePadS2.clear();\r\n\r\n }\r\n this.sign2[name + \"NotEmpty\"] = false;\r\n this.sign2[name + \"rawImgData\"] = null;\r\n this.sign2[name + \"submitSignImg\"] = null;\r\n this.sign2[name + \"typeSign\"] = false;\r\n this.sign2[name + \"showClickMsg\"] = false;\r\n this.sign2[name + \"hideClick\"] = false;\r\n this.sign2[name + \"showClickMsg\"] = false;\r\n }\r\n\r\n base64ArrayBuffer(arrayBuffer: any) {\r\n var base64 = ''\r\n var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\r\n\r\n var bytes = new Uint8Array(arrayBuffer)\r\n var byteLength = bytes.byteLength\r\n var byteRemainder = byteLength % 3\r\n var mainLength = byteLength - byteRemainder\r\n\r\n var a, b, c, d\r\n var chunk\r\n\r\n // Main loop deals with bytes in chunks of 3\r\n for (var i = 0; i < mainLength; i = i + 3) {\r\n // Combine the three bytes into a single integer\r\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]\r\n\r\n // Use bitmasks to extract 6-bit segments from the triplet\r\n a = (chunk & 16515072) >> 18 // 16515072 = (2^6 - 1) << 18\r\n b = (chunk & 258048) >> 12 // 258048 = (2^6 - 1) << 12\r\n c = (chunk & 4032) >> 6 // 4032 = (2^6 - 1) << 6\r\n d = chunk & 63 // 63 = 2^6 - 1\r\n\r\n // Convert the raw binary segments to the appropriate ASCII encoding\r\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]\r\n }\r\n\r\n // Deal with the remaining bytes and padding\r\n if (byteRemainder == 1) {\r\n chunk = bytes[mainLength]\r\n\r\n a = (chunk & 252) >> 2 // 252 = (2^6 - 1) << 2\r\n\r\n // Set the 4 least significant bits to zero\r\n b = (chunk & 3) << 4 // 3 = 2^2 - 1\r\n\r\n base64 += encodings[a] + encodings[b] + '=='\r\n } else if (byteRemainder == 2) {\r\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]\r\n\r\n a = (chunk & 64512) >> 10 // 64512 = (2^6 - 1) << 10\r\n b = (chunk & 1008) >> 4 // 1008 = (2^6 - 1) << 4\r\n\r\n // Set the 2 least significant bits to zero\r\n c = (chunk & 15) << 2 // 15 = 2^4 - 1\r\n\r\n base64 += encodings[a] + encodings[b] + encodings[c] + '='\r\n }\r\n\r\n return base64\r\n }\r\n\r\n updateSZip(data: string) {\r\n this.formData.S1Zip = data;\r\n }\r\n\r\n updatePZip(data: string) {\r\n this.formData.PreparerZip = data;\r\n }\r\n\r\n updateS2Zip(data: string) {\r\n this.formData2.S2Zip = data;\r\n }\r\n}\r\n","
\r\n
\r\n

Employment Eligibility Verification

\r\n

Department of Homeland Security

\r\n
U.S. Citizenship and Immigration Services
\r\n\r\n

START HERE: Read instructions carefully before completing this form. The instructions must be available, either in paper or electronically, during completion of this form. Employers are liable for errors in the completion of this form.

\r\n

ANTI-DISCRIMINATION NOTICE: It is illegal to discriminate against work-authorized individuals. Employers CANNOT specify which document(s) an employee may present to establish employment authorization and identity. The refusal to hire or continue to employ an individual because the documentation presented has a future expiration date may also constitute illegal discrimination.

\r\n\r\n

START HERE: Employers must ensure the form instructions are available to employees when completing this form. Employers are liable for failing to comply with the requirements for completing this form. See below and the instructions.

\r\n

ANTI-DISCRIMINATION NOTICE: All employees can choose which acceptable documentation to present for Form I-9. Employers cannot ask employees for documentation to verify information in Section 1, or specify which acceptable documentation employees must present for Section 2 or Supplement B, Reverification and Rehire. Treating employees differently based on their citizenship, immigration status, or national origin may be illegal

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

\r\n \r\n I-9 Instruction\r\n \r\n

\r\n

\r\n \r\n I-9 Instrucciones\r\n \r\n

\r\n
\r\n
\r\n
Section 1. Employee Information and Attestation (Employees must complete and sign Section 1 of Form I-9 no later than the first day of employment, but not before accepting a job offer.) If you only have one name, enter it in the Last Name field and then enter \"Unknown\" in the First Name field.
\r\n
\r\n
\r\n
\r\n Last Name (Family Name)\r\n \r\n
\r\n
\r\n First Name (Given Name)\r\n \r\n
\r\n
\r\n Middle Initial (if any)\r\n \r\n
\r\n
\r\n Other Last Names Used (if any)\r\n \r\n
\r\n
\r\n
\r\n
\r\n Address (Street Number and Name)\r\n \r\n
\r\n
\r\n Apt. Number (if any)\r\n \r\n
\r\n
\r\n City or Town\r\n \r\n
\r\n
\r\n State\r\n \r\n \r\n {{ data.DatabaseValue }}\r\n \r\n \r\n
\r\n
\r\n ZIP Code\r\n \r\n
\r\n
\r\n
\r\n
\r\n Date of Birth (mm/dd/yyyy)\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n U.S. Social Security\r\n \r\n
\r\n
\r\n Employee's E-mail Address\r\n \r\n
\r\n
\r\n Employee's Telephone\r\n \r\n
\r\n
\r\n
\r\n

\r\n\r\n I am aware that federal law provides for imprisonment and/or fines for false statements or use of false documents in connection with the completion of this form.\r\n I attest, under penalty of perjury, that I am (check one of the following boxes):\r\n I am aware that federal law provides for imprisonment and/or fines for false statements, or the use of false documents, in connection with the completion of this form. I attest, under penalty of perjury, that this information, including my selection of the box attesting to my citizenship or immigration status, is true and correct.\r\n Check one of the following boxes to attest to your citizenship or immigration status (See page 2 and 3 of the instructions.)\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n 1. A citizen of the United States\r\n \r\n
\r\n
\r\n \r\n \r\n 2. A noncitizen national of the United States (See Instructions)\r\n \r\n
\r\n
\r\n \r\n \r\n 3. A lawful permanent resident (Alien Registration Number/USCIS Number):\r\n 3. A lawful permanent resident (Enter USCIS Number or A-Number):\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n 4. An alien authorized to work until (expiration date, if applicable, mm/dd/yyyy):\r\n 4. A noncitizen (other than Item Number 2. and 3. above) authorized to work until (exp. date, if any)\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n N/A\r\n
\r\n Some aliens may write \"N/A\" in the expiration data field. (See instructions)\r\n\r\n

Aliens authorized to work must provide only one of the following document numbers to complete Form I-9:

\r\n

An Alien Registration Number/USCIS Number OR Form I-94 Admission Number OR Foreign Passport Number.

\r\n\r\n

If you check item Number 4., enter one of these:

\r\n\r\n
\r\n 1.

Alien Registration Number/USCIS Number:

\r\n USCIS A-Number\r\n \r\n
\r\n

OR

\r\n
\r\n 2.

Form I-94 Admission Number:

\r\n Form I-94 Admission Number\r\n \r\n
\r\n

OR

\r\n
\r\n 3.Foreign Passport Number:\r\n \r\n
\r\n
\r\n Country of Issuance:\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Today's Date\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

If a preparer and/or translator assisted you in completing Section 1, that person MUST complete the Preparer and/or Translator Certification on Page 3.

\r\n
\r\n
\r\n Supplement A,\r\n Preparer and/or Translator Certification (check one):\r\n
\r\n I did not use a preparer or translator.\r\n \r\n A preparer(s) and/or translators assist an employee in completing Section 1.\r\n \r\n
\r\n

\r\n (Fields below must be completed and signed when preparers and/or translators assist an employee in completing Section 1.)\r\n

\r\n
\r\n
\r\n \r\n I attest, under penalty of perjury, that i have assisted in the completion of Section 1 of this form and that to the best of my knowledge the information is true and correct.\r\n \r\n
\r\n
\r\n
\r\n Today's Date\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 {{data.DatabaseValue}}\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

Instructions: This supplement must be completed by any preparer and/or translator who assists an employee in completing Section 1 of Form I-9. The preparer and/or translator must enter the employee's name in spaces provided above. Each preparer or translator must complete, sign, and date a separate certification area. Employers must retain completed supplement sheets with the employee's completed Form I-9.

\r\n
\r\n I attest, under penalty of perjury, that I have assisted in the completion of Section 1 of this form and that to the best of my knowledge the information is true and correct.\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 {{ data.DatabaseValue }}\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 Section 2. Employer or Authorized Representative Review and Verification\r\n \r\n

\r\n (Employers or their authorized representative must complete and sign Section 2 within 3 business days of the employee's first day of employment. You must physically examine one document from List A OR a combination of one document from List B and one document from List C as listed on the \"Lists of Acceptable Documents.\")\r\n

\r\n

Employers or their authorized representative must complete and sign Section 2 within three business days after the employee's first day of employment, and must physically examine, or examine consistent with an alternative procedure authorized by the Secretary of DHS, documentation from List A OR a combination of documentation from List B and List C. Enter any additional documentation in the Additional Information box; see Instructions.

\r\n
\r\n
\r\n
\r\n
\r\n Last Name\r\n \r\n
\r\n
\r\n First Name\r\n \r\n
\r\n
\r\n Middle Initial\r\n \r\n
\r\n
\r\n Citizen Status
\r\n Citizen\r\n Non-Citizen\r\n Permanent Resident\r\n Alien Authorized to work\r\n
\r\n
\r\n
\r\n
\r\n
\r\n List A\r\n Identity & Employment Authorization\r\n
\r\n
\r\n Document Title 1\r\n 0 ||\r\n formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null || formData2.ListCDocumentTitle?.length > 0 ||\r\n formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null || formData2.S2AdditionalInfo?.length > 0 || viewMode \"\r\n [required]=\" (formData2.ListADocumentTitle == null || formData2.ListADocumentTitle == '') && !formData2.ListBDocumentTitle && !formData2.ListBIssuingAuthority &&\r\n !formData2.ListBDocumentNumber && date2.ListBExpirationDate == null && !formData2.ListCDocumentTitle && !formData2.ListCIssuingAuthority && !formData2.ListCDocumentNumber &&\r\n date2.ListCExpirationDate == null\">\r\n \r\n {{ data.name }}\r\n \r\n \r\n 0 ||\r\n formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null || formData2.ListCDocumentTitle?.length > 0 ||\r\n formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null || formData2.S2AdditionalInfo?.length > 0 || viewMode \"\r\n [required]=\" (formData2.ListADocumentTitle == null || formData2.ListADocumentTitle == '') && !formData2.ListBDocumentTitle && !formData2.ListBIssuingAuthority &&\r\n !formData2.ListBDocumentNumber && date2.ListBExpirationDate == null && !formData2.ListCDocumentTitle && !formData2.ListCIssuingAuthority && !formData2.ListCDocumentNumber &&\r\n date2.ListCExpirationDate == null\"/>\r\n
\r\n Issuing Authority\r\n 0 ||\r\n formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null || formData2.ListCDocumentTitle?.length > 0 ||\r\n formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null || formData2.S2AdditionalInfo?.length > 0 || viewMode\"\r\n [ngClass]=\"{ invalidField: (formData2.ListAIssuingAuthority == null || formData2.ListAIssuingAuthority == '') && !formData2.ListBDocumentTitle && !formData2.ListBIssuingAuthority &&\r\n !formData2.ListBDocumentNumber && date2.ListBExpirationDate == null && !formData2.ListCDocumentTitle && !formData2.ListCIssuingAuthority && !formData2.ListCDocumentNumber &&\r\n date2.ListCExpirationDate == null && !formData2.S2AdditionalInfo && validateCheck}\"\r\n [required]=\"(formData2.ListAIssuingAuthority == null || formData2.ListAIssuingAuthority == '') && !formData2.ListBDocumentTitle && !formData2.ListBIssuingAuthority &&\r\n !formData2.ListBDocumentNumber && date2.ListBExpirationDate == null && !formData2.ListCDocumentTitle && !formData2.ListCIssuingAuthority && !formData2.ListCDocumentNumber &&\r\n date2.ListCExpirationDate == null\" />\r\n Document Number (if any)\r\n 0 ||\r\n formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null || formData2.ListCDocumentTitle?.length > 0 ||\r\n formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null || formData2.S2AdditionalInfo?.length > 0 || viewMode\"\r\n [ngClass]=\"{ invalidField: (formData2.ListADocumentNumber == null || formData2.ListADocumentNumber == '') && !formData2.ListBDocumentTitle && !formData2.ListBIssuingAuthority &&\r\n !formData2.ListBDocumentNumber && date2.ListBExpirationDate == null && !formData2.ListCDocumentTitle && !formData2.ListCIssuingAuthority && !formData2.ListCDocumentNumber &&\r\n date2.ListCExpirationDate == null && !formData2.S2AdditionalInfo && validateCheck && !new2023}\"\r\n [required]=\" (formData2.ListADocumentNumber == null || formData2.ListADocumentNumber == '') && !new2023 && !formData2.ListBDocumentTitle && !formData2.ListBIssuingAuthority && !formData2.ListBDocumentNumber &&\r\n date2.ListBExpirationDate == null && !formData2.ListCDocumentTitle && !formData2.ListCIssuingAuthority && !formData2.ListCDocumentNumber && date2.ListCExpirationDate == null\" />\r\n Expiration Date (if any)(mm/dd/yyyy)\r\n
\r\n 0 || formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null ||\r\n formData2.ListCDocumentTitle?.length > 0 || formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null ||\r\n formData2.S2AdditionalInfo?.length > 0 || viewMode\" [ngClass]=\"{ invalidField: date2.ListAExpirationDateinvalid }\" />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Document Title 2 (if any)\r\n 0 || formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null ||\r\n formData2.ListCDocumentTitle?.length > 0 || formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null || formData2.S2AdditionalInfo?.length > 0 ||\r\n !formData2.ListADocumentTitle || !formData2.ListAIssuingAuthority || ((!formData2.ListADocumentNumber || date2.ListAExpirationDate == null) && !new2023) || viewMode\"\r\n [required]=\"(formData2.ListADocumentTitle2 == null || formData2.ListADocumentTitle2 == '') && !new2023 && (formData2.ListAIssuingAuthority2 || formData2.ListADocumentNumber2 ||\r\n date2.ListAExpirationDate2 != null)\">\r\n \r\n {{ data.name }}\r\n \r\n \r\n 0 || formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null ||\r\n formData2.ListCDocumentTitle?.length > 0 || formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null || formData2.S2AdditionalInfo?.length > 0 ||\r\n !formData2.ListADocumentTitle || !formData2.ListAIssuingAuthority || viewMode\" />\r\n
\r\n Issuing Authority\r\n 0 || formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null ||\r\n formData2.ListCDocumentTitle?.length > 0 || formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null ||\r\n formData2.S2AdditionalInfo?.length > 0 || !formData2.ListADocumentTitle || !formData2.ListAIssuingAuthority || ((!formData2.ListADocumentNumber || date2.ListAExpirationDate == null) && !new2023) || viewMode\"\r\n [ngClass]=\"{invalidField: (formData2.ListAIssuingAuthority2 == null || formData2.ListAIssuingAuthority2 == '') && (formData2.ListADocumentTitle2 ||\r\n formData2.ListADocumentNumber2 || date2.ListAExpirationDate2 != null) && validateCheck}\"\r\n [required]=\"(formData2.ListAIssuingAuthority2 == null || formData2.ListAIssuingAuthority2 == '') && (formData2.ListADocumentTitle2 ||\r\n formData2.ListADocumentNumber2 || date2.ListAExpirationDate2 != null)\" />\r\n Document Number (if any)\r\n 0 ||\r\n formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null || formData2.ListCDocumentTitle?.length > 0 ||\r\n formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null || formData2.S2AdditionalInfo?.length > 0 ||\r\n !formData2.ListADocumentTitle || !formData2.ListAIssuingAuthority || ((!formData2.ListADocumentNumber || date2.ListAExpirationDate == null) && !new2023) || viewMode\"\r\n [ngClass]=\"{ invalidField: (formData2.ListADocumentNumber2 == null || formData2.ListADocumentNumber2 == '') && !new2023 && (formData2.ListADocumentTitle2 || formData2.ListAIssuingAuthority2 ||\r\n date2.ListAExpirationDate2 != null) && validateCheck}\"\r\n [required]=\" (formData2.ListADocumentNumber2 == null || formData2.ListADocumentNumber2 == '') && !new2023 && (formData2.ListADocumentTitle2 || formData2.ListAIssuingAuthority2 ||\r\n date2.ListAExpirationDate2 != null)\" />\r\n Expiration Date (if any)(mm/dd/yyyy)\r\n
\r\n 0 || formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null ||\r\n formData2.ListCDocumentTitle?.length > 0 || formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null ||\r\n formData2.S2AdditionalInfo?.length > 0 || !formData2.ListADocumentTitle || !formData2.ListAIssuingAuthority || ((!formData2.ListADocumentNumber || date2.ListAExpirationDate == null) && !new2023) || viewMode\"\r\n [ngClass]=\"{ invalidField: date2.ListAExpirationDate2invalid }\"/>\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Document Title 3 (if any)\r\n \r\n 0 ||\r\n formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null || formData2.ListCDocumentTitle?.length > 0 ||\r\n formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null || formData2.S2AdditionalInfo?.length > 0 ||\r\n !formData2.ListADocumentTitle2 || !formData2.ListAIssuingAuthority2 || ((!formData2.ListADocumentNumber2 || date2.ListAExpirationDate2 == null) && !new2023) || viewMode\"\r\n [required]=\"(formData2.ListADocumentTitle3 == null || formData2.ListADocumentTitle3 == '') && !new2023 && (formData2.ListAIssuingAuthority3 || formData2.ListADocumentNumber3 ||\r\n date2.ListAExpirationDate3 != null)\">\r\n \r\n {{ data.name }}\r\n \r\n \r\n 0 || formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null || formData2.ListCDocumentTitle?.length > 0 ||\r\n formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null || formData2.S2AdditionalInfo?.length > 0 ||\r\n !formData2.ListADocumentTitle2 || !formData2.ListAIssuingAuthority2 || viewMode\"\r\n [required]=\"(formData2.ListADocumentTitle3 == null || formData2.ListADocumentTitle3 == '') && !new2023 && (formData2.ListAIssuingAuthority3 || formData2.ListADocumentNumber3 ||\r\n date2.ListAExpirationDate3 != null)\"/>\r\n
\r\n Issuing Authority\r\n 0 ||\r\n formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null || formData2.ListCDocumentTitle?.length > 0 || formData2.ListCIssuingAuthority?.length > 0 ||\r\n formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null || formData2.S2AdditionalInfo?.length > 0 || !formData2.ListADocumentTitle2 || !formData2.ListAIssuingAuthority2 ||\r\n ((!formData2.ListADocumentNumber2 || date2.ListAExpirationDate2 == null) && !new2023) || viewMode\"\r\n [ngClass]=\"{invalidField: (formData2.ListAIssuingAuthority3 == null || formData2.ListAIssuingAuthority3 == '') && (formData2.ListADocumentTitle3 || formData2.ListADocumentNumber3 ||\r\n date2.ListAExpirationDate3 != null) && validateCheck}\"\r\n [required]=\"(formData2.ListAIssuingAuthority3 == null || formData2.ListAIssuingAuthority3 == '') && (formData2.ListADocumentTitle3 || formData2.ListADocumentNumber3 ||\r\n date2.ListAExpirationDate3 != null)\" />\r\n Document Number (if any)\r\n 0 || formData2.ListBIssuingAuthority?.length > 0 ||\r\n formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null || formData2.ListCDocumentTitle?.length > 0 || formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 ||\r\n date2.ListCExpirationDate != null || formData2.S2AdditionalInfo?.length > 0 || !formData2.ListADocumentTitle2 || !formData2.ListAIssuingAuthority2 || ((!formData2.ListADocumentNumber2 ||\r\n date2.ListAExpirationDate2 == null) && !new2023) || viewMode\"\r\n [ngClass]=\"{invalidField: (formData2.ListADocumentNumber3 == null || formData2.ListADocumentNumber3 == '') && !new2023 && (formData2.ListADocumentTitle3 || formData2.ListAIssuingAuthority3 ||\r\n date2.ListAExpirationDate3 != null) && validateCheck}\"\r\n [required]=\" (formData2.ListADocumentNumber3 == null || formData2.ListADocumentNumber3 == '') && !new2023 && (formData2.ListADocumentTitle3 || formData2.ListAIssuingAuthority3 || date2.ListAExpirationDate3 != null)\" />\r\n Expiration Date (if any)(mm/dd/yyyy)\r\n
\r\n 0 || formData2.ListBIssuingAuthority?.length > 0 || formData2.ListBDocumentNumber?.length > 0 || date2.ListBExpirationDate != null ||\r\n formData2.ListCDocumentTitle?.length > 0 || formData2.ListCIssuingAuthority?.length > 0 || formData2.ListCDocumentNumber?.length > 0 || date2.ListCExpirationDate != null ||\r\n formData2.S2AdditionalInfo?.length > 0 || !formData2.ListADocumentTitle2 || !formData2.ListAIssuingAuthority2 || ((!formData2.ListADocumentNumber2 || date2.ListAExpirationDate2 == null) && !new2023) ||\r\n viewMode\" [ngClass]=\"{ invalidField: date2.ListAExpirationDate3invalid }\" />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n List B\r\n Identity\r\n
\r\n
\r\n Document Title\r\n 0 ||\r\n formData2.ListAIssuingAuthority?.length > 0 || formData2.ListADocumentNumber?.length > 0 || date2.ListAExpirationDate != null || formData2.ListADocumentTitle2?.length > 0 ||\r\n formData2.ListAIssuingAuthority2?.length > 0 || formData2.ListADocumentNumber2?.length > 0 || date2.ListAExpirationDate2 != null || formData2.ListADocumentTitle3?.length > 0 ||\r\n formData2.ListAIssuingAuthority3?.length > 0 || formData2.ListADocumentNumber3?.length > 0 || date2.ListAExpirationDate3 != null || viewMode\"\r\n [required]=\"(formData2.ListBDocumentTitle == null || formData2.ListBDocumentTitle == '') && !formData2.ListADocumentTitle && !formData2.ListAIssuingAuthority &&\r\n !formData2.ListADocumentNumber && date2.ListAExpirationDate == null && !formData2.ListADocumentTitle2 && !formData2.ListAIssuingAuthority2 && !formData2.ListADocumentNumber2 &&\r\n date2.ListAExpirationDate2 == null && !formData2.ListADocumentTitle3 && !formData2.ListAIssuingAuthority3 && !formData2.ListADocumentNumber3 && date2.ListAExpirationDate3 == null\">\r\n \r\n {{ data.name }}\r\n \r\n \r\n
\r\n Issuing Authority\r\n 0 ||\r\n formData2.ListAIssuingAuthority?.length > 0 || formData2.ListADocumentNumber?.length > 0 || date2.ListAExpirationDate != null || formData2.ListADocumentTitle2?.length > 0 ||\r\n formData2.ListAIssuingAuthority2?.length > 0 || formData2.ListADocumentNumber2?.length > 0 || date2.ListAExpirationDate2 != null || formData2.ListADocumentTitle3?.length > 0 ||\r\n formData2.ListAIssuingAuthority3?.length > 0 || formData2.ListADocumentNumber3?.length > 0 || date2.ListAExpirationDate3 != null || viewMode\"\r\n [ngClass]=\"{invalidField: (formData2.ListBIssuingAuthority == null || formData2.ListBIssuingAuthority == '') && !formData2.ListADocumentTitle && !formData2.ListAIssuingAuthority &&\r\n !formData2.ListADocumentNumber && date2.ListAExpirationDate == null && !formData2.ListADocumentTitle2 && !formData2.ListAIssuingAuthority2 && !formData2.ListADocumentNumber2 &&\r\n date2.ListAExpirationDate2 == null && !formData2.ListADocumentTitle3 && !formData2.ListAIssuingAuthority3 && !formData2.ListADocumentNumber3 && date2.ListAExpirationDate3 == null && validateCheck}\"\r\n [required]=\"(formData2.ListBIssuingAuthority == null || formData2.ListBIssuingAuthority == '') && !formData2.ListADocumentTitle && !formData2.ListAIssuingAuthority && !formData2.ListADocumentNumber &&\r\n date2.ListAExpirationDate == null && !formData2.ListADocumentTitle2 && !formData2.ListAIssuingAuthority2 && !formData2.ListADocumentNumber2 && date2.ListAExpirationDate2 == null &&\r\n !formData2.ListADocumentTitle3 && !formData2.ListAIssuingAuthority3 && !formData2.ListADocumentNumber3 && date2.ListAExpirationDate3 == null\" />\r\n Document Number (if any)\r\n 0 || formData2.ListAIssuingAuthority?.length > 0 ||\r\n formData2.ListADocumentNumber?.length > 0 || date2.ListAExpirationDate != null || formData2.ListADocumentTitle2?.length > 0 || formData2.ListAIssuingAuthority2?.length > 0 || formData2.ListADocumentNumber2?.length > 0 ||\r\n date2.ListAExpirationDate2 != null || formData2.ListADocumentTitle3?.length > 0 || formData2.ListAIssuingAuthority3?.length > 0 || formData2.ListADocumentNumber3?.length > 0 || date2.ListAExpirationDate3 != null || viewMode\"\r\n [ngClass]=\"{invalidField: (formData2.ListBDocumentNumber == null || formData2.ListBDocumentNumber == '') && !new2023 && !formData2.ListADocumentTitle && !formData2.ListAIssuingAuthority && !formData2.ListADocumentNumber &&\r\n date2.ListAExpirationDate == null && !formData2.ListADocumentTitle2 && !formData2.ListAIssuingAuthority2 && !formData2.ListADocumentNumber2 && date2.ListAExpirationDate2 == null &&\r\n !formData2.ListADocumentTitle3 && !formData2.ListAIssuingAuthority3 && !formData2.ListADocumentNumber3 && date2.ListAExpirationDate3 == null && validateCheck}\"\r\n [required]=\"(formData2.ListBDocumentNumber == null || formData2.ListBDocumentNumber == '') && !new2023 && !formData2.ListADocumentTitle && !formData2.ListAIssuingAuthority && !formData2.ListADocumentNumber &&\r\n date2.ListAExpirationDate == null && !formData2.ListADocumentTitle2 && !formData2.ListAIssuingAuthority2 && !formData2.ListADocumentNumber2 && date2.ListAExpirationDate2 == null &&\r\n !formData2.ListADocumentTitle3 && !formData2.ListAIssuingAuthority3 && !formData2.ListADocumentNumber3 && date2.ListAExpirationDate3 == null\" />\r\n Expiration Date (if any)(mm/dd/yyyy)\r\n
\r\n 0 || formData2.ListAIssuingAuthority?.length > 0 || formData2.ListADocumentNumber?.length > 0 || date2.ListAExpirationDate != null || formData2.ListADocumentTitle2?.length > 0 ||\r\n formData2.ListAIssuingAuthority2?.length > 0 || formData2.ListADocumentNumber2?.length > 0 || date2.ListAExpirationDate2 != null || formData2.ListADocumentTitle3?.length > 0 || formData2.ListAIssuingAuthority3?.length > 0 ||\r\n formData2.ListADocumentNumber3?.length > 0 || date2.ListAExpirationDate3 != null || viewMode\" [ngClass]=\"{ invalidField: date2.ListBExpirationDateinvalid }\" />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n List C\r\n Employment Authorization\r\n
\r\n
\r\n Document Title\r\n 0 ||\r\n formData2.ListAIssuingAuthority?.length > 0 || formData2.ListADocumentNumber?.length > 0 || date2.ListAExpirationDate != null || formData2.ListADocumentTitle2?.length > 0 ||\r\n formData2.ListAIssuingAuthority2?.length > 0 || formData2.ListADocumentNumber2?.length > 0 || date2.ListAExpirationDate2 != null || formData2.ListADocumentTitle3?.length > 0 ||\r\n formData2.ListAIssuingAuthority3?.length > 0 || formData2.ListADocumentNumber3?.length > 0 || date2.ListAExpirationDate3 != null || viewMode\"\r\n [required]=\"(formData2.ListCDocumentTitle == null || formData2.ListCDocumentTitle == '') && !formData2.ListADocumentTitle && !formData2.ListAIssuingAuthority && !formData2.ListADocumentNumber &&\r\n date2.ListAExpirationDate == null && !formData2.ListADocumentTitle2 && !formData2.ListAIssuingAuthority2 && !formData2.ListADocumentNumber2 && date2.ListAExpirationDate2 == null &&\r\n !formData2.ListADocumentTitle3 && !formData2.ListAIssuingAuthority3 && !formData2.ListADocumentNumber3 && date2.ListAExpirationDate3 == null\">\r\n \r\n {{ data.name }}\r\n \r\n \r\n
\r\n Issuing Authority\r\n 0 ||\r\n formData2.ListAIssuingAuthority?.length > 0 || formData2.ListADocumentNumber?.length > 0 || date2.ListAExpirationDate != null || formData2.ListADocumentTitle2?.length > 0 ||\r\n formData2.ListAIssuingAuthority2?.length > 0 || formData2.ListADocumentNumber2?.length > 0 || date2.ListAExpirationDate2 != null || formData2.ListADocumentTitle3?.length > 0 || formData2.ListAIssuingAuthority3?.length > 0 ||\r\n formData2.ListADocumentNumber3?.length > 0 || date2.ListAExpirationDate3 != null || viewMode\"\r\n [ngClass]=\"{invalidField: (formData2.ListCIssuingAuthority == null || formData2.ListCIssuingAuthority == '') && !formData2.ListADocumentTitle && !formData2.ListAIssuingAuthority &&\r\n !formData2.ListADocumentNumber && date2.ListAExpirationDate == null && !formData2.ListADocumentTitle2 && !formData2.ListAIssuingAuthority2 && !formData2.ListADocumentNumber2 &&\r\n date2.ListAExpirationDate2 == null && !formData2.ListADocumentTitle3 && !formData2.ListAIssuingAuthority3 && !formData2.ListADocumentNumber3 && date2.ListAExpirationDate3 == null && validateCheck}\"\r\n [required]=\"(formData2.ListCIssuingAuthority == null || formData2.ListCIssuingAuthority == '') && !formData2.ListADocumentTitle && !formData2.ListAIssuingAuthority && !formData2.ListADocumentNumber && date2.ListAExpirationDate == null &&\r\n !formData2.ListADocumentTitle2 && !formData2.ListAIssuingAuthority2 && !formData2.ListADocumentNumber2 && date2.ListAExpirationDate2 == null && !formData2.ListADocumentTitle3 && !formData2.ListAIssuingAuthority3 &&\r\n !formData2.ListADocumentNumber3 && date2.ListAExpirationDate3 == null\" />\r\n Document Number (if any)\r\n 0 ||\r\n formData2.ListAIssuingAuthority?.length > 0 || formData2.ListADocumentNumber?.length > 0 || date2.ListAExpirationDate != null || formData2.ListADocumentTitle2?.length > 0 || formData2.ListAIssuingAuthority2?.length > 0 ||\r\n formData2.ListADocumentNumber2?.length > 0 || date2.ListAExpirationDate2 != null || formData2.ListADocumentTitle3?.length > 0 || formData2.ListAIssuingAuthority3?.length > 0 ||\r\n formData2.ListADocumentNumber3?.length > 0 || date2.ListAExpirationDate3 != null || viewMode\"\r\n [ngClass]=\"{invalidField: (formData2.ListCDocumentNumber == null || formData2.ListCDocumentNumber == '') && !new2023 && !formData2.ListADocumentTitle && !formData2.ListAIssuingAuthority &&\r\n !formData2.ListADocumentNumber && date2.ListAExpirationDate == null && !formData2.ListADocumentTitle2 && !formData2.ListAIssuingAuthority2 && !formData2.ListADocumentNumber2 && date2.ListAExpirationDate2 == null &&\r\n !formData2.ListADocumentTitle3 && !formData2.ListAIssuingAuthority3 && !formData2.ListADocumentNumber3 && date2.ListAExpirationDate3 == null && validateCheck}\"\r\n [required]=\"(formData2.ListCDocumentNumber == null || formData2.ListCDocumentNumber == '') && !new2023 && !formData2.ListADocumentTitle && !formData2.ListAIssuingAuthority && !formData2.ListADocumentNumber &&\r\n date2.ListAExpirationDate == null && !formData2.ListADocumentTitle2 && !formData2.ListAIssuingAuthority2 && !formData2.ListADocumentNumber2 && date2.ListAExpirationDate2 == null && !formData2.ListADocumentTitle3 &&\r\n !formData2.ListAIssuingAuthority3 && !formData2.ListADocumentNumber3 && date2.ListAExpirationDate3 == null\" />\r\n Expiration Date (if any)(mm/dd/yyyy)\r\n
\r\n 0 || formData2.ListAIssuingAuthority?.length > 0 ||\r\n formData2.ListADocumentNumber?.length > 0 || date2.ListAExpirationDate != null || formData2.ListADocumentTitle2?.length > 0 || formData2.ListAIssuingAuthority2?.length > 0 || formData2.ListADocumentNumber2?.length > 0 ||\r\n date2.ListAExpirationDate2 != null || formData2.ListADocumentTitle3?.length > 0 || formData2.ListAIssuingAuthority3?.length > 0 || formData2.ListADocumentNumber3?.length > 0 || date2.ListAExpirationDate3 != null ||\r\n viewMode\" [ngClass]=\"{ invalidField: date2.ListCExpirationDateinvalid }\" />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Additional Information\r\n \r\n \r\n Check here if you used an alternative procedure authorized by DHS to examine documents.\r\n
\r\n
\r\n
\r\n \r\n Certification: I attest, under penalty of perjury, that (1) I have examined the documents(s) presented by the above-named employee, (2) the above-listed documents(s) appear to be genuine and to relate to the employee named, and (3) to the best of my knowledge the employee is authorized to work in the United States.\r\n \r\n
\r\n
\r\n The employee's first day of employment (mm/dd/yyyy):\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n (See instructions for exemptions)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Today's Date\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Title of Employer or Authorized Representative\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Signature of Employer or Authorized Representative\r\n
\r\n
\r\n
\r\n Press \"Clear\" before generating your signature image.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Sign above\r\n
\r\n \r\n \r\n
\r\n By signing above, I agree that the signature and initials will be the electronic representation of my signature and initials for all purposes when I (or my agent) use them on documents, including legally binding contracts - just the same as a pen-and-paper signature or initial.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Last Name of Employer or Authorized Representative\r\n \r\n
\r\n
\r\n First Name of Employer or Authorized Representative\r\n \r\n
\r\n
\r\n Employer's Business or Organization Name\r\n \r\n
\r\n
\r\n
\r\n
\r\n Employer's Business or Organization Address (Street Number and Name)\r\n \r\n
\r\n
\r\n City or Town\r\n \r\n
\r\n
\r\n State\r\n \r\n \r\n {{ data.DatabaseValue }}\r\n \r\n \r\n
\r\n
\r\n ZIP Code\r\n \r\n
\r\n
\r\n
\r\n
\r\n For reverification or rehire, complete Supplement B, Reverification and Rehire on Page 4.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Section 3. Reverification and Rehires(To be completed and signed by employee or authorized representative.)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n A. New Name (if applicable)\r\n
\r\n
\r\n
\r\n Last Name (Family Name)\r\n \r\n
\r\n
\r\n First Name (Given Name)\r\n \r\n
\r\n
\r\n M.I.\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n B. Date of Rehire (if applicable)\r\n
\r\n
\r\n
\r\n 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 C. If the employee's previous grant of employment authorization has expired, provide the information for the document or reciept that establishes continuing employment authorization in the space provided below.\r\n
\r\n
\r\n
\r\n
\r\n Document Title\r\n \r\n \r\n {{ data.name }}\r\n \r\n \r\n
\r\n
\r\n
\r\n Document Number\r\n \r\n
\r\n
\r\n Expiration Date (if any) (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 I attest, under penalty of perjury, that to the best of my knowledge, this employee is authorized to work in the United States, and if the employee presented document(s), the document(s) I have examined appear to be genuine and to relate to the individual.\r\n \r\n
\r\n
\r\n Today's Date\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Name of Employer or Authorized Representative\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Signature of Employer or Authorized Representative\r\n
\r\n
\r\n
\r\n Press \"Clear\" before generating your signature image.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Sign above\r\n
\r\n \r\n \r\n
\r\n By signing above, I agree that the signature and initials will be the electronic representation of my signature and initials for all purposes when I (or my agent) use them on documents, including legally binding contracts - just the same as a pen-and-paper signature or initial.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Supplement B Reverification and Rehire\r\n
\r\n
\r\n

Instructions: This Supplement replaces Sections 3 on the previous version of Form I-9. Only use this page if your employee requires reverification, is rehired within three years of the date the original Form I-9 was completed, or provides proof of a legal name change. Enter the employee's name in the fields above. Use a new section for each reverification or rehire. Review the Form I-9 instructions before completing this page. Keep this page as part of the employee's Form I-9 record. Additional guidance can be found in the Handbook for Employers: Guidance for Completing Form I-9 (M-274)

\r\n
\r\n
\r\n
\r\n Date of Rehire (if applicable)\r\n
\r\n
\r\n New Name (if applicable)\r\n
\r\n
\r\n
\r\n
\r\n Date (mm/dd/yyyy)\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Last Name (Family Name)\r\n \r\n
\r\n
\r\n First Name (Given Name)\r\n \r\n
\r\n
\r\n M.I.\r\n \r\n
\r\n
\r\n

Reverification: If the employee requires reverification, your employee can choose to present any acceptable List A or List C documentation to show continued employment authorization. Enter the document information in the spaces below.

\r\n
\r\n
\r\n Document Title\r\n \r\n \r\n {{ data.name }}\r\n \r\n \r\n
\r\n
\r\n Document Number (if any)\r\n \r\n
\r\n
\r\n Expiration Date (if any) (mm/dd/yyyy)\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

I attest, under penalty of perjury, that to the best of my knowledge, this employee is authorized to work in the United States, and if the employee presented documentation, the documentation I examined appears to be genuine and to relate to the individual who presented it.

\r\n
\r\n
\r\n Name of Employer or Authorized Representative\r\n \r\n
\r\n
\r\n Today's 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 Signature of Employer or Authorized Representative\r\n
\r\n
\r\n
\r\n Press \"Clear\" before generating your signature image.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Sign above\r\n
\r\n \r\n \r\n
\r\n By signing above, I agree that the signature and initials will be the electronic representation of my signature and initials for all purposes when I (or my agent) use them on documents, including legally binding contracts - just the same as a pen-and-paper signature or initial.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Additional Information (Initial and date each notation.)\r\n \r\n
\r\n
\r\n \r\n Check here if you used an alternative procedure authorized by DHS to examine documents.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ alert }}
\r\n \r\n \r\n
\r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport moment from 'moment';\r\n//services\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\nimport { HiringService } from 'src/app/pages/hiring/services/hiring.service';\r\n\r\n@Component({\r\n selector: 'app-review-iden-modal',\r\n templateUrl: './review-iden-modal.component.html',\r\n styleUrls: ['./review-iden-modal.component.css']\r\n})\r\nexport class ReviewIdenModalComponent implements OnInit {\r\n\r\n @Input() id: any;\r\n @Input() page: string;\r\n formData: { [key: string]: any } = {};\r\n companyName: any;\r\n portalSettings: any;\r\n raceList: any[] = [];\r\n validateCheck: boolean = true; \r\n hideFederalMsgSelfIden: boolean = false;\r\n selectedRace: any;\r\n datePickerOptions: { dateInputFormat: string; };\r\n\r\n constructor(portalSettingsService: PortalSettingsService, private hiringService: HiringService, private activeModal: NgbActiveModal) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.datePickerOptions = { dateInputFormat: \"YYYY-MM-DD\" };\r\n this.companyName = this.portalSettings.CareerJobCompanyName.ConfigValue;\r\n if(this.page == \"applicant\"){\r\n this.getApplicantRaceCodes();\r\n this.formData.selectedSex = this.id.Gender;\r\n this.formData.selectedVeteran = this.id.Veteran;\r\n this.formData.selectedDisability = this.id.Disability;\r\n this.formData.GenderIdentity = this.id.GenderIdentity;\r\n this.formData.GenderIdentity_OtherDesc = this.id.GenderIdentity_OtherDesc;\r\n this.formData.Veteran_Disabled = this.id.Veteran_Disabled?.toString();\r\n this.formData.Veteran_AFServiceMedal = this.id.Veteran_AFServiceMedal?.toString();\r\n this.formData.Veteran_ActiveDutyWartime = this.id.Veteran_ActiveDutyWartime?.toString();\r\n if (this.id.Veteran_DischargeDate != null)\r\n this.formData.Veteran_DischargeDate = new Date(parseInt(moment.utc(this.id.Veteran_DischargeDate).format(\"YYYY\")), parseInt(moment.utc(this.id.Veteran_DischargeDate).format(\"MM\")) - 1, parseInt(moment.utc(this.id.Veteran_DischargeDate).format(\"DD\")), 0, 0, 0, 0);\r\n }else{\r\n this.getRaceCodes();\r\n }\r\n }\r\n\r\n getRaceCodes() {\r\n this.hiringService.getRaceCodes().then((response: any) => {\r\n this.raceList = response;\r\n this.raceList.push({ Race: \"X\", Description: \"I do not wish to answer\" });\r\n this.hiringService.getDashboard(this.id, null).then((response: any) => {\r\n if(response != null){\r\n this.formData.selectedSex = response[0].Gender;\r\n if (response[0].RaceEthnic != null) {\r\n this.raceList.forEach((val: any) => {\r\n val.Race = val.Race.toString().trim();\r\n if (val.Race == response[0].RaceEthnic.trim()) {\r\n this.formData.selectedRace = val.Race;\r\n this.formData.selectedRace = this.formData.selectedRace.toString().trim();\r\n }\r\n });\r\n }\r\n }\r\n this.formData.selectedVeteran = response[0].Veteran;\r\n this.formData.selectedDisability = response[0].Disability;\r\n this.formData.GenderIdentity = response[0].GenderIdentity;\r\n this.formData.GenderIdentity_OtherDesc = response[0].GenderIdentity_OtherDesc;\r\n this.formData.Veteran_Disabled = response[0]?.Veteran_Disabled?.toString();\r\n this.formData.Veteran_AFServiceMedal = response[0]?.Veteran_AFServiceMedal?.toString();\r\n this.formData.Veteran_ActiveDutyWartime = response[0]?.Veteran_ActiveDutyWartime?.toString();\r\n if (response[0].Veteran_DischargeDate != null)\r\n this.formData.Veteran_DischargeDate = new Date(parseInt(moment.utc(response[0].Veteran_DischargeDate).format(\"YYYY\")), parseInt(moment.utc(response[0].Veteran_DischargeDate).format(\"MM\")) - 1, parseInt(moment.utc(response[0].Veteran_DischargeDate).format(\"DD\")), 0, 0, 0, 0);\r\n });\r\n });\r\n }\r\n\r\n getApplicantRaceCodes(){\r\n this.hiringService.getRaceCodes().then((response: any)=> {\r\n if(response != null){\r\n this.raceList = response;\r\n this.raceList.push({ Race: \"X\", Description: \"I do not wish to answer\" });\r\n if (this.id.RaceEthnic != null) {\r\n this.raceList.forEach((val: any)=> {\r\n val.Race = val.Race.toString().trim();\r\n if (val.Race == this.id.RaceEthnic.trim()) {\r\n this.formData.selectedRace = val.Race;\r\n this.formData.selectedRace = this.formData.selectedRace.toString().trim();\r\n }})\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n closeClick() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n}\r\n","
\r\n

Voluntary Self-Identification

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

Affirmative Action Invitation to Self-Identify

\r\n

\r\n It is the policy of {{companyName}} to provide equal opportunity to all qualified applicants for employment without regard to race, color, religion, age, sex or sexual orientation, gender identity or\r\n transgender status, marital or domestic partner status, ancestry, national origin, disability or AIDS/HIV status, or veteran status. The company also has certain Affirmative Action Programs relating\r\n to minority, female, some veteran, and disabled applicants. If you are eligible and wish to take advantage of one or more of these Affirmative Action Programs, you are invited to identify yourself below.\r\n This information is confidential and will be maintained separately from your application.\r\n

\r\n\r\n

\r\n Completion of the remainder of this form is voluntary and any refusal to complete it will not result in any adverse treatment.\r\n

\r\n
\r\n
What is your EEOC (Equal Employment Opportunity Commission) Reporting Gender?
\r\n
\r\n
\r\n
\r\n \r\n Male\r\n
\r\n
\r\n \r\n Female\r\n
\r\n
\r\n \r\n I do not wish to answer\r\n
\r\n
\r\n
\r\n

\r\n\r\n
\r\n
What is your gender?
\r\n
\r\n
\r\n
\r\n \r\n Male\r\n
\r\n
\r\n \r\n Female\r\n
\r\n
\r\n \r\n I do not wish to answer\r\n
\r\n
\r\n
\r\n
\r\n \r\n Non Binary\r\n
\r\n
\r\n \r\n Other\r\n \r\n
\r\n
\r\n
\r\n

\r\n\r\n\r\n
\r\n
What is your race / ethnic origin?
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{data.Description}}\r\n
\r\n
\r\n
\r\n
\r\n

\r\n\r\n
\r\n\r\n
\r\n
Veteran Status (See criteria below)
\r\n
\r\n
\r\n \r\n
\r\n \r\n Yes\r\n
\r\n
\r\n \r\n No\r\n
\r\n
\r\n \r\n I do not wish to answer\r\n
\r\n
\r\n
\r\n
\r\n \r\n
Yes
\r\n
No
\r\n
\r\n
\r\n \r\n
Yes
\r\n
No
\r\n
\r\n
\r\n \r\n
Yes
\r\n
No
\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

Definitions of Veteran

\r\n

\r\n Recently Separated Veteran – Any veteran during the three-year period beginning on the date of such veteran’s discharge or release from active duty in the U.S. military,\r\n ground, naval or air service.\r\n

\r\n

\r\n Active Wartime or Campaign Badge Veteran – A veteran who served on active duty in the U.S. military, ground, naval or air service during a war or\r\n in a campaign or expedition for which a campaign badge has been authorized under the laws administered by the Department of Defense.\r\n

\r\n

\r\n Armed Forces Service Medal Veteran – Any veteran who, while serving on active duty in the U.S. military, ground, naval or air service, participated\r\n in a United States military operation for which an Armed Forces service medal was awarded.\r\n

\r\n

\r\n Disabled Veteran – (1) A veteran of the U.S. military, ground, naval or air service who is entitled to compensation (or who but for the receipt of military retired pay would be\r\n entitled to compensation) under laws administered by the Secretary of Veterans Affairs, or (2) A person who was discharged or released from active duty because of a service-connected disability.\r\n

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

Voluntary Self-Identification of Disability

\r\n
\r\n

Form CC-305

\r\n

OMB Control Number 1250-0005

\r\n

Expires 04/30/2026

\r\n
\r\n
\r\n
\r\n
\r\n
Why are you being asked to complete this form?
\r\n
\r\n
\r\n

\r\n We are a federal contractor or subcontractor. The law requires us to provide equal employment opportunity to qualified\r\n people with disabilities. We have a goal of having at least 7% of our workers as people with disabilities. The law says we\r\n must measure our progress towards this goal. To do this, we must ask applicants and employees if they have a disability\r\n or have ever had one. People can become disabled, so we need to ask this question at least every five years.\r\n

\r\n
\r\n

\r\n Completing this form is voluntary, and we hope that you will choose to do so. Your answer is confidential. No one who\r\n makes hiring decisions will see it. Your decision to complete the form and your answer will not harm you in any way. If you\r\n want to learn more about the law or this form, visit the U.S. Department of Labor’s Office of Federal Contract Compliance\r\n Programs (OFCCP) website at www.dol.gov/ofccp\r\n

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

\r\n\r\n
\r\n
\r\n
\r\n
How do you know if you have a disability?
\r\n
\r\n
\r\n

\r\n A disability is a condition that substantially limits one or more of your “major life activities.” If you have or have ever had\r\n such a condition, you are a person with a disability. Disabilities include, but are not limited to:\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • Alcohol or other substance use disorder (not currently using drugs illegally)
  • \r\n
  • Autoimmune disorder, for example, lupus, fibromyalgia, rheumatoid arthritis, HIV/AIDS
  • \r\n
  • Blind or low vision
  • \r\n
  • Cancer (past or present)
  • \r\n
  • Cardiovascular or heart disease
  • \r\n
  • Celiac disease
  • \r\n
  • Cerebral palsy
  • \r\n
  • Deaf or serious difficulty hearing
  • \r\n
  • Diabetes
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • Disfigurement, for example, disfigurement caused by burns, wounds, accidents, or congenital disorders
  • \r\n
  • Epilepsy or other seizure disorder
  • \r\n
  • Gastrointestinal disorders, for example, Crohn's Disease, irritable bowel syndrome
  • \r\n
  • Intellectual or developmental disability
  • \r\n
  • Mental health conditions, for example, depression, bipolar disorder, anxiety disorder, schizophrenia, PTSD
  • \r\n
  • Missing limbs or partially missing limbs
  • \r\n
  • Mobility impairment, benefiting from the use of a wheelchair, scooter, walker, leg brace(s) and/or other supports
  • \r\n
\r\n
\r\n
\r\n
    \r\n
  • Nervous system condition, for example, migraine headaches, Parkinson’s disease, multiple sclerosis (MS)
  • \r\n
  • Neurodivergence, for example, attention-deficit/hyperactivity disorder (ADHD), autism spectrum disorder, dyslexia, dyspraxia, other learning disabilities
  • \r\n
  • Partial or complete paralysis (any cause)
  • \r\n
  • Pulmonary or respiratory conditions, for example, tuberculosis, asthma, emphysema
  • \r\n
  • Short stature (dwarfism)
  • \r\n
  • Traumatic brain injury
  • \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
Please check one of the boxes below:
\r\n
\r\n
\r\n
\r\n \r\n Yes, I have a disability, or have had one in the past\r\n
\r\n
\r\n \r\n No, I do not have a disability and have not had one in the past\r\n
\r\n
\r\n \r\n I do not want to answer\r\n
\r\n
\r\n
\r\n

\r\n PUBLIC BURDEN STATEMENT: According to the Paperwork Reduction Act of 1995 no persons are required to respond\r\n to a collection of information unless such collection displays a valid OMB control number. This survey should take about 5\r\n minutes to complete.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { CurrencyMaskInputMode } from \"ngx-currency\";\r\nimport moment from 'moment';\r\nimport { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n//Services\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\nimport { UtilityService } from 'src/app/core/services/utility.service';\r\nimport { EmployeeInfoService } from 'src/app/core/services/employee-info.service';\r\nimport { HiringService } from 'src/app/pages/hiring/services/hiring.service';\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\nimport { FieldService } from 'src/app/pages/field/service/field.service';\r\nimport { AdminService } from 'src/app/pages/admin/services/admin.service';\r\n\r\n@Component({\r\n selector: 'app-review-onboarding-modal',\r\n templateUrl: './review-onboarding-modal.component.html',\r\n styleUrls: ['./review-onboarding-modal.component.css']\r\n})\r\nexport class ReviewOnboardingModalComponent implements OnInit {\r\n\r\n @Input() employee: any;\r\n portalSettings: any;\r\n format: string;\r\n employeeInfo: any;\r\n onAdmin: any;\r\n initMode: boolean = false;\r\n formData: { [key: string]: any } = {};\r\n newFiles: any[] = [];\r\n savedFiles: any[] = [];\r\n deleteMode: boolean = false;\r\n taskDeleted: boolean = false;\r\n currencySymbol: string;\r\n datePickerOptions: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean; adaptivePosition: boolean; };\r\n existingMsg: string;\r\n raceList: any[] = [];\r\n timeRevList: any[] = [];\r\n insuranceCodeList: any[] = [];\r\n prCompanies: any[] = [];\r\n tasks: any[] = [];\r\n fileData: any[] = [];\r\n innerCounter: number;\r\n errorMsg: string;\r\n hrCompanies: any[] = [];\r\n pRGroups: any[] = [];\r\n crafts: any[] = [];\r\n classes: any[] = [];\r\n departments: any[] = [];\r\n earnCodes: any[] = [];\r\n processed: boolean = false;\r\n processing: boolean = false;\r\n alert: any;\r\n options: { [key: string]: any } = {};\r\n validComboDrag: any;\r\n dragFiles: any;\r\n mobileMode: boolean = false;\r\n\r\n constructor(private portalSettingsService: PortalSettingsService, private utilityService: UtilityService, private employeeInfoServcie: EmployeeInfoService, private hiringService: HiringService, private fieldService: FieldService, private employeeService: EmployeeService, private adminService: AdminService, private httpClient: HttpClient, private activeModal: NgbActiveModal) {\r\n this.portalSettings = this.portalSettingsService.getPortalSettings();\r\n this.format = this.utilityService.getDateFormat().toUpperCase();\r\n this.employeeInfo = this.employeeInfoServcie.getEmployeeInfo();\r\n }\r\n ngOnInit(): void {\r\n this.mobileMode = this.utilityService.isMobileMode();\r\n this.onAdmin = this.employeeInfo.IsOnboardAdmin;\r\n this.currencySymbol = \"$\";\r\n this.options = { align: 'left', prefix: this.currencySymbol, precision: 2, nullable: true, inputMode: CurrencyMaskInputMode.NATURAL };\r\n var currencyFormatSymbols = this.portalSettings.CurrencyFormatPerPRCo.ConfigValue\r\n if (currencyFormatSymbols && currencyFormatSymbols.trim() != \"\") {\r\n currencyFormatSymbols.split(\",\").forEach((val: any) => {\r\n var arrayEntry = val.split(\":\");\r\n var currencyObject = { PRCo: parseInt(arrayEntry[0]), Currency: arrayEntry[1] }\r\n if (this.employeeInfo && currencyObject.PRCo == this.employeeInfo.PRCo) {\r\n this.currencySymbol = currencyObject.Currency;\r\n }\r\n });\r\n }\r\n this.formData.Gender = this.employee.gender == \"Male\" ? \"M\" : (this.employee.gender == \"Female\" ? \"F\" : null);\r\n this.datePickerOptions = { dateInputFormat: this.format, containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false, adaptivePosition: true };\r\n if (this.employee.TasksCompleted != \"In Process\" && this.employee.TasksCompleted != \"Completed\")\r\n this.getTasks();\r\n this.getHRCo();\r\n this.getPRCo();\r\n this.getAttachmentList();\r\n if (this.employee.hasOwnProperty(\"existingHire\")) {\r\n if (this.employee.existingHire[0]) {\r\n this.existingMsg = \"It appears this employee is a re-hire - an existing HR Resource has been found with the same SSN.\";\r\n }\r\n }\r\n this.getRaceCodes();\r\n this.getTimeRevGroup();\r\n }\r\n\r\n checkMaxLength() {\r\n if (this.formData.hrRef.toString().length > 6)\r\n this.formData.hrRefDisable = true;\r\n else\r\n this.formData.hrRefDisable = false;\r\n }\r\n\r\n pRCoChanged() {\r\n this.formData.PRGroup = null;\r\n this.formData.Craft = null;\r\n this.formData.Class = null;\r\n this.formData.PRDept = null;\r\n this.formData.EarnCode = null;\r\n this.formData.InsCode = null;\r\n this.getPRGroup();\r\n this.getCraft();\r\n this.getPRDept();\r\n this.getEarnCode();\r\n this.getInsuranceCode();\r\n }\r\n\r\n craftChanged() {\r\n this.formData.Class = null;\r\n this.getClass();\r\n }\r\n\r\n getRaceCodes() {\r\n this.hiringService.getRaceCodes().then((response: any[]) => {\r\n if (response != null) {\r\n this.raceList = response;\r\n if (this.employee.raceEthnicity != null) {\r\n this.raceList.forEach((val: any) => {\r\n if (val.Description.substr(0, 4).toLowerCase().indexOf(this.employee.raceEthnicity.substr(0, 4).toLowerCase()) > -1) {\r\n this.formData.Race = val.Race;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n getTimeRevGroup() {\r\n this.hiringService.getTimeRevGroup().then((response: any[]) => {\r\n if (response != null) {\r\n this.timeRevList = response;\r\n }\r\n });\r\n }\r\n\r\n getInsuranceCode() {\r\n this.hiringService.getInsCodes().then((response: any[]) => {\r\n if (response != null) {\r\n this.insuranceCodeList = response;\r\n }\r\n });\r\n }\r\n\r\n hrcoUpdate() {\r\n if (this.formData.PRCo == null && this.prCompanies != null) {\r\n this.prCompanies.forEach((val: any) => {\r\n if (this.formData.HRCo.CompanyName == val.PRCoNameMask) {\r\n this.formData.PRCo = val.PRCo;\r\n this.pRCoChanged();\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n getTasks() {\r\n this.hiringService.getTasksByOnboardID(this.employee.OnboardID).then((response: any[]) => {\r\n if (response != null) {\r\n var tasks = response;\r\n for (var i = 0; i < response.length; i++) {\r\n var task = tasks[i];\r\n task.TaskCompletedDisplay = null;\r\n if (task.OnboardTaskDateCompleted != null) {\r\n task.TaskCompletedDisplay = moment.utc(task.OnboardTaskDateCompleted).format(this.format.toUpperCase());\r\n }\r\n if (task.OnboardTaskDateCompleted != null)\r\n task.Filename = task.OnboardTaskName.replace(/[^0-9a-zA-z]/g, \" \") + \"_\" + moment.utc(task.OnboardTaskDateCompleted).format(\"l\").replace(/\\//g, \"_\") + \".pdf\";\r\n else\r\n task.Filename = task.OnboardTaskName.replace(/[^0-9a-zA-z]/g, \" \");\r\n }\r\n this.tasks = tasks;\r\n }\r\n });\r\n }\r\n\r\n downloadDocument(task: any) {\r\n return \"/Employee/DownloadDocument?onboardID=\" + task.OnboardID + \"&bulletinID=\" + task.OnboardBulletinID + \"&filename=\" + encodeURIComponent(task.Filename);\r\n }\r\n\r\n downloadChecklist(task: any) {\r\n return \"/Checklist/DownloadChecklists?checklistInstanceIDs=\" + task.OnboardChecklistInstanceID + \"&filenames=\" + encodeURIComponent(task.Filename) + \"&templateID=\" + task.ChecklistTemplateID + \"&isonboard=true\";\r\n }\r\n\r\n getAttachmentList() {\r\n this.newFiles = [];\r\n this.fieldService.getDBAttachmentList(60, null, this.employee.OnboardID, null).then((response: any[]) => {\r\n if (response != null) {\r\n this.savedFiles = response;\r\n }\r\n });\r\n }\r\n\r\n deleteAttachment(data: any) {\r\n this.employeeService.removeFileAttachment(data.FileAttachmentID).then((response: any) => {\r\n if (response != null) {\r\n this.getAttachmentList();\r\n }\r\n });\r\n }\r\n\r\n readFile(file: any, call: any) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) { return call(e, file.name) };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n upload() {\r\n this.newFiles = [];\r\n this.fileData = [];\r\n this.innerCounter = 0;\r\n for (var i = 0; i < this.formData.fileDrop.length; i++) {\r\n this.formData.fileDrop[i].nameEdit = this.utilityService.formatAttachmentName(this.formData.fileDrop[i].name);\r\n var n = 0;\r\n this.readFile(this.formData.fileDrop[i], (e: any, fileName: string) => {\r\n setTimeout(() => {\r\n this.fileData.push({ data: e.target.result.toString().split(\",\"), size: e.total, name: fileName });\r\n if (n == (this.formData.fileDrop.length - 1)) {\r\n this.fileData.forEach((val: any) => {\r\n this.formData.fileDrop.forEach((val2: any) => {\r\n if ((val2.size == val.size && val.name == val2.name)) {\r\n this.newFiles.push({ File: val.data[1], Filename: val2.nameEdit, Filedata: val2, Type: val.data[0].split(\"/\")[0] });\r\n }\r\n });\r\n });\r\n if (this.formData.fileDrop && this.formData.fileDrop.length >= 1) {\r\n this.newFiles.forEach((val3: any) => {\r\n if (val3.Progress != 100 && val3.File != null) {\r\n var temp = val3.Type;\r\n var type = \"file\";\r\n if (temp == \"data:image\")\r\n type = \"Photo\";\r\n this.httpClient.request(new HttpRequest(\r\n 'POST',\r\n \"/Document/SaveDBAttachment\",\r\n { moduleID: 60, recordGUID: this.employee.OnboardID, attachmentFileData: val3.File, attachmentFileName: val3.Filename, recordID: -1 },\r\n { reportProgress: true }\r\n )).subscribe((event: HttpEvent) => {\r\n switch (event.type) {\r\n case HttpEventType.UploadProgress:\r\n val3.Progress = Math.round(event.loaded / event.total * 100);\r\n if (val3.Progress == 100) {\r\n val3.AttchDone = true;\r\n }\r\n break;\r\n case HttpEventType.Response:\r\n this.innerCounter++;\r\n this.innerCounterChange();\r\n val3.Filedata.result = event.body;\r\n }\r\n },\r\n error => this.errorMsg = error.message\r\n )\r\n }\r\n });\r\n }\r\n }\r\n n++;\r\n });\r\n });\r\n }\r\n }\r\n\r\n innerCounterChange() {\r\n if (this.innerCounter == this.newFiles.length && this.innerCounter != 0) {\r\n this.getAttachmentList();\r\n this.formData.fileDrop = null;\r\n }\r\n }\r\n\r\n getHRCo() {\r\n this.hiringService.getHRCO().then((response: any[]) => {\r\n if (response != null) {\r\n this.hrCompanies = response;\r\n }\r\n });\r\n }\r\n\r\n getPRCo() {\r\n this.adminService.getCompanies().then((response: any[]) => {\r\n if (response != null) {\r\n this.prCompanies = response;\r\n }\r\n });\r\n }\r\n\r\n getPRGroup() {\r\n this.hiringService.getCompanyGroups(this.formData.PRCo).then((response: any[]) => {\r\n if (response != null) {\r\n this.pRGroups = response;\r\n }\r\n });\r\n }\r\n\r\n getCraft() {\r\n this.hiringService.getCraft(this.formData.PRCo).then((response: any[]) => {\r\n if (response != null) {\r\n this.crafts = response;\r\n }\r\n });\r\n }\r\n\r\n getClass() {\r\n this.hiringService.getClass(this.formData.PRCo, this.formData.Craft).then((response: any[]) => {\r\n if (response != null) {\r\n this.classes = response;\r\n }\r\n });\r\n }\r\n\r\n getPRDept() {\r\n this.hiringService.getPRDept(this.formData.PRCo).then((response: any[]) => {\r\n if (response != null) {\r\n this.departments = response;\r\n }\r\n });\r\n }\r\n\r\n getEarnCode() {\r\n this.hiringService.getEarnCode(this.formData.PRCo).then((response: any[]) => {\r\n if (response != null) {\r\n this.earnCodes = response;\r\n }\r\n });\r\n }\r\n\r\n deleteTask(task: any) {\r\n task.ConfirmDelete = true;\r\n }\r\n\r\n confirmDeleteTask(task: any) {\r\n this.hiringService.deleteTask(task.OnboardTaskID).then((response: any) => {\r\n if (response != null && response.success) {\r\n this.taskDeleted = true;\r\n this.tasks.splice(this.tasks.indexOf(task), 1);\r\n }\r\n })\r\n }\r\n\r\n confirmDelete() {\r\n this.processing = true;\r\n this.hiringService.deleteOnboarding(this.employee.OnboardID).then((response: any) => {\r\n if (response != null && response.success) {\r\n this.activeModal.close({ alert: { type: \"success\", msg: \"Onboarding instance has been deleted.\" } });\r\n this.processed = true;\r\n this.processing = false\r\n }\r\n else {\r\n this.alert = { type: \"danger\", msg: response.data.errorMessage };\r\n this.processing = false;\r\n }\r\n });\r\n }\r\n\r\n closeClicked() {\r\n if (this.taskDeleted)\r\n this.activeModal.close({ action: \"taskRebind\" });\r\n else\r\n this.activeModal.dismiss();\r\n }\r\n\r\n sendReminder() {\r\n this.hiringService.sendReminder(this.employee.OnboardID).then((response: any) => {\r\n if (response != null && response.success) {\r\n this.alert = { type: \"success\", msg: \"Email reminder sent\" };\r\n }\r\n });\r\n }\r\n\r\n toggleInitialize() {\r\n this.formData.HRCo = null;\r\n this.formData.PRCo = null;\r\n this.formData.PRGroup = null;\r\n this.formData.Craft = null;\r\n this.formData.Class = null;\r\n this.formData.PRDept = null;\r\n this.formData.EarnCode = null;\r\n this.formData.hireDate = new Date();\r\n this.initMode = !this.initMode;\r\n }\r\n\r\n autoRefChange() {\r\n if (this.formData.autoRef)\r\n this.formData.hrRef = null;\r\n }\r\n\r\n initializeBirdDog() {\r\n var requestObj = { effectiveHireDateStr: null, hRCoForInitialization: null, pRCo: null, pRGroup: null, wage: null, craft: null, classID: null, pRDept: null, earnCode: null, email: null, gender: null, raceEthnicity: null, insuranceCode: null, hRRef: null, timesheetRevGroup: null, TasksCompleted: null, systemID: null };\r\n if (this.employee.OnboardID == null) {\r\n for (const [key, val] of Object.entries(this.employee)) {\r\n requestObj[key] = val;\r\n }\r\n }\r\n requestObj.effectiveHireDateStr = moment(this.formData.hireDate).format(\"MM/DD/YYYY\");\r\n requestObj.hRCoForInitialization = this.formData.HRCo.HRCo;\r\n if (this.formData.PRCo !== null) {\r\n requestObj.pRCo = this.formData.PRCo;\r\n }\r\n if (this.formData.PRGroup !== null) {\r\n requestObj.pRGroup = this.formData.PRGroup;\r\n }\r\n if (this.formData.Wage !== null) {\r\n requestObj.wage = this.formData.Wage;\r\n }\r\n if (this.formData.Craft !== null) {\r\n requestObj.craft = this.formData.Craft;\r\n }\r\n if (this.formData.Class !== null) {\r\n requestObj.classID = this.formData.Class;\r\n }\r\n if (this.formData.PRDept !== null) {\r\n requestObj.pRDept = parseInt(this.formData.PRDept);\r\n }\r\n if (this.formData.EarnCode !== null) {\r\n requestObj.earnCode = this.formData.EarnCode;\r\n }\r\n if (this.employee.Email !== null) {\r\n requestObj.email = this.employee.Email;\r\n }\r\n if (this.formData.Gender != null) {\r\n requestObj.gender = this.formData.Gender;\r\n }\r\n if (this.formData.Race !== null) {\r\n requestObj.raceEthnicity = this.formData.Race;\r\n }\r\n if (this.formData.InsCode !== null) {\r\n requestObj.insuranceCode = this.formData.InsCode;\r\n }\r\n if (this.formData.hrRef !== null) {\r\n requestObj.hRRef = this.formData.hrRef;\r\n }\r\n if (this.formData.timesheetRevGroup !== null) {\r\n requestObj.timesheetRevGroup = this.formData.timesheetRevGroup;\r\n }\r\n requestObj.TasksCompleted = this.employee.TasksCompleted;\r\n this.processing = true;\r\n this.hiringService.onInitializeBirdDogRecord(requestObj).then((response: any) => {\r\n if (response != null) {\r\n if (response.success) {\r\n this.activeModal.close({ alert: { type: \"success\", msg: this.employee.FirstName + \" \" + this.employee.LastName + \" has been successfully initialized to Company \" + this.formData.HRCo.HRCo + \" as HRRef \" + response.result.NewHRRef + \".\" } });\r\n this.processed = true;\r\n this.processing = false;\r\n }\r\n else {\r\n this.alert = { type: \"danger\", msg: response.errorMessage };\r\n this.processing = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n closeAlert() {\r\n this.alert = null;\r\n }\r\n}\r\n","
\r\n

Review - {{employee.FirstName}} {{employee.LastName}}

\r\n
\r\n
\r\n
\r\n
{{existingMsg}}
\r\n
\r\n
\r\n
\r\n {{alert.msg}}\r\n \r\n
\r\n
\r\n
\r\n
Initializing this employee will create the HR Resource for this record, migrate all attachments and submitted information to Vista.
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{employee.Email}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{employee.TasksCompleted}} / {{employee.TasksTotalCount}}\r\n
\r\n
\r\n {{employee.TasksCompleted}} / {{employee.TasksTotalCount}}\r\n
\r\n
\r\n
{{employee.TasksCompleted}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
{{employee.DateInitiatedDisplay}}
\r\n
\r\n
\r\n \r\n
\r\n {{employee.IdentityKey}}\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
Task:Status:
\r\n {{task.OnboardTaskName}}\r\n \r\n {{task.OnboardTaskName}}\r\n \r\n {{task.OnboardTaskName}}\r\n \r\n Incomplete\r\n Completed on {{task.TaskCompletedDisplay}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{hrCompany.CompanyName}}\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 M - Male\r\n F - Female\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 {{data.Race + ' - ' + data.Description}}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{data.ReviewerGroup}} - {{data.Description}}\r\n \r\n
\r\n
\r\n \r\n \r\n {{prCompany.PRCoNameMask}}\r\n \r\n
\r\n
\r\n \r\n \r\n {{pRGroup.PRGroupName}}\r\n \r\n
\r\n
\r\n \r\n \r\n {{data.InsCode + ' - ' + data.Description}}\r\n \r\n
\r\n
\r\n \r\n \r\n {{craft.Craft}} - {{craft.CraftDescription}}\r\n \r\n
\r\n
\r\n \r\n \r\n {{class.ClassDescription}}\r\n \r\n
\r\n
\r\n \r\n \r\n {{department.PRDept}} - {{department.PRDeptDescription}}\r\n \r\n
\r\n
\r\n \r\n \r\n {{earnCode.EarnCode}} - {{earnCode.EarnCodeDescription}}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {{file.Filename}}\r\n \r\n
\r\n
0\">\r\n
{{file.Progress}}%
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Drop a file or Click to upload\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, Input, OnInit, Optional, ViewChild } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport moment from 'moment';\r\nimport { CurrencyMaskInputMode } from 'ngx-currency';\r\nimport { NgForm } from '@angular/forms';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n//Services\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { EmployeeInfoService } from 'src/app/core/services/employee-info.service';\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { HiringService } from '../../../pages/hiring/services/hiring.service';\r\nimport { HomeService } from 'src/app/pages/home/services/home.service';\r\n\r\n//Modals\r\nimport { AddressConfirmationModalComponent } from '../../employee/personal-info/address-confirmation-modal/address-confirmation-modal.component';\r\n\r\n@Component({\r\n selector: 'app-review-w4-modal',\r\n templateUrl: './review-w4-modal.component.html',\r\n styleUrls: ['./review-w4-modal.component.css']\r\n})\r\n\r\nexport class ReviewW4ModalComponent implements OnInit {\r\n\r\n @ViewChild('W4Form', { static: false }) W4Form: NgForm;\r\n @ViewChild('signaturePad', { static: false }) signaturePad;\r\n @Input() id: number;\r\n @Input() viewMode: boolean;\r\n portalSettings: any;\r\n employeeInfo: any;\r\n format: string;\r\n mobileMode: boolean = false;\r\n currencyFormatSymbols: any;\r\n currencySymbol: string;\r\n currentYear: number;\r\n formData: { [key: string]: any } = {};\r\n options: { [key: string]: any } = {};\r\n datePickerOptions: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean; adaptivePosition: boolean };\r\n alreadySubmitted: boolean = false;\r\n stateList: any[];\r\n submitSignImg: string;\r\n validateCheck: boolean = false;\r\n alert: string;\r\n isAddressValidationEnabled: boolean = false;\r\n enableCheckboxSign: boolean = false;\r\n latitude: any;\r\n longitude: any;\r\n signatureNEmpty: boolean = false;\r\n rawImgData: any;\r\n hideClick: boolean = false;\r\n showClickMsg: boolean = false;\r\n redBorder: boolean = false;\r\n fillW4: boolean = false;\r\n fillW4URL: string = \"/Careers/Fillw4\";\r\n tasksURL: string = \"/Careers/Tasks\"\r\n\r\n constructor(portalSettingsService: PortalSettingsService, @Optional() employeeInfoService: EmployeeInfoService, private utilityService: UtilityService, private hiringService: HiringService, @Optional() private activeModal: NgbActiveModal, private homeService: HomeService, private modalService: NgbModal) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.mobileMode = this.utilityService.isMobileMode();\r\n this.format = this.utilityService.getDateFormat()\r\n this.currencyFormatSymbols = this.portalSettings.CurrencyFormatPerPRCo.ConfigValue;\r\n this.isAddressValidationEnabled = this.portalSettings.IsAddressValidated.ConfigValue == \"1\";\r\n this.currencySymbol = \"$\";\r\n this.enableCheckboxSign = this.portalSettings.EnableCheckboxSign.ConfigValue == \"1\";\r\n this.datePickerOptions = { dateInputFormat: this.format.toUpperCase(), containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false, adaptivePosition: true };\r\n this.options = { align: 'left', prefix: this.currencySymbol, precision: 2, nullable: true, inputMode: CurrencyMaskInputMode.NATURAL };\r\n this.currentYear = new Date().getFullYear();\r\n if (this.currencyFormatSymbols && this.currencyFormatSymbols.trim() != \"\") {\r\n this.currencyFormatSymbols.split(\",\").forEach((val: any) => {\r\n var arrayEntry = val.split(\":\");\r\n var currencyObject = { PRCo: parseInt(arrayEntry[0]), Currency: arrayEntry[1] }\r\n if (this.employeeInfo && currencyObject.PRCo == this.employeeInfo.PRCo) {\r\n this.currencySymbol = currencyObject.Currency;\r\n }\r\n });\r\n }\r\n this.formData.IsExempt = false;\r\n this.formData.SignDate = new Date(moment().format(\"MM/DD/YYYY\"));\r\n\r\n if (parseInt(new Date().toString()) < parseInt(new Date(\"2020/01/01\").toString()))\r\n this.formData.showNewForm = false;\r\n else\r\n this.formData.showNewForm = true;\r\n\r\n this.getRouteData();\r\n\r\n if (this.fillW4) {\r\n this.getInfoByOnboardID();\r\n }\r\n\r\n this.getDependentLookupByColumnName();\r\n\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition((position: any) => {\r\n this.latitude = position.coords.latitude;\r\n this.longitude = position.coords.longitude;\r\n });\r\n }\r\n\r\n if (this.fillW4) {\r\n this.getW4Info(1);\r\n } else {\r\n this.getW4Info(2);\r\n }\r\n\r\n }\r\n\r\n getRouteData() {\r\n var path = window.location.pathname;\r\n if (path != null && path.length > 1) {\r\n if (path == this.fillW4URL.toLowerCase()) {\r\n this.fillW4 = true;\r\n } else {\r\n this.alreadySubmitted = true;\r\n }\r\n }\r\n }\r\n\r\n getDependentLookupByColumnName() {\r\n this.hiringService.getDependentLookupByColumnName(\"State\", null).then((response: any[]) => {\r\n if (response != null) {\r\n this.stateList = response;\r\n }\r\n });\r\n }\r\n\r\n getInfoByOnboardID() {\r\n this.hiringService.getInfoByOnboardID().then((response: any) => {\r\n if (response != null && response.DateSubmitted != null)\r\n this.alreadySubmitted = true;\r\n else\r\n this.alreadySubmitted = false;\r\n });\r\n }\r\n\r\n\r\n switchLanguage() {\r\n if (this.formData.FormLanguage == \"EN\")\r\n this.formData.FormLanguage = \"ES\";\r\n else\r\n this.formData.FormLanguage = \"EN\";\r\n }\r\n\r\n getW4Info(step: number) {\r\n this.hiringService.getW4Info(this.id, step).then((response: any) => {\r\n if (response != null && response.length > 0) {\r\n var w4Info = response[0];\r\n for (let key in w4Info) {\r\n if (key == \"IsDiffLastName\") {\r\n if (w4Info[key] != null) {\r\n this.formData.IsDiffLastName = w4Info[key];\r\n }\r\n }\r\n else if (key == \"IsExempt\") {\r\n if (w4Info[key] != null) {\r\n this.formData.IsExempt = w4Info[key];\r\n }\r\n }\r\n else if (key == \"SignDate\") {\r\n if (w4Info[key] != null) {\r\n this.formData.SignDate = new Date(moment(w4Info[key], this.format.toUpperCase()).utc().format(\"MM/DD/YYYY\"));\r\n }\r\n }\r\n else if (key == \"SignatureBinary\" && this.alreadySubmitted) {\r\n if (w4Info[key] != null) {\r\n this.submitSignImg = \"data:image/png;base64,\" + this.base64ArrayBuffer(w4Info[key]);\r\n }\r\n }\r\n else if (key == \"DateFirstEmployment\") {\r\n if (w4Info[key] != null) {\r\n this.formData.DateFirstEmployment = new Date(moment(w4Info[key]).utc().format(\"MM/DD/YYYY\"));\r\n }\r\n }\r\n else {\r\n this.formData[key] = w4Info[key];\r\n }\r\n }\r\n if (this.formData.MaritalStatus == null)\r\n this.formData.MaritalStatus = null;\r\n\r\n if (this.fillW4)\r\n this.formData.SignatureBinary = null;\r\n\r\n if (this.formData.SignatureDate != null &&\r\n (new Date(parseInt(moment(this.formData.SignatureDate).utc().format(\"YYYY\"))\r\n , parseInt(moment(this.formData.SignatureDate).utc().format(\"MM\")) - 1\r\n , parseInt(moment(this.formData.SignatureDate).utc().format(\"DD\")), 0, 0, 0, 0)) < (new Date(\"2020/01/01\"))) {\r\n this.formData.showNewForm = false;\r\n }\r\n else if (\r\n this.formData.SignatureDate != null\r\n &&\r\n (new Date(parseInt(moment(this.formData.SignatureDate).utc().format(\"YYYY\"))\r\n , parseInt(moment(this.formData.SignatureDate).utc().format(\"MM\")) - 1\r\n , parseInt(moment(this.formData.SignatureDate).utc().format(\"DD\")), 0, 0, 0, 0)) > (new Date(\"2020/01/01\"))) {\r\n this.formData.showNewForm = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n isExemptUpdated() {\r\n setTimeout(() => {\r\n if (this.formData.showNewForm && this.formData.IsExempt) {\r\n this.formData.MaritalStatus = null;\r\n this.formData.MultiJobs2020 = null;\r\n this.formData.QualChildAmount = null;\r\n this.formData.OtherDependentAmount = null;\r\n this.formData.DependentAmt2020 = null;\r\n this.formData.OtherIncome2020 = null;\r\n this.formData.Deductions2020 = null;\r\n this.formData.AdditionalAmount = null;\r\n }\r\n })\r\n }\r\n\r\n submit(isAddressInvalid: boolean) {\r\n isAddressInvalid = typeof (isAddressInvalid) == 'undefined' ? null : isAddressInvalid == true;\r\n this.hiringService.insertUpdatew4(this.formData).then((response: any) => {\r\n if (response != null) {\r\n this.validateCheck = false;\r\n if (response.success) {\r\n window.location.href = this.tasksURL;\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n dirty() {\r\n if (this.formData.DependentAmt2020 || this.formData.OtherIncome2020 || this.formData.Deductions2020 || this.formData.AdditionalAmount)\r\n this.formData.IsExempt = false;\r\n }\r\n\r\n step3Calculate() {\r\n if (this.formData.QualChildAmount != null && this.formData.OtherDependentAmount != null)\r\n this.formData.DependentAmt2020 = this.formData.QualChildAmount + this.formData.OtherDependentAmount;\r\n }\r\n\r\n saveW4() {\r\n this.validateCheck = true;\r\n if (!this.W4Form.form.invalid) {\r\n this.alert = null;\r\n this.hiringService.updateW4ByOnboardIDPart2(this.id, this.formData.EmployerNameAddress, null, this.formData.EIN, this.formData.DateFirstEmployment != null ? moment(this.formData.DateFirstEmployment).format(\"YYYY-MM-DD\") : \"\").then((response: any) => {\r\n this.validateCheck = false;\r\n if (response != null && response.success) {\r\n this.activeModal.close(\"success\");\r\n } else {\r\n this.activeModal.close(\"fail\");\r\n }\r\n });\r\n } else {\r\n this.alert = \"Please fill out all required fields.\";\r\n }\r\n }\r\n\r\n saveFillW4() {\r\n this.validateCheck = true;\r\n this.checkSigned();\r\n this.checkSSN();\r\n\r\n if (!this.W4Form.form.invalid && ((this.formData.MaritalStatus != null && !this.formData.IsExempt) || (this.formData.IsExempt && this.formData.MaritalStatus == null)) && this.formData.SSN != null) {\r\n this.alert = null;\r\n if (this.signatureNEmpty) {\r\n if (this.formData.SSN != null) {\r\n this.formData.SSN = this.formData.SSN.split('-').join(\"\");\r\n }\r\n if (this.formData.SignDate != null) {\r\n this.formData.SignDateStr = moment(this.formData.SignDate).utc().format(\"MM/DD/YYYY\");\r\n }\r\n\r\n if (this.formData.typeSign) {\r\n this.formData.SignatureBinary = this.rawImgData;\r\n } else {\r\n if (this.formData.SignatureBinary == null)\r\n this.formData.SignatureBinary = this.signaturePad.toDataURL().replace(/^data:image\\/(png|jpg);base64,/, \"\");\r\n }\r\n\r\n if (this.longitude != null)\r\n this.formData.longitude = this.longitude;\r\n if (this.latitude != null)\r\n this.formData.latitude = this.latitude;\r\n for (const [key, val] of Object.entries(this.formData)) {\r\n if (val == \"\" && val != 0)\r\n this.formData[key] = null;\r\n }\r\n\r\n if (!this.isAddressValidationEnabled) {\r\n this.submit(true);\r\n return;\r\n }\r\n\r\n //------------hold it\r\n\r\n this.validateAddress();\r\n return;\r\n } else {\r\n window.scrollTo(0, 0);\r\n this.alert = \"Please fill out all required fields.\";\r\n }\r\n } else {\r\n window.scrollTo(0, 0);\r\n this.alert = \"Please fill out all required fields.\";\r\n }\r\n }\r\n\r\n validateAddress() {\r\n this.hiringService.validateAddress(this.formData.Address, this.formData.City, this.formData.State, this.formData.Zip).then((response: any) => {\r\n if (response != null) {\r\n if (response.IsValid == false) {\r\n this.openAddressValidationModal(response.SuggestedAddressString, response.OriginalAddressString, response.SuggestedAddress);\r\n return;\r\n }\r\n else {\r\n this.submit(true);\r\n }\r\n }\r\n else {\r\n var address = this.formData.Address + ', ' + this.formData.City + ', ' + this.formData.State + ' ' + this.formData.Zip;\r\n this.openAddressValidationModal(null, address, null);\r\n }\r\n }, (error) => {\r\n var address = this.formData.Address + ', ' + this.formData.City + ', ' + this.formData.State + ' ' + this.formData.Zip;\r\n this.openAddressValidationModal(null, address, null);\r\n });\r\n }\r\n\r\n openAddressValidationModal(suggestedAddress: string, originalAddress: string, suggestedAddressComponents: any) {\r\n let modalRef = this.modalService.open(AddressConfirmationModalComponent, { size: 'sm', backdrop: 'static' });\r\n modalRef.componentInstance.suggestedAddress = suggestedAddress;\r\n modalRef.componentInstance.badAddress = originalAddress;\r\n\r\n modalRef.result.then((userChoice) => {\r\n // User chose bad address\r\n if (userChoice == 0) {\r\n this.submit(true);\r\n }\r\n // User chose suggested address\r\n else if (userChoice == 1) {\r\n this.formData.Address = suggestedAddressComponents.StreetAddress;\r\n this.formData.City = suggestedAddressComponents.City;\r\n this.formData.State = suggestedAddressComponents.State;\r\n this.formData.Zip = suggestedAddressComponents.PostalCode;\r\n this.submit(false);\r\n }\r\n // User chose to cancel\r\n else {\r\n this.utilityService.closeModal();\r\n } \r\n });\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.close('cancel');\r\n }\r\n\r\n clickSign(type: string) {\r\n if (this.signaturePad.isEmpty()) {\r\n this.formData.typeSign = true;\r\n this.homeService.getTypeSign(type).then((response: any) => {\r\n this.rawImgData = response;\r\n this.submitSignImg = \"data:image/png;base64,\" + response;\r\n this.signatureNEmpty = true;\r\n });\r\n this.hideClick = true;\r\n this.showClickMsg = false;\r\n } else {\r\n this.showClickMsg = true;\r\n }\r\n }\r\n\r\n checkSigned() {\r\n if (this.signaturePad != null) {\r\n if (!this.signaturePad.isEmpty()) {\r\n this.redBorder = false;\r\n this.signatureNEmpty = true;\r\n }\r\n else {\r\n this.redBorder = true;\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n if (this.signaturePad != null) {\r\n if (!this.signaturePad.isEmpty()) {\r\n this.signaturePad.clear();\r\n }\r\n this.signatureNEmpty = false;\r\n }\r\n\r\n this.rawImgData = null;\r\n this.submitSignImg = null;\r\n this.formData.typeSign = false;\r\n this.showClickMsg = false;\r\n this.hideClick = false;\r\n }\r\n\r\n base64ArrayBuffer(arrayBuffer: any) {\r\n var base64 = ''\r\n var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\r\n\r\n var bytes = new Uint8Array(arrayBuffer)\r\n var byteLength = bytes.byteLength\r\n var byteRemainder = byteLength % 3\r\n var mainLength = byteLength - byteRemainder\r\n\r\n var a, b, c, d\r\n var chunk\r\n\r\n // Main loop deals with bytes in chunks of 3\r\n for (var i = 0; i < mainLength; i = i + 3) {\r\n // Combine the three bytes into a single integer\r\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]\r\n\r\n // Use bitmasks to extract 6-bit segments from the triplet\r\n a = (chunk & 16515072) >> 18 // 16515072 = (2^6 - 1) << 18\r\n b = (chunk & 258048) >> 12 // 258048 = (2^6 - 1) << 12\r\n c = (chunk & 4032) >> 6 // 4032 = (2^6 - 1) << 6\r\n d = chunk & 63 // 63 = 2^6 - 1\r\n\r\n // Convert the raw binary segments to the appropriate ASCII encoding\r\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]\r\n }\r\n\r\n // Deal with the remaining bytes and padding\r\n if (byteRemainder == 1) {\r\n chunk = bytes[mainLength]\r\n\r\n a = (chunk & 252) >> 2 // 252 = (2^6 - 1) << 2\r\n\r\n // Set the 4 least significant bits to zero\r\n b = (chunk & 3) << 4 // 3 = 2^2 - 1\r\n\r\n base64 += encodings[a] + encodings[b] + '=='\r\n } else if (byteRemainder == 2) {\r\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]\r\n\r\n a = (chunk & 64512) >> 10 // 64512 = (2^6 - 1) << 10\r\n b = (chunk & 1008) >> 4 // 1008 = (2^6 - 1) << 4\r\n\r\n // Set the 2 least significant bits to zero\r\n c = (chunk & 15) << 2 // 15 = 2^4 - 1\r\n\r\n base64 += encodings[a] + encodings[b] + encodings[c] + '='\r\n }\r\n\r\n return base64\r\n }\r\n\r\n checkSSN() {\r\n if (this.formData.SSN != null) {\r\n if (this.formData.SSN.length != 11)\r\n this.formData.SSN = null;\r\n }\r\n }\r\n\r\n updateFormdata(data: string, field: any) {\r\n this.formData[field] = data;\r\n }\r\n\r\n closeClick() {\r\n this.activeModal.close();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Complete your W-4

Complete el Formulario W-4

\r\n\r\n chevron_left Back\r\n chevron_left Atras\r\n\r\n \r\n

Employee's Withholding Allowance Certificate

\r\n
Whether you are entitled to claim a certain number of allowances or exemption from withholding is subject to review by the IRS. Your employer may be required to send a copy of this form to the IRS.
\r\n

Certificado de Retenciones del Empleado

\r\n
Su derecho a reclamar cierto número de descuentos o a declararse exento de la retención de impuestos está sujeto a revisión por el IRS. Su empleador puede tener la obligación de enviar una copia de este formulario al IRS.
\r\n

W-4 Instructions

\r\n

W-4 Instrucciones

\r\n
{{alert}}
\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 Single\r\n Married\r\n Married, but withhold at higher Single rate.\r\n

Note: If married filing separately, check \"Married, but withhold at higher Single rate.\"

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{data.DatabaseValue}}\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

Total number of allowances you are claiming (from the applicable worksheet found in the link to W-4 instructions above)

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

Additional amount, if any, you want withheld from each paycheck

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

I claim exemption from withholding for 2019, and I certify that I meet both of the following conditions for examption.

\r\n

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

\r\n Last year I had a right to refund of all federal income tax withheld because I had no tax liability, and\r\n

\r\n
\r\n

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

This year I expect a refund of all federal income tax withheld because I expect to have no tax liability.

\r\n
\r\n

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

If you meet both condiditons, click here - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

\r\n
\r\n - - - - - - - - - - - - - - - - - - - -\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Under penalties of perjury, I declare that I have examined this certificate and, to the best of my knowledge and belief, it is true, correct, and complete.

\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
\r\n \r\n
\r\n
\r\n
Step 1: Enter Personal Information
\r\n
Paso 1: Anote su informacion personal
\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 {{data.DatabaseValue}}\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 Single or Married filing separatelySoltero o Casado que presenta una declaracion por separado\r\n
\r\n
\r\n
\r\n
\r\n \r\n Married filing jointly (or Qualifying widow(er))\r\n
\r\n
\r\n \r\n Casado que presenta una declaracion conjunta (o Viudo que reune los requisitos)\r\n
\r\n
\r\n
\r\n
\r\n \r\n Head of household (Check only if you're unmarried and pay more than half the costs of keeping up a home for yourself and a qualifying individual.)Cabeza de familia (Marque solamente si no esta casado y pago mas de la mitad del costo de mantener una vivienda para usted y una persona calificada)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Complete Steps 2-4 ONLY if they apply to you; otherwise, skip to Step 5. See page 2 for more information on each step, who can claim exemption from withholding, when to use the online estimator, and privacy.

\r\n

Complete los Pasos 2 a 4 SOLAMENTE si le aplican a usted; de lo contrario, siga al Paso 5. Vea la pagina 2 para obtener mas informacion sobre cada paso, saber quien puede reclamar la exencion de la retencion, saber cuando utilizar el estimador de retencion de impuestos en linea y conocer acerca de su privacidad.

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Step 2: Multiple Jobs or Spouse Works
\r\n
Paso 2: Personas con multiples empleos o con conyuges que trabajan
\r\n
\r\n
\r\n
\r\n
\r\n

Complete this step if you (1) hold more than one job at a time, or (2) are married filing jointly and your spouse also works. The correct amount of withholding depends on income earned from all of these jobs.

\r\n

Do only one of the following.

\r\n

(a) Use the estimator at www.irs.gov/W4App for most accurate withholding for this step (and Steps 3-4); or

\r\n

(b) Use the Multiple Jobs Worksheet on page 3 and enter the result in Step 4(c) below for roughly accurate withholding; or

\r\n

(c) If there are only two jobs total, you may check this box. Do the same on Form W-4 for the other job. This option is accurate for jobs with similar pay; otherwise, more tax than necessary may be withheld

\r\n

TIP: To be accurate, submit a {{currentYear}} Form W-4 for all other jobs. If you (or your spouse) have self-employment income, including as an independent contractor, use the estimator.

\r\n

Complete Steps 3-4(b) on Form W-4 for only ONE of these jobs. Leave those steps blank for the other jobs. (Your withholding will be most accurate if you complete Steps 3-4(b) on the Form W-4 for the highest paying job.)

\r\n

Complete este paso si (1) tiene mas de un trabajo a la vez o (2) esta casado y presenta una declaracion conjunta y su conyuge tambien trabaja. La cantidad correcta de retencion depende de los ingresos obtenidos de todos los empleos.

\r\n

Tome solo una de las siguientes opciones:

\r\n

(a) Utilice el estimador de retencion de impuestos en www.irs.gov/W4AppSP para calcular su retencion con la mayor precision eneste paso (y los Pasos 3 a 4) o

\r\n

(b) Utilice la Hoja de Trabajo para Multiples Empleos en la pagina 3 y anote el resultado en el Paso 4(c) para calcular una retencion aproximada o

\r\n

(c) Marque este recuadro si solo hay dos empleos en total. Haga lo mismo en el Formulario W-4(SP) para el otro empleo. Esta opcion es precisa para empleos con una paga similar; de lo contrario, se le pueden retener mas impuestos de lo necesario.

\r\n

CONSEJO: Para un resultado preciso, entregue un Formulario W-4(SP) de 2020 en todos los otros empleos. Si usted y/o su conyuge tienen ingresos de trabajo por cuenta propia, incluidos los ingresos como contratista independiente, utilice el estimador de retencion de impuestos.

\r\n

Complete los Pasos 3 a 4(b) en el Formulario W-4(SP) para solo uno de sus empleos. Deje esas lineas en blanco para los otros empleos. (Su calculo de la retencion sera mas preciso si completa los Pasos 3 a 4(b) en el Formulario W-4(SP) para el empleo que le paga el salario mas alto).

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Step 3: Claim Dependents
\r\n
Paso 3: Reclamacion de dependientes
\r\n
\r\n
\r\n
\r\n
\r\n

If your income will be $200,000 or less ($400,000 or less if married filing jointly):

\r\n

Si su ingreso va a ser $200,000 o menos ($400,000 o menos si es casado que presenta una declaracion conjunta):

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

Multiply the number of qualifying children under age 17 by $2,000

Multiplique la cantidad de hijos calificados menores de 17 anos por $2,000

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

Multiply the number of other dependents by $500

Multiplique el numero de otros dependientes por $500

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

Add the amounts above and enter the total here - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3

Sume las cantidades anteriores y anote el total aqui - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Step 4 (optional): Other Adjustments
\r\n
Paso 4 (opcional): Otros ajustes
\r\n
\r\n
\r\n
\r\n

(a) Other income (not from jobs). If you want tax withheld for other income you expect this year that won't have withholding, enter the amount of other income here. This may include interest, dividends, and retirement income - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4(a)

(a) Otros ingresos (no incluya los ingresos de ningun empleo). Si desea que se le retengan impuestos por otros ingresos que espera este ano que no tendran retenciones, anote aqui la cantidad de los otros ingresos. Esto puede incluir intereses, dividendos e ingresos por jubilacion - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4(a)

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

(b) Deductions. If you expect to claim deductions other than the standard deduction and want to reduce your withholding, use the Deductions Worksheet on page 3 and enter the result here - - - - - - - - - - - - - - - 4(b)

(b) Deducciones. Si espera reclamar deducciones diferentes a la deduccion estandar y desea reducir su retencion, utilice la Hoja de Trabajo para Deducciones en la pagina 3 y anote el resultado aqui - - - - 4(b)

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

(c) Extra withholding. Enter any additional tax you want withheld each pay period - - - - - - - - - - - - - - - 4(c)

(c) Retencion adicional. Anote todo impuesto adicional que desee que se le retenga en cada periodo de pago - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4(c)

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n info\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
\r\n
\r\n \r\n
\r\n
\r\n
Step 5: Sign Here
\r\n
Paso 5: Firme aqui
\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
Signature of Employee
\r\n
Firma del empleado
\r\n
\r\n
Press \"Clear\" before generating your signature image.
\r\n
Haga clic en \"borrar\" antes de generar su firma.
\r\n
I agree that the signature and initials will be the electronic representation of my signature and initials for all purposes when I (or my agent) use them on documents, including legally binding contracts - just the same as a pen-and-paper signature or initial.
\r\n
Estoy de acuerdo en que la firma y las iniciales serán la representación electrónica de mi firma e iniciales para todos los propósitos cuando yo (o mi agente) los utilice en los documentos, incluidos los contratos jurídicamente vinculantes - lo mismo que una firma o inicial.
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Sign above
\r\n
Firma aqui
\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","import { Component, OnInit } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { HomeService } from '../../../pages/home/services/home.service';\r\n\r\n@Component({\r\n selector: 'app-clockin-job-modal',\r\n templateUrl: './clockin-job-modal.component.html',\r\n styleUrls: ['./clockin-job-modal.component.css']\r\n})\r\nexport class ClockinJobModalComponent implements OnInit {\r\n portalSettings: any;\r\n employeeInfo: any;\r\n formData: { [key: string]: any } = {};\r\n tcClockIOIgnoreJobPhase: boolean;\r\n jobs: any[] = [];\r\n phases: any[] = [];\r\n prefillJP: boolean;\r\n userAction: string;\r\n\r\n constructor(private homeService: HomeService, private bsModalRef: BsModalRef) { }\r\n\r\n ngOnInit(): void {\r\n this.prefillJP = this.portalSettings.PrefillPerviousJobPhase.ConfigValue == \"1\";\r\n this.tcClockIOIgnoreJobPhase = this.portalSettings.TCClockIOIgnoreJobPhase.ConfigValue == \"1\";\r\n this.formData.selectedJob = null;\r\n this.formData.selectedPhase = null;\r\n this.getJobs();\r\n }\r\n\r\n getJobs() {\r\n this.homeService.getJobs(\"TC\").then((response: any) => {\r\n var jobs = response;\r\n for (var i = 0; i < jobs.length; i++) {\r\n jobs[i].DisplayValue = \"JCCo \" + jobs[i].JCCo + \" - \" + jobs[i].JobDisplayName;\r\n if (this.employeeInfo.LastUsedJCJMKeyID != null && jobs[i].JCJMKeyID == this.employeeInfo.LastUsedJCJMKeyID && this.prefillJP) {\r\n this.formData.selectedJob = jobs[i];\r\n }\r\n }\r\n if (this.formData.selectedJob != null) {\r\n this.getPhases();\r\n }\r\n this.jobs = jobs;\r\n if (this.tcClockIOIgnoreJobPhase) {\r\n this.jobs.unshift({ JCJMKeyID: null, DisplayValue: \"No Job\", JCCo: null, Job: \"\", JobDescription: \"\", JobDisplayName: \"\" });\r\n }\r\n });\r\n }\r\n\r\n jobChanged() {\r\n this.formData.selectedPhase = null;\r\n this.homeService.setJob(this.formData.selectedJob.JCJMKeyID, this.employeeInfo.UserKeyID);\r\n this.getPhases();\r\n }\r\n\r\n getPhases() {\r\n this.phases = [];\r\n if (this.formData.selectedJob?.JCJMKeyID != null) {\r\n this.homeService.getPhasesByJCJMKeyID(this.formData.selectedJob.JCJMKeyID).then((response: any) => {\r\n var phases = response;\r\n this.phases = phases;\r\n if (this.prefillJP) {\r\n for (var i = 0; i < phases.length; i++) {\r\n if (this.employeeInfo.LastUsedJCJPKeyID != null && this.employeeInfo.LastUsedJCJPKeyID == phases[i].JCJPKeyID) {\r\n this.formData.selectedPhase = phases[i];\r\n }\r\n }\r\n }\r\n if (this.tcClockIOIgnoreJobPhase) {\r\n this.phases.unshift({ JCJPKeyID: null, Phase: \"\", PhaseDescription: \"No Phase\", PhaseGroup: null });\r\n }\r\n });\r\n } else {\r\n if (this.tcClockIOIgnoreJobPhase) {\r\n this.phases.unshift({ JCJPKeyID: null, Phase: \"\", PhaseDescription: \"No Phase\", PhaseGroup: null });\r\n }\r\n }\r\n }\r\n\r\n clockInClicked() {\r\n this.userAction = \"Clock In\";\r\n this.bsModalRef.hide();\r\n }\r\n\r\n cancelClicked() {\r\n this.userAction = \"cancel\";\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","
\r\n

Clock In

\r\n
\r\n
\r\n
\r\n
\r\n Job:\r\n \r\n {{job.DisplayValue}}\r\n \r\n
\r\n
\r\n Phase:\r\n \r\n \r\n
{{phase.PhaseDescription}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { HomeService } from '../../../pages/home/services/home.service';\r\n\r\n@Component({\r\n selector: 'app-clockout-modal',\r\n templateUrl: './clockout-modal.component.html',\r\n styleUrls: ['./clockout-modal.component.css']\r\n})\r\nexport class ClockoutModalComponent implements OnInit {\r\n @ViewChild('signaturePad', { static: false }) signaturePad;\r\n\r\n portalSettings: any;\r\n formData: { [key: string]: any } = {};\r\n userAction: any;\r\n customMsg: any;\r\n rawImgData: any;\r\n submitSignImg: any = null;\r\n hideClick: boolean;\r\n showClickMsg: boolean;\r\n requireSign: boolean = true;\r\n signatureNEmpty: boolean;\r\n redBorder: boolean;\r\n panelWidth: number;\r\n\r\n constructor(private homeService: HomeService, private bsModalRef: BsModalRef) {\r\n this.homeService = homeService;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formData.typeSign = false;\r\n this.customMsg = this.portalSettings.CustomVerbiageClockOutSign.ConfigValue;\r\n var width = $(\"#modal_size\").width();\r\n this.panelWidth = (width > 550 ? 550 : width) + 30;\r\n }\r\n\r\n clockOutClicked() {\r\n this.checkSigned();\r\n if (this.formData.typeSign) {\r\n this.userAction = this.rawImgData;\r\n this.bsModalRef.hide();\r\n }\r\n else if (this.signatureNEmpty) {\r\n this.userAction = this.signaturePad.toDataURL().replace(/^data:image\\/(png|jpg);base64,/, \"\");\r\n this.bsModalRef.hide();\r\n }\r\n };\r\n\r\n cancelClicked() {\r\n this.userAction = \"close\";\r\n this.bsModalRef.hide();\r\n };\r\n\r\n clickSign(type: string) {\r\n if (this.signaturePad.isEmpty()) {\r\n this.formData.typeSign = true;\r\n this.homeService.getTypeSign(type).then((response: any) => {\r\n this.rawImgData = response;\r\n this.submitSignImg = \"data:image/png;base64,\" + response;\r\n });\r\n this.hideClick = true;\r\n this.showClickMsg = false;\r\n } else {\r\n this.showClickMsg = true;\r\n }\r\n }\r\n\r\n checkSigned() {\r\n if (this.signaturePad.isEmpty()) {\r\n this.redBorder = true;\r\n } else {\r\n this.signatureNEmpty = true;\r\n this.redBorder = false;\r\n }\r\n }\r\n\r\n clear() {\r\n if (this.signaturePad != null) {\r\n this.signaturePad.clear();\r\n }\r\n this.signatureNEmpty = false;\r\n this.rawImgData = null;\r\n this.submitSignImg = null;\r\n this.formData.typeSign = false;\r\n this.showClickMsg = false;\r\n this.hideClick = false;\r\n }\r\n}\r\n","
\r\n Clock Out\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Press \"Clear\" before generating your signature image.
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Sign above
\r\n \r\n \r\n
By signing above, I agree that the signature and initials will be the electronic representation of my signature and initials for all purposes when I (or my agent) use them on documents, including legally binding contracts - just the same as a pen-and-paper signature or initial.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport moment from 'moment';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { CurrencyMaskInputMode } from \"ngx-currency\";\r\nimport { EmployeeService } from './../../../pages/employee/services/employee.service';\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { EmployeeInfoService } from '../../../core/services/employee-info.service';\r\nimport { EditExpenseModalComponent } from '../../employee/expense/edit-expense-modal/edit-expense-modal.component';\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { HomeService } from './../../../pages/home/services/home.service';\r\nimport {\r\n PdfViewerComponent, LinkAnnotationService, BookmarkViewService, MagnificationService,\r\n ThumbnailViewService, ToolbarService, NavigationService, SignatureFieldSettings,\r\n AnnotationService, TextSearchService, TextSelectionService,\r\n PrintService, FormDesignerService, FormFieldsService, ValidateFormFieldsArgs\r\n} from '@syncfusion/ej2-angular-pdfviewer';\r\n@Component({\r\n selector: 'app-confirmation-modal',\r\n templateUrl: './confirmation-modal.component.html',\r\n styleUrls: ['./confirmation-modal.component.css'],\r\n providers: [LinkAnnotationService, BookmarkViewService, MagnificationService,\r\n ThumbnailViewService, ToolbarService, NavigationService, SignatureFieldSettings,\r\n AnnotationService, TextSearchService, TextSelectionService,\r\n PrintService, FormDesignerService, FormFieldsService]\r\n})\r\nexport class ConfirmationModalComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() selectedEmployee: any;\r\n @Input() errorMsg: string;\r\n public pdfviewerControl: PdfViewerComponent;\r\n expenseData: { [key: string]: any } = {};\r\n options: { [key: string]: any } = {};\r\n currencySymbol: string;\r\n format: string;\r\n portalSettings: any;\r\n employeeInfo: any;\r\n formData: { [key: string]: any } = {};\r\n extenion: string;\r\n showViewer: boolean;\r\n isOpen: any[];\r\n savedFiles: any[];\r\n newFiles: any[];\r\n expensePostingType: string;\r\n attachmentList: any[];\r\n bdatePickerOptions: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean };\r\n mobileMode: boolean;\r\n catList: any[] = [];\r\n showExpenseCategory: boolean = false;\r\n service: any;\r\n\r\n constructor(public activeModal: NgbActiveModal, private modalService: NgbModal, portalSettingsService: PortalSettingsService, employeeInfoService: EmployeeInfoService,\r\n private employeeService: EmployeeService, private utilityService: UtilityService, private homeService: HomeService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n this.format = utilityService.getDateFormat().toUpperCase();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.service = \"/Api/PdfViewer\";\r\n this.bdatePickerOptions = { dateInputFormat: this.format.toUpperCase(), containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false };\r\n this.formData.selectedAttachment = {}\r\n this.getExpenseModel();\r\n this.getCatg();\r\n this.showExpenseCategory = this.portalSettings.ExShowExpenseCategory.ConfigValue == \"1\";\r\n var currencyFormatSymbols = this.portalSettings.CurrencyFormatPerPRCo.ConfigValue;\r\n this.expensePostingType = this.portalSettings.ExpensePostingType.ConfigValue;\r\n this.currencySymbol = \"$\";\r\n if (currencyFormatSymbols && currencyFormatSymbols.trim() != \"\") {\r\n currencyFormatSymbols.split(\",\").forEach((val: string) => {\r\n var arrayEntry = val.split(\":\");\r\n var currencyObject = { PRCo: parseInt(arrayEntry[0]), Currency: arrayEntry[1] }\r\n if (this.employeeInfo && currencyObject.PRCo == this.employeeInfo.PRCo) {\r\n this.currencySymbol = currencyObject.Currency;\r\n }\r\n });\r\n }\r\n this.mobileMode = this.mobileAndTabletcheck();\r\n this.options = { align: 'left', prefix: this.currencySymbol, precision: 2, nullable: true, inputMode: CurrencyMaskInputMode.NATURAL };\r\n }\r\n\r\n getExpenseModel() {\r\n var userKeyID = this.selectedEmployee ? this.selectedEmployee.UserKeyID : null;\r\n this.employeeService.getPendingInformationByID(userKeyID, this.data.newID).then((response: any) => {\r\n this.expenseData = response[0];\r\n this.expenseData.ExpenseDate = new Date();\r\n this.getAttachment();\r\n })\r\n }\r\n\r\n getCatg() {\r\n this.employeeService.getCategory().then((response: any) => {\r\n if (response != null) {\r\n this.catList = [];\r\n response.forEach((val: any) => {\r\n if (val.IsActive)\r\n this.catList.push(val);\r\n });\r\n }\r\n });\r\n this.closeModal();\r\n }\r\n\r\n mobileAndTabletcheck() {\r\n var check = false;\r\n (function (a) { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true })(navigator.userAgent || navigator.vendor);\r\n return check;\r\n }\r\n\r\n attachmentChange() {\r\n this.extenion = this.formData.selectedAttachment.AttachmentFileName.substr(this.formData.selectedAttachment.AttachmentFileName.lastIndexOf(\".\"), this.formData.selectedAttachment.AttachmentFileName.length);\r\n if (this.utilityService.checkFileExtension(this.extenion)) {\r\n this.showViewer = true;\r\n this.homeService.getPdfData(this.formData.selectedAttachment.FileAttachmentID).then((response: any) => {\r\n var pdfviewer = (document.getElementById('pdfViewerConfirmation')).ej2_instances[0];\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"SubmitForm\"), false);\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"OpenOption\"), false);\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"CommentTool\"), false);\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"PrintOption\"), false);\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"AnnotationEditTool\"), false);\r\n pdfviewer.toolbar.showToolbarItem(new Array(\"FormDesignerEditTool\"), false);\r\n pdfviewer.documentPath = \"data:application/pdf;base64,\" + (response);\r\n pdfviewer.downloadFileName = this.formData.selectedAttachment.AttachmentFileName.substring(0, this.formData.selectedAttachment.AttachmentFileName.indexOf('.')) + \".pdf\";\r\n }).catch((error: any) => {\r\n\r\n });\r\n } else {\r\n this.showViewer = false;\r\n }\r\n }\r\n\r\n getAttachment() {\r\n this.savedFiles = [];\r\n this.newFiles = [];\r\n this.employeeService.getLineAttachments(this.expenseData.ExpenseItemID).then((response: any) => {\r\n this.savedFiles = response;\r\n if (this.savedFiles && this.savedFiles.length > 0) {\r\n this.formData.selectedAttachment = this.savedFiles[0];\r\n }\r\n this.attachmentList = [];\r\n response.forEach((val: { AttachmentFileName: string; }) => {\r\n var tempExten = val.AttachmentFileName.slice(val.AttachmentFileName.lastIndexOf(\".\"), val.AttachmentFileName.length);\r\n if (tempExten.toLowerCase() == \".jpg\" || tempExten.toLowerCase() == \".jpeg\" || tempExten.toLowerCase() == \".png\" || tempExten.toLowerCase() == \".tif\" || tempExten.toLowerCase() == \".tiff\")\r\n this.attachmentList.push(val);\r\n this.attachmentChange();\r\n });\r\n });\r\n }\r\n\r\n openEditExpenseModal() {\r\n this.openModal();\r\n this.employeeService.insertUpdateExpenseItem(\r\n this.expenseData.ExpenseItemID, null, this.expenseData.Description, this.expenseData.Amount,\r\n null, null, null, null, (this.selectedEmployee == null ? this.data.SubmittedByUserKeyID : this.selectedEmployee.UserKeyID), null, null, null, null, null, null, null, null, null, null, moment(this.expenseData.ExpenseDate, this.format.toUpperCase()).format(\"YYYY-MM-DD\")\r\n ).then((reponse: any) => {\r\n this.closeModal();\r\n let modalRef = this.modalService.open(EditExpenseModalComponent,{size: 'lg', backdrop:'static'});\r\n modalRef.componentInstance.data = this.expenseData;\r\n modalRef.componentInstance.mode = 'edit';\r\n modalRef.componentInstance.selectedEmployee = this.selectedEmployee;\r\n modalRef.componentInstance.where = 'submit';\r\n modalRef.result.then((result) => {\r\n this.activeModal.close();\r\n }).catch((res) => { });\r\n });\r\n };\r\n\r\n cancelClicked() {\r\n this.openModal();\r\n this.employeeService.insertUpdateExpenseItem(\r\n this.expenseData.ExpenseItemID, this.expenseData.ExpenseCatgID, this.expenseData.Description, this.expenseData.Amount, this.expenseData.TaxAmount, this.expenseData.Vendor, this.expenseData.JCCo,\r\n (this.expenseData.Job != null ? this.expenseData.Job.DatabaseValue : null), (this.selectedEmployee == null ? this.data.SubmittedByUserKeyID : this.selectedEmployee.UserKeyID), this.expenseData.CustomerName,\r\n this.expenseData.Phase, (this.expensePostingType == \"P\" ? null : this.expenseData.GLCo), (this.expensePostingType == \"P\" ? null : this.expenseData.GLAcct), this.expenseData.SMCo, this.expenseData.SMWorkOrder,\r\n this.expenseData.EMCo, this.expenseData.Units, this.expenseData.UM, this.expenseData.UnitCost, moment(this.expenseData.ExpenseDate, this.format.toUpperCase()).format(\"YYYY-MM-DD\"),\r\n this.expenseData.ReimburseOrMileage, this.expenseData.CustomerCount, this.expenseData.OurFirmCount, this.expenseData.Note, this.expenseData.JCCType, null, this.expenseData.TaxCode, this.expenseData.PO,\r\n this.expenseData.POItem, this.expenseData.SL, this.expenseData.SLItem, this.expenseData.WO, this.expenseData.WOItem, this.expenseData.Equip, this.expenseData.CostCode, this.expenseData.EMCType,\r\n this.expenseData.CompType, this.expenseData.Component, this.expenseData.INCo, this.expenseData.Loc, this.expenseData.Material, this.expenseData.Scope, this.expenseData.POItemLine, this.expenseData.SMCostType,\r\n this.expenseData.ItemType, this.expenseData.EarnCode, null, this.expenseData.TaxType\r\n ).then((reponse: any) => {\r\n this.activeModal.close('close');\r\n this.closeModal();\r\n });\r\n }\r\n\r\n openModal() {\r\n document.getElementById('modalShare').style.display = 'block';\r\n document.getElementById('fadeShare').style.display = 'block';\r\n }\r\n\r\n closeModal() {\r\n document.getElementById('modalShare').style.display = 'none';\r\n document.getElementById('fadeShare').style.display = 'none';\r\n }\r\n\r\n}\r\n\r\n","
\r\n

Expense Added

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n You have successfully added a new expense.\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
0 && showExpenseCategory\">\r\n
\r\n \r\n \r\n {{data.ExpenseCatgName}}\r\n \r\n
\r\n
\r\n\r\n
0\">\r\n
\r\n
\r\n \r\n \r\n {{data.AttachmentFileName}}\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 {{errorMsg}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { HomeService } from '../../../pages/home/services/home.service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-paperless-modal',\r\n templateUrl: './paperless-modal.component.html',\r\n styleUrls: ['./paperless-modal.component.css']\r\n})\r\nexport class PaperlessModalComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() portalSettings: any;\r\n mobileMode: boolean;\r\n processing: boolean = false;\r\n formData: { [key: string]: any } = {};\r\n postData: { [key: string]: any } = {};\r\n cellCarriers: any[] = [];\r\n inValidPhone: boolean;\r\n emptyCarrierList: boolean;\r\n carrierMissingMsg: string = 'Cell Phone Carrier is not set in Vista';\r\n allowInfoChange: boolean;\r\n showPaperlessCarrier: boolean;\r\n requirePersonalInfo: boolean;\r\n personalInfoLoaded: boolean;\r\n phoneMask: string;\r\n companyName: string;\r\n userAction: string;\r\n\r\n constructor(private homeService: HomeService, public activeModal: NgbActiveModal) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.mobileMode = this.mobileAndTabletcheck();\r\n this.allowInfoChange = this.portalSettings.AllowPaperlessInfoChange.ConfigValue == \"1\";\r\n this.showPaperlessCarrier = this.portalSettings.ShowPaperlessCarrier.ConfigValue == \"1\";\r\n this.requirePersonalInfo = this.portalSettings.PaperlessPersonalInfoRequire.ConfigValue == \"1\";\r\n this.phoneMask = this.portalSettings.PhoneMask.ConfigValue ? this.portalSettings.PhoneMask.ConfigValue.replace(/9/g, '_') : \"\";\r\n this.companyName = this.portalSettings.HRPortalName.ConfigValue;\r\n this.formData.EmployeeCountry = this.data.EmplCountry;\r\n this.formData.optOutSMS = this.data.OptOutSMS == true ? true : false;\r\n this.formData.showPayStub = this.portalSettings.ShowPaystubPaperless.ConfigValue == 1 ? true : false;\r\n this.formData.showW2 = this.portalSettings.ShowW2Paperless.ConfigValue == 1 ? true : false;\r\n this.formData.showC1095 = this.portalSettings.ShowC1095Paperless.ConfigValue == 1 ? true : false;\r\n this.formData.ElectronicPaystubConsent = this.data.ConsentPaystubs == true ? \"1\" : (this.data.ConsentPaystubs == false ? \"0\" : null);\r\n this.formData.W2DocumentConsent = this.data.ConsentW2T4 == true ? \"1\" : (this.data.ConsentW2T4 == false ? \"0\" : null);\r\n this.formData.C1095DocumentConsent = this.data.ConsentACA1095 == true ? \"1\" : (this.data.ConsentACA1095 == false ? \"0\" : null);\r\n this.formData.ElectronicPaystubVerbiage = this.portalSettings.ConsentPaystubsVerbiage.ConfigValue;\r\n this.formData.W2DocumentVerbiage = this.portalSettings.ConsentOtherDocsVerbiage.ConfigValue;\r\n this.formData.C1095DocumentVerbiage = this.portalSettings.ConsentC1095DocsVerbiage.ConfigValue;\r\n\r\n if (this.allowInfoChange) {\r\n this.homeService.getUserFields().then((response: any[]) => {\r\n var userFields = response;\r\n for (var i = 0; i < userFields.length; i++) {\r\n var field = userFields[i];\r\n if (field.FieldVPColumnName == \"CellPhone\" && field.FieldVPViewName != \"HRDP\") {\r\n if (field.PendingValue != null) {\r\n this.formData.CellPhoneOrig = field.PendingValue;\r\n this.formData.CellPhone = field.PendingValue;\r\n this.formData.CellPending = true;\r\n this.formData.CellPhoneFieldUpdateMode = field.FieldUpdateMode;\r\n }\r\n else {\r\n this.formData.CellPhoneOrig = field.FieldValue;\r\n this.formData.CellPhone = field.FieldValue;\r\n this.formData.CellPending = false;\r\n this.formData.CellPhoneFieldUpdateMode = field.FieldUpdateMode;\r\n }\r\n\r\n this.formData.CellLabel = field.FieldLabel;\r\n }\r\n if (field.FieldVPColumnName == \"Email\" && field.FieldVPViewName != \"HRDP\") {\r\n if (field.PendingValue != null) {\r\n this.formData.EmailOrig = field.PendingValue;\r\n this.formData.Email = field.PendingValue;\r\n this.formData.EmailPending = true;\r\n this.formData.EmailFieldUpdateMode = field.FieldUpdateMode;\r\n }\r\n else {\r\n this.formData.EmailOrig = field.FieldValue;\r\n this.formData.Email = field.FieldValue;\r\n this.formData.EmailPending = false;\r\n this.formData.EmailFieldUpdateMode = field.FieldUpdateMode;\r\n }\r\n\r\n this.formData.EmailLabel = field.FieldLabel;\r\n }\r\n if (field.FieldVPColumnName == \"udCellPhoneCarrier\" && field.FieldVPViewName != \"HRDP\") {\r\n if (field.PendingValue != null) {\r\n this.formData.CellCarrierOrig = field.PendingValue;\r\n this.formData.CellCarrier = field.PendingValue;\r\n this.formData.CellCarrierPending = true;\r\n this.formData.CellCarrierFieldUpdateMode = field.FieldUpdateMode;\r\n }\r\n else {\r\n this.formData.CellCarrierOrig = field.FieldValue;\r\n this.formData.CellCarrier = field.FieldValue;\r\n this.formData.CellCarrierPending = false;\r\n this.formData.CellCarrierFieldUpdateMode = field.FieldUpdateMode;\r\n }\r\n\r\n this.formData.CellCarrierLabel = field.FieldLabel;\r\n //238277: Remove the error message to be displayed\r\n this.carrierMissingMsg = null;\r\n this.getComboItems(field.FieldID);\r\n }\r\n this.personalInfoLoaded = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n mobileAndTabletcheck() {\r\n var check = false;\r\n (function (a) { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true })(navigator.userAgent || navigator.vendor);\r\n return check;\r\n }\r\n\r\n validatePhone() {\r\n if (this.phoneMask != null) {\r\n var stringReplace = \"/[\\D\\s]/gi\";\r\n var maskLength = this.portalSettings.PhoneMask.ConfigValue.replace(stringReplace, '').length;\r\n var origVal = this.formData.CellPhone.replace(stringReplace, '');\r\n\r\n if (origVal.length != 0 && origVal.length < maskLength) {\r\n this.inValidPhone = true;\r\n } else {\r\n this.inValidPhone = false;\r\n }\r\n }\r\n }\r\n\r\n getComboItems(fieldID: any) {\r\n //hardcoded for just cell carriers, but can be modified to do more\r\n this.homeService.getComboItemsByFieldID(fieldID).then((response: any) => {\r\n this.cellCarriers = [];\r\n this.cellCarriers = this.cellCarriers.concat(response);\r\n\r\n if (this.cellCarriers.length == 0) {\r\n this.emptyCarrierList = true;\r\n }\r\n });\r\n }\r\n\r\n confirmClicked() {\r\n this.processing = true;\r\n if (this.allowInfoChange)\r\n this.updateInfo();\r\n else\r\n this.confirmSettings();\r\n }\r\n\r\n updateInfo() {\r\n this.postData = {};\r\n if (((this.allowInfoChange && this.formData.CellPhoneOrig == this.formData.CellPhone && this.formData.EmailOrig == this.formData.Email) || !this.allowInfoChange)\r\n && ((this.showPaperlessCarrier && this.formData.CellCarrierOrig == this.formData.CellCarrier) || !this.showPaperlessCarrier)) {\r\n this.confirmSettings();\r\n }\r\n else {\r\n if (this.allowInfoChange) {\r\n if (this.formData.CellPhoneOrig != this.formData.CellPhone) {\r\n this.postData.CellPhone = this.formData.CellPhone;\r\n }\r\n if (this.formData.EmailOrig != this.formData.Email) {\r\n this.postData.Email = this.formData.Email;\r\n }\r\n }\r\n if (this.showPaperlessCarrier) {\r\n if (this.formData.CellCarrierOrig != this.formData.CellCarrier) {\r\n this.postData.udCellPhoneCarrier = this.formData.CellCarrier;\r\n }\r\n }\r\n this.homeService.personalInfoUpdate(JSON.stringify(this.postData)).then((response: any) => {\r\n if (response.success) {\r\n this.confirmSettings();\r\n }\r\n });\r\n }\r\n }\r\n\r\n confirmSettings() {\r\n var firstRadio = this.formData.ElectronicPaystubConsent == \"1\" ? true : false;\r\n var secondRadio = this.formData.W2DocumentConsent == \"1\" ? true : false;\r\n var thirdRadio = this.formData.C1095DocumentConsent == \"1\" ? true : false;\r\n this.homeService.setDocConsent(this.formData.CellPhone, this.formData.Email, firstRadio, secondRadio, thirdRadio, this.formData.optOutSMS).then((response: any) => {\r\n if (response.success) {\r\n this.userAction = \"confirm\";\r\n this.activeModal.close();\r\n }\r\n });\r\n }\r\n\r\n updateCellPhone(data: string) {\r\n this.formData.CellPhone = data;\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","
\r\n Thanks for logging into the {{companyName}}\r\n
\r\n
\r\n

Please confirm your paperless document settings.

\r\n
\r\n
\r\n Paperless Paystub Delivery Consent\r\n

{{formData.ElectronicPaystubVerbiage}}

\r\n
\r\n
\r\n Yes, I consent to view my paystubs electronically
\r\n I do NOT want to view my paystubs electronically
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n W-2T4 Paperless Delivery Consent\r\n

{{formData.W2DocumentVerbiage}}

\r\n
\r\n
\r\n Yes, I consent to view my W-2T4 electronically
\r\n I do NOT want to view my W-2T4 electronically
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 1095-C Paperless Delivery Consent\r\n

{{formData.C1095DocumentVerbiage}}

\r\n
\r\n
\r\n Yes, I consent to view my Form 1095-C electronically
\r\n I do NOT want to view my Form 1095-C electronically
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Personal Information\r\n
\r\n
\r\n
\r\n
\r\n {{formData.CellLabel}}: \r\n \r\n \r\n Pending\r\n \r\n \r\n\r\n
\r\n
\r\n {{formData.CellCarrierLabel}}: \r\n \r\n \r\n Pending\r\n \r\n \r\n {{carrier.DisplayValue}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{formData.EmailLabel}}: \r\n \r\n \r\n Pending\r\n \r\n \r\n
\r\n
\r\n Opt out of non-emergency SMS?\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \"Loading...\"\r\n \r\n
\r\n\r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-password-warning-modal',\r\n templateUrl: './password-warning-modal.component.html',\r\n styleUrls: ['./password-warning-modal.component.css']\r\n})\r\nexport class PasswordWarningModalComponent {\r\n\r\n constructor() { }\r\n\r\n changePassword() {\r\n window.location.href = \"/Account/ChangeAccountPassword\";\r\n }\r\n}\r\n","
\r\n

Expired Password Warning

\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 { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { ngfModule } from 'angular-file';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { NgxSignaturepadModule } from 'ngx-signaturepad2';\r\nimport { QuillModule } from 'ngx-quill';\r\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\r\nimport { NgxCurrencyModule } from 'ngx-currency';\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\nimport {\r\n PdfViewerModule, LinkAnnotationService, BookmarkViewService,\r\n MagnificationService, ThumbnailViewService, ToolbarService,\r\n NavigationService, TextSearchService, TextSelectionService,\r\n PrintService, FormDesignerService, FormFieldsService, AnnotationService, ValidateFormFieldsArgs\r\n} from '@syncfusion/ej2-angular-pdfviewer';\r\n\r\n//Modal Component\r\nimport { AddAttachmentChecklistTemplateModalComponent } from './shared/add-attachment-checklist-template-modal/add-attachment-checklist-template-modal.component';\r\nimport { AddAttachmentModalComponent } from './shared/add-attachment-modal/add-attachment-modal.component';\r\nimport { AddressConfirmationModalComponent } from './employee/personal-info/address-confirmation-modal/address-confirmation-modal.component';\r\nimport { AdvanceItemModalComponent } from './checklist/manage-template/advance-item-modal/advance-item-modal.component';\r\nimport { CancelHolidayModalComponent } from './timeoff/cancel-holiday-modal/cancel-holiday-modal.component';\r\nimport { ChecklistItemClickSignModalComponent } from './shared/checklist-item-click-sign-modal/checklist-item-click-sign-modal.component';\r\nimport { ClockinJobModalComponent } from './home/clockin-job-modal/clockin-job-modal.component';\r\nimport { ClockoutModalComponent } from './home/clockout-modal/clockout-modal.component';\r\nimport { ConfirmationModalComponent } from './home/confirmation-modal/confirmation-modal.component';\r\nimport { CopyExpenseLineModalComponent } from './employee/expense/copy-expense-line-modal/copy-expense-line-modal.component';\r\nimport { CreateNewChecklistModalComponent } from './checklist/create-new-checklist-modal/create-new-checklist-modal.component';\r\nimport { CreateNewTemplateModalComponent } from './checklist/templates/create-new-template-modal/create-new-template-modal.component';\r\nimport { DeleteBulletinModalComponent } from './admin/delete-bulletin-modal/delete-bulletin-modal.component';\r\nimport { DeleteOnboardEmployeeModalComponent } from './hiring/delete-onboard-employee-modal/delete-onboard-employee-modal.component';\r\nimport { DeleteResetOnboardTaskModalComponent } from './hiring/delete-reset-onboard-task-modal/delete-reset-onboard-task-modal.component';\r\nimport { DeleteUserGroupMembersModalComponent } from './admin/delete-user-group-members-modal/delete-user-group-members-modal.component';\r\nimport { DistributeChecklistsModalComponent } from './checklist/distribute-checklists-modal/distribute-checklists-modal.component';\r\nimport { DownloadAttachmentModalComponent } from './employee/benefit/download-attachment-modal/download-attachment-modal.component';\r\nimport { EditDependentModalComponent } from './employee/edit-dependent-modal/edit-dependent-modal.component';\r\nimport { EditExpenseModalComponent } from './employee/expense/edit-expense-modal/edit-expense-modal.component';\r\nimport { EditLongPromptModalComponent } from './shared/edit-long-prompt-modal/edit-long-prompt-modal.component';\r\nimport { EditPersonalModalComponent } from './careers/edit-personal-modal/edit-personal-modal.component';\r\nimport { EnableChecklistWorkflowModalComponent } from './checklist/manage-template/enable-checklist-workflow-modal/enable-checklist-workflow-modal.component';\r\nimport { ExpenseBulkUpdateModalComponent } from './employee/expense/expense-bulk-update-modal/expense-bulk-update-modal.component';\r\nimport { FinalizeSubmitedModalComponent } from './employee/benefit/finalize-submited-modal/finalize-submited-modal.component';\r\nimport { FinalizeSubmitSignModalComponent } from './employee/benefit/finalize-submit-sign-modal/finalize-submit-sign-modal.component';\r\nimport { FloatingModalComponent } from './timeoff/floating-modal/floating-modal.component';\r\nimport { I9GenModalComponent } from './hiring/i9-gen-modal/i9-gen-modal.component';\r\nimport { InitializedAttachModalComponent } from './hiring/initialized-attach-modal/initialized-attach-modal.component';\r\nimport { InitializeModalComponent } from './performance/initialize-modal/initialize-modal.component';\r\nimport { MultiMatchCreditCardModalComponent } from './employee/expense/multi-match-credit-card-modal/multi-match-credit-card-modal.component';\r\nimport { NoteDetailActionModalComponent } from './hiring/note-detail-action-modal/note-detail-action-modal.component';\r\nimport { NoteModalComponent } from './shared/note-modal/note-modal.component';\r\nimport { OnboardingInvitationModalComponent } from './hiring/onboarding-invitation-modal/onboarding-invitation-modal.component';\r\nimport { OnboardInitModalComponent } from './hiring/onboard-init-modal/onboard-init-modal.component';\r\nimport { OnboardSubmittedModalComponent } from './careers/onboard-submitted-modal/onboard-submitted-modal.component';\r\nimport { PaperlessModalComponent } from './home/paperless-modal/paperless-modal.component';\r\nimport { PasswordWarningModalComponent } from './home/password-warning-modal/password-warning-modal.component';\r\nimport { RegisterTrainingPastClassesAttachmentModalComponent } from './employee/training/register-training-past-classes-attachment-modal/register-training-past-classes-attachment-modal.component';\r\nimport { RejectAllBenefitsModalComponent } from './employee/benefit/reject-all-benefits-modal/reject-all-benefits-modal.component';\r\nimport { RejectedNotesModalComponent } from './employee/expense/rejected-notes-modal/rejected-notes-modal.component';\r\nimport { RemoveClassModalComponent } from './employee/training/remove-class-modal/remove-class-modal.component';\r\nimport { ReviewCashoutRequestModalComponent } from './timeoff/review-cashout-request-modal/review-cashout-request-modal.component';\r\nimport { ReviewDDModalComponent } from './hiring/review-ddmodal/review-ddmodal.component';\r\nimport { ReviewECModalComponent } from './hiring/review-ecmodal/review-ecmodal.component';\r\nimport { ReviewI9ModalComponent } from './hiring/review-i9-modal/review-i9-modal.component';\r\nimport { ReviewIdenModalComponent } from './hiring/review-iden-modal/review-iden-modal.component';\r\nimport { ReviewOnboardingModalComponent } from './hiring/review-onboarding-modal/review-onboarding-modal.component';\r\nimport { ReviewTimeoffRequestModalComponent } from './timeoff/review-timeoff-request-modal/review-timeoff-request-modal.component';\r\nimport { ReviewW4ModalComponent } from './hiring/review-w4-modal/review-w4-modal.component';\r\nimport { SendBulletinEmailModalComponent } from './admin/send-bulletin-email-modal/send-bulletin-email-modal.component';\r\nimport { SubmitChecklistSignModalComponent } from './shared/submit-checklist-sign-modal/submit-checklist-sign-modal.component';\r\nimport { SubmitExpenseModalComponent } from './employee/expense/submit-expense-modal/submit-expense-modal.component';\r\nimport { TimeoutModalComponent } from './shared/timeout-modal/timeout-modal.component';\r\nimport { TrainingBulkUpdateModalComponent } from './employee/training/training-bulk-update-modal/training-bulk-update-modal.component';\r\nimport { UpdateBenefitsModalComponent } from './employee/benefit/update-benefits-modal/update-benefits-modal.component';\r\nimport { UpdateDependentAddressModalComponent } from './employee/personal-info/update-dependent-address-modal/update-dependent-address-modal.component';\r\nimport { UserGroupModalComponent } from './shared/user-group-modal/user-group-modal.component';\r\nimport { ViewChecklistWorkflowModalComponent } from './checklist/view-checklist-workflow-modal/view-checklist-workflow-modal.component';\r\nimport { ViewCompanyHolidayModalComponent } from './timeoff/view-company-holiday-modal/view-company-holiday-modal.component';\r\nimport { ViewDetailModalComponent } from './employee/training/view-detail-modal/view-detail-modal.component';\r\nimport { ViewEditReviewerModalComponent } from './performance/view-edit-reviewer-modal/view-edit-reviewer-modal.component';\r\nimport { ViewGroupTimeoffModalComponent } from './timeoff/view-group-timeoff-modal/view-group-timeoff-modal.component';\r\nimport { ViewReportHistoryModalComponent } from './employee/benefit/view-report-history-modal/view-report-history-modal.component';\r\nimport { WebixDatatablecomponent } from './timeoff/view-group-timeoff-modal/webix-datatable.component';\r\nimport { LookupModalComponent } from './office/lookup-modal/lookup-modal.component';\r\n//shared Modal imports\r\nimport { AlertModalComponent } from './shared/alert-modal/alert-modal.component';\r\nimport { ErrorModalComponent } from './shared/error-modal/error-modal.component';\r\nimport { WarningModalComponent } from './shared/warning-modal/warning-modal.component';\r\nimport { ManageCatModalComponent } from './admin/expense-dashboard/manage-cat-modal/manage-cat-modal.component';\r\nimport { ManageMileageRateModalComponent } from './admin/expense-dashboard/manage-mileage-rate-modal/manage-mileage-rate-modal.component';\r\nimport { ReProcessExpenseModalComponent } from './admin/expense-dashboard/re-process-expense-modal/re-process-expense-modal.component';\r\nimport { EditVendorModalComponent } from './admin/expense-dashboard/edit-vendor-modal/edit-vendor-modal.component';\r\nimport { SendReminderExpenseModalComponent } from './admin/expense-dashboard/send-reminder-expense-modal/send-reminder-expense-modal.component';\r\nimport { ProcessExpenseModalComponent } from './admin/expense-dashboard/process-expense-modal/process-expense-modal.component';\r\nimport { ExpenseApprovalModalComponent } from './admin/expense-dashboard/expense-approval-modal/expense-approval-modal.component';\r\nimport { ExcelExportComponent } from './office/excel-export/excel-export.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AddAttachmentChecklistTemplateModalComponent,\r\n AddAttachmentModalComponent,\r\n AddressConfirmationModalComponent,\r\n AdvanceItemModalComponent,\r\n AlertModalComponent,\r\n CancelHolidayModalComponent,\r\n ChecklistItemClickSignModalComponent,\r\n ClockinJobModalComponent,\r\n ClockoutModalComponent,\r\n ConfirmationModalComponent,\r\n CopyExpenseLineModalComponent,\r\n CreateNewChecklistModalComponent,\r\n CreateNewTemplateModalComponent,\r\n DeleteBulletinModalComponent,\r\n DeleteOnboardEmployeeModalComponent,\r\n DeleteResetOnboardTaskModalComponent,\r\n DeleteUserGroupMembersModalComponent,\r\n DistributeChecklistsModalComponent,\r\n DownloadAttachmentModalComponent,\r\n EditDependentModalComponent,\r\n EditExpenseModalComponent,\r\n EditLongPromptModalComponent,\r\n EditPersonalModalComponent,\r\n EnableChecklistWorkflowModalComponent,\r\n ErrorModalComponent,\r\n ExpenseBulkUpdateModalComponent,\r\n FinalizeSubmitedModalComponent,\r\n FinalizeSubmitSignModalComponent,\r\n FloatingModalComponent,\r\n I9GenModalComponent,\r\n InitializedAttachModalComponent,\r\n InitializeModalComponent,\r\n MultiMatchCreditCardModalComponent,\r\n NoteDetailActionModalComponent,\r\n NoteModalComponent,\r\n OnboardingInvitationModalComponent,\r\n OnboardInitModalComponent,\r\n OnboardSubmittedModalComponent,\r\n PaperlessModalComponent,\r\n PasswordWarningModalComponent,\r\n RegisterTrainingPastClassesAttachmentModalComponent,\r\n RejectAllBenefitsModalComponent,\r\n RejectedNotesModalComponent,\r\n RemoveClassModalComponent,\r\n ReviewCashoutRequestModalComponent,\r\n ReviewDDModalComponent,\r\n ReviewECModalComponent,\r\n ReviewI9ModalComponent,\r\n ReviewIdenModalComponent,\r\n ReviewOnboardingModalComponent,\r\n ReviewTimeoffRequestModalComponent,\r\n ReviewW4ModalComponent,\r\n SendBulletinEmailModalComponent,\r\n SubmitChecklistSignModalComponent,\r\n SubmitExpenseModalComponent,\r\n TimeoutModalComponent,\r\n TrainingBulkUpdateModalComponent,\r\n UpdateBenefitsModalComponent,\r\n UpdateDependentAddressModalComponent,\r\n UserGroupModalComponent,\r\n ViewChecklistWorkflowModalComponent,\r\n ViewCompanyHolidayModalComponent,\r\n ViewDetailModalComponent,\r\n ViewEditReviewerModalComponent,\r\n ViewGroupTimeoffModalComponent,\r\n ViewReportHistoryModalComponent,\r\n WarningModalComponent,\r\n WebixDatatablecomponent,\r\n ManageCatModalComponent,\r\n ManageMileageRateModalComponent,\r\n ReProcessExpenseModalComponent,\r\n EditVendorModalComponent,\r\n SendReminderExpenseModalComponent,\r\n ProcessExpenseModalComponent,\r\n ExpenseApprovalModalComponent,\r\n WebixDatatablecomponent,\r\n LookupModalComponent,\r\n ExcelExportComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgSelectModule,\r\n FormsModule,\r\n SharedModule,\r\n ngfModule,\r\n NgbModule,\r\n BsDatepickerModule,\r\n NgxSignaturepadModule,\r\n QuillModule,\r\n PaginationModule,\r\n NgxCurrencyModule,\r\n ImageCropperModule,\r\n PdfViewerModule\r\n ],\r\n exports: [\r\n AddAttachmentChecklistTemplateModalComponent,\r\n AddAttachmentModalComponent,\r\n AddressConfirmationModalComponent,\r\n AdvanceItemModalComponent,\r\n AlertModalComponent,\r\n CancelHolidayModalComponent,\r\n ChecklistItemClickSignModalComponent,\r\n ClockinJobModalComponent,\r\n ClockoutModalComponent,\r\n ConfirmationModalComponent,\r\n CopyExpenseLineModalComponent,\r\n CreateNewChecklistModalComponent,\r\n CreateNewTemplateModalComponent,\r\n DeleteBulletinModalComponent,\r\n DeleteOnboardEmployeeModalComponent,\r\n DeleteResetOnboardTaskModalComponent,\r\n DeleteUserGroupMembersModalComponent,\r\n DistributeChecklistsModalComponent,\r\n DownloadAttachmentModalComponent,\r\n EditDependentModalComponent,\r\n EditExpenseModalComponent,\r\n EditLongPromptModalComponent,\r\n EnableChecklistWorkflowModalComponent,\r\n ErrorModalComponent,\r\n ExpenseBulkUpdateModalComponent,\r\n FinalizeSubmitedModalComponent,\r\n FinalizeSubmitSignModalComponent,\r\n FloatingModalComponent,\r\n I9GenModalComponent,\r\n InitializedAttachModalComponent,\r\n InitializeModalComponent,\r\n MultiMatchCreditCardModalComponent,\r\n NoteDetailActionModalComponent,\r\n NoteModalComponent,\r\n OnboardingInvitationModalComponent,\r\n OnboardInitModalComponent,\r\n PaperlessModalComponent,\r\n PasswordWarningModalComponent,\r\n RegisterTrainingPastClassesAttachmentModalComponent,\r\n RejectAllBenefitsModalComponent,\r\n RejectedNotesModalComponent,\r\n RemoveClassModalComponent,\r\n ReviewCashoutRequestModalComponent,\r\n ReviewDDModalComponent,\r\n ReviewECModalComponent,\r\n ReviewI9ModalComponent,\r\n ReviewIdenModalComponent,\r\n ReviewOnboardingModalComponent,\r\n ReviewTimeoffRequestModalComponent,\r\n ReviewW4ModalComponent,\r\n SendBulletinEmailModalComponent,\r\n SubmitChecklistSignModalComponent,\r\n SubmitExpenseModalComponent,\r\n TimeoutModalComponent,\r\n TrainingBulkUpdateModalComponent,\r\n UpdateBenefitsModalComponent,\r\n UpdateDependentAddressModalComponent,\r\n UserGroupModalComponent,\r\n ViewChecklistWorkflowModalComponent,\r\n ViewCompanyHolidayModalComponent,\r\n ViewDetailModalComponent,\r\n ViewEditReviewerModalComponent,\r\n ViewGroupTimeoffModalComponent,\r\n ViewReportHistoryModalComponent,\r\n WarningModalComponent,\r\n WebixDatatablecomponent,\r\n ManageCatModalComponent,\r\n ManageMileageRateModalComponent,\r\n ReProcessExpenseModalComponent,\r\n EditVendorModalComponent,\r\n SendReminderExpenseModalComponent,\r\n ProcessExpenseModalComponent,\r\n ExpenseApprovalModalComponent,\r\n WebixDatatablecomponent,\r\n LookupModalComponent\r\n ],\r\n providers: [LinkAnnotationService, BookmarkViewService, MagnificationService,\r\n ThumbnailViewService, ToolbarService, NavigationService, AnnotationService,\r\n TextSearchService, TextSelectionService, PrintService, FormDesignerService, FormFieldsService]\r\n})\r\nexport class ModalsModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-excel-export',\r\n templateUrl: './excel-export.component.html',\r\n styleUrls: ['./excel-export.component.css']\r\n})\r\nexport class ExcelExportComponent implements OnInit {\r\n @Input() formName: string\r\n @Input() formTitle: string \r\n filename: string\r\n constructor(private activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n this.filename = this.formName;\r\n }\r\n\r\n export() {\r\n this.activeModal.close(this.filename);\r\n }\r\n\r\n closeModal() {\r\n this.activeModal.close(null);\r\n }\r\n}\r\n","
\r\n

Export {{formTitle}}

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

What would you like to name the file?

\r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { LookupModalService } from './services/lookup-modal.service';\r\nimport { OrderByPipe } from 'src/app/shared/pipe/order-by.pipe';\r\n\r\n@Component({\r\n selector: 'app-lookup-modal',\r\n templateUrl: './lookup-modal.component.html',\r\n styleUrls: ['./lookup-modal.component.css']\r\n})\r\n\r\nexport class LookupModalComponent implements OnInit {\r\n orderByPipe: OrderByPipe;\r\n rowOrderValue: string;\r\n filterValue: string | null;\r\n selectedLookupCategory: string;\r\n reverseSortOrder: boolean | null;\r\n retrievingLookups: boolean;\r\n columnHeaders: string[];\r\n lookupRows: object[];\r\n filteredRows: object[];\r\n pageRows: object[];\r\n selectedRow: object | null;\r\n paginationData: {\r\n maxItemsPerPage: number;\r\n maxPageCountDisplay: number;\r\n totalItemCount: number;\r\n currentPage: number;\r\n }\r\n @Input() lookupParams: {\r\n co: number;\r\n form: string;\r\n seq: number;\r\n lookup: string;\r\n formData: string;\r\n showAllColumns: boolean;\r\n searchString: string;\r\n };\r\n @Input() availableLookups: {\r\n LoadSeq: number,\r\n Lookup: string,\r\n Title: string\r\n }[];\r\n @Input() modalTitle: string;\r\n\r\n constructor(\r\n private lookupService: LookupModalService,\r\n private ngbActiveModal: NgbActiveModal\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.orderByPipe = new OrderByPipe();\r\n this.rowOrderValue = \"\";\r\n this.filterValue = null;\r\n this.reverseSortOrder = null;\r\n this.retrievingLookups = false;\r\n this.columnHeaders = [];\r\n this.lookupRows = [];\r\n this.filteredRows = [];\r\n this.pageRows = [];\r\n this.selectedRow = null;\r\n this.paginationData = {\r\n maxItemsPerPage: 10,\r\n maxPageCountDisplay: 10,\r\n totalItemCount: 0,\r\n currentPage: 1\r\n }\r\n this.setLookupCategory();\r\n this.getLookupList();\r\n }\r\n\r\n setLookupCategory() {\r\n if (this.availableLookups.length > 1) {\r\n this.availableLookups.sort((a, b) => a.LoadSeq - b.LoadSeq);\r\n this.selectedLookupCategory = this.availableLookups[0].Lookup;\r\n } else {\r\n this.selectedLookupCategory = this.lookupParams.lookup;\r\n }\r\n }\r\n\r\n getLookupList() {\r\n this.retrievingLookups = true;\r\n this.lookupService.getLookup(this.lookupParams)\r\n .then((response: any) => {\r\n this.columnHeaders = Object.keys(response[0]);\r\n this.lookupRows = response;\r\n this.filteredRows = this.lookupRows;\r\n this.paginationData.totalItemCount = this.filteredRows.length;\r\n this.updatePageRows(this.paginationData.currentPage);\r\n this.retrievingLookups = false;\r\n }).catch(error => this.retrievingLookups = false);\r\n }\r\n\r\n closeLookupModal() {\r\n this.ngbActiveModal.close(this.selectedRow);\r\n }\r\n\r\n orderTableByValue(orderValue: string) {\r\n if (this.rowOrderValue === orderValue) {\r\n this.reverseSortOrder = !this.reverseSortOrder;\r\n } else {\r\n this.rowOrderValue = orderValue;\r\n }\r\n this.filteredRows = this.orderByPipe.transform(\r\n this.filteredRows, [orderValue], this.reverseSortOrder ? \"desc\" : \"asc\"\r\n );\r\n this.updatePageRows(this.paginationData.currentPage);\r\n }\r\n\r\n filterLookupTable() {\r\n this.filteredRows = this.lookupRows.filter((row) => this.rowContainsSubstring(row));\r\n this.paginationData.totalItemCount = this.filteredRows.length;\r\n this.updatePageRows(this.paginationData.currentPage);\r\n }\r\n\r\n rowContainsSubstring(row: object) {\r\n let rowContainsSubstring = false;\r\n this.columnHeaders.forEach((key) => {\r\n if (row[key] != null && row[key].toString().toLowerCase().includes(this.filterValue)) {\r\n rowContainsSubstring = true;\r\n return;\r\n }\r\n });\r\n return rowContainsSubstring;\r\n }\r\n\r\n selectRow(row: object) {\r\n this.selectedRow = row;\r\n this.closeLookupModal();\r\n }\r\n\r\n triggerLookup() {\r\n if (this.selectedLookupCategory != null) {\r\n this.lookupParams.lookup = this.selectedLookupCategory;\r\n this.filteredRows = [];\r\n this.pageRows = [];\r\n this.getLookupList();\r\n }\r\n }\r\n\r\n updatePageRows(selectedPage: number) {\r\n const begin = ((selectedPage - 1) * this.paginationData.maxItemsPerPage);\r\n const end = begin + this.paginationData.maxItemsPerPage;\r\n this.pageRows = this.filteredRows.slice(begin, end);\r\n }\r\n}\r\n","
\r\n

{{ modalTitle}} Lookup

\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 0\">\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 {{ row[key] }}\r\n
\r\n
\r\n No items available\r\n
\r\n \r\n
\r\n\r\n\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LookupModalService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getLookup(params: object) {\r\n return this.http.post(\"/Office/getLookup\", params).toPromise();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { PerformanceService } from '../../../pages/performance/services/performance.service';\n\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport moment from 'moment';\r\nimport { OrderByPipe } from './../../../shared/pipe/order-by.pipe';\n\n@Component({\n selector: 'app-initialize-modal',\n templateUrl: './initialize-modal.component.html',\n styleUrls: ['./initialize-modal.component.css']\n})\nexport class InitializeModalComponent implements OnInit {\n\n format: string;\n datePickerOptions: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean; adaptivePosition: boolean };\n formData: { [key: string]: any } = {};\n count: number = 0;\n templateList: any[] = [];\n orderByPipe: any;\n emplData: any[] = [];\r\n filterEmplList: any[] = [];\r\n\n constructor(private utilityService: UtilityService, public activeModal: NgbActiveModal, private performanceService: PerformanceService) { }\n\n ngOnInit(): void {\n this.format = this.utilityService.getDateFormat();\n this.orderByPipe = new OrderByPipe();\n this.datePickerOptions = { dateInputFormat: this.format.toUpperCase(), containerClass: \"theme-blue\", showTodayButton: true, showClearButton: true, clearPosition: \"left\", showWeekNumbers: false, adaptivePosition: true };\n this.formData.selectedAll = false;\n this.formData.dueDate = new Date(new Date().setDate(new Date().getDate() + 30))\n this.formData.disableSelfReview = false;\n this.formData.selectedManTemplate = null;\n this.getTemplate();\n }\n\n getTemplate() {\n this.performanceService.getTemplateCategories(-2).then((response: any[]) => {\n if (response != null) {\n this.templateList = [];\n response.forEach((val: any) => {\n if (val.ChecklistTemplateIsActive) {\n this.templateList.push(val);\r\n }\n })\r\n }\n });\n }\n\n getEmpl() {\n this.formData.selectedManTemplate = this.formData.selectedEmpTemplate;\n this.performanceService.getEmplByChecklistTemplateID(this.formData.selectedEmpTemplate).then((response: any[]) => {\n if (response != null) {\n this.emplData = response;\n this.emplData = this.orderByPipe.transform(response, \"EmployeeName\", \"asc\");\n this.filterEmplList = this.emplData;\n this.selectAll();\n }\n });\n }\n\n selectEmployee(data: any) {\n data.selected = !data.selected;\n this.count = 0;\n var errorCount = 0;\n this.emplData.forEach((val: any) => {\n if (val.selected) {\n this.count++;\r\n }\n else {\n this.formData.selectedAll = false;\n errorCount++;\n }\n });\n if (errorCount == 0) {\n this.formData.selectedAll = true;\r\n }\n }\n\n selectAll() {\n this.count = 0;\n if (this.formData.selectedAll) {\n this.emplData.forEach((val: any) => {\n val.selected = true;\n this.count++;\n });\n } else {\n this.emplData.forEach((val) => {\n val.selected = false;\n });\n }\n }\n\n filterList() {\n this.filterEmplList = [];\n this.emplData.forEach((val: any) => {\n if (this.formData.searchText != null && this.formData.searchText != \"\") {\n if ((val.EmployeeName != null ? val.EmployeeName.toLowerCase().indexOf(this.formData.searchText.toLowerCase()) > -1 : false) ||\n (val.Employee != null ? val.Employee.toString().toLowerCase().indexOf(this.formData.searchText.toLowerCase()) > -1 : false)) {\n this.filterEmplList.push(val);\n }\n } else {\n this.filterEmplList.push(val);\n }\n });\n }\n\n initializeClicked() {\n var emplString = \"\";\n this.emplData.forEach((val: any) => {\n if (val.selected) {\n emplString += val.UserKeyID + \",\"\r\n }\n });\n this.formData.initializing = true;\n var requestObj = {\r\n userKeyIDString: emplString, dateDueStr: moment(this.formData.dueDate).format(\"YYYY-MM-DD\"), employeeChecklistTemplateID: this.formData.selectedEmpTemplate, managerChecklistTemplateID: this.formData.selectedManTemplate, disableSelfReview: this.formData.disableSelfReview\n }\n this.performanceService.initializePerformanceInstance(requestObj).then((response: any) => {\n this.formData.initializing = false;\n this.activeModal.close();\n });\n }\n\n cancelClicked() {\n this.activeModal.dismiss();\n }\n\n}\n","
\r\n

Initialize Reviews

\r\n
\r\n
\r\n
\r\n \r\n Disable Employee Self Review\r\n
\r\n
\r\n \r\n \r\n \r\n {{data.ChecklistTemplateName}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{data.ChecklistTemplateName}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Select All - {{count}} employees selected\r\n
\r\n \r\n \r\n
\r\n
    \r\n
  • PRCo {{data.PRCo}} - {{data.Employee}} - {{data.EmployeeName}}
  • \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","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport moment from 'moment';\r\n\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { PerformanceService } from '../../../pages/performance/services/performance.service';\r\n\r\n@Component({\r\n selector: 'app-view-edit-reviewer-modal',\r\n templateUrl: './view-edit-reviewer-modal.component.html',\r\n styleUrls: ['./view-edit-reviewer-modal.component.css']\r\n})\r\nexport class ViewEditReviewerModalComponent implements OnInit {\r\n @Input() data: any;\r\n format: string;\r\n formData: { [key: string]: any } = {}\r\n reviewerAddList: any[] = [];\r\n exist: boolean = false;\r\n reviewerList: any[] = [];\r\n lastSave: { [key: string]: any } = {}\r\n unsubmit: boolean = false;\r\n\r\n constructor(public activeModal: NgbActiveModal, private utilityService: UtilityService, private performanceService: PerformanceService) {\r\n this.format = this.utilityService.getDateFormat().toUpperCase();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getReviewerList();\r\n this.getAttendees();\r\n }\r\n\r\n getAttendees() {\r\n this.performanceService.getAttendees().then((response: any) => {\r\n if (response != null) {\r\n this.reviewerAddList = response;\r\n this.reviewerAddList.forEach((key: any, value: any) => {\r\n if (value != null && value.KeyID == this.data.UserKeyID) {\r\n this.reviewerAddList.splice(key, 1);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n checkExisting() {\r\n this.exist = false;\r\n this.reviewerList.forEach((val: any) => {\r\n if (this.formData.selectedReviewer == val.UserKeyID) {\r\n this.exist = true;\r\n }\r\n });\r\n }\r\n\r\n getReviewerList() {\r\n this.performanceService.getReviewersByInstance(this.data.PerformanceInstanceID).then((response: any) => {\r\n if (response != null) {\r\n this.reviewerList = response;\r\n this.reviewerList.forEach((value: any) => {\r\n if (value.DateSubmitted != null) {\r\n value.DateSubmittedDisplay = moment(value.DateSubmitted).utc().format(this.format);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n addNewReviewer() {\r\n this.performanceService.reviewerAdd(this.data.PerformanceInstanceID, this.formData.selectedReviewer).then((response: any) => {\r\n if (response != null) {\r\n this.fadeLabel(response.success);\r\n if (response.success) {\r\n this.formData.selectedReviewer = null;\r\n this.getReviewerList();\r\n }\r\n }\r\n });\r\n }\r\n\r\n unsubmitReviewer(rowData: any) {\r\n this.performanceService.unsubmitReview(rowData.PerformanceInstanceID, rowData.PerformanceReviewerID).then((response: any) => {\r\n if (response != null) {\r\n this.fadeLabel(response.success);\r\n if (response.success) {\r\n this.getReviewerList();\r\n this.unsubmit = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n removeReviewer(rowData: any) {\r\n this.performanceService.reviewerDelete(rowData.PerformanceInstanceID, rowData.PerformanceReviewerID).then((response: any) => {\r\n if (response != null) {\r\n this.fadeLabel(response.success);\r\n if (response.success) {\r\n this.reviewerList.forEach((val: any, key: any) => {\r\n if (val.UserKeyID == rowData.UserKeyID) {\r\n this.reviewerList.splice(key, 1);\r\n }\r\n });\r\n if (this.formData.selectedReviewer != null) {\r\n this.checkExisting();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n closeClicked() {\r\n this.activeModal.close(this.unsubmit);\r\n }\r\n\r\n fadeLabel(status: any) {\r\n this.formData.labelFade = false;\r\n this.lastSave = this.utilityService.fadeLabel(status);\r\n setTimeout(() => {\r\n this.formData.labelFade = true;\r\n }, 2000);\r\n }\r\n\r\n}\r\n","
\r\n

Performance Reviewers: {{data.EmployeeName}} {{data.ReviewTemplateName}}

\r\n
\r\n
\r\n
\r\n Save Successful - {{lastSave.time}}\r\n Save Fail - {{lastSave.time}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{data.FullName}}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n 0\">\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
ReviewerEmailDate Review CompletedLinkScore
{{data.ReviewerFullName}}{{data.Email}}{{data.DateSubmittedDisplay}}View{{data.ReviewerScore}}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { HttpClient, HttpRequest, HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n//services\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\nimport { UtilityService } from 'src/app/core/services/utility.service';\r\nimport { HiringService } from 'src/app/pages/hiring/services/hiring.service';\r\n\r\n@Component({\r\n selector: 'app-add-attachment-checklist-template-modal',\r\n templateUrl: './add-attachment-checklist-template-modal.component.html',\r\n styleUrls: ['./add-attachment-checklist-template-modal.component.css']\r\n})\r\nexport class AddAttachmentChecklistTemplateModalComponent implements OnInit {\r\n\r\n\r\n @Input() itemID: number;\r\n @Input() moduleID: number;\r\n @Input() active: boolean;\r\n @Input() status: any;\r\n @Input() mobileMode: boolean;\r\n formData: { [key: string]: any } = {};\r\n newFiles: any[] = [];\r\n savedFiles: any[] = [];\r\n fileData: any[] = [];\r\n alert: any = null;\r\n captionChanged: boolean = false;\r\n validComboDrag: boolean = false;\r\n dragFiles: any;\r\n errorMsg: any;\r\n lastSave: { [key: string]: any } = {};\r\n\r\n constructor(private employeeService: EmployeeService, private utilityService: UtilityService, private hiringService: HiringService, public HttpClient: HttpClient, public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n this.getAttachmentList();\r\n }\r\n\r\n getAttachmentList() {\r\n var requestParam = \"moduleID=\" + this.moduleID + \"&recordID=\" + this.itemID;\r\n this.employeeService.getFileAttachmentList(requestParam).then((response: any) => {\r\n if (response != null) {\r\n this.savedFiles = response;\r\n this.savedFiles.forEach((val: any) => {\r\n if (val.AttachmentCaption != null)\r\n val.TempAttachmentCaption = val.AttachmentCaption;\r\n });\r\n }\r\n });\r\n }\r\n\r\n deleteUnsavedAttachment(file: any) {\r\n var index = this.newFiles.indexOf(file);\r\n this.newFiles.splice(index, 1);\r\n }\r\n\r\n deleteSavedAttachment(file: any) {\r\n this.employeeService.removeFileAttachment(file.FileAttachmentID).then((response: any) => {\r\n if (response != null) {\r\n this.captionChanged = false;\r\n if (this.moduleID == 12) {\r\n this.employeeService.updateOnboardTaskComplete(this.itemID).then((result: any) => {\r\n });\r\n }\r\n this.getAttachmentList();\r\n }\r\n })\r\n }\r\n\r\n upload() {\r\n var currentUpload = this.formData.fileDrop;\r\n this.formData.fileDrop = [];\r\n for (var i = 0; i < currentUpload.length; i++) {\r\n this.fileUpload(currentUpload[i]);\r\n }\r\n if (this.mobileMode) {\r\n setTimeout(() => {\r\n if (this.newFiles.length > 0) {\r\n $(\"#fileDrop\").css(\"cursor\", \"no-drop\");\r\n }\r\n }, 200);\r\n }\r\n }\r\n\r\n fileUpload(fileDrop: any) {\r\n this.fileData = [];\r\n if (fileDrop != null) {\r\n fileDrop.nameEdit = this.utilityService.formatAttachmentName(fileDrop.name);\r\n this.readFile(fileDrop, (e: any, fileName: string) => {\r\n setTimeout(() => {\r\n this.fileData.push({ data: e.target.result.toString().split(\",\"), size: e.total, name: fileName })\r\n this.fileData.forEach((val: any) => {\r\n if ((fileDrop.size == val.size && val.name == fileDrop.name) && ((this.moduleID == 38 && this.newFiles.length < 2 && (this.newFiles.length + this.savedFiles.length < 2)) || this.moduleID != 38)) {\r\n this.newFiles.push({ File: val.data[1], Filename: fileDrop.nameEdit, Filedata: fileDrop, Type: val.data[0].split(\"/\")[0] });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n checkCaption() {\r\n this.captionChanged = false;\r\n this.savedFiles.forEach((val: any) => {\r\n if (val.TempAttachmentCaption != val.AttachmentCaption) {\r\n this.captionChanged = true;\r\n this.formData.disableButton = false;\r\n }\r\n });\r\n }\r\n\r\n private readFile(file: any, call: any) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) { return call(e, file.name) };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n uploadAttachment(counter: number, error: number) {\r\n var currentFile = this.newFiles[counter];\r\n var type = \"file\";\r\n var errMsg = \"\";\r\n if (currentFile.Type == \"data:image\")\r\n type = \"Photo\";\r\n if (currentFile.Progress != 100) {\r\n if (currentFile.File != null && currentFile.Filename != null) {\r\n var temp = currentFile.Type;\r\n var type = \"file\";\r\n if (temp == \"data:image\") {\r\n type = \"Photo\";\r\n }\r\n currentFile.Filedata.upload = new HttpRequest(\r\n \"POST\",\r\n \"/Employee/SaveFileAttachment\",\r\n { moduleID: this.moduleID, recordID: this.itemID, attachmentFileData: currentFile.File, attachmentFileName: currentFile.Filename, attachmentType: type }, { reportProgress: true }\r\n ),\r\n currentFile.Filedata.upload = this.HttpClient.request(currentFile.Filedata.upload).subscribe((event: HttpEvent) => {\r\n switch (event.type) {\r\n case HttpEventType.UploadProgress:\r\n currentFile.Progress = Math.round(event.loaded / event.total * 100);\r\n if (currentFile.Progress == 100) {\r\n currentFile.AttchDone = true;\r\n }\r\n break;\r\n case HttpEventType.Response:\r\n setTimeout(() => {\r\n currentFile.Filedata.result = event.body;\r\n });\r\n if (event.body.success) {\r\n counter++;\r\n if (counter < this.newFiles.length) {\r\n this.uploadAttachment(counter, error)\r\n }\r\n if (counter == this.newFiles.length) {\r\n this.formData.disableButton = false;\r\n if (error == 0) {\r\n this.newFiles = [];\r\n if (this.captionChanged) {\r\n this.savedFiles.forEach((val: any, key: any) => {\r\n if (val.AttachmentCaption != val.TempAttachmentCaption) {\r\n this.hiringService.fileAttachmentUpdateCaption(val.FileAttachmentID, val.AttachmentCaption).then((response: any) => {\r\n if (response != null) {\r\n this.fadeLabel(response.success);\r\n val.TempAttachmentCaption = val.AttachmentCaption;\r\n this.captionChanged = false;\r\n }\r\n });\r\n }\r\n if (key == this.savedFiles.length - 1) {\r\n this.getAttachmentList();\r\n }\r\n });\r\n } else {\r\n this.getAttachmentList();\r\n }\r\n } else {\r\n this.alert = { type: \"danger\", msg: errMsg + \" failed to save one or more attachments - \" };\r\n }\r\n }\r\n }\r\n else {\r\n error++; counter++;\r\n errMsg += currentFile.Filename + \",\";\r\n this.uploadAttachment(counter, error)\r\n }\r\n }\r\n error => this.errorMsg = error.message\r\n });\r\n }\r\n }\r\n }\r\n\r\n saveClicked() {\r\n this.formData.disableButton = true;\r\n if (this.newFiles.length > 0) {\r\n this.uploadAttachment(0, 0);\r\n } else {\r\n if (this.captionChanged) {\r\n this.savedFiles.forEach((val: any) => {\r\n if (val.AttachmentCaption != val.TempAttachmentCaption) {\r\n this.hiringService.fileAttachmentUpdateCaption(val.FileAttachmentID, val.AttachmentCaption).then((response: any) => {\r\n if (response != null) {\r\n this.fadeLabel(response.success);\r\n val.TempAttachmentCaption = val.AttachmentCaption;\r\n this.captionChanged = false;\r\n this.formData.disableButton = false;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n closeClicked() {\r\n this.activeModal.close(\"close\");\r\n }\r\n\r\n closeAlert() {\r\n this.alert = null;\r\n }\r\n\r\n fadeLabel(status: any) {\r\n this.formData.labelFade = false;\r\n this.lastSave = this.utilityService.fadeLabel(status);\r\n setTimeout(() => {\r\n this.formData.labelFade = true;\r\n }, 2000);\r\n }\r\n\r\n}\r\n","
\r\n

Add Attachments

\r\n Save Successful - {{lastSave.time}}\r\n Save Fail - {{lastSave.time}}\r\n
\r\n
\r\n
\r\n
\r\n {{alert.msg}}\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
0\" />\r\n
\r\n {{file.Filename}}\r\n \r\n
\r\n
0\">\r\n
{{file.Progress}}%
\r\n
\r\n
\r\n
\r\n
\r\n Drop a file or Click to upload\r\n
\r\n
\r\n
Maximum of 2 attachments
\r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { HiringService } from 'src/app/pages/hiring/services/hiring.service';\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\nimport { HttpClient, HttpRequest, HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { FieldService } from 'src/app/pages/field/service/field.service';\r\n\r\n@Component({\r\n selector: 'app-add-attachment-modal',\r\n templateUrl: './add-attachment-modal.component.html',\r\n styleUrls: ['./add-attachment-modal.component.css']\r\n})\r\nexport class AddAttachmentModalComponent implements OnInit {\r\n @Input() itemID: any;\r\n @Input() moduleID: number;\r\n @Input() active: boolean;\r\n @Input() status: any;\r\n @Input() mobileMode: boolean;\r\n @Input() allowMultipleAttachments: boolean;\r\n formData: { [key: string]: any } = {};\r\n newFiles: any[] = [];\r\n savedFiles: any[] = [];\r\n fileData: any[] = [];\r\n alert: any;\r\n errorMsg: any;\r\n captionChanged: boolean = false;\r\n validComboDrag: boolean = false;\r\n dragFiles: any;\r\n isSendToVista: boolean = false;\r\n\r\n constructor(public activeModal: NgbActiveModal, private hiringService: HiringService, private employeeService: EmployeeService, private utilityService: UtilityService, public HttpClient: HttpClient, private fieldService: FieldService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isSendToVista = this.moduleID == 105 || this.moduleID == 115;\r\n if(!this.isSendToVista){\r\n this.getAttachmentList();\r\n }\r\n }\r\n\r\n getAttachmentList() {\r\n var requestParam = \"moduleID=\" + this.moduleID + \"&recordID=\" + this.itemID;\r\n this.employeeService.getFileAttachmentList(requestParam).then((response: any) => {\r\n this.savedFiles = response;\r\n this.savedFiles.forEach((val: any) => {\r\n if (val.AttachmentCaption != null)\r\n val.TempAttachmentCaption = val.AttachmentCaption;\r\n });\r\n })\r\n }\r\n\r\n\r\n deleteUnsavedAttachment(file: any) {\r\n var index = this.newFiles.indexOf(file);\r\n this.newFiles.splice(index, 1);\r\n }\r\n\r\n deleteSavedAttachment(file: any) {\r\n this.employeeService.removeFileAttachment(file.FileAttachmentID).then((response: any) => {\r\n if (response.success) {\r\n this.captionChanged = false;\r\n if (this.moduleID == 12) {\r\n this.employeeService.updateOnboardTaskComplete(this.itemID).then((response: any) => {\r\n if (response.success) {\r\n }\r\n });\r\n }\r\n this.getAttachmentList();\r\n }\r\n })\r\n }\r\n\r\n upload() {\r\n var currentUpload = this.formData.fileDrop;\r\n this.formData.fileDrop = [];\r\n for (var i = 0; i < currentUpload.length; i++) {\r\n this.fileUpload(currentUpload[i]);\r\n }\r\n if (this.mobileMode) {\r\n setTimeout(() => {\r\n if (this.newFiles.length > 0) {\r\n $(\"#fileDrop\").css(\"cursor\", \"no-drop\");\r\n }\r\n }, 200);\r\n }\r\n }\r\n\r\n fileUpload(fileDrop) {\r\n this.fileData = [];\r\n if (fileDrop != null) {\r\n fileDrop.nameEdit = \"\";\r\n for (var y = 0; y < fileDrop.name.substr(0, fileDrop.name.lastIndexOf('.') + 1).length; y++) {\r\n if (fileDrop.name[y] != \" \" && fileDrop.name[y] != \"&\" && fileDrop.name[y] != \"*\" && fileDrop.name[y] != \":\" &&\r\n fileDrop.name[y] != \";\" && fileDrop.name[y] != \"|\" && fileDrop.name[y] != \"=\" && fileDrop.name[y] != \",\" &&\r\n fileDrop.name[y] != \".\" && fileDrop.name[y] != \"/\" && fileDrop.name[y] != \"\\\"\" && fileDrop.name[y] != \"[\" &&\r\n fileDrop.name[y] != \"]\")\r\n fileDrop.nameEdit += fileDrop.name[y];\r\n }\r\n fileDrop.nameEdit += fileDrop.name.substr(fileDrop.name.lastIndexOf('.'), fileDrop.name.length);\r\n this.readFile(fileDrop, (e: any, fileName: string) => {\r\n setTimeout(() => {\r\n this.fileData.push({ data: e.target.result.toString().split(\",\"), size: e.total, name: fileName })\r\n this.fileData.forEach((val: any) => {\r\n if ((fileDrop.size == val.size && val.name == fileDrop.name) && ((this.moduleID == 38 && this.newFiles.length < 2 && (this.newFiles.length + this.savedFiles.length < 2)) || this.moduleID != 38)) {\r\n this.newFiles.push({ File: val.data[1], Filename: fileDrop.nameEdit, Filedata: fileDrop, Type: val.data[0].split(\"/\")[0] });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n checkCaption() {\r\n this.captionChanged = false;\r\n this.savedFiles.forEach((val: any) => {\r\n if (val.TempAttachmentCaption != val.AttachmentCaption) {\r\n this.captionChanged = true;\r\n this.formData.disableButton = false;\r\n }\r\n });\r\n }\r\n\r\n private readFile(file: any, call: any) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) { return call(e, file.name) };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n uploadAttachment(counter, error) {\r\n var currentFile = this.newFiles[counter];\r\n var type = \"file\";\r\n var errMsg;\r\n var data;\r\n var url;\r\n if (currentFile.Type == \"data:image\")\r\n type = \"Photo\";\r\n if (currentFile.Progress != 100) {\r\n if (currentFile.File != null && currentFile.Filename != null) {\r\n var temp = currentFile.Type;\r\n var type = \"file\";\r\n if (temp == \"data:image\")\r\n type = \"Photo\";\r\n if (this.isSendToVista) {\r\n url = \"/Field/AddVPAttachment\";\r\n data = {\r\n fileName: currentFile.Filename, fileDescription: \"\", fileData: currentFile.File,\r\n moduleID: this.moduleID, recordKeyID: this.itemID, fileAttachmentID: -1, fileAttachmentType: type\r\n }\r\n }\r\n else {\r\n url = \"/Employee/SaveFileAttachment\";\r\n data = { \r\n moduleID: this.moduleID, recordID: this.itemID, attachmentFileData: currentFile.File, \r\n attachmentFileName: currentFile.Filename, attachmentType: type \r\n }\r\n }\r\n currentFile.Filedata.upload = new HttpRequest(\r\n \"POST\",\r\n url,\r\n data, \r\n { reportProgress: true }\r\n ),\r\n currentFile.Filedata.upload = this.HttpClient.request(currentFile.Filedata.upload).subscribe((event: HttpEvent) => {\r\n switch (event.type) {\r\n case HttpEventType.UploadProgress:\r\n currentFile.Progress = Math.round(event.loaded / event.total * 100);\r\n if (currentFile.Progress == 100) {\r\n currentFile.AttchDone = true;\r\n }\r\n break;\r\n case HttpEventType.Response:\r\n setTimeout(() => {\r\n currentFile.Filedata.result = event.body;\r\n });\r\n if (event.body.success) {\r\n counter++;\r\n if(this.isSendToVista){\r\n this.addBillAttachment(event.body.data, counter, error);\r\n }\r\n if (counter < this.newFiles.length) {\r\n this.uploadAttachment(counter, error);\r\n }\r\n if (counter == this.newFiles.length) {\r\n this.formData.disableButton = false;\r\n if (error == 0) {\r\n this.newFiles = [];\r\n if (this.captionChanged) {\r\n this.savedFiles.forEach((val: any, key: any) => {\r\n if (val.AttachmentCaption != val.TempAttachmentCaption) {\r\n this.hiringService.fileAttachmentUpdateCaption(val.FileAttachmentID, val.AttachmentCaption).then((response: any) => {\r\n this.utilityService.fadeLabel(response.success);\r\n val.TempAttachmentCaption = val.AttachmentCaption;\r\n this.captionChanged = false;\r\n });\r\n }\r\n if (key == this.savedFiles.length - 1)\r\n this.getAttachmentList();\r\n });\r\n } else if(!this.isSendToVista)\r\n this.getAttachmentList();\r\n } else {\r\n this.alert = { type: \"danger\", msg: errMsg + \" failed to save one or more attachments - \" };\r\n }\r\n }\r\n }\r\n else {\r\n error++; counter++;\r\n errMsg += currentFile.Filename + \",\";\r\n if (counter < this.newFiles.length){\r\n this.uploadAttachment(counter, error);\r\n }\r\n else if (this.isSendToVista){\r\n this.activeModal.close(error);\r\n }\r\n }\r\n }\r\n error => this.errorMsg = error.message\r\n })\r\n }\r\n }\r\n }\r\n\r\n addBillAttachment(attachmentDetail: any, counter: number, error: number){\r\n this.fieldService.addBillAttachment(this.itemID, attachmentDetail.AttachmentID).then((response:any)=>{\r\n if(response != null && !response.success){\r\n this.alert = { type: \"danger\", msg: \" failed to save one or more attachments - \" };\r\n }\r\n });\r\n if(counter == this.newFiles.length){\r\n this.activeModal.close(error);\r\n }\r\n }\r\n\r\n saveClicked() {\r\n this.formData.disableButton = true;\r\n if (this.newFiles.length > 0) {\r\n this.uploadAttachment(0, 0);\r\n } else {\r\n if (this.captionChanged) {\r\n this.savedFiles.forEach((val: any) => {\r\n if (val.AttachmentCaption != val.TempAttachmentCaption) {\r\n this.hiringService.fileAttachmentUpdateCaption(val.FileAttachmentID, val.AttachmentCaption).then((response: any) => {\r\n this.utilityService.fadeLabel(response.success);\r\n val.TempAttachmentCaption = val.AttachmentCaption;\r\n this.captionChanged = false;\r\n this.formData.disableButton = false;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n closeClicked() {\r\n this.activeModal.close(\"close\");\r\n }\r\n\r\n closeAlert() {\r\n this.alert = null;\r\n }\r\n\r\n\r\n}","
\r\n

Add Attachments

\r\n
\r\n
\r\n
\r\n
\r\n {{alert.msg}}\r\n \r\n
\r\n
\r\n \r\n
\r\n {{file.AttachmentFileName}}\r\n \r\n
\r\n \r\n
0\" />\r\n
\r\n {{file.Filename}}\r\n \r\n
\r\n
0\">\r\n
{{file.Progress}}%
\r\n
\r\n
\r\n
\r\n
\r\n
0\"\r\n accept=\".pdf,.jpg,.jpeg,.gif,.tif,.tiff,.png,.bmp,.doc,.docx,.xls,.xlsx,.ppt,.pps,.pptx,.ppsx,.sldx\"\r\n [(dragFiles)]=\"dragFiles\"\r\n class=\"drop-box\"\r\n [class.invalid-drag]=\"validComboDrag===false\"\r\n [class.valid-drag]=\"validComboDrag\"\r\n (filesChange)=\"upload()\" [ngfFixOrientation]=\"false\">\r\n Drop a file or Click to upload\r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'app-alert-modal',\r\n templateUrl: './alert-modal.component.html',\r\n styleUrls: ['./alert-modal.component.css']\r\n})\r\nexport class AlertModalComponent implements OnInit {\r\n modalData: { [key: string]: any } = {};\r\n userAction: string;\r\n closeButtonText: string;\r\n\r\n constructor(private bsModalRef: BsModalRef) { }\r\n\r\n ngOnInit(): void {\r\n this.closeButtonText = this.modalData.closeButtonText != null ? this.modalData.closeButtonText : \"Close\";\r\n }\r\n\r\n cancelClicked() {\r\n this.userAction = \"close\";\r\n this.bsModalRef.hide();\r\n }\r\n\r\n}","
\r\n

{{modalData.modalTitle}}

\r\n
\r\n
\r\n
{{modalData.modalMessage}}
\r\n
\r\n
\r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n//services\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\n\r\n@Component({\r\n selector: 'app-checklist-item-click-sign-modal',\r\n templateUrl: './checklist-item-click-sign-modal.component.html',\r\n styleUrls: ['./checklist-item-click-sign-modal.component.css']\r\n})\r\nexport class ChecklistItemClickSignModalComponent implements OnInit {\r\n\r\n @Input() type: any;\r\n img: any;\r\n\r\n constructor(private employeeService: EmployeeService, private activeModal: NgbActiveModal) {}\r\n\r\n ngOnInit(): void {\r\n this.getTypeSign(this.type);\r\n }\r\n\r\n getTypeSign(type: any){\r\n this.employeeService.getTypeSign(type).then((response: any)=> {\r\n this.img = \"data:image/png;base64,\" + response; \r\n });\r\n }\r\n \r\n cancelClicked() {\r\n this.activeModal.close();\r\n }\r\n\r\n confirmClicked() {\r\n this.activeModal.close(this.img);\r\n }\r\n}\r\n","
\r\n

Generate Signature

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

Are you sure you want to use this as your signature?

\r\n

By signing above, I agree that the signature and initials will be the electronic representation of my signature and initials for all purposes when I (or my agent) use them on documents, including legally binding contracts - just the same as a pen-and-paper signature or initial.

\r\n \r\n
\r\n
\r\n \r\n \r\n
","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-edit-long-prompt-modal',\r\n templateUrl: './edit-long-prompt-modal.component.html',\r\n styleUrls: ['./edit-long-prompt-modal.component.css']\r\n})\r\nexport class EditLongPromptModalComponent {\r\n\r\n @Input() text: string;\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n\r\n cancelClicked = function () {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n saveClicked = function () {\r\n this.activeModal.close(this.text);\r\n }\r\n\r\n}\r\n","
\r\n

Edit Long Prompt

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'app-error-modal',\r\n templateUrl: './error-modal.component.html',\r\n styleUrls: ['./error-modal.component.css']\r\n})\r\nexport class ErrorModalComponent implements OnInit {\r\n modalData: { [key: string]: any } = {};\r\n closeButtonText: string;\r\n userAction: string;\r\n\r\n constructor(private bsModalRef: BsModalRef) { }\r\n\r\n ngOnInit(): void {\r\n this.closeButtonText = this.modalData.closeButtonText != null ? this.modalData.closeButtonText : \"Close\";\r\n if (this.modalData.warningLevel == null) {\r\n this.modalData.warningLevel = \"danger\";\r\n }\r\n }\r\n\r\n actionClicked() {\r\n this.userAction = \"close\";\r\n this.bsModalRef.hide();\r\n }\r\n\r\n cancelClicked() {\r\n this.userAction = \"cancel\";\r\n this.bsModalRef.hide();\r\n }\r\n}\r\n","
\r\n
{{modalData.modalMessage}}
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-note-modal',\r\n templateUrl: './note-modal.component.html',\r\n styleUrls: ['./note-modal.component.css']\r\n})\r\nexport class NoteModalComponent {\r\n\r\n @Input() checklistTextHeader: string;\r\n\r\n constructor(private activeModal: NgbActiveModal) { }\r\n\r\n saveClicked() {\r\n this.activeModal.close(this.checklistTextHeader);\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n}\r\n","
\r\n

Note for This Form:

\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 { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { EmployeeService } from 'src/app/pages/employee/services/employee.service';\r\n\r\n@Component({\r\n selector: 'app-submit-checklist-sign-modal',\r\n templateUrl: './submit-checklist-sign-modal.component.html',\r\n styleUrls: ['./submit-checklist-sign-modal.component.css']\r\n})\r\nexport class SubmitChecklistSignModalComponent implements OnInit {\r\n\r\n @ViewChild('signaturePad', { static: false }) signaturePad;\r\n @Input() signed: any;\r\n @Input() type: string;\r\n @Input() where: string;\r\n @Input() enableCheckboxSign: boolean;\r\n typeSign: boolean = false;\r\n redBorder: boolean = false;\r\n submitSignImg: any;\r\n hideClick: boolean = false;\r\n showClickMsg: boolean = false;\r\n rawImgData: any;\r\n\r\n constructor(private activeModal: NgbActiveModal, private employeeService: EmployeeService) { }\r\n\r\n ngOnInit(): void {\r\n this.signed = this.signed != null;\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n submitClicked() {\r\n if (this.signed)\r\n this.activeModal.close(\"signed\");\r\n else {\r\n if (this.typeSign || !this.signaturePad.isEmpty()) {\r\n this.activeModal.close({ data: this.typeSign ? this.rawImgData : this.signaturePad.toDataURL().replace(/^data:image\\/(png|jpg);base64,/, \"\"), typeSign: this.typeSign });\r\n } else {\r\n this.redBorder = true;\r\n }\r\n }\r\n }\r\n\r\n getTypeSign(type: string) {\r\n if (this.signaturePad.isEmpty()) {\r\n this.typeSign = true;\r\n if (this.typeSign) {\r\n this.employeeService.getTypeSign(type).then((response: any) => {\r\n this.rawImgData = response;\r\n this.submitSignImg = \"data:image/png;base64,\" + response;\r\n });\r\n }\r\n this.hideClick = true;\r\n this.showClickMsg = false;\r\n } else {\r\n this.showClickMsg = true;\r\n }\r\n }\r\n\r\n clear() {\r\n this.typeSign = false;\r\n if (this.signaturePad != null)\r\n this.signaturePad.clear();\r\n this.showClickMsg = false;\r\n this.hideClick = false;\r\n }\r\n}\r\n","
\r\n

\r\n Finalize\r\n Submit {{where}}\r\n

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

\r\n Are you sure you want to\r\n finalize\r\n submit\r\n your {{where.toLowerCase()}}?\r\n

\r\n
\r\n
\r\n
Please sign in the box below when you finish your {{where.toLowerCase()}}.
\r\n
\r\n
Press \"Clear\" before generating your signature image.
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Sign above
\r\n \r\n \r\n
By signing above, I agree that the signature and initials will be the electronic representation of my signature and initials for all purposes when I (or my agent) use them on documents, including legally binding contracts - just the same as a pen-and-paper signature or initial.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
","import { Component } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-timeout-modal',\r\n templateUrl: './timeout-modal.component.html',\r\n styleUrls: ['./timeout-modal.component.css']\r\n})\r\nexport class TimeoutModalComponent {\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n\r\n refreshClicked() {\r\n this.activeModal.close('refresh');\r\n\r\n };\r\n\r\n logoutClicked() {\r\n this.activeModal.close('logout');\r\n };\r\n}\r\n","\r\n
\r\n

Timeout Warning

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

\r\n You will be logged out in 1 minute.\r\n

\r\n

\r\n If you are logged off any changes will be lost.\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Subject } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\nimport { AdminService } from 'src/app/pages/admin/services/admin.service';\r\n\r\n@Component({\r\n selector: 'app-user-group-modal',\r\n templateUrl: './user-group-modal.component.html',\r\n styleUrls: ['./user-group-modal.component.css']\r\n})\r\nexport class UserGroupModalComponent implements OnInit {\r\n employees: any[];\r\n matchFound: boolean;\r\n matchFoundCount: number;\r\n userGroupID: number;\r\n individualFilter: { [key: string]: any } = {};\r\n errorMessage: string;\r\n alertGroupAdded: string;\r\n userGroups: any[];\r\n formData: { [key: string]: any } = {};\r\n employeeSearch = new Subject();\r\n\r\n constructor(private ngbActiveModal: NgbActiveModal, private adminService: AdminService) { }\r\n\r\n ngOnInit(): void {\r\n this.employees = [];\r\n this.matchFound = false;\r\n this.matchFoundCount = 0;\r\n this.userGroupID = null;\r\n this.individualFilter = [];\r\n this.typeSearch();\r\n }\r\n\r\n searchEmployees() {\r\n this.getEmployees();\r\n };\r\n\r\n closeClicked() {\r\n this.ngbActiveModal.close({ success: false });\r\n };\r\n\r\n isEmployeeGroup() {\r\n var fullName;\r\n this.errorMessage = \"\";\r\n\r\n if (this.individualFilter != null) {\r\n this.alertGroupAdded = \"\";\r\n\r\n this.employees.forEach(val=> {\r\n if (this.individualFilter.Employee == val.KeyID) {\r\n fullName = val.FullName;\r\n }\r\n });\r\n this.adminService.getUserGroup().then((response: any) => {\r\n this.userGroups = response;\r\n this.userGroups.forEach((val, key) => {\r\n if (val.UserGroupName == fullName) {\r\n this.matchFoundCount = this.matchFoundCount + 1;\r\n if (this.userGroupID == null) {\r\n this.userGroupID = val.UserGroupID;\r\n }\r\n }\r\n });\r\n });\r\n }\r\n };\r\n\r\n private typeSearch() {\r\n this.employeeSearch\r\n .pipe(\r\n switchMap(employeeSearch => this.adminService.getHRUsers(this.formData.employeeLabel,false,null))\r\n )\r\n .subscribe(data => {\r\n var employees: any = data;\r\n this.employees = employees;\r\n });\r\n }\r\n\r\n getEmployees() {\r\n if (this.formData.employeeLabel !== null && this.formData.employeeLabel.length >= 2) {\r\n this.employeeSearch.next();\r\n }\r\n }\r\n\r\n addByIndividual() {\r\n if (this.matchFoundCount === 0) {\r\n var tempPRCo, tempEmployee;\r\n this.alertGroupAdded = \"\";\r\n\r\n this.employees.forEach(val => {\r\n if (this.individualFilter.Employee === val.KeyID) {\r\n tempPRCo = val.PRCo;\r\n tempEmployee = val.Employee;\r\n }\r\n });\r\n\r\n this.formData.SqlOver = \"\";\r\n\r\n this.adminService.userGroupAddSingleUser(-1, this.formData.employeeLabel, true, this.formData.SqlOver, tempPRCo, \"Employee\", true, tempEmployee).then((response: any) => {\r\n if (response.success) {\r\n this.individualFilter.Employee = null;\r\n this.formData.employeeLabel = null;\r\n this.ngbActiveModal.close({ UserGroupID: response.ID, success: response.success, closed: false });\r\n }\r\n });\r\n }\r\n else {\r\n this.ngbActiveModal.close({ UserGroupID: this.userGroupID, success: true, closed: false });\r\n }\r\n };\r\n\r\n}\r\n","
\r\n

Select Employee

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n This action will automatically create an employee group for this individual employee.\r\n
\r\n
\r\n Employee:\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 { Component, OnInit } from '@angular/core';\r\nimport { BsModalRef } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'app-warning-modal',\r\n templateUrl: './warning-modal.component.html',\r\n styleUrls: ['./warning-modal.component.css']\r\n})\r\nexport class WarningModalComponent implements OnInit {\r\n modalData: { [key: string]: any } = {};\r\n userAction: string;\r\n closeButtonText: string;\r\n\r\n constructor(private bsModalRef: BsModalRef) { }\r\n\r\n ngOnInit(): void {\r\n if (this.modalData.actionID == null)\r\n this.modalData.actionID == \"actionButton\";\r\n if (this.modalData.actionType == null)\r\n this.modalData.actionType = \"danger\";\r\n this.closeButtonText = this.modalData.closeButtonText != null ? this.modalData.closeButtonText : \"Cancel\";\r\n }\r\n\r\n actionClicked() {\r\n this.userAction = this.modalData.modalAction;\r\n this.bsModalRef.hide();\r\n }\r\n\r\n cancelClicked() {\r\n this.userAction = \"close\";\r\n this.bsModalRef.hide();\r\n }\r\n}","
\r\n

{{modalData.modalTitle}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-cancel-holiday-modal',\r\n templateUrl: './cancel-holiday-modal.component.html',\r\n styleUrls: ['./cancel-holiday-modal.component.css']\r\n})\r\nexport class CancelHolidayModalComponent implements OnInit {\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n @Input() data: any;\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n closeClicked() {\r\n this.activeModal.close('close');\r\n }\r\n\r\n confirmClicked() {\r\n this.activeModal.close('confirm');\r\n }\r\n}\r\n","
\r\n

Cancel Holiday Request

\r\n
\r\n
\r\n
This will cancel your request.
\r\n\r\n
{{data.FromDate}} to {{data.ToDate}}
\r\n
{{data.FromDate}}
\r\n {{data.LeaveDescription}}
\r\n {{data.RequestStatus}}
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport moment from 'moment-business-days';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; \r\n\r\nimport { DaysAndHoursPipe } from 'src/app/shared/pipe/days-and-hours.pipe';\r\n\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\n\r\n@Component({\r\n selector: 'app-floating-modal',\r\n templateUrl: './floating-modal.component.html',\r\n styleUrls: ['./floating-modal.component.css']\r\n})\r\nexport class FloatingModalComponent implements OnInit {\r\n @Input() leaveCode: any;\r\n @Input() stdWorkdayHours : number\r\n @Input() date: Date;\r\n @Input() Languages: any[];\r\n @Input() settings:{ [key: string]: any };\r\n @Input() totalAccruedFromDateLastUsed : number;\r\n @Input() dateDiff : number;\r\n @Input() format : string;\r\n latestRequestDate: any\r\n portalSettings: any;\r\n displayDate: string;\r\n hrTimeOffMessage: any;\r\n year: number;\r\n daysAndHours: DaysAndHoursPipe\r\n accrualRate: any;\r\n disableProjected: boolean;\r\n\r\n constructor(private portalSettingsService:PortalSettingsService, private ngbActiveModal : NgbActiveModal ) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.daysAndHours = new DaysAndHoursPipe();\r\n this.accrualRate = this.leaveCode.AccrualRate != null? this.leaveCode.AccrualRate.toFixed(4):this.leaveCode.AccrualRate;\r\n this.hrTimeOffMessage = this.portalSettings.HRMesasageForTimeOff.ConfigValue;\r\n this.disableProjected = this.portalSettings.VCDisableProjected.ConfigValue == \"1\";\r\n this.displayDate = moment(this.date).format(this.format);\r\n this.year = new Date().getFullYear();\r\n }\r\n\r\n cancelClicked() {\r\n this.ngbActiveModal.close('cancel');\r\n };\r\n }\r\n","
\r\n
{{leaveCode.LeaveCodeDescription}} Balance History
\r\n
{{leaveCode.LeaveCodeDescription}} {{Languages[\"Balance History\"][\"TranslateLabel\"]}}
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
Annual Allotment:
\r\n
{{Languages[\"Annual Allotment\"][\"TranslateLabel\"]}}:
\r\n
{{leaveCode.AnnualAllotment | daysAndHours:settings.timeOffUnits:stdWorkdayHours:false:true}}
\r\n
\r\n
\r\n
\r\n
{{year}} Starting Bal as of {{leaveCode.AvailBalDateDisplay}}:
\r\n
{{year}} {{Languages[\"Starting Bal\"][\"TranslateLabel\"]}}:
\r\n
{{leaveCode.PrevRollOver | daysAndHours:settings.timeOffUnits:stdWorkdayHours}}
\r\n
\r\n
\r\n
Accrued as of {{leaveCode.AccrualAsOfDateDisplay}}:
\r\n
{{Languages[\"Accrued\"][\"TranslateLabel\"]}}:
\r\n
+
{{leaveCode.YTDAccrued | daysAndHours:settings.timeOffUnits:stdWorkdayHours}}
\r\n
\r\n
\r\n
Since Last Reset Date:
\r\n
{{Languages[\"Since Last Reset Date\"][\"TranslateLabel\"]}}:
\r\n
-
{{leaveCode.YTDUsed | daysAndHours:settings.timeOffUnits:stdWorkdayHours}}
\r\n
\r\n
\r\n
\r\n
Current Available:
\r\n
{{Languages[\"Current Available\"][\"TranslateLabel\"]}}:
\r\n
{{leaveCode.ViewpointBalance | daysAndHours:settings.timeOffUnits:stdWorkdayHours}}
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n
\r\n
Projected Date Used:info
\r\n
{{displayDate}}
\r\n
\r\n
\r\n
Working Days from last accrual to projected date:
\r\n
{{dateDiff}}
\r\n
\r\n
\r\n
Rate of Accrual per working Hours:info
\r\n
{{accrualRate}}
\r\n
\r\n
\r\n
Total Projected Accrued:
\r\n
{{totalAccruedFromDateLastUsed | daysAndHours:settings.timeOffUnits:stdWorkdayHours}}
\r\n
\r\n
\r\n
Planned vacation Used:
\r\n
{{leaveCode.PlannedHours | daysAndHours:settings.timeOffUnits:stdWorkdayHours}}
\r\n
\r\n
\r\n
Total Projected:
\r\n
{{leaveCode.CalculatedBalance | daysAndHours:settings.timeOffUnits:stdWorkdayHours}}
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; \r\n\r\n@Component({\r\n selector: 'app-review-cashout-request-modal',\r\n templateUrl: './review-cashout-request-modal.component.html',\r\n styleUrls: ['./review-cashout-request-modal.component.css']\r\n})\r\nexport class ReviewCashoutRequestModalComponent implements OnInit {\r\n @Input() cashHours: any;\r\n @Input() payPeriod: any;\r\n @Input() stdWorkdayHours: any;\r\n @Input() defaultFridayHours: any;\r\n @Input() Languages: any;\r\n\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.close('cancel');\r\n };\r\n\r\n submitClicked() {\r\n this.activeModal.close('submit');\r\n }\r\n}\r\n","
\r\n

Confirm Cash-Out Request

\r\n

{{Languages[\"Confirm Cash-Out Request\"][\"TranslateLabel\"]}}

\r\n
\r\n
\r\n You are requesting to cash out {{cashHours}} hours for the pay period ending on {{payPeriod}}.\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-review-timeoff-request-modal',\r\n templateUrl: './review-timeoff-request-modal.component.html',\r\n styleUrls: ['./review-timeoff-request-modal.component.css']\r\n})\r\nexport class ReviewTimeoffRequestModalComponent implements OnInit {\r\n @Input() dates: any;\r\n @Input() stdWorkdayHours: any;\r\n @Input() defaultFridayHours: any;\r\n requests: any[] = [];\r\n @Input() newBalance: any;\r\n @Input() total: any;\r\n @Input() requestType: any;\r\n @Input() leaveCodeID: any;\r\n @Input() hours: any;\r\n @Input() leaveCodeDesc: string;\r\n @Input() customFridayMode: any;\r\n @Input() projectedInitial: any;\r\n @Input() Languages: any;\r\n @Input() settings: any;\r\n @Input() format: string;\r\n @Input() hideInitRemainHourModal: boolean;\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n this.groupDates();\r\n }\r\n\r\n\r\n groupDates() {\r\n var temp = [];\r\n temp.push(this.dates[0].date);\r\n for (let i = 0; i < this.dates.length - 1; i++) {\r\n //check if next date is continuous with previous date\r\n var currentDay = new Date(this.dates[i].date);\r\n var nextDay = new Date(this.dates[i + 1].date);\r\n var tomorrow = new Date(this.dates[i].date);\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var threeDays = new Date(this.dates[i].date);\r\n threeDays.setDate(threeDays.getDate() + 3);\r\n if (tomorrow.getTime() == nextDay.getTime()) {\r\n temp.push(this.dates[i + 1].date);\r\n }\r\n //special case: check for Friday - Monday\r\n else if (currentDay.getDay() == 5 && nextDay.getDay() == 1) {\r\n if (threeDays.getTime() == nextDay.getTime())\r\n temp.push(this.dates[i + 1].date);\r\n else {\r\n this.addToRequests(temp);\r\n temp = [];\r\n temp.push(this.dates[i + 1].date);\r\n }\r\n }\r\n //if next date is not continuous, push current list to request list\r\n else {\r\n this.addToRequests(temp);\r\n temp = [];\r\n temp.push(this.dates[i + 1].date);\r\n }\r\n\r\n }\r\n this.addToRequests(temp);\r\n }\r\n\r\n addToRequests(temp) {\r\n var requestString, dateString;\r\n if (temp.length > 1) {\r\n requestString = this.leaveCodeDesc + \" - Multiday\";\r\n dateString = moment(temp[0]).format(this.format) + \" - \" + moment(temp[temp.length - 1]).format(this.format);\r\n }\r\n else {\r\n requestString = this.leaveCodeDesc + \" - Single Day\";\r\n dateString = moment(temp[0]).format(this.format);\r\n }\r\n var hours = this.calculateHours(temp);\r\n this.requests.push({ DateString: dateString, RequestString: requestString, Hours: hours });\r\n }\r\n\r\n calculateHours(temp) {\r\n var total = 0;\r\n temp.forEach(val => {\r\n //If request is a partial requests, use provided hours\r\n if (this.requestType == 'P') {\r\n total += this.hours;\r\n }\r\n else if (this.customFridayMode && (new Date(val).getDay()) == 5) {\r\n //TODO get value\r\n total += this.defaultFridayHours;\r\n }\r\n else {\r\n total += this.hours;\r\n }\r\n });\r\n return total;\r\n }\r\n\r\n cancelClicked() {\r\n this.activeModal.close('cancel');\r\n }\r\n\r\n submitClicked() {\r\n this.openModal();\r\n this.activeModal.close('submit');\r\n }\r\n\r\n openModal() {\r\n document.getElementById('modal').style.display = 'block';\r\n document.getElementById('fade').style.display = 'block';\r\n }\r\n}\r\n","
\r\n

Confirm Time-Off Request

\r\n

{{Languages[\"Confirm Time-Off Request\"][\"TranslateLabel\"]}}

\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
Request Type{{Languages[\"Request Type\"][\"TranslateLabel\"]}}Partial Day{{Languages[\"Partial Day\"][\"TranslateLabel\"]}}Dates{{Languages[\"Dates\"][\"TranslateLabel\"]}}
{{request.RequestString}}{{request.DateString}}{{request.Hours | daysAndHours:settings.timeOffUnits:stdWorkdayHours}}
Initial Hours:{{projectedInitial | daysAndHours:settings.timeOffUnits:stdWorkdayHours}}
Total Requested:{{total | daysAndHours:settings.timeOffUnits:stdWorkdayHours}}
New Balance:{{newBalance | daysAndHours:settings.timeOffUnits:stdWorkdayHours}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { TimeOffService } from '../../../pages/timeoff/time-off.service';\r\n\r\n@Component({\r\n selector: 'app-view-company-holiday-modal',\r\n templateUrl: './view-company-holiday-modal.component.html',\r\n styleUrls: ['./view-company-holiday-modal.component.css']\r\n})\r\nexport class ViewCompanyHolidayModalComponent implements OnInit {\r\n @Input() userID : number;\r\n @Input() msg: string;\r\n @Input() Languages: any[];\r\n formData: { [key: string]: any };\r\n yearList: any[];\r\n modalMsg: string;\r\n format: string;\r\n portalSettings: any;\r\n holidayList: any;\r\n\r\n constructor(private timeOffService:TimeOffService, private portalSettingsService:PortalSettingsService, private ngbActiveModal:NgbActiveModal) {\r\n this.portalSettings = this.portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formData = {};\r\n this.yearList = [];\r\n this.modalMsg = this.msg;\r\n var current = moment().format(\"YYYY\");\r\n this.yearList.push({ value: parseInt(current) - 1, name: (parseInt(current) - 1).toString() });\r\n this.yearList.push({ value: parseInt(current), name: current});\r\n this.yearList.push({ value: parseInt(current) + 1, name: (parseInt(current) + 1).toString() });\r\n this.formData.selectedYear = parseInt(current);\r\n this.format = this.portalSettings.CountryDateCode.ConfigValue == \"US\" ? \"MM/DD/YYYY\" : \"DD/MM/YYYY\";\r\n this.getHoliday();\r\n\r\n }\r\n getHoliday(){\r\n this.timeOffService.getHolidaysByUserKeyID(this.userID,this.formData.selectedYear).then((response:any)=>{\r\n this.holidayList = response;\r\n this.holidayList.forEach((val: { HolidayDateString: moment.MomentInput; Day: string; })=> {\r\n switch (moment(val.HolidayDateString, this.format.toUpperCase()).day()) {\r\n case 0:\r\n val.Day = \"Sun\"; break;\r\n case 1:\r\n val.Day = \"Mon\"; break;\r\n case 2:\r\n val.Day = \"Tue\"; break;\r\n case 3:\r\n val.Day = \"Wed\"; break;\r\n case 4:\r\n val.Day = \"Thr\"; break;\r\n case 5:\r\n val.Day = \"Fri\"; break;\r\n case 6:\r\n val.Day = \"Sat\"; break;\r\n }\r\n });\r\n });\r\n }\r\n\r\n closeClicked() {\r\n this.ngbActiveModal.close('close');\r\n };\r\n}\r\n","
\r\n
Company Holidays
\r\n
\r\n
\r\n
\r\n \r\n {{data.name}}\r\n \r\n

\r\n
\r\n 0\">\r\n
    \r\n
  • {{data.HolidayName}} - {{data.HolidayDateString}} ({{data.Day}})
  • \r\n
\r\n
\r\n
\r\n There are no company holidays in {{formData.selectedYear}}.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { AfterViewInit, Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\nimport { TimeOffService } from 'src/app/pages/timeoff/time-off.service';\r\nimport { WebixDatatablecomponent } from './webix-datatable.component';\r\nimport { OrderByPipe } from 'src/app/shared/pipe/order-by.pipe';\r\n\r\n@Component({\r\n selector: 'app-view-group-timeoff-modal',\r\n templateUrl: './view-group-timeoff-modal.component.html',\r\n styleUrls: ['./view-group-timeoff-modal.component.css']\r\n\r\n})\r\nexport class ViewGroupTimeoffModalComponent implements OnInit, AfterViewInit {\r\n @Input() userData: any;\r\n @ViewChild(WebixDatatablecomponent, { static: false }) grid: WebixDatatablecomponent\r\n @ViewChild('modalSize', { static: false }) modalSize: ElementRef;\r\n formData: { [key: string]: any } = {};\r\n //tempsummaryRows = null;\r\n monthFormat: string = \"MM/yyyy\";\r\n isOpen: any[] = [];\r\n webixDataList: any[];\r\n webixGridData: any[];\r\n portalSettings: any;\r\n data: any;\r\n monthOn: boolean;\r\n newDateArray: any[];\r\n monthData: any[];\r\n orderByPipe: any;\r\n monthChangeTrigger: boolean;\r\n DateJs = Date;\r\n datePickerOptions: { dateInputFormat: string; containerClass: string; showTodayButton: boolean; showClearButton: boolean; clearPosition: string; showWeekNumbers: boolean, minMode: string };\r\n format: string;\r\n mobileMode: boolean;\r\n selectedData: any[] = [];\r\n gridWidth: number = 750;\r\n isDataSelected: boolean = false;\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n if (((this.monthData.length > 0 && this.formData.selectedMonth != null) || this.formData.selectedMonth == null) && this.webixDataList.length > 0) {\r\n if (event.target.innerWidth > 992) {\r\n this.gridWidth = 750;\r\n } else {\r\n this.gridWidth = this.modalSize.nativeElement.clientWidth - 32;\r\n }\r\n this.grid.reSize();\r\n }\r\n }\r\n\r\n constructor(private activeModal: NgbActiveModal, private timeOffService: TimeOffService, portalSettingsService: PortalSettingsService) {\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.mobileMode = this.mobileAndTabletcheck();\r\n this.format = \"MM/YYYY\";\r\n this.datePickerOptions = { dateInputFormat: this.format.toUpperCase(), containerClass: \"theme-blue\", showTodayButton: true, showClearButton: false, clearPosition: \"left\", showWeekNumbers: false, minMode: \"month\" };\r\n this.orderByPipe = new OrderByPipe();\r\n this.formData.selectedMonth = new Date(moment(new Date(new Date().getFullYear(), new Date().getMonth(), 1)).add(1, 'days').format(\"YYYY-MM-DD\"));\r\n this.monthChange();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (window.innerWidth > 992) {\r\n this.gridWidth = 750;\r\n } else {\r\n this.gridWidth = this.modalSize.nativeElement.clientWidth - 32;\r\n }\r\n }\r\n mobileAndTabletcheck() {\r\n var check = false;\r\n (function (a) { if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true })(navigator.userAgent || navigator.vendor);\r\n return check;\r\n }\r\n\r\n webixUpdate() {\r\n this.webixDataList = [];\r\n this.webixGridData.forEach((val: any, key: any) => {\r\n var tf = false;\r\n if (this.webixDataList.length == 0 && val.SubmittedbyFullName != \"Holiday\") {\r\n this.webixDataList.push({ id: key, Employee: val.SubmittedbyFullName, PREHKeyID: val.PREHKeyID });\r\n }\r\n this.webixDataList.forEach((val2: any, key2: any) => {\r\n if (val2.PREHKeyID == val.PREHKeyID) {\r\n tf = true;\r\n }\r\n if (key2 == this.webixDataList.length - 1 && !tf && val.SubmittedbyFullName != \"Holiday\") {\r\n this.webixDataList.push({ id: key, Employee: val.SubmittedbyFullName, PREHKeyID: val.PREHKeyID });\r\n }\r\n });\r\n });\r\n this.webixGridData.forEach(val => {\r\n this.webixDataList.forEach(val2 => {\r\n if (val2.PREHKeyID == val.PREHKeyID) {\r\n if (this.portalSettings[\"CountryDateCode\"].ConfigValue == \"US\")\r\n var tempAdd = new Date(parseInt(\"20\" + val.FromDateDisplay.substring(6, 8)), parseInt(val.FromDateDisplay.substring(0, 2)) - 1, val.FromDateDisplay.substring(3, 5));\r\n else {\r\n var tempAdd = new Date(parseInt(\"20\" + val.FromDateDisplay.substring(6, 8)), parseInt(val.FromDateDisplay.substring(3, 5)) - 1, val.FromDateDisplay.substring(0, 2));\r\n }\r\n val2[tempAdd.getMonth() + 1] = true;\r\n val2[\"editor\"] = \"LeaveCode: \" + (val.LeaveDescription == null ? \"\" : val.LeaveDescription) + \" FromDate: \" + val.FromDateDisplay + \" ToDate: \" + val.ToDateDisplay + \" Hours: \" + val.PlannedHours;\r\n while (tempAdd <= (this.portalSettings[\"CountryDateCode\"].ConfigValue == \"US\" ? new Date(parseInt(\"20\" + val.ToDateDisplay.substring(6, 8)), parseInt(val.ToDateDisplay.substring(0, 2)) - 1, val.ToDateDisplay.substring(3, 5)) : new Date(parseInt(\"20\" + val.ToDateDisplay.substring(6, 8)), parseInt(val.ToDateDisplay.substring(3, 5)) - 1, val.ToDateDisplay.substring(0, 2)))) {\r\n var month = tempAdd.getMonth() + 1;\r\n var date = tempAdd.getDate().toString().length == 1 ? \"0\" + tempAdd.getDate() : tempAdd.getDate();\r\n var year = this.formData.selectedMonth.getFullYear();\r\n var dateKey = month + \"/\" + date + \"/\" + year;\r\n if (!val2.hasOwnProperty(dateKey) ||\r\n (val2.hasOwnProperty(dateKey) &&\r\n ((val2[dateKey].substring(0, 1) != \"A\" && val.RequestStatus == \"Approved\") ||\r\n (val2[dateKey].substring(0, 1) == \"R\" && val.RequestStatus == \"Pending\")))) {\r\n val2[dateKey] =\r\n (val.RequestStatus == \"H\" ? \"Hcar_front\" :\r\n val.RequestStatus == \"Approved\" ? (val.PlannedHours >= val.DefaultWorkHours ? \"Acircle_check_outline\" : \"A\") :\r\n val.RequestStatus == \"Rejected\" ? (val.PlannedHours >= val.DefaultWorkHours ? \"Rcircle_close\" : \"R\") :\r\n val.RequestStatus == \"Pending\" ? (val.PlannedHours >= val.DefaultWorkHours ? \"Phelp\" : \"P\") :\r\n (tempAdd.getDay() != 0 && tempAdd.getDay() != 6 ? \"C\" : \"C\")) +\r\n \"|LeaveCode|\" + (val.LeaveDescription == null ? \"\" : val.LeaveDescription) + \"|FromDate|\" + val.FromDateDisplay + \"|ToDate|\" + val.ToDateDisplay + \"|Hours|\" + val.PlannedHours + \"|DefaultWorkHours|\" + val.DefaultWorkHours +\r\n \"|Name|\" + val.SubmittedbyFullName + \"|Status|\" + val.RequestStatus + \"|Note|\" + val.ApprovalString;\r\n tempAdd = tempAdd.add(1).day();\r\n } else {\r\n if (val2[dateKey].substring(0, 1) == \"C\" && val2[dateKey].substring(0, 1) != \"H\") {\r\n val2[dateKey] =\r\n (val.RequestStatus == \"H\" ? \"Hcar_front\" :\r\n val.RequestStatus == \"Approved\" ? (val.PlannedHours >= val.DefaultWorkHours ? \"Acircle_check_outline\" : \"A\") :\r\n val.RequestStatus == \"Rejected\" ? (val.PlannedHours >= val.DefaultWorkHours ? \"Rcircle_close\" : \"R\") :\r\n val.RequestStatus == \"Pending\" ? (val.PlannedHours >= val.DefaultWorkHours ? \"Phelp\" : \"P\") :\r\n (tempAdd.getDay() != 0 && tempAdd.getDay() != 6 ? \"C\" : \"C\")) +\r\n \"|LeaveCode|\" + (val.LeaveDescription == null ? \"\" : val.LeaveDescription) + \"|FromDate|\" + val.FromDateDisplay + \"|ToDate|\" + val.ToDateDisplay + \"|Hours|\" + val.PlannedHours + \"|DefaultWorkHours|\" + val.DefaultWorkHours +\r\n \"|Name|\" + val.SubmittedbyFullName + \"|Status|\" + val.RequestStatus + \"|Note|\" + val.ApprovalString;\r\n }\r\n\r\n tempAdd = tempAdd.add(1).day();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n var tempFoYr = this.formData.selectedMonth.getFullYear();\r\n var tempFoMth = this.formData.selectedMonth.getMonth();\r\n var tempToYr = this.formData.selectedMonth.getFullYear();\r\n var tempToMth = this.formData.selectedMonth.getMonth() + 1;\r\n if (tempToMth == 12) {\r\n tempToYr++;\r\n tempToMth = 0;\r\n }\r\n var tempAdd = new Date(tempFoYr, tempFoMth, 1);\r\n while (tempAdd <= new Date(tempToYr, tempToMth, 1)) {\r\n var month = tempAdd.getMonth() + 1;\r\n var date = tempAdd.getDate().toString().length == 1 ? \"0\" + tempAdd.getDate() : tempAdd.getDate();\r\n var year = tempAdd.getFullYear();\r\n this.webixDataList.forEach(val => {\r\n if (!val.hasOwnProperty((month + \"/\" + date + \"/\" + year))) {\r\n if (tempAdd.getDay() == 6 || tempAdd.getDay() == 0) {\r\n val[month + \"/\" + date + \"/\" + year] = \"\";\r\n }\r\n }\r\n });\r\n tempAdd = tempAdd.add(1).day();\r\n }\r\n }\r\n\r\n getNewDates(startDate: any, stopDate: number | Date) {\r\n var dateArray = new Array();\r\n dateArray.push({ id: \"Employee\", header: { text: \"Employee\", rotate: false, height: 60 }, width: 150, sort: \"string\" });\r\n var currentDate = startDate;\r\n while (currentDate < stopDate) {\r\n var month = currentDate.getMonth() + 1;\r\n var date = currentDate.getDate().toString().length == 1 ? \"0\" + currentDate.getDate() : currentDate.getDate();\r\n var year = currentDate.getFullYear();\r\n dateArray.push({ id: month + \"/\" + date + \"/\" + year, header: { text: ((this.portalSettings.CountryDateCode.ConfigValue == \"US\") ? (month + \"/\" + date) : (date + \"/\" + month)), rotate: true, css: \"myClass\" }, width: 30 });\r\n currentDate = currentDate.add(1).day();\r\n }\r\n return dateArray;\r\n }\r\n\r\n monthChange() {\r\n this.data = null;\r\n if (this.formData.selectedMonth != null) {\r\n if (this.formData.selectedMonth.getDate() > 1) {\r\n this.formData.selectedMonth = new Date(this.formData.selectedMonth.getFullYear(), this.formData.selectedMonth.getMonth(), 1);\r\n }\r\n }\r\n var tempselectedDate = new Date(this.formData.selectedMonth.getTime());\r\n this.monthOn = true;\r\n this.newDateArray = [];\r\n this.newDateArray = this.getNewDates(new Date(tempselectedDate.setHours(0, 0, 0, 0)), tempselectedDate.add(1).month());\r\n this.monthData = [];\r\n if (this.formData.selectedMonth != null) {\r\n this.timeOffService.getRequestsByMonth(this.userData.PRCo, moment(this.formData.selectedMonth).format(\"YYYY-MM-DD\"), this.userData.UserKeyID).then((response: any[]) => {\r\n this.webixGridData = this.orderByPipe.transform(response, \"SubmittedbyFullName\", \"asc\");\r\n this.webixUpdate();\r\n this.monthData = this.webixDataList;\r\n });\r\n }\r\n this.monthChangeTrigger = false;\r\n }\r\n\r\n open($event, item) {\r\n this.isOpen = [];\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.isOpen[item] = true;\r\n }\r\n\r\n updateData(event: any) {\r\n this.data = event;\r\n }\r\n\r\n closeClicked() {\r\n this.activeModal.close();\r\n };\r\n\r\n}","
\r\n
\r\n
\r\n
Group Time Off
\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 circle_check_outline\r\n Approved\r\n \r\n \r\n \r\n circle_close\r\n Rejected\r\n \r\n \r\n \r\n help\r\n Pending\r\n \r\n car_front Holiday\r\n
\r\n
\r\n 0 && formData.selectedMonth == 0) || (monthData?.length>0 && formData.selectedMonth != 0)\" (selectedData)=\"updateData($event)\">\r\n

No Time Off Request for this month.

\r\n\r\n
\r\n {{data[\"LeaveCode\"]}}
\r\n {{data[\"FromDate\"]}}
\r\n {{data[\"ToDate\"]}}
\r\n {{data[\"Hours\"]}}
\r\n
\r\n
\r\n
","import { Component, Input, ElementRef, SimpleChanges, OnDestroy, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'datatable',\r\n template: \"\"\r\n})\r\nexport class WebixDatatablecomponent implements OnDestroy {\r\n private ui: webix.ui.datatable;\r\n data: any[] = [];\r\n @Input() monthData: any[] = [];\r\n @Input() newDateArray: any[] = [];\r\n @Input() gridWidth: number = 750;\r\n @Output() selectedData = new EventEmitter();\r\n\r\n constructor(private root: ElementRef) {\r\n this.ui = webix.ui({\r\n view: \"datatable\",\r\n container: root.nativeElement,\r\n id: \"timeoffGrid\",\r\n columns: this.newDateArray,\r\n data: this.monthData,\r\n autoheight: true,\r\n minWidth: 300,\r\n maxWidth: 750,\r\n scroll: \"x\",\r\n leftSplit: 1,\r\n onClick: {\r\n \"load\": (event, id) => {\r\n setTimeout(() => {\r\n var temp = (webix.$$(\"timeoffGrid\")).getItem(id.row);\r\n var data = temp[id.column].split(\"|\")\r\n this.data = [];\r\n for (var i = 1; i < data.length; i++) {\r\n this.data[data[i]] = data[i + 1];\r\n i++;\r\n }\r\n this.selectedData.emit(this.data);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.reSize();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.ui) {\r\n (webix.$$(\"timeoffGrid\")).clearAll();\r\n if (this.monthData != undefined && this.monthData != []) {\r\n this.ui.parse(this.monthData, \"json\");\r\n }\r\n if (this.newDateArray != undefined && this.newDateArray != []) {\r\n (webix.$$(\"timeoffGrid\")).config.columns = this.newDateArray;\r\n (webix.$$(\"timeoffGrid\")).refreshColumns();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.ui) {\r\n this.ui.destructor();\r\n }\r\n }\r\n\r\n reSize() {\r\n this.ui.config.width = this.gridWidth;\r\n (webix.$$(\"timeoffGrid\")).resize();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AdminService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getErrorLogs() {\r\n return this.http.get(\"/Admin/GetErrorLogs\").toPromise();\r\n }\r\n\r\n getConfigCat() {\r\n return this.http.get(\"/Admin/GetConfigCat\").toPromise();\r\n }\r\n\r\n getLoginUrl(selectedCompany: any) {\r\n return this.http.get(\"/Admin/GetLoginUrl?co=\" + selectedCompany, { responseType: 'text' }).pipe();\r\n }\r\n\r\n getUserGroup() {\r\n return this.http.get(\"/Admin/GetUserGroup\").toPromise();\r\n }\r\n\r\n getAllEmailTemplates() {\r\n return this.http.get(\"/Admin/GetAllEmailTemplates\").toPromise();\r\n }\r\n\r\n getLookup() {\r\n return this.http.get(\"/Checklist/GetLookup\").toPromise();\r\n }\r\n\r\n getAttachmentTypes() {\r\n return this.http.get(\"/Checklist/GetAttachmentTypes\").toPromise();\r\n }\r\n\r\n getCompanies() {\r\n return this.http.get(\"/Admin/GetCompanies\").toPromise();\r\n }\r\n\r\n getVersionNumber() {\r\n return this.http.get(\"/Admin/GetVersionNumber\").toPromise();\r\n }\r\n\r\n getCounts() {\r\n return this.http.get(\"/Admin/GetCounts\").toPromise();\r\n }\r\n\r\n getCustomerId() {\r\n return this.http.get(\"/Admin/GetCustomerId\").toPromise();\r\n }\r\n\r\n getPortalSettings() {\r\n return this.http.get(\"/Admin/GetPortalSettings\").toPromise();\r\n }\r\n\r\n getAllPortalSettings() {\r\n return this.http.get(\"/Admin/GetAllPortalSettings\").toPromise();\r\n }\r\n\r\n getPortalSettingUpdateLogs(portalSetting: string, count: number) {\r\n return this.http.get(\"/Admin/GetPortalSettingUpdateLogs?portalSetting=\" + portalSetting + \"&count=\" + count).toPromise();\r\n }\r\n\r\n savePortalSettings(configName: any, configValue: any) {\r\n return this.http.post(\"/Admin/SavePortalSettings\",\r\n {\r\n settingName: configName,\r\n settingValue: configValue\r\n }).toPromise();\r\n }\r\n\r\n portalSettingsPageData() {\r\n return this.http.get(\"/Admin/PortalSettingsPageData\").toPromise();\r\n }\r\n\r\n getVersionHistory() {\r\n return this.http.get(\"/Admin/GetVersionHistory\").toPromise();\r\n }\r\n\r\n sendUsageDataTask() {\r\n return this.http.post(\"/Admin/SendUsageDataTask\", {}).toPromise();\r\n }\r\n\r\n refreshPortalSettings() {\r\n return this.http.post(\"/Admin/RefreshPortalSettings\", {}).toPromise();\r\n }\r\n\r\n refreshSynonyms() {\r\n return this.http.post(\"/Admin/RefreshSynonyms\", {}).toPromise();\r\n }\r\n\r\n refreshDynamicViews() {\r\n return this.http.post(\"/Admin/RefreshDynamicViews\", {}).toPromise();\r\n }\r\n\r\n purgeVCMSessions() {\r\n return this.http.post(\"/Admin/PurgeVCMSessions\", {}).toPromise();\r\n }\r\n\r\n previewUserGroupMembers(userGroupID: any, isUpdatePersist: any) {\r\n return this.http.get(\"/Admin/PreviewUserGroupMembers?userGroupID=\" + userGroupID + \"&isUpdatePersist=\" + isUpdatePersist).toPromise();\r\n }\r\n\r\n checkExistRDL(filename: any) {\r\n return this.http.post(\"/Admin/CheckExistRDL\",\r\n {\r\n filename: filename\r\n }).toPromise();\r\n }\r\n\r\n uploadCustomRDL(configName: any, configValue: any, fileData: any) {\r\n return this.http.post(\"/Admin/UploadCustomRDL\",\r\n {\r\n settingName: configName,\r\n settingValue: configValue,\r\n fileData: fileData\r\n }).toPromise();\r\n }\r\n\r\n deleteCustomRDL(filename: any, configName: any) {\r\n return this.http.post(\"/Admin/DeleteCustomRDL\",\r\n {\r\n filename: filename,\r\n settingName: configName\r\n }).toPromise();\r\n }\r\n\r\n builderCustomRDLAction(fileName: any, fileData: any, deleteList: any) {\r\n return this.http.post(\"/Admin/BuilderCustomRDLAction\",\r\n {\r\n fileName: fileName,\r\n fileData: fileData,\r\n deleteList: deleteList\r\n }).toPromise();\r\n }\r\n\r\n updateConfigInfo(configName: any, description: any, helperText: any, isAdvanced: any, moduleSubID: any, defaultValue: any, regularExpression: any) {\r\n return this.http.post(\"/Admin/UpdateConfigInfo\",\r\n {\r\n configName: configName,\r\n description: description,\r\n helperText: helperText,\r\n isAdvanced: isAdvanced,\r\n moduleSubID: moduleSubID,\r\n defaultValue: defaultValue,\r\n regularExpression: regularExpression\r\n }).toPromise();\r\n }\r\n\r\n birdDogTalentUserInsert() {\r\n return this.http.post(\"/Hiring/BirdDogTalentUserInsert\", {}).toPromise();\r\n }\r\n\r\n deleteTempFilesAction() {\r\n return this.http.post(\"/Document/DeleteTempFilesAction\", {}).toPromise();\r\n }\r\n\r\n clearCoLogoCache() {\r\n return this.http.post(\"/Company/ClearCoLogoCache\", {}).toPromise();\r\n }\r\n\r\n getBulletinType(bulletinGroupType?: string) {\r\n return this.http.get(\"/Admin/GetBulletinType?bulletinGroupType=\" + bulletinGroupType).toPromise();\r\n }\r\n\r\n getAllBulletinType() {\r\n return this.http.get(\"/Admin/GetBulletinType\").toPromise();\r\n }\r\n\r\n getBulletinsManage() {\r\n return this.http.get(\"/Admin/GetBulletinsManage\").toPromise();\r\n }\r\n\r\n deleteBulletin(bulletinID: number) {\r\n return this.http.post(\"/Admin/DeleteBulletin\",\r\n {\r\n bulletinID: bulletinID\r\n }).toPromise();\r\n }\r\n\r\n bulletinSendPendingReminder(bulletinID: number) {\r\n return this.http.post(\"/Admin/BulletinSendPendingReminder\",\r\n {\r\n bulletinID: bulletinID\r\n }).toPromise();\r\n }\r\n\r\n getDBAttachment(BulletinThumbFileAttachmentID: any) {//TODo Move to DocumentService\r\n return this.http.get(\"/Document/GetDBAttachment?attachmentID=\" + BulletinThumbFileAttachmentID).toPromise();\r\n }\r\n\r\n getDBAttachmentList(moduleID: number, bulletinID?: number, recordGuid?: any, onboardingUser?: boolean) {//TODo Move to DocumentService\r\n return this.http.get(\"/Document/GetDBAttachmentList?moduleID=\" + moduleID + \"&recordID=\" + bulletinID + \"&recordGuid=\" + recordGuid + \"&onboardingUser=\" + onboardingUser).toPromise();\r\n }\r\n\r\n addEditBulletin(requestObj: { [key: string]: any; }) {\r\n return this.http.post(\"/Admin/AddEditBulletin\",\r\n {\r\n bulletinID: requestObj.bulletinID,\r\n bulletinAttachDocumentFlagValue: requestObj.bulletinAttachDocumentFlagValue,\r\n bulletinHeadline: requestObj.bulletinHeadline,\r\n bulletinBody: requestObj.bulletinBody,\r\n bulletinExpiresString: requestObj.bulletinExpiresString,\r\n bulletinThumbnailText: requestObj.bulletinThumbnailText,\r\n bulletinThumbFileAttachmentID: requestObj.bulletinThumbFileAttachmentID,\r\n bulletinMode: requestObj.bulletinMode,\r\n bulletinTypeID: requestObj.bulletinTypeID,\r\n bulletinDirectURL: requestObj.bulletinDirectURL,\r\n bulletinStartDateStr: requestObj.bulletinStartDateStr,\r\n embedAttachmentInPage: requestObj.embedAttachmentInPage,\r\n bulletinIgnoreDateString: requestObj.bulletinIgnoreDateString,\r\n bulletinSignatureText: requestObj.bulletinSignatureText,\r\n bulletinIsPinned: requestObj.bulletinIsPinned,\r\n attachmentType: requestObj.attachmentType,\r\n bulletinIsSecure: requestObj.bulletinIsSecure,\r\n isFillablePDF: requestObj.isFillablePDF\r\n }).toPromise();\r\n }\r\n\r\n getBulletinGroup(bulletinTypeID?: number, bulletinID?: number) {\r\n return this.http.get(\"/Admin/GetBulletinGroup?bulletinTypeID=\" + bulletinTypeID + \"&bulletinID=\" + bulletinID).toPromise();\r\n }\r\n\r\n setBulletinGroup(bulletinTypeID?: number, bulletinID?: number, userGroupID?: number) {\r\n return this.http.post(\"/Admin/SetBulletinGroup\", {\r\n bulletinTypeID: bulletinTypeID,\r\n bulletinID: bulletinID,\r\n userGroupID: userGroupID\r\n }).toPromise();\r\n }\r\n\r\n removeBulletinGroup(userGroupBulletinTypeID: number) {\r\n return this.http.post(\"/Admin/RemoveBulletinGroup\", {\r\n userGroupBulletinTypeID: userGroupBulletinTypeID\r\n }).toPromise();\r\n }\r\n\r\n saveDBAttachment(moduleID, recordID, attachmentFileData, attachmentFileName) {\r\n return this.http.post(\"/Document/SaveDBAttachment\", {\r\n moduleID: moduleID,\r\n recordID: recordID,\r\n attachmentFileData: attachmentFileData,\r\n attachmentFileName: attachmentFileName\r\n }).toPromise();\r\n }\r\n\r\n userGroupAddSingleUser(userGroupID: number, userGroupName: any, fliterInactive: boolean, sQLQueryOverride: any, pRCo: any, memberType: string, isIncluded: boolean, groupValue: any) {\r\n return this.http.post(\"/Admin/UserGroupAddSingleUser\", {\r\n userGroupID: userGroupID,\r\n userGroupName: userGroupName,\r\n fliterInactive: fliterInactive,\r\n sQLQueryOverride: sQLQueryOverride,\r\n pRCo: pRCo,\r\n memberType: memberType,\r\n isIncluded: isIncluded,\r\n groupValue: groupValue\r\n }).toPromise();\r\n }\r\n\r\n removeBulletinType(bulletinTypeID: number) {\r\n return this.http.post(\"/Admin/RemoveBulletinType\", {\r\n bulletinTypeID: bulletinTypeID\r\n }).toPromise();\r\n }\r\n\r\n setBulletinType(bulletinTypeID: number, bulletinName: string, bulletinGroupType: string) {\r\n return this.http.post(\"/Admin/SetBulletinType\", {\r\n bulletinTypeID: bulletinTypeID, bulletinName: bulletinName, bulletinGroupType: bulletinGroupType\r\n }).toPromise();\r\n }\r\n\r\n getBulletinTrackResponses(bulletinID?: number, pREHKeyID?: number) {\r\n return this.http.get(\"/Admin/GetBulletinTrackResponses?bulletinID=\" + bulletinID + \"&pREHKeyID=\" + pREHKeyID).toPromise();\r\n }\r\n\r\n bulletinAttachToVista(bulletinID: number, bulletinAttachDocumentFlagValue: string, filename: string, PREHKeyID?: number, HRRMKeyID?: number, bulletinResponseID?: number) {\r\n return this.http.post(\"/Employee/BulletinAttachToVista\", {\r\n bulletinID: bulletinID, bulletinAttachDocumentFlagValue: bulletinAttachDocumentFlagValue, filename: filename, PREHKeyID: PREHKeyID, HRRMKeyID: HRRMKeyID, bulletinResponseID: bulletinResponseID\r\n }).toPromise();\r\n }\r\n\r\n getHRUsers(searchText: string, includeInactive: boolean, userKeyID: number) {\r\n var url = \"/Admin/GetHRUsers?searchText=\" + searchText + \"&includeInactive=\" + includeInactive + \"&userKeyID=\" + userKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getBulletinsGetIndex(bulletinID?: number) {\r\n var url = \"/Employee/GetBulletinsGetIndex?bulletinID=\" + bulletinID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getEmployees(includeInactive: boolean, isAdd: boolean, jcjm: number) {\r\n var url = \"/Admin/GetEmployees?includeInactive=\" + includeInactive + \"&isAdd=\" + isAdd + \"&jcjm=\" + jcjm;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCodes(selectedCompany: number) {\r\n var url = \"/Admin/GetCodes?hRCo=\" + selectedCompany;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n clearUserGridSettings(gridLocation: string, userKeyID?: number) {\r\n return this.http.post(\"/Admin/ClearUserGridSettings\", {\r\n userKeyID: userKeyID,\r\n gridLocation: gridLocation\r\n }).toPromise();\r\n }\r\n\r\n getScheduledJobs() {\r\n var url = \"/Admin/GetScheduledJobs\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getScheduledJob(jobID: number) {\r\n var url = \"/Admin/GetScheduledJob?JobID=\" + jobID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getScheduledJobHistory(jobID: number) {\r\n var url = \"/Admin/ScheduledJobHistory?jobID=\" + jobID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n addOrUpdateScheduledJob(job) {\r\n var url = \"/Admin/AddOrUpdateScheduledJob\";\r\n return this.http.post(url, job).toPromise();\r\n }\r\n\r\n removeUserDefinedJob(jobID: number) {\r\n var url = \"/Admin/RemoveUserDefinedJob\";\r\n return this.http.post(url, { jobID: jobID }).toPromise();\r\n }\r\n\r\n executeJobNow(jobID: number) {\r\n var url = \"/Admin/ExecuteJobNow\";\r\n return this.http.post(url, { jobID: jobID }).toPromise();\r\n }\r\n\r\n getEmployeeGroups() {\r\n var url = \"/Admin/GetEmployeeGroups\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n sendSMSUserGrouop(userGroupID?: number, sMSSubject?: string, bodyText?: string, messageType?: string, includeOptOut?: boolean, scheduledSendDateStr?: string, scheduleTimeStr?: string) {\r\n return this.http.post(\"/Admin/SendSMSUserGrouop\", {\r\n userGroupID: userGroupID,\r\n sMSSubject: sMSSubject,\r\n bodyText: bodyText,\r\n messageType: messageType,\r\n includeOptOut: includeOptOut,\r\n scheduledSendDateStr: scheduledSendDateStr,\r\n scheduleTimeStr: scheduleTimeStr\r\n }).toPromise();\r\n }\r\n\r\n getMailLog(requestParam: string) {\r\n var url = \"/Admin/GetMailLog?\" + requestParam;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getMailQueueProcessSources() {\r\n var url = \"/Admin/GetMailQueueProcessSources\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getHangFireEmailStatus() {\r\n var url = \"/Admin/GetHangFireEmailStatus\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n sendEmailQueueHourly(type: string) {\r\n return this.http.post(\"/Admin/SendEmailQueueHourly\", {\r\n type: type\r\n }).toPromise();\r\n }\r\n\r\n deleteMailQueueItem(mailQueueID: number) {\r\n return this.http.post(\"/Admin/DeleteMailQueueItem\", {\r\n mailQueueID: mailQueueID\r\n }).toPromise();\r\n }\r\n\r\n sendTestEmail(mailTo: string) {\r\n var url = \"/Admin/SendTestEmail\";\r\n return this.http.post(url, {mailTo: mailTo}).toPromise();\r\n }\r\n\r\n forwardEmail(mailQueueID: number, mailTo: string) {\r\n return this.http.post(\"/Admin/ForwardEmail\", {\r\n mailQueueID: mailQueueID,\r\n toEmail: mailTo\r\n }).toPromise();\r\n }\r\n\r\n getTrainingCompany() {\r\n var url = \"/Employee/GetTrainingCompany\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getClassesToManage(hRCo: number, showTemplates: boolean, trainingClassID?: any) {\r\n var url = \"/Admin/GetClassesToManage?hRCo=\" + hRCo + \"&showTemplates=\" + showTemplates + \"&trainingClassID=\" + trainingClassID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getChecklistTemplate() {\r\n var url = \"/Admin/GetChecklistTemplate\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getRequireCourseSetting() {\r\n var url = \"/Admin/GetRequireCourseSetting\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n addGroupToClass(trainingClassId: number, userGroupID: number) {\r\n return this.http.post(\"/Admin/AddGroupToClass\", {\r\n trainingClassId: trainingClassId,\r\n userGroupID: userGroupID\r\n }).toPromise();\r\n }\r\n\r\n removeGroupFromClass(trainingClassId: number, userGroupID: number) {\r\n return this.http.post(\"/Admin/RemoveGroupFromClass\", {\r\n trainingClassId: trainingClassId,\r\n userGroupID: userGroupID\r\n }).toPromise();\r\n }\r\n\r\n hasCompletedChecklist(trainingClassID: number, hasCompletedChecklist: boolean) {\r\n return this.http.post(\"/Admin/HasCompletedChecklist\", {\r\n trainingClassID: trainingClassID,\r\n hasCompletedChecklist: hasCompletedChecklist\r\n }).toPromise();\r\n }\r\n\r\n\r\n addAttendeeToClass(trainingClassId: any, attendeeUserKeyID: any) {\r\n return this.http.post(\"/Admin/AddAttendeeToClass\",{\r\n trainingClassId: trainingClassId,\r\n attendeeUserKeyID: attendeeUserKeyID\r\n }).toPromise();\r\n }\r\n\r\n getGroups() {\r\n var url= \"/Admin/GetUserGroup\"\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n removeAttendee(trainingClassAttendeeID: number, trainingClassId: number) {\r\n return this.http.post(\"/Admin/RemoveAttendee\",{\r\n trainingClassAttendeeID: trainingClassAttendeeID,\r\n trainingClassId: trainingClassId\r\n }).toPromise();\r\n }\r\n\r\n addCodeToClass(trainingClassId: number, hRCMKeyID: number) {\r\n return this.http.post(\"/Admin/AddCodeToClass\",{\r\n trainingClassId: trainingClassId,\r\n hRCMKeyID: hRCMKeyID\r\n }).toPromise();\r\n }\r\n\r\n removeCode(data: { trainingClassId: number; hRCMKeyID: number; }) {\r\n return this.http.post(\"/Admin/RemoveCode\",{\r\n trainingClassId: data.trainingClassId,\r\n hRCMKeyID: data.hRCMKeyID\r\n }).toPromise();\r\n }\r\n\r\n createEditClass(data: { [key: string]: any }) {\r\n return this.http.post(\"/Admin/CreateEditClass\",{\r\n trainingClassId: data.trainingClassId,\r\n classDateTimeStr: data.classDateTimeStr,\r\n classTitle: data.classTitle,\r\n isClassOpenRegister: data.isClassOpenRegister,\r\n classInstructorUserKeyID: data.classInstructorUserKeyID,\r\n hRCo: data.hRCo,\r\n location: data.location,\r\n maxAttendeeCount: data.maxAttendeeCount,\r\n classEndDateTimeStr: data.classEndDateTimeStr,\r\n checklistTemplateID: data.checklistTemplateID,\r\n isClassTemplate: data.isClassTemplate,\r\n templateTrainingClassID: data.templateTrainingClassID,\r\n expirationDateStr: data.expirationDateStr\r\n }).toPromise();\r\n }\r\n\r\n finalizeClass(trainingClassId: number, isFinalized: number, checklistInstanceID?: number) {\r\n return this.http.post(\"/Admin/FinalizeClass\",{\r\n trainingClassId: trainingClassId,\r\n isFinalized: isFinalized,\r\n checklistInstanceID: checklistInstanceID\r\n }).toPromise();\r\n }\r\n\r\n deleteSavedAttachment (file:any) {\r\n return this.http.post(\"/Employee/RemoveFileAttachment\",{\r\n fileAttachmentID: file.FileAttachmentID\r\n }).toPromise();\r\n }\r\n\r\n getGroupByClass(trainingClassId: number) {\r\n var url = \"/Admin/GetGroupByClass?trainingClassId=\" + trainingClassId;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCodesByClass(trainingClassId: number) {\r\n var url= \"/Admin/GetCodesByClass?trainingClassId=\"+trainingClassId;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getAttendeesByClass(trainingClassId: number) {\r\n var url = \"/Admin/GetAttendeesByClass?trainingClassId=\" + trainingClassId;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getAttendees() {\r\n var url = \"/Admin/GetAttendees\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n attendeeSign(trainingClassAttendeeID: number, isPresent: boolean, signatureData?: any, signatureLong?: any, signatureLat?: any){\r\n return this.http.post(\"/Admin/AttendeeSign\",{\r\n trainingClassAttendeeID: trainingClassAttendeeID,\r\n isPresent: isPresent,\r\n signatureData: signatureData,\r\n signatureLong: signatureLong,\r\n signatureLat: signatureLat\r\n }).toPromise();\r\n }\r\n\r\n attendeeMarkAllPresent(trainingClassID: number) {\r\n return this.http.post(\"/Admin/AttendeeMarkAllPresent\", { trainingClassID: trainingClassID }).toPromise();\r\n }\r\n\r\n deleteClass(trainingClassId: number) {\r\n return this.http.post(\"/Admin/DeleteClass\", {\r\n trainingClassId: trainingClassId\r\n }).toPromise();\r\n }\r\n\r\n getHolidayGroupSet() {\r\n const url = \"/Admin/HolidayGroupsGet\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getHolidayCodeAssign(holidayGroupID: number) {\r\n const url = \"/Admin/HolidayCodeAssignGet?holidayGroupID=\" + holidayGroupID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getHolidayList(selectedYear: number, selectedCountry: string) {\r\n const url = \"/Admin/GetHolidayList?year=\" + selectedYear + \"&country=\" + selectedCountry;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getUserGroupList() {\r\n const url = \"/Admin/GetUserGroup\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n addUserGroup(holidayGroupID: number, userGroupID: number) {\r\n const url = \"/Admin/HolidayCodeAssignAdd\";\r\n const payload = {\r\n holidayGroupID: holidayGroupID,\r\n userGroupID: userGroupID\r\n }\r\n return this.http.post(url, payload).toPromise();\r\n }\r\n\r\n addHolidayGroupName(groupData) {\r\n const url = \"/Admin/HolidayGroupAddUpdate\";\r\n const payload = {\r\n holidayGroupID: groupData.holidayGroupID,\r\n holidayGroupName: groupData.holidayGroupName\r\n }\r\n return this.http.post(url, payload).toPromise();\r\n }\r\n\r\n updateHolidayGroupName(groupData) {\r\n const url = \"/Admin/HolidayGroupAddUpdate\";\r\n const payload = {\r\n holidayGroupID: groupData.holidayGroupID,\r\n holidayGroupName: groupData.holidayGroupName\r\n }\r\n return this.http.post(url, payload).toPromise();\r\n }\r\n\r\n removeUserGroup(userGroup) {\r\n const url = \"/Admin/HolidayCodeAssignDelete\";\r\n const payload = {\r\n holidayCodeAssignID: userGroup.HolidayCodeAssignID\r\n }\r\n return this.http.post(url, payload).toPromise();\r\n }\r\n\r\n deleteGroup(holidayGroup) {\r\n const url = \"/Admin/HolidayGroupDelete\";\r\n const payload = { holidayGroupID: holidayGroup.HolidayGroupID }\r\n return this.http.post(url, payload).toPromise();\r\n }\r\n\r\n addHoliday(holidayData) {\r\n const url = \"/Admin/HolidayAddEdit\";\r\n const payload = {\r\n holidayID: holidayData.holidayID,\r\n holidayGroupID: holidayData.holidayGroupID,\r\n holidayDateStr: holidayData.holidayDateStr,\r\n holidayName: holidayData.holidayName,\r\n holidayDescription: holidayData.holidayDescription,\r\n isPartialDay: holidayData.isPartialDay\r\n }\r\n return this.http.post(url, payload).toPromise();\r\n }\r\n\r\n deleteHoliday(holiday) {\r\n const url = \"/Admin/HolidayDelete\";\r\n const payload = {\r\n holidayID: holiday.HolidayID\r\n }\r\n return this.http.post(url, payload).toPromise();\r\n }\r\n\r\n getHolidayByGroupID(holidayGroupID: number) {\r\n const url = \"/Admin/HolidaysGetByGroupID?holidayGroupID=\" + holidayGroupID;\r\n return this.http.get(url).toPromise();\r\n }\r\n \r\n getPRGroups(company: any) {\r\n return this.http.get(\"/Admin/GetPRGroups?company=\" + company).toPromise();\r\n }\r\n\r\n getEmployeesByPRCoAndPRGroup(pRCo: any, pRGroup: any) {\r\n return this.http.get(\"/Admin/GetEmployeesByPRCoAndPRGroup?pRCo=\" + pRCo + \"&pRGroup=\" + pRGroup).toPromise();\r\n }\r\n\r\n getVistaVersion() {\r\n var url = \"/Admin/GetVistaVersion\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getEmailTemplates(emailTemplateID?: number, reqID?: any) {\r\n var url = \"/Admin/GetEmailTemplates?reqID=\" + reqID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n evaluateEmailTemplateVerbiage(onboardID?: any, reqID?: any, emailTemplateID?: number, templateBody?: string, templateSubject?: string, sendEmail?: boolean, templateTo?: string) {\r\n var url = \"/Admin/EvaluateEmailTemplateVerbiage?onboardID=\" + onboardID + \"&reqID=\" + reqID + \"&emailTemplateID=\" + emailTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n \r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApprovalService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getSupportRequests(status: any, userKeyID: number) {\r\n var url = \"/Approval/GetSupportRequests?supportDepartmentID=\" + null\r\n + \"&status=\" + status + \"&userKeyID=\" + userKeyID\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getHRList(searchText?: string, includeInactive?: string, userKeyID?: number) {\r\n var url = \"/Approval/GetHRList?searchText=\"+ searchText + \"&includeInactive=\" + includeInactive + \"&userKeyID=\" + userKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n updateRequest(supportRequestID: number, supportDepartmentID: number, requestStatus: string, assignedToUserKeyID: number, submittedByUserKeyID: number, isUrgent: boolean) {\r\n return this.http.post(\"/Approval/UpdateRequest\", {\r\n supportRequestID: supportRequestID,\r\n supportDepartmentID: supportDepartmentID,\r\n requestStatus: requestStatus,\r\n assignedToUserKeyID: assignedToUserKeyID,\r\n submittedByUserKeyID: submittedByUserKeyID,\r\n isUrgent: isUrgent\r\n }).toPromise();\r\n }\r\n\r\n getRequestByID(supportRequestID: number) {\r\n var url = \"/Approval/GetRequestByID?supportRequestID=\" + supportRequestID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getSupportNotes(supportRequestID: number) {\r\n var url = \"/Approval/GetSupportNotes?supportRequestID=\" + supportRequestID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n addSupportNote(supportRequestID: number, supportNote: string, isNotify: boolean) {\r\n return this.http.post(\"/Approval/AddSupportNote\", {\r\n supportRequestID: supportRequestID,\r\n supportNote: supportNote,\r\n isNotify: isNotify\r\n }).toPromise();\r\n }\r\n\r\n getAssestsByEmployee(supportRequestID: number) {\r\n var url = \"/Approval/GetAssestsByEmployee?supportRequestID=\" + supportRequestID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getAttachmentsByRequestID(supportRequestID: number) {\r\n var url = \"/Approval/GetAttachmentsByRequestID?moduleID=\" + 13 + \"&recordID=\" + supportRequestID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n dependentRequestAction(dependentRequestID: number, postData: any, actionCode: string, actionNotes: any) {\r\n return this.http.post(\"/Approval/DependentRequestAction\",\r\n {\r\n dependentRequestID: dependentRequestID,\r\n formData: postData,\r\n actionCode: actionCode,\r\n actionNotes: actionNotes\r\n }).toPromise();\r\n }\r\n saveWindowAuditReportData(benefitUserWindowID: number){\r\n return this.http.post(\"/Approval/SaveWindowAuditReportData\",\r\n {\r\n benefitUserWindowID: benefitUserWindowID\r\n }).toPromise();\r\n }\r\n getWindowHistory(hRUserKeyID: number){\r\n var url = \"/Approval/GetWindowHistory?hRUserKeyID=\" + hRUserKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport moment from 'moment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChecklistService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getAttachmentTypes() {\r\n var url = \"/Checklist/GetAttachmentTypes\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getItemGroups(checklistTemplateID?: number) {\r\n var url = \"/Checklist/GetItemGroups?checklistTemplateID=\" + checklistTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getChecklistTemplates(checklistTemplateCatgID: number) {\r\n let url = \"/Checklist/GetChecklistTemplates?checklistTemplateCatgID=\" + checklistTemplateCatgID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n toggleTemplateActive(checklistTemplateID: number, isActive: boolean) {\r\n return this.http.post(\"/Checklist/ToggleTemplateActive\",\r\n {\r\n checklistTemplateID: checklistTemplateID,\r\n isActive: isActive\r\n }).toPromise();\r\n }\r\n\r\n addUpdateTemplate(requestObj: any) {\r\n return this.http.post(\"/Checklist/AddUpdateTemplate\",\r\n {\r\n checklistTemplateID: requestObj.checklistTemplateID,\r\n checklistTemplateCatgID: requestObj.checklistTemplateCatgID,\r\n checklistTemplateName: requestObj.checklistTemplateName,\r\n userGroupID: requestObj.userGroupID,\r\n reportRDLFileName: requestObj.reportRDLFileName,\r\n checklistTextHeader: requestObj.checklistTextHeader,\r\n workflowInclPM: requestObj.workflowInclPM,\r\n workflowInclJobRev: requestObj.workflowInclJobRev,\r\n workflowInclInvRev: requestObj.workflowInclInvRev,\r\n workflowInclUserGroupID: requestObj.workflowInclUserGroupID,\r\n workflowInclTimecardManager: requestObj.workflowInclTimecardManager,\r\n enableWorkflow: requestObj.enableWorkflow,\r\n adminGroupID: requestObj.adminGroupID,\r\n disableSubmission: requestObj.disableSubmission,\r\n attachmentType: requestObj.attachmentType,\r\n rdlData: requestObj.rdlData,\r\n attachDocumentFlagValue: requestObj.attachDocumentFlagValue,\r\n }).toPromise();\r\n }\r\n\r\n copyChecklistTemplate(origChecklistTemplateID: number, newChecklistTemplateName: string) {\r\n return this.http.post(\"/Checklist/CopyChecklistTemplate\",\r\n {\r\n origChecklistTemplateID: origChecklistTemplateID,\r\n newChecklistTemplateName: newChecklistTemplateName\r\n }).toPromise();\r\n }\r\n\r\n templateItemToggleActive(checklistTemplateItemID: number, isActive: boolean) {\r\n return this.http.post(\"/Checklist/TemplateItemToggleActive\",\r\n {\r\n checklistTemplateItemID: checklistTemplateItemID,\r\n isActive: isActive\r\n }).toPromise();\r\n }\r\n\r\n addUpdateTemplateItem(requestObj: any) {\r\n return this.http.post(\"/Checklist/AddUpdateTemplateItem\",\r\n {\r\n checklistTemplateItemID: requestObj.checklistTemplateItemID,\r\n checklistTemplateItemGrpID: requestObj.checklistTemplateItemGrpID,\r\n responseTypeID: requestObj.responseTypeID,\r\n itemPrompt: requestObj.itemPrompt,\r\n itemNumber: requestObj.itemNumber,\r\n itemLongPrompt: requestObj.itemLongPrompt,\r\n checklistLookupID: requestObj.checklistLookupID,\r\n maxResponseLength: requestObj.maxResponseLength,\r\n validationRegex: requestObj.validationRegex,\r\n personalInfoField: requestObj.personalInfoField,\r\n isAdminField: requestObj.isAdminField,\r\n isRequiredAttachment: requestObj.isRequiredAttachment,\r\n rebindDropdown: requestObj.rebindDropdown,\r\n showComments: requestObj.showComments,\r\n showAttachments: requestObj.showAttachments,\r\n isRequired: requestObj.isRequired\r\n }).toPromise();\r\n }\r\n\r\n getItem(checklistInstanceID) {\r\n var url = \"/Checklist/GetItem?checklistInstanceID=\" + checklistInstanceID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getItemsByTemplateID(templateId: number) {\r\n let url = \"/Checklist/GetItemsByTemplateID?checklistTemplateID=\" + templateId;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getLookupDataTypes() {\r\n var url = \"/Checklist/GetLookupDataTypes\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n\r\n getTemplateInfo(checklistTemplateID: number) {\r\n var url = \"/Checklist/GetTemplateInfo?checklistTemplateID=\" + checklistTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getHeaderFieldsByTemplateID(checklistTemplateID: number) {\r\n var url = \"/Checklist/GetHeaderFieldsByTemplateID?checklistTemplateID=\" + checklistTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n insertUpdateHeaderFields(requestObj: any) {\r\n return this.http.post(\"/Checklist/InsertUpdateHeaderFields\",\r\n {\r\n checklistHeaderFieldID: requestObj.checklistHeaderFieldID,\r\n checklistTemplateID: requestObj.checklistTemplateID,\r\n headerFieldName: requestObj.headerFieldName,\r\n headerFieldLabel: requestObj.headerFieldLabel,\r\n fieldType: requestObj.fieldType,\r\n fieldIsRequired: requestObj.fieldIsRequired,\r\n isRestrictedAccess: requestObj.isRestrictedAccess,\r\n isActive: requestObj.isActive\r\n }).toPromise();\r\n\r\n }\r\n\r\n addItemGroups(checklistTemplateID: number, itemGroupName: string, itemGroupSeq?: number, itemGroupPct?: number) {\r\n return this.http.post(\"/Checklist/AddItemGroups\",\r\n {\r\n checklistTemplateID: checklistTemplateID,\r\n itemGroupName: itemGroupName,\r\n itemGroupSeq: itemGroupSeq,\r\n itemGroupPct: itemGroupPct\r\n }).toPromise();\r\n }\r\n\r\n editItemGroups(checklistTemplateID: number, itemGroupName: string, itemGroupSeq?: number, itemGroupPct?: number) {\r\n return this.http.post(\"/Checklist/EditItemGroups\",\r\n {\r\n checklistTemplateID: checklistTemplateID,\r\n itemGroupName: itemGroupName,\r\n itemGroupSeq: itemGroupSeq,\r\n itemGroupPct: itemGroupPct\r\n }).toPromise();\r\n }\r\n\r\n moveChecklistGroup(direction?: number, checklistTemplateItemGrpID?: number) {\r\n return this.http.post(\"/Checklist/MoveChecklistGroup\",\r\n {\r\n direction: direction,\r\n checklistTemplateItemGrpID: checklistTemplateItemGrpID\r\n }).toPromise();\r\n }\r\n\r\n submitChecklistOrder(direction?: number, checklistInstanceID?: number) {\r\n return this.http.post(\"/Checklist/SubmitChecklistOrder\",\r\n {\r\n direction: direction,\r\n checklistInstanceID: checklistInstanceID\r\n }).toPromise();\r\n }\r\n\r\n deleteItemGroup(checklistTemplateItemGrpID: number) {\r\n return this.http.post(\"/Checklist/DeleteItemGroup\",\r\n {\r\n checklistTemplateItemGrpID: checklistTemplateItemGrpID\r\n }).toPromise();\r\n }\r\n\r\n getTemplateCategories(checklistTemplateCatgID?: number) {\r\n var url = \"/Checklist/GetTemplateCategories?checklistTemplateCatgID=\" + checklistTemplateCatgID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getBranches() {\r\n var url = \"/Checklist/GetBranches\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getChecklistHistory(formData: any, checklistTemplateCatgID?: number) {\r\n var url = \"/Checklist/GetChecklistHistory?branchID=\" + formData.selectedBranch + \"&fromDateString=\" + moment(formData.fromDate.getTime()).format(\"YYYY-MM-DD\") + \"&toDateString=\" + moment(formData.toDate.getTime()).format(\"YYYY-MM-DD\") + \"&checklistTemplateCatgID=\" + checklistTemplateCatgID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n saveMultiChecklists(checklistInstanceIDs: number[], filenames: string[], templateID: number[], isonboard?: string) {\r\n return this.http.post(\"/Checklist/SaveMultiChecklists\",\r\n {\r\n checklistInstanceIDs: checklistInstanceIDs,\r\n filenames: filenames,\r\n templateID: templateID,\r\n isonboard: isonboard\r\n }).toPromise();\r\n }\r\n\r\n downloadMultiChecklists(filenameList: string[], zipName: string) {\r\n var url = \"/Checklist/DownloadMultiChecklists?name=\" + (filenameList.length > 1 ? zipName : filenameList[0] + \".pdf\");\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n\r\n getChecklistReviewers(checklistInstanceID: number) {\r\n return this.http.get(\"/Checklist/GetChecklistReviewers?checklistInstanceID=\" + checklistInstanceID).toPromise();\r\n }\r\n\r\n initializeChecklistReviewers(checklistInstanceID: number) {\r\n return this.http.post(\"/Checklist/InitializeChecklistReviewers\",\r\n {\r\n checklistInstanceID: checklistInstanceID\r\n }).toPromise();\r\n }\r\n\r\n deleteChecklistReviewers(checklistRevID: number) {\r\n return this.http.post(\"/Checklist/DeleteChecklistReviewers\",\r\n {\r\n checklistRevID: checklistRevID\r\n }).toPromise();\r\n }\r\n\r\n addChecklistReviewer(userKeyID: number, checklistInstanceID: any, reviewerSource: string) {\r\n return this.http.post(\"/Checklist/AddChecklistReviewer\",\r\n {\r\n userKeyID: userKeyID,\r\n checklistInstanceID: checklistInstanceID,\r\n reviewerSource: reviewerSource\r\n }).toPromise();\r\n }\r\n\r\n sendChecklists(checklistInstanceIDs: number[], filenames: string[], fromEmail: string, toEmail: string[], subject: string, message: string, newFilenames: string[], newFiles: any[], templateID: any[], mailFrom: string, queueType: string, notificationMode: string, sMSTo: string, checklistTemplateCatgID: number) {\r\n return this.http.post(\"/Checklist/SendChecklists\",\r\n {\r\n checklistInstanceIDs: checklistInstanceIDs,\r\n filenames: filenames,\r\n fromEmail: fromEmail,\r\n toEmail: toEmail,\r\n subject: subject,\r\n message: message,\r\n newFilenames: newFilenames,\r\n newFiles: newFiles,\r\n templateID: templateID,\r\n mailFrom: mailFrom,\r\n queueType: queueType,\r\n notificationMode: notificationMode,\r\n sMSTo: sMSTo,\r\n checklistTemplateCatgID: checklistTemplateCatgID\r\n }).toPromise();\r\n }\r\n\r\n sendChecklistSign(signatureDataStr: string, checklistInstanceID: number, typeSign: boolean, latitude: number, longitude: number) {\r\n return this.http.post(\"/Checklist/sendChecklistSign\",\r\n {\r\n signatureDataStr: signatureDataStr,\r\n checklistInstanceID: checklistInstanceID,\r\n typeSign: typeSign,\r\n latitude: latitude,\r\n longitude: longitude\r\n }).toPromise();\r\n }\r\n\r\n getChecklistInstanceDetails(checklistInstanceID: number) {\r\n var url = \"/Checklist/GetChecklistInstanceDetails?checklistInstanceID=\" + checklistInstanceID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getInfoByOnboardID() {\r\n var url = \"/Hiring/GetInfoByOnboardID\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getHeaderFields(checklistInstanceID: number) {\r\n var url = \"/Checklist/GetHeaderFields?checklistInstanceID=\" + checklistInstanceID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getChoicesByHeaderFieldID(checklistHeaderFieldID: number, checklistInstanceID: number, pRCO?: number) {\r\n var url = \"/Checklist/GetChoicesByHeaderFieldID?checklistHeaderFieldID=\" + checklistHeaderFieldID + \"&checklistInstanceID=\" + checklistInstanceID + \"&pRCO=\" + pRCO;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n updateHeaderFieldValue(checklistInstanceID: number, checklistHeaderFieldID: number, fieldValue: string, fieldType: string) {\r\n return this.http.post(\"/Checklist/UpdateHeaderFieldValue\",\r\n {\r\n checklistInstanceID: checklistInstanceID,\r\n checklistHeaderFieldID: checklistHeaderFieldID,\r\n fieldValue: fieldValue,\r\n fieldType: fieldType\r\n }).toPromise();\r\n }\r\n\r\n submitChecklist(checklistInstanceID: number) {\r\n return this.http.post(\"/Checklist/SubmitChecklist\",\r\n {\r\n checklistInstanceID: checklistInstanceID\r\n }).toPromise();\r\n }\r\n\r\n deleteChecklistItem(checklistInstanceID: number, templateCategoryID: number) {\r\n return this.http.post(\"/Checklist/DeleteChecklistItem\",\r\n {\r\n checklistInstanceID: checklistInstanceID,\r\n templateCategoryID: templateCategoryID\r\n }).toPromise();\r\n }\r\n\r\n createNewChecklist(checklistTemplateID: number) {\r\n return this.http.post(\"/Checklist/CreateNewChecklist\",\r\n {\r\n checklistTemplateID: checklistTemplateID\r\n }).toPromise();\r\n }\r\n\r\n getTypeSign(type: string, name: string) {\r\n var url = \"/Checklist/GetTypeSign?type=\" + type + \"&name=\" + name;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n sendChecklistsToVista(checklistInstanceID: number, checklistTemplateID: number, attachDocumentFlagValue: number, createdBy: number, attachmentType: number, fileName?: string) {\r\n return this.http.post(\"/Checklist/SendChecklistsToVista\",\r\n {\r\n checklistInstanceID: checklistInstanceID,\r\n checklistTemplateID: checklistTemplateID,\r\n attachDocumentFlagValue: attachDocumentFlagValue,\r\n createdBy: createdBy,\r\n attachmentType: attachmentType,\r\n fileName: fileName\r\n }).toPromise();\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CrewTimecardService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getAllLayouts() {\r\n let url = \"/CrewTimecard/GetAllLayouts\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getBulkEmployeeList(pRCo, pRGroup) {\r\n let url = \"/CrewTimecard/GetBulkEmployeeList?pRCo=\" + pRCo + \"&pRGroup=\" + pRGroup;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCellPossibleValues(rowData) {\r\n let url = \"/Timecard/GetCellPossibleValues\";\r\n return this.http.post(url, rowData).toPromise();\r\n }\r\n\r\n getCrewClockInStatus(pRPCKeyID, crewTemplateID) {\r\n let url = \"/CrewTimecard/GetCrewClockInStatus?pRPCKeyID=\" + pRPCKeyID + \"&crewTemplateID=\" + crewTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getEmplLockStatus(hQBCKeyID, crewTemplateID) {\r\n let url = \"/CrewTimecard/GetEmplLockStatus?hQBCKeyID=\" + hQBCKeyID + \"&crewTemplateID=\" + crewTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getJobsByAuthToken(form, searchString) {\r\n let url = \"/CrewTimecard/GetJobsByAuthToken?form=TC&searchString=\" + searchString;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getLayout(crewLayoutID) {\r\n let url = \"/Crew/Timecard/Layout?crewLayoutID=\" + crewLayoutID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getLookupValues(crewLayoutDetailID, crewTemplateID, pRPCKeyID) {\r\n let url = \"/Crew/Timecard/GetLookupValues?crewLayoutDetailID=\" + crewLayoutDetailID + \"&crewTemplateID=\" + crewTemplateID + \"&pRPCKeyID=\" + pRPCKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPayPeriodsByTemplate(template) {\r\n let url = \"/CrewTimecard/GetPayPeriodsByTemplate?crewTemplateID=\" + template;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCrews(pRCo, pRGRoup) {\r\n let url = \"/CrewTimecard/GetCrews?PRCo=\" + pRCo + \"&PRGroup=\" + pRGRoup;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCrewMember(pRCRKeyID) {\r\n let url = \"/CrewTimecard/GetCrewMember?PRCRKeyID=\" + pRCRKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCrewTimecardColumns(crewTemplateID, timecardGroupID) {\r\n let url = \"/CrewTimecard/GetColumns?templateID=\" + crewTemplateID + \"&timecardGroupId=\" + timecardGroupID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getLineTypesByTemplate(crewTemplateID, timecardGroupID) {\r\n let url = \"/CrewTimecard/GetLineTypesByTemplate?templateID=\" + crewTemplateID + \"&timecardGroupId=\" + timecardGroupID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPhasesByJCJMKeyID(jCJMKeyID, laborOnly) {\r\n let url = \"/Crew/Timecard/GetPhasesByJCJMKeyID?jCJMKeyID=\" + jCJMKeyID + \"&laborOnly=\" + laborOnly;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPREHKeyIDByEmployee(pRCo, employee) {\r\n let url = \"/Employee/GetPREHKeyIDByEmployee?pRCo=\" + pRCo + \"&employee=\" + employee;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getQuestions(payPeriod) {\r\n let url = \"/CrewTimecard/GetQuestions?timecardGroupID=\" + payPeriod.TimecardGroupID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getRequiredColumns(timecardGroupID) {\r\n let url = \"/Timecard/GetRequiredColumns?timecardGroupID=\" + timecardGroupID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getTemplateDays(crewTemplateID) {\r\n let url = \"/CrewTimecard/GetTemplateDays?crewTemplateID=\" + crewTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getTemplates(pRPCKeyID, crewTemplateID = null) {\r\n let url = \"/CrewTimecard/GetTemplatesByPRPCKeyID?pRPCKeyID=\" + pRPCKeyID;\r\n if (crewTemplateID != null)\r\n url += \"&templateID=\" + crewTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getTimecardColumns(pRCo, pRGroup, isCrewOrStandard) {\r\n let url = \"/Timecard/GetTimecardColumns?&pRCo=\" + pRCo + \"&pRGroup=\" + pRGroup + \"&isCrewOrStandard=\" + isCrewOrStandard;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPayPeriods(isJobApproval: boolean) {\r\n let url = \"/CrewTimecard/PayPeriods?isJobApproval=\" + isJobApproval;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n cloneCrewTimecard(cloneFromTemplateID, cloneToTemplateID, cloneFromPRPCKeyID, cloneToPRPCKeyID, isCloneHours, cloneType, dateFromString = null, dateToString = null, employeeList = null, restrictSubmitted = null) {\r\n let url = \"/CrewTimecard/CloneCrewTimecard\";\r\n let postData: any = {\r\n cloneFromTemplateID: cloneFromTemplateID,\r\n cloneToTemplateID: cloneToTemplateID,\r\n cloneFromPRPCKeyID: cloneFromPRPCKeyID,\r\n cloneToPRPCKeyID: cloneToPRPCKeyID,\r\n isCloneHours: isCloneHours,\r\n cloneType: cloneType\r\n };\r\n if (dateFromString != null)\r\n postData.dateFromString = dateFromString;\r\n if (dateToString != null)\r\n postData.dateToString = dateToString;\r\n if (employeeList != null)\r\n postData.employeeList = employeeList;\r\n if (restrictSubmitted != null)\r\n postData.restrictSubmitted = restrictSubmitted;\r\n\r\n return this.http.post(url, postData).toPromise();\r\n }\r\n\r\n createLineFromClocks(crewTemplateID, employeeString, hQBCKeyID) {\r\n let url = \"/CrewTimecard/CreateLineFromClocks\";\r\n let postData: any = {\r\n createAsSubmitted: 0,\r\n crewTemplateID: crewTemplateID,\r\n employeeString: employeeString,\r\n hQBCKeyID: hQBCKeyID\r\n }\r\n return this.http.post(url, postData).toPromise();\r\n }\r\n\r\n deleteTemplateData(crewTemplateDataID) {\r\n let url = \"/CrewTimecard/DeleteTemplateData\";\r\n return this.http.post(url, {\r\n crewTemplateDataID: crewTemplateDataID\r\n }).toPromise();\r\n }\r\n\r\n groupTimeEntry(employeeString, clockTimeString, clockAction, pRCo){\r\n let url = \"/Timecard/GroupTimeEntry\";\r\n return this.http.post(url, {\r\n employeeString: employeeString,\r\n clockTimeString: clockTimeString,\r\n clockAction: clockAction,\r\n pRCo: pRCo\r\n }).toPromise();\r\n }\r\n\r\n insertTemplateData(crewLayoutDetailID, crewTemplateID, fieldValue, fieldIdentifier) {\r\n let url = \"/CrewTimecard/InsertTemplateData\";\r\n return this.http.post(url, {\r\n crewLayoutDetailID: crewLayoutDetailID,\r\n crewTemplateID: crewTemplateID,\r\n fieldValue: fieldValue,\r\n fieldIdentifier: fieldIdentifier\r\n }).toPromise();\r\n }\r\n\r\n submitCrewTimecard(crewTemplateID, pRPCKeyID, submittedOnString, employees) {\r\n let url = \"/CrewTimecard/SubmitCrewTimecard\";\r\n return this.http.post(url, { crewTemplateID: crewTemplateID, pRPCKeyID: pRPCKeyID, submittedOnString: submittedOnString, employees: employees }).toPromise();\r\n }\r\n\r\n submitCrewTimecardEmployee(employee, pRCo, hQBCKeyID, questionRow, pRPCKeyID, crewTemplateID, actionString, submitSignatureStr, submitNoIssues,\r\n submitIssuesNotes, latitude, longitude, submittedOnString) {\r\n let url = \"/CrewTimecard/SubmitCrewTimecardEmployee\";\r\n let postData: any = {\r\n employee: employee, pRCo: pRCo, hQBCKeyID: hQBCKeyID, pRPCKeyID: pRPCKeyID, crewTemplateID: crewTemplateID,\r\n actionString: actionString, submitSignatureStr: submitSignatureStr, submitNoIssues: submitNoIssues, submitIssuesNotes: submitIssuesNotes,\r\n latitude: latitude, longitude: longitude, submittedOnString: submittedOnString\r\n };\r\n if (questionRow != null)\r\n postData.questionRow = questionRow;\r\n return this.http.post(url, postData).toPromise();\r\n }\r\n\r\n unsubmitCrewTimecard(unsubmitData: any) {\r\n let url = \"/Crew/Timecard/UnsubmitCrewTimecard\";\r\n return this.http.post(url, unsubmitData).toPromise();\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getEmergencyContactList(selectedEmployee: number, pRCo: number) {\r\n var url = \"/Employee/EmerConGet?employee=\" + selectedEmployee + \"&pRCo=\" + pRCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getECEmployees() {\r\n return this.http.get(\"/Employee/GetProxyEmployeesForUpdateInfo\").toPromise();\r\n }\r\n\r\n getECRelationship() {\r\n return this.http.get(\"/Employee/GetECRelationship\").toPromise();\r\n }\r\n\r\n getStateLookup() {\r\n return this.http.get(\"/Employee/GetDependentLookupByColumnName?columnName=State\").toPromise();\r\n }\r\n\r\n updateEmergencyContact(hRECKeyID: any, contact: string, relationship: string, homePhone: any, workPhone: any, cellPhone: any,\r\n address: string, city: string, state: string, zip: string, notes: string) {\r\n return this.http.post(\"/Employee/EmerConUpdate\",\r\n {\r\n hRECKeyID: hRECKeyID,\r\n contact: contact,\r\n relationship: relationship,\r\n homePhone: homePhone,\r\n workPhone: workPhone,\r\n cellPhone: cellPhone,\r\n address: address,\r\n city: city,\r\n state: state,\r\n zip: zip,\r\n notes: notes\r\n }).toPromise();\r\n }\r\n\r\n deleteEmergencyContact(hRECKeyID: any) {\r\n return this.http.post(\"/Employee/EmerConGeDelete\",\r\n {\r\n hRECKeyID: hRECKeyID\r\n }).toPromise();\r\n }\r\n\r\n getEarningsType() {\r\n return this.http.get(\"/Employee/EarningsType\").toPromise();\r\n }\r\n\r\n getDocuments(selectedDocTypes: any, fromDate: string, toDate: string) {\r\n return this.http.post(\"/Document/Get\",\r\n {\r\n docTypes: selectedDocTypes,\r\n fromDate: fromDate,\r\n toDate: toDate\r\n }).toPromise();\r\n }\r\n\r\n getBulletinsGetIndex(sectiontoLoad?: string, bulletinID?: number) {\r\n var url = \"/Employee/GetBulletinsGetIndex?sectionToLoad=\" + sectiontoLoad + \"&bulletinID=\" + bulletinID;;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getLookups() {\r\n var url = \"/Employee/GetLookups?columnName=UM\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getMileageRate(currentPRCo?: number) {\r\n var url = \"/Employee/GetMileageRate\" + (currentPRCo != null ? \"?pRCo=\" + currentPRCo : \"\");\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n addEditMileageRate(expenseMileageRateID: any, mileageRate: any, rateDescription: any, pRCo: any) {\r\n return this.http.post(\"/Employee/AddEditMileageRate\",\r\n {\r\n expenseMileageRateID: expenseMileageRateID,\r\n mileageRate: mileageRate,\r\n rateDescription: rateDescription,\r\n pRCo: pRCo\r\n }).toPromise();\r\n }\r\n\r\n deleteMileageRate(expenseMileageRateID: any) {\r\n return this.http.post(\"/Employee/DeleteMileageRate\",\r\n {\r\n expenseMileageRateID: expenseMileageRateID,\r\n }).toPromise();\r\n }\r\n \r\n getTaxCodes(taxType: any) {\r\n var url = \"/Employee/GetTaxCodes?taxType=\" + taxType;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getEarnCodes(currentPRCo: number) {\r\n var url = \"/Employee/GetEarnCodes?pRCo=\" + currentPRCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCustomerNames(customerName: any) {\r\n var url = \"/Employee/GetCustomerNames?searchString=\" + customerName;\r\n return this.http.get(url);\r\n }\r\n\r\n getReviewers(selectedReviewer: any) {\r\n var url = \"/Employee/GetReviewers?searchString=\" + selectedReviewer;\r\n return this.http.get(url);\r\n }\r\n\r\n getlookupURL(lookupURL) {\r\n return this.http.get(lookupURL);\r\n }\r\n\r\n catgGet() {\r\n return this.http.get(\"/Employee/CatgGet\").toPromise();\r\n }\r\n\r\n expenseSettingsByPRCo(prCo: number) {\r\n var url = \"/Employee/ExpenseSettingsByPRCo?pRCo=\" + prCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n submitItems(expenseItemIDString: any, headerDescription?: any, proxyUserKeyID?: any) {\r\n return this.http.post(\"/Employee/SubmitItems\",\r\n {\r\n expenseItemIDString: expenseItemIDString,\r\n headerDescription: headerDescription,\r\n proxyUserKeyID: proxyUserKeyID\r\n }).toPromise();\r\n }\r\n\r\n addReviewer(expenseHeaderID: any, reviewer: any) {\r\n return this.http.post(\"/Employee/AddReviewer\",\r\n {\r\n expenseHeaderID: expenseHeaderID,\r\n reviewer: reviewer\r\n }).toPromise();\r\n }\r\n\r\n getFieldsByLineItem(lineChargeType: any, pOLineType: any) {\r\n var url = \"/APRouter/GetFieldsByLineItem?lineType=\" + lineChargeType + \"&pOLineType=\" + pOLineType;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n insertUpdateExpenseItem(expenseItemID?: any, expenseCatgID?: any, description?: string, amount?: number,\r\n taxAmount?: any, vendor?: string, jCCo?: any, job?: string, userKeyID?: any, customerName?: string,\r\n phase?: string, gLCo?: any, gLAcct?: string, sMCo?: any, sMWorkOrder?: any,\r\n eMCo?: any, units?: any, uM?: string, unitCost?: any, expenseDateStr?: string, reimburseOrMileage?: string,\r\n customerCount?: any, ourFirmCount?: any, note?: string, jCCType?: any, proxyUserKeyID?: any, taxCode?: string,\r\n pO?: string, pOItem?: any, sL?: string, sLItem?: any, wO?: string, wOItem?: any, equip?: string,\r\n costCode?: string, eMCType?: any, compType?: string, component?: string, iNCo?: any, loc?: string, material?: string,\r\n scope?: any, pOItemLine?: any, sMCostType?: any, itemType?: any, earnCode?: any, attendeeName?: string, taxType?: string) {\r\n return this.http.post(\"/Employee/InsertUpdateExpenseItem\",\r\n {\r\n expenseItemID: expenseItemID,\r\n expenseCatgID: expenseCatgID,\r\n description: description,\r\n amount: amount,\r\n taxAmount: taxAmount,\r\n vendor: vendor,\r\n jCCo: jCCo,\r\n job: job,\r\n userKeyID: userKeyID,\r\n customerName: customerName,\r\n phase: phase,\r\n gLCo: gLCo,\r\n gLAcct: gLAcct,\r\n sMCo: sMCo,\r\n sMWorkOrder: sMWorkOrder,\r\n eMCo: eMCo,\r\n units: units,\r\n uM: uM,\r\n unitCost: unitCost,\r\n expenseDateStr: expenseDateStr,\r\n reimburseOrMileage: reimburseOrMileage,\r\n customerCount: customerCount,\r\n ourFirmCount: ourFirmCount,\r\n note: note,\r\n jCCType: jCCType,\r\n proxyUserKeyID: proxyUserKeyID,\r\n taxCode: taxCode,\r\n pO: pO,\r\n pOItem: pOItem,\r\n sL: sL,\r\n sLItem: sLItem,\r\n wO: wO,\r\n wOItem: wOItem,\r\n equip: equip,\r\n costCode: costCode,\r\n eMCType: eMCType,\r\n compType: compType,\r\n component: component,\r\n iNCo: iNCo,\r\n loc: loc,\r\n material: material,\r\n scope: scope,\r\n pOItemLine: pOItemLine,\r\n sMCostType: sMCostType,\r\n itemType: itemType,\r\n earnCode: earnCode,\r\n attendeeName: attendeeName,\r\n taxType: taxType\r\n }).toPromise();\r\n }\r\n\r\n getPendingInformationByID(userKeyID?: any, expenseItemID?: any) {\r\n var url = \"/Employee/GetPendingInformationByID?userKeyID=\" + userKeyID + '&expenseItemID=' + expenseItemID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getLineAttachments(ExpenseItemID: any) {\r\n var url = \"/Employee/GetLineAttachments?expenseItemID=\" + ExpenseItemID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n addAttachmentToLine(expenseItemID: any, photoFileData: any, photoFileType: any) {\r\n return this.http.post(\"/Employee/AddAttachmentToLine\",\r\n {\r\n expenseItemID: expenseItemID,\r\n photoFileData: photoFileData,\r\n photoFileType: photoFileType\r\n }).toPromise();\r\n }\r\n\r\n getCreditCardList(selectedEmployee: any) {\r\n var url = \"/Employee/GetUnReconciledLines?userKeyID=\" + (selectedEmployee === null ? null : selectedEmployee.UserKeyID);\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCategory() {\r\n var url = \"/Employee/CatgGet\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n catgAddEdit(expenseCatgID: any, expenseCatgName: any, isActive: any) {\r\n return this.http.post(\"/Employee/CatgAddEdit\",\r\n {\r\n expenseCatgID: expenseCatgID,\r\n expenseCatgName: expenseCatgName,\r\n isActive: isActive\r\n }).toPromise();\r\n }\r\n\r\n catgDelete(expenseCatgID: any) {\r\n return this.http.post(\"/Employee/CatgDelete\",\r\n {\r\n expenseCatgID: expenseCatgID\r\n }).toPromise();\r\n }\r\n\r\n transAction(expenseTransID: any, userKeyID: any, where: any, matchedExpenseItemID: any, transAmount: any) {\r\n return this.http.post(\"/Employee/TransAction\",\r\n {\r\n expenseTransID: expenseTransID,\r\n userKeyID: userKeyID,\r\n where: where,\r\n matchedExpenseItemID: matchedExpenseItemID,\r\n transAmount: transAmount\r\n }).toPromise();\r\n }\r\n\r\n getFieldValuesByPOItem(pO: any, pOItem: any, pOItemLine: any, aPCo: any) {\r\n var url = \"/APRouter/GetFieldValuesByPOItem?pO=\" + pO + \"&pOItem=\" + pOItem + \"&pOItemLine=\" + pOItemLine + \"&aPCo=\" + aPCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getRawAttachmentData(attachmentID: any, keepOriginal: any) {\r\n var url = \"/Document/GetRawAttachmentData?attachmentID=\" + attachmentID + \"&keepOriginal=\" + keepOriginal\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n removeAttachment(expenseAttachmentID: any) {\r\n return this.http.post(\"/Employee/RemoveAttachment\",\r\n {\r\n expenseAttachmentID: expenseAttachmentID\r\n }).toPromise();\r\n }\r\n\r\n unlinkItem(userKeyID: any, expenseItemID: any) {\r\n return this.http.post(\"/Employee/UnlinkItem\",\r\n {\r\n userKeyID: userKeyID,\r\n expenseItemID: expenseItemID\r\n }).toPromise();\r\n }\r\n\r\n getUserFields() {\r\n return this.http.get(\"/Employee/GetUserFields\").toPromise();\r\n }\r\n\r\n getFieldOptions(fieldId: any) {\r\n return this.http.get(\"/Employee/GetComboItemsByFieldID?fieldID=\" + fieldId).toPromise();\r\n }\r\n\r\n personalInfoAttachmentSubmit(docCount: number) {\r\n return this.http.post(\"/Employee/PersonalInfoAttachmentSubmit\",\r\n {\r\n docCount: docCount\r\n }).toPromise();\r\n }\r\n\r\n saveFileAttachment(moduleID: number, recordID: number, attachmentFileData: any, attachmentFileName: string, attachmentType: string, onboarding?: boolean, recordGuid?: any, attachmentTypeID?: number) {\r\n return this.http.post(\"/Employee/SaveFileAttachment\",\r\n {\r\n moduleID: moduleID,\r\n recordID: recordID,\r\n attachmentFileData: attachmentFileData,\r\n attachmentFileName: attachmentFileName,\r\n attachmentType: attachmentType,\r\n onboarding: onboarding,\r\n recordGuid: recordGuid,\r\n AttachmentTypeID: attachmentTypeID\r\n }).toPromise();\r\n }\r\n\r\n saveEmployeePhotoConsentReport(moduleID: number, recordID: number, submissionGuid: string) {\r\n return this.http.post(\"/Employee/saveEmployeePhotoConsentReport\",\r\n {\r\n moduleID: moduleID,\r\n recordID: recordID,\r\n submissionGuid: submissionGuid\r\n }).toPromise();\r\n }\r\n\r\n sendEmail() {\r\n return this.http.post(\"/Employee/SendEmail\", {}).toPromise();\r\n }\r\n\r\n updateUserWindow(benefitUserWindowID?: number, windowTypeID?: number, windowStartDateString?: string, windowEndDateString?: string, isWindowRequestApproved?: boolean, isPersonalInfoFinished?: boolean, isDependentUpdateFinished?: boolean, isBenefitReviewCompleted?: boolean, isWindowConfirmed?: boolean,\r\n userKeyID?: number, requesterNotes?: string, approverNotes?: string, cancelWindow?: boolean, requestedEffectiveDateStr?: string, fromURL?: string) {\r\n return this.http.post(\"/Employee/UpdateUserWindow\",\r\n {\r\n benefitUserWindowID: benefitUserWindowID,\r\n windowTypeID: windowTypeID,\r\n windowStartDateString: windowStartDateString,\r\n windowEndDateString: windowEndDateString,\r\n isWindowRequestApproved: isWindowRequestApproved,\r\n isPersonalInfoFinished: isPersonalInfoFinished,\r\n isDependentUpdateFinished: isDependentUpdateFinished,\r\n isBenefitReviewCompleted: isBenefitReviewCompleted,\r\n isWindowConfirmed: isWindowConfirmed,\r\n userKeyID: userKeyID,\r\n requesterNotes: requesterNotes,\r\n approverNotes: approverNotes,\r\n cancelWindow: cancelWindow,\r\n requestedEffectiveDateStr: requestedEffectiveDateStr,\r\n fromURL: fromURL\r\n }).toPromise();\r\n }\r\n\r\n getDependents(proxyUserKeyID?: number) {\r\n return this.http.get(\"/Employee/GetDependents?proxyUserKeyID=\" + proxyUserKeyID).toPromise();\r\n }\r\n\r\n submitDependents(hRDPKeyID: number, formData: any, isRemove: boolean, userID: number | null) {\r\n return this.http.post(\"/Employee/SubmitDependentRequest\",\r\n {\r\n hRDPKeyID: hRDPKeyID, formData: formData, isRemove: isRemove, userID: userID\r\n }).toPromise();\r\n }\r\n\r\n personalInfoUpdate(formData: string, isAddressInvalid: boolean, attachmentsJson: string, fileNamesJson: string, recordKeyID: any, submissionGuid: any) {\r\n return this.http.post(\"/Employee/PersonalInfoUpdate\",\r\n {\r\n formData: formData,\r\n isAddressInvalid: isAddressInvalid,\r\n attachmentsJson: attachmentsJson,\r\n fileNamesJson: fileNamesJson,\r\n recordKeyID: recordKeyID,\r\n submissionGuid: submissionGuid\r\n }).toPromise();\r\n }\r\n\r\n\r\n getW4() {\r\n return this.http.get(\"/Employee/GetW4\").toPromise();\r\n }\r\n\r\n getDependentLookupByColumnName(columnName: string,countryCode?: string) {\r\n return this.http.get(\"/Employee/GetDependentLookupByColumnName?columnName=\" + columnName + (countryCode != null ? \"&countryCode=\" + countryCode : \"\")).toPromise();\r\n }\r\n\r\n getFilingStatus() {\r\n return this.http.get(\"/Employee/GetFilingStatus\").toPromise();\r\n }\r\n\r\n w4Update(dLCode: number, fileStatus: any, regExempts: any, miscAmt: number, signatureData: any, miscFactor: any,\r\n manualFileAttachment: any, manualFileName: string\r\n , latitude: any, longitude: any, IsExempt2020: boolean,\r\n multiJobs2020: boolean, otherIncome2020: number, dependentAmt2020: number, deductions2020: number,\r\n qualChildAmount: number, otherDependentAmount: number) {\r\n return this.http.post(\"/Employee/W4Update\",\r\n {\r\n dLCode: dLCode, fileStatus: fileStatus, regExempts: regExempts, miscAmt: miscAmt, signatureData: signatureData, miscFactor: miscFactor,\r\n manualFileAttachment: manualFileAttachment, manualFileName: manualFileName\r\n , latitude: latitude, longitude: longitude, IsExempt2020: IsExempt2020,\r\n multiJobs2020: multiJobs2020, otherIncome2020: otherIncome2020, dependentAmt2020: dependentAmt2020, deductions2020: deductions2020,\r\n qualChildAmount: qualChildAmount, otherDependentAmount: otherDependentAmount\r\n });\r\n }\r\n\r\n getTypeSign(type: string, name: string = null) {\r\n let url = \"/Checklist/GetTypeSign?type=\" + type;\r\n if (name != null)\r\n url += \"&name=\" + name;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getDirectDepositInfo() {\r\n return this.http.get(\"/Employee/GetDirectDepositInfo\").toPromise();\r\n }\r\n\r\n submitDirectDepositUpdate(data: any) {\r\n return this.http.post(\"/Employee/SubmitDirectDepositUpdate\", {\r\n routing1: data.routing1,\r\n routing2: data.routing2,\r\n routing3: data.routing3,\r\n routing4: data.routing4,\r\n account1: data.account1,\r\n account2: data.account2,\r\n account3: data.account3,\r\n account4: data.account4,\r\n accountType1: data.accountType1,\r\n accountType2: data.accountType2,\r\n accountType3: data.accountType3,\r\n accountType4: data.accountType4,\r\n acccount1Unit: data.account1Unit,\r\n account2Unit: data.account2Unit,\r\n account3Unit: data.account3Unit,\r\n account4Unit: data.account4Unit,\r\n account1Amt: data.account1Amt,\r\n account2Amt: data.account2Amt,\r\n account3Amt: data.account3Amt,\r\n account4Amt: data.account4Amt,\r\n checkImage1: data.checkImage1,\r\n checkImage2: data.checkImage2,\r\n checkImage3: data.checkImage3,\r\n checkImage4: data.checkImage4,\r\n checkImageName1: data.checkImageName1,\r\n checkImageName2: data.checkImageName2,\r\n checkImageName3: data.checkImageName3,\r\n checkImageName4: data.checkImageName4,\r\n account1Updated: data.account1Updated,\r\n account2Updated: data.account2Updated,\r\n account3Updated: data.account3Updated,\r\n account4Updated: data.account4Updated,\r\n account2KeyID: data.account2KeyID,\r\n account3KeyID: data.account3KeyID,\r\n account4KeyID: data.account4KeyID\r\n }).toPromise();\r\n }\r\n\r\n getDepartments() {\r\n var url = \"/Employee/GetDepartments\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n submitSupportRequest(supportDepartmentID: number, requestDescription: string, facilityLocation: string, isUrgent: boolean, isApproved: boolean, requestEmailHTML: string, emailAddress: string) {\r\n return this.http.post(\"/Employee/SubmitSupportRequest\",\r\n {\r\n supportDepartmentID: supportDepartmentID,\r\n requestDescription: requestDescription,\r\n facilityLocation: facilityLocation,\r\n isUrgent: isUrgent,\r\n isApproved: isApproved,\r\n requestEmailHTML: requestEmailHTML,\r\n emailAddress: emailAddress\r\n }).toPromise();\r\n }\r\n\r\n submitAttachment(moduleID: number, recordID: number, attachmentData: any, attachmentFileName: string) {\r\n return this.http.post(\"/Employee/SubmitSupportRequest\",\r\n {\r\n moduleID: moduleID,\r\n recordID: recordID,\r\n attachmentData: attachmentData,\r\n attachmentFileName: attachmentFileName\r\n }).toPromise();\r\n }\r\n\r\n getRequestsByID(supportRequestID: number) {\r\n var url = \"/Employee/GetRequestsByID?supportDepartmentID=\" + supportRequestID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getAssign(supportDepartmentID: number) {\r\n var url = \"/Employee/GetAssign?supportDepartmentID=\" + supportDepartmentID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n cancelDependentRequest(dependentRequestID: number) {\r\n return this.http.post(\"/Employee/CancelDependentRequest\",\r\n {\r\n dependentRequestID: dependentRequestID\r\n }).toPromise();\r\n }\r\n\r\n getDependentFields(keyID: number) {\r\n var url = \"/Employee/GetDependentFields?keyID=\" + keyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getRelationship() {\r\n var url = \"/Employee/GetRelationship\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getFileAttachmentList(requestParam: string) {\r\n // var url = \"/Employee/GetFileAttachmentList?moduleID=\" + moduleID + \"&recordID=\" + recordID + \"&onboarding=\" + onboarding + \"&recordGuid=\" + recordGuid;\r\n var url = \"/Employee/GetFileAttachmentList?\" + requestParam;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getTrainingCompany() {\r\n var url = \"/Employee/GetTrainingCompany\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPositionCodes(selectedHRCo: number) {\r\n var url = \"/Employee/GetPositionCodes?hRCo=\" + selectedHRCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCareerPaths(selectedHRCo: number) {\r\n var url = \"/Employee/GetCareerPaths?hRCo=\" + selectedHRCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCareerPathMapping(selectedCareerID: number) {\r\n var url = \"/Employee/GetCareerPathMapping?careerPathID=\" + selectedCareerID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n careerPathUpdate(careerPathID: number, careerPathName: string, hRCo: number) {\r\n return this.http.post(\"/Employee/CareerPathUpdate\",\r\n {\r\n careerPathID: careerPathID,\r\n careerPathName: careerPathName,\r\n hRCo: hRCo\r\n }).toPromise();\r\n }\r\n\r\n getEmpCareerPath(careerPathID: number, employeeCurrentPosition: any = null) {\r\n var url = \"/Employee/GetEmpCareerPath?careerPathID=\" + careerPathID + \"&positionSeq=\" + employeeCurrentPosition;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n empCareerPathUpdate(careerPathMapID: number, hRPCKeyID: number, seq: number, actionStr: string, careerPathID: number) {\r\n return this.http.post(\"/Employee/EmpCareerPathUpdate\",\r\n {\r\n careerPathID: careerPathID,\r\n careerPathMapID: careerPathMapID,\r\n hRPCKeyID: hRPCKeyID,\r\n seq: seq,\r\n actionStr: actionStr\r\n }).toPromise();\r\n }\r\n\r\n getEmployeeTrainingPath() {\r\n var url = \"/Employee/GetEmployeeTrainingPath\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n careerPathDelete(selectedCareerID: number) {\r\n return this.http.post(\"/Employee/CareerPathDelete\",\r\n {\r\n careerPathID: selectedCareerID\r\n }).toPromise();\r\n }\r\n\r\n sendFileAttachmentRawDataToVP(moduleID: number, recordKeyID: number, fileAttachmentType: string, submissionGuid: any, descriptionList: string, fileDescription: string, attachmentType: string) {\r\n return this.http.post(\"/Document/SendFileAttachmentRawDataToVP\",\r\n {\r\n moduleID: moduleID,\r\n recordKeyID: recordKeyID,\r\n fileAttachmentType: fileAttachmentType,\r\n submissionGuid: submissionGuid,\r\n descriptionList: descriptionList,\r\n fileDescription: fileDescription,\r\n attachmentType: attachmentType\r\n }).toPromise();\r\n }\r\n\r\n getProxyEmployees() {\r\n var url = \"/Employee/GetProxyEmployees\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPendingLines(requestParam: string) {\r\n var url = \"/Employee/GetPendingLines?\" + requestParam;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getSubmittedHeaders(startDateStr: any, endDateStr: any, selectedEmployee: any) {\r\n var url = \"/Employee/GetSubmittedHeaders?startDateStr=\" + startDateStr +\r\n \"&endDateStr=\" + endDateStr + \"&userKeyID=\" + (selectedEmployee == null ? null : selectedEmployee.UserKeyID);\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n deleteExpenseItem(expenseItemID: any) {\r\n return this.http.post(\"/Employee/DeleteExpenseItem\",\r\n {\r\n expenseItemID: expenseItemID,\r\n }).toPromise();\r\n }\r\n\r\n deleteExpenseItemBulk(expenseItemIDs: any) {\r\n return this.http.post(\"/Employee/DeleteExpenseItemBulk\",\r\n {\r\n expenseItemIDs: expenseItemIDs,\r\n }).toPromise();\r\n }\r\n\r\n exportExpenseReport(expenseHeaderID: number, headerDescription: any) {\r\n var url = \"/Employee/ExportExpenseReport?ExpenseHeaderID=\" + expenseHeaderID + \"&filenames=\" + headerDescription;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n copyExpenseLine(copyFromExpenseItemID: number) {\r\n return this.http.post(\"/Employee/CopyExpenseLine\",\r\n {\r\n copyFromExpenseItemID: copyFromExpenseItemID,\r\n }).toPromise();\r\n }\r\n\r\n bulkEditItems(expenseItemIDString: string, expenseCatgID: number, jCCo: number, job: string, phase: string, gLCo: number, gLAcct: string, sMCo: number,\r\n sMWorkOrder: number, eMCo: number, workOrder: string, jCCType: number, sL: string, sLItem: any, wO: string, wOItem: any, equip: string,\r\n costCode: string, eMCType: any, compType: string, component: string, iNCo: any, loc: string, material: string,\r\n scope: number, pOItemLine: number, sMCostType: any, itemType: number, proxyUserKeyID: number, earnCode: number) {\r\n return this.http.post(\"/Employee/BulkEditItems\",\r\n {\r\n expenseItemIDString: expenseItemIDString\r\n , expenseCatgID: expenseCatgID\r\n , jCCo: jCCo\r\n , job: job\r\n , phase: phase\r\n , gLCo: gLCo\r\n , gLAcct: gLAcct\r\n , sMCo: sMCo\r\n , sMWorkOrder: sMWorkOrder\r\n , eMCo: eMCo\r\n , workOrder: workOrder\r\n , jCCType: jCCType\r\n , sL: sL\r\n , sLItem: sLItem\r\n , wO: wO\r\n , wOItem: wOItem\r\n , equip: equip\r\n , costCode: costCode\r\n , eMCType: eMCType\r\n , compType: compType\r\n , component: component\r\n , iNCo: iNCo\r\n , loc: loc\r\n , material: material\r\n , scope: scope\r\n , pOItemLine: pOItemLine\r\n , sMCostType: sMCostType\r\n , itemType: itemType\r\n , proxyUserKeyID: proxyUserKeyID\r\n , earnCode: earnCode\r\n }).toPromise();\r\n }\r\n getCurrentWindow(proxyUserKeyID?: number) {\r\n var url = \"/Employee/GetCurrentWindow?proxyUserKeyID=\"+ proxyUserKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n getWindowTypes(includeOpenWindow: boolean) {\r\n var url = \"/Employee/GetWindowTypes?includeOpenWindow=\" + includeOpenWindow;\r\n return this.http.get(url).toPromise();\r\n }\r\n getBenefitGroupAttachments(proxyUserKeyID: number) {\r\n var url = \"/Employee/GetBenefitGroupAttachments?proxyUserKeyID=\" + proxyUserKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getBenefitsGrid(proxyUserKeyID: number) {\r\n var url = \"/Employee/GetBenefitsGrid?proxyUserKeyID=\" + proxyUserKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPlanAttachments(benefitType?: string, attachmentID?: string) {\r\n var url = \"/Employee/GetPlanAttachments?benefitType=\" + benefitType + \"&attachmentID=\" + attachmentID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getDependentsByBenefitCode(hRBCKeyID: number, proxyUserKeyID?: number) {\r\n var url = \"/Employee/GetDependentsByBenefitCode?hRBCKeyID=\" + hRBCKeyID + \"&proxyUserKeyID=\" + proxyUserKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getBenefitDependentsByRequestID(benefitRequestID: number) {\r\n var url = \"/Employee/GetBenefitDependentsByRequestID?benefitRequestID=\" + benefitRequestID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n submitBenefitRequest(hRBCKeyID: number, benefitOption: number, declineNotes?: string, proxyUserKeyID?: number, fixedAmt?: number, fixedPct?: number) {\r\n return this.http.post(\"/Employee/SubmitBenefitRequest\",\r\n {\r\n hRBCKeyID: hRBCKeyID,\r\n benefitOption: benefitOption,\r\n declineNotes: declineNotes,\r\n proxyUserKeyID: proxyUserKeyID,\r\n fixedAmt: fixedAmt,\r\n fixedPct: fixedPct\r\n }).toPromise();\r\n }\r\n\r\n cancelBenefitRequest(benefitRequestID: number, proxyUserKeyID?: number) {\r\n return this.http.post(\"/Employee/CancelBenefitRequest\", {\r\n benefitRequestID: benefitRequestID,\r\n proxyUserKeyID: proxyUserKeyID\r\n }).toPromise();\r\n }\r\n\r\n benefitDependentRequest(benefitRequestID: number, hRDPKeyID: number, dependentRequestID?: number, dependentType?: string, dependentNameFreeText?: string, dependentRelFreeText?: string) {\r\n return this.http.post(\"/Employee/BenefitDependentRequest\", {\r\n benefitRequestID: benefitRequestID,\r\n hRDPKeyID: hRDPKeyID,\r\n dependentRequestID: dependentRequestID,\r\n dependentType: dependentType,\r\n dependentNameFreeText: dependentNameFreeText,\r\n dependentRelFreeText: dependentRelFreeText\r\n }).toPromise();\r\n }\r\n\r\n getBenefitRequestsByUserWindowID(userWindowID: number, benefitRequestID?: number, showApproved?: boolean, proxyUserKeyID?: number) {\r\n var url = \"/Employee/GetBenefitRequestsByUserWindowID?userWindowID=\" + userWindowID + \"&benefitRequestID=\" + benefitRequestID + \"&showApproved=\" + showApproved + \"&proxyUserKeyID=\" + proxyUserKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n sendBenSign(benefitUserWindowID?: number, benefitSignatureStr?: string, latitude?: number, longitude?: number, proxyUserKeyID?: number) {\r\n return this.http.post(\"/Employee/sendBenSign\", {\r\n benefitUserWindowID: benefitUserWindowID,\r\n benefitSignatureStr: benefitSignatureStr,\r\n latitude: latitude,\r\n longitude: longitude,\r\n proxyUserKeyID: proxyUserKeyID\r\n }).toPromise();\r\n }\r\n\r\n getVistaOptions(optionType: string) {\r\n var url = \"/Hiring/GetVistaOptions?optionType=\" + optionType;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n removeFileAttachment(fileAttachmentID: any) {\r\n return this.http.post(\"/Employee/RemoveFileAttachment\",\r\n {\r\n fileAttachmentID: fileAttachmentID\r\n }).toPromise();\r\n }\r\n\r\n getTrainingHistoryPost(hRCo: number, userKeyID: string, skillOrTraining: string, itemKeyID: number, categoryString: string, startDateStr: string, endDateStr: string, includeInactive: boolean, showOnlyMostRecent: boolean) {\r\n return this.http.post(\"/Employee/GetTrainingHistoryPost\",\r\n {\r\n hRCo: hRCo\r\n , userKeyID: userKeyID\r\n , skillOrTraining: skillOrTraining\r\n , itemKeyID: itemKeyID\r\n , categoryString: categoryString\r\n , startDateStr: startDateStr\r\n , endDateStr: endDateStr\r\n , includeInactive: includeInactive\r\n , showOnlyMostRecent: showOnlyMostRecent\r\n }).toPromise();\r\n }\r\n\r\n saveTrainingGrid(hRCo: number, userKeyID: string, skillOrTraining: string, itemKeyID: number, categoryString: string, startDateStr: string, endDateStr: string, mode: string, includeInactive: boolean, showOnlyMostRecent: boolean, includeAttachment: boolean, type: string) {\r\n return this.http.post(\"/Employee/SaveTrainingGrid\",\r\n {\r\n hRCo: hRCo\r\n , userKeyID: userKeyID\r\n , skillOrTraining: skillOrTraining\r\n , itemKeyID: itemKeyID\r\n , categoryString: categoryString\r\n , startDateStr: startDateStr\r\n , endDateStr: endDateStr\r\n , mode: mode\r\n , includeInactive: includeInactive\r\n , showOnlyMostRecent: showOnlyMostRecent\r\n , includeAttachment: includeAttachment\r\n , type: type\r\n }).toPromise();\r\n }\r\n\r\n downloadTrainingGrid(name: string, type: string) {\r\n var url = \"/Employee/DownloadTrainingGrid?name=\" + name + (type == \"Excel\" ? \".xlsx\" : \".pdf\");\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n trainingAttachmentsGetList(hRTrainingKeyID: number, skillOrTraining: string) {\r\n var url = \"/Employee/TrainingAttachmentsGetList?hRTrainingKeyID=\" + hRTrainingKeyID + \"&skillOrTraining=\" + skillOrTraining\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n showClassDescription() {\r\n var url = \"/Employee/ShowClassDescription\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n trainingUpdate(itemKeyID: number, userKeyID: number[], skillOrTraining: string, code: string[], notes: string, dateTakenStr: string, dateExpiresStr: string, status: string, instructorName: string, grade: string, oSHA: string, mSHA: string, firstAid: string, cPR: string, workRelated: string, mode: string, attachmentData: any, attachmentName: string[]) {\r\n return this.http.post(\"/Employee/TrainingUpdate\",\r\n {\r\n itemKeyID: itemKeyID,\r\n userKeyID: userKeyID,\r\n skillOrTraining: skillOrTraining,\r\n code: code,\r\n notes: notes,\r\n dateTakenStr: dateTakenStr,\r\n dateExpiresStr: dateExpiresStr,\r\n status: status,\r\n instructorName: instructorName,\r\n grade: grade,\r\n oSHA: oSHA,\r\n mSHA: mSHA,\r\n firstAid: firstAid,\r\n cPR: cPR,\r\n workRelated: workRelated,\r\n mode: mode,\r\n attachmentData: attachmentData,\r\n attachmentName: attachmentName\r\n }).toPromise();\r\n }\r\n\r\n trainingAttachmentDelete(attachmentID: number) {\r\n return this.http.post(\"/Employee/TrainingAttachmentDelete\",\r\n {\r\n attachmentID: attachmentID,\r\n }).toPromise();\r\n }\r\n\r\n trainingDeleteItem(itemKeyID: number, skillOrTraining: any) {\r\n return this.http.post(\"/Employee/TrainingDeleteItem\",\r\n {\r\n itemKeyID: itemKeyID,\r\n skillOrTraining: skillOrTraining\r\n }).toPromise();\r\n }\r\n\r\n getUserGridSettings(gridLocation: string) {\r\n var url = \"/Employee/GetUserGridSettings?gridLocation=\" + gridLocation;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n setUserGridSettings(gridLocation: string, gridData: string) {\r\n return this.http.post(\"/Employee/SetUserGridSettings\",\r\n {\r\n gridLocation: gridLocation,\r\n gridData: gridData\r\n }).toPromise();\r\n }\r\n\r\n setUserVendor(userID: any, expenseAPVMKeyID: any) {\r\n return this.http.post(\"/Employee/SetUserVendor\",\r\n {\r\n userID: userID,\r\n expenseAPVMKeyID: expenseAPVMKeyID\r\n }).toPromise();\r\n }\r\n\r\n getFileAttachmentBinary(fileAttachmentID: number) {\r\n var url = \"/Employee/GetFileAttachmentBinary?fileAttachmentID=\" + fileAttachmentID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n updateOnboardTaskComplete(recordID: number) {\r\n return this.http.post(\"/Employee/UpdateOnboardTaskComplete\",\r\n {\r\n recordID: recordID\r\n }).toPromise();\r\n }\r\n\r\n clearBatchStatus(expenseItemIDString: string) {\r\n return this.http.post(\"/Employee/ClearBatchStatus\",\r\n {\r\n expenseItemIDString: expenseItemIDString\r\n }).toPromise();\r\n }\r\n\r\n getVendors(searchString: string) {\r\n var url = \"/Employee/GetVendors?searchString=\" + searchString;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getApprovalHistoryByItem(expenseItemID: string) {\r\n var url = \"/Employee/GetApprovalHistoryByItem?expenseItemID=\" + expenseItemID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n approveItems(expenseItemIDString: string, status: string, statusNotes: string) {\r\n return this.http.post(\"/Employee/ApproveItems\",\r\n {\r\n expenseItemIDString: expenseItemIDString,\r\n status: status,\r\n statusNotes: statusNotes\r\n }).toPromise();\r\n }\r\n\r\n getPayPeriods(prco: any, pRGroup: any) {\r\n var url = \"/Employee/GetPayPeriods?pRCo=\" + prco + \"&pRGroup=\" + pRGroup;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPaySeq(pRPCKeyID: any) {\r\n var url = \"/Employee/GetPaySeq?pRPCKeyID=\" + pRPCKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n processExpense(method: any, pRPCKeyID: any, paySeq: any, earnCode: any, expenseItemIDList: any, pRCo: any, mthStr: any, aPRef: any, hQBCKeyID?: any, aPVMKeyID?: number) {\r\n return this.http.post(\"/Employee/ProcessExpense\",\r\n {\r\n method: method,\r\n pRPCKeyID: pRPCKeyID,\r\n paySeq: paySeq,\r\n earnCode: earnCode,\r\n expenseItemIDList: expenseItemIDList,\r\n pRCo: pRCo,\r\n mthStr: mthStr,\r\n aPRef: aPRef,\r\n hQBCKeyID: hQBCKeyID,\r\n aPVMKeyID: aPVMKeyID\r\n }).toPromise();\r\n }\r\n\r\n getReprocessBatches(pRCo: any) {\r\n var url = \"/Employee/GetReprocessBatches?pRCo=\" + pRCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getUnSubmittedExpenseReminder(sendEmail: any, pRCo: any) {\r\n return this.http.post(\"/Employee/GetUnSubmittedExpenseReminder\",\r\n {\r\n sendEmail: sendEmail,\r\n pRCo: pRCo,\r\n }).toPromise();\r\n }\r\n\r\n getCreditCardvendors(pRCo: number){\r\n var url = \"/employee/GetCreditCardVendors?pRCo=\" + pRCo\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class EmployeeTrainingService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getRegisteredClasses() {\r\n return this.http.get(\"/Employee/GetRegisteredClasses\").toPromise();\r\n }\r\n\r\n getPastRegisteredClasses() {\r\n return this.http.get(\"/Employee/GetPastRegisteredClasses\").toPromise();\r\n }\r\n\r\n getAttachment(moduleID: number,data: number) {\r\n return this.http.get(\"/Document/GetDBAttachmentList?moduleID=\" + moduleID + \"&recordID=\" + data).toPromise();\r\n }\r\n\r\n showClassDescription() {\r\n return this.http.get(\"/Employee/ShowClassDescription\").toPromise();\r\n }\r\n\r\n getICSFile(classDateTime: any, classTitle: string, classLocation: string, instructorFullName: string, endDateTime: string) {\r\n return this.http.post(\"/Employee/DownloadICSFile\",\r\n {\r\n classDateTime: classDateTime,\r\n classTitle: classTitle,\r\n classLocation: classLocation,\r\n instructorFullName: instructorFullName,\r\n endDateTime: endDateTime\r\n }).toPromise();\r\n }\r\n\r\n getAvailableClasses() {\r\n return this.http.get(\"/Employee/GetAvailableClasses\").toPromise();\r\n }\r\n\r\n removeClass(trainingClassId: number) {\r\n return this.http.post(\"/Employee/RemoveClass\",\r\n {\r\n trainingClassId: trainingClassId\r\n }).toPromise();\r\n }\r\n\r\n registerClass(trainingClassId: number) {\r\n return this.http.post(\"/Employee/RegisterForClass\",\r\n {\r\n trainingClassId: trainingClassId\r\n }).toPromise();\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FieldService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getCompanies() {\r\n return this.http.get(\"/Field/GetJBCompanies\").toPromise();\r\n }\r\n\r\n getContracts(hQCo: number, form: string) {\r\n return this.http.get(\"/Field/GetContracts?hQCo=\" + hQCo + \"&form=\" + form).toPromise();\r\n }\r\n\r\n getContractByjCJMKeyID(LastUsedJCJMKeyID: number) {\r\n return this.http.get(\"/Field/GetContract?jCJMKeyID=\" + LastUsedJCJMKeyID).toPromise();\r\n }\r\n\r\n getBills(hQCo: number, contract: string) {\r\n return this.http.get(\"/Field/JBGetBills?hQCo=\" + hQCo + \"&contract=\" + contract).toPromise();\r\n }\r\n\r\n getHuddleTypes() {\r\n var url = \"/Field/GetHuddleTypes\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n addEditHuddleType(huddleTypeID?: number, huddleTypeName?: string) {\r\n return this.http.post(\"/Field/AddEditHuddleType\",\r\n {\r\n huddleTypeID: huddleTypeID,\r\n huddleTypeName: huddleTypeName\r\n }).toPromise();\r\n }\r\n\r\n getHuddlesToSchedule() {\r\n var url = \"/Field/GetHuddlesToSchedule\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n removeHuddleType(huddleTypeID?: number) {\r\n return this.http.post(\"/Field/RemoveHuddleType\",\r\n {\r\n huddleTypeID: huddleTypeID\r\n }).toPromise();\r\n }\r\n\r\n addEditHuddle(requestObj: any) {\r\n return this.http.post(\"/Field/AddEditHuddle\", {\r\n huddleTypeID: requestObj.huddleTypeID,\r\n huddleDateStr: requestObj.huddleDateStr,\r\n huddleLocation: requestObj.huddleLocation,\r\n ledByUserKeyID: requestObj.ledByUserKeyID,\r\n jCJMKeyID: requestObj.jCJMKeyID,\r\n huddleID: requestObj.huddleID,\r\n releventFromStr: requestObj.releventFromStr,\r\n releventToStr: requestObj.releventToStr,\r\n isTemplateMeeting: requestObj.isTemplateMeeting,\r\n huddleName: requestObj.huddleName,\r\n isPublished: requestObj.isPublished,\r\n startTimeStr: requestObj.startTimeStr,\r\n notes: requestObj.notes\r\n }).toPromise();\r\n }\r\n\r\n initializeTemplateMeeting(templateHuddleID?: number, huddleDateStr?: string) {\r\n return this.http.post(\"/Field/InitializeTemplateMeeting\",\r\n {\r\n templateHuddleID: templateHuddleID,\r\n huddleDateStr: huddleDateStr\r\n }).toPromise();\r\n }\r\n\r\n getHuddles(requestObj: any) {\r\n var url = \"/Field/GetHuddles?huddleID=\" + requestObj.huddleID + \"&dateFromStr=\" + requestObj.dateFromStr + \"&dateToStr=\" + requestObj.dateToStr + \"&templateMode=\" + requestObj.templateMode + \"&branchID=\" + requestObj.branchID + \"&jCJMKeyID=\" + requestObj.jCJMKeyID + \"&workTypeID=\" + requestObj.workTypeID + \"&phaseTypeID=\" + requestObj.phaseTypeID\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getWorkTypes() {\r\n var url = \"/Field/GetWorkTypes\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPhaseTypes(workTypeID?: number) {\r\n var url = \"/Field/GetPhaseTypes?workTypeID=\" + workTypeID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getTalkingPoints(phaseTypeID?: number, workTypeID?: number) {\r\n var url = \"/Field/GetTalkingPoints?phaseTypeID=\" + phaseTypeID + \"&workTypeID=\" + workTypeID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n deleteHuddle(huddleID?: number) {\r\n return this.http.post(\"/Field/DeleteHuddle\",\r\n {\r\n huddleID: huddleID\r\n }).toPromise();\r\n }\r\n\r\n getJobs(form: string, searchString: string, JCCo: string) {\r\n var url = \"/Field/GetJobs?form=\" + form + \"&searchString=\" + searchString + \"&JCCo=\" + JCCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPointsByHuddle(huddleID: number) {\r\n var url = \"/Field/GetPointsByHuddle?huddleID=\" + huddleID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getDBAttachmentList(moduleID: number, recordID: number, recordGuid: any, onboardingUser: boolean) {\r\n var url = \"/Document/GetDBAttachmentList?moduleID=\" + moduleID + \"&recordID=\" + recordID + \"&recordGuid=\" + recordGuid + \"&onboardingUser=\" + onboardingUser;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n addEditAttendee(requestObj: any) {\r\n return this.http.post(\"/Field/AddEditAttendee\", {\r\n attendeeUserKeyID: requestObj.attendeeUserKeyID,\r\n attendeeSignature: requestObj.attendeeSignature,\r\n coachUserKeyID: requestObj.coachUserKeyID,\r\n signatureLatitude: requestObj.signatureLatitude,\r\n signatureLongitude: requestObj.signatureLongitude,\r\n huddleID: requestObj.huddleID,\r\n huddleAttendeeID: requestObj.huddleAttendeeID,\r\n attendeeSignatureDateStr: requestObj.attendeeSignatureDateStr\r\n }).toPromise();\r\n }\r\n\r\n getAttendees(huddleID: number, includeSigData: boolean) {\r\n var url = \"/Field/GetAttendees?huddleID=\" + huddleID + \"&includeSigData=\" + includeSigData;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n deleteDBAttachment(fileAttachmentID: any) {\r\n return this.http.post(\"/Document/DeleteDBAttachment\", {\r\n fileAttachmentID: fileAttachmentID\r\n }).toPromise();\r\n }\r\n copyAttendees(fromHuddleID?: number, toHuddleID?: number) {\r\n return this.http.post(\"/Field/CopyAttendees\",\r\n {\r\n fromHuddleID: fromHuddleID,\r\n toHuddleID: toHuddleID\r\n }).toPromise();\r\n }\r\n\r\n removePointFromHuddle(huddleItemID?: number) {\r\n return this.http.post(\"/Field/RemovePointFromHuddle\",\r\n {\r\n huddleItemID: huddleItemID\r\n }).toPromise();\r\n }\r\n\r\n addPointToHuddle(huddleID: number, talkingPointID?: number[]) {\r\n return this.http.post(\"/Field/AddPointToHuddle\",\r\n {\r\n huddleID: huddleID,\r\n talkingPointID: talkingPointID\r\n }).toPromise();\r\n }\r\n\r\n removeAttendee(huddleAttendeeID?: number) {\r\n return this.http.post(\"/Field/RemoveAttendee\",\r\n {\r\n huddleAttendeeID: huddleAttendeeID\r\n }).toPromise();\r\n }\r\n\r\n deleteTalkingPoint(talkingPointID: number) {\r\n return this.http.post(\"/Field/DeleteTalkingPoint\",\r\n {\r\n talkingPointID: talkingPointID\r\n }).toPromise();\r\n }\r\n\r\n addEditTalkingPoint(requestObj: any) {\r\n return this.http.post(\"/Field/AddEditTalkingPoint\",\r\n {\r\n talkingPointID: requestObj.talkingPointID,\r\n phaseTypeID: requestObj.phaseTypeID,\r\n talkingPointTitle: requestObj.talkingPointTitle,\r\n talkingPointBody: requestObj.talkingPointBody,\r\n isStandard: requestObj.isStandard,\r\n relatedTask: requestObj.relatedTask\r\n }).toPromise();\r\n }\r\n\r\n addEditWorkType(workTypeID: number, workTypeName: string, sortSeq?: number) {\r\n return this.http.post(\"/Field/AddEditWorkType\",\r\n {\r\n workTypeID: workTypeID,\r\n workTypeName: workTypeName,\r\n sortSeq: sortSeq\r\n }).toPromise();\r\n }\r\n\r\n deleteWorkType(workTypeID?: number) {\r\n return this.http.post(\"/Field/DeleteWorkType\",\r\n {\r\n workTypeID: workTypeID\r\n }).toPromise();\r\n }\r\n\r\n addEditPhaseType(phaseTypeID: number, workTypeID: number, phaseTypeName: number, sortSeq?: number) {\r\n return this.http.post(\"/Field/AddEditPhaseType\",\r\n {\r\n phaseTypeID: phaseTypeID,\r\n workTypeID: workTypeID,\r\n phaseTypeName: phaseTypeName,\r\n sortSeq: sortSeq\r\n }).toPromise();\r\n }\r\n\r\n deletePhaseType(phaseTypeID?: any) {\r\n return this.http.post(\"/Field/DeletePhaseType\",\r\n {\r\n phaseTypeID: phaseTypeID\r\n }).toPromise();\r\n }\r\n\r\n getCostTypes(co: number, contract: string) {\r\n var url = \"/Field/GetCostTypes?co=\" + co + \"&contract=\" + contract\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPhaseByContract(co: number, contract: string) {\r\n var url = \"/Field/GetPhaseByContract?co=\" + co + \"&contract=\" + contract\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getAttachmentsDetail(jBINKeyID: number, co: number, contract: string) {\r\n var url = \"/Field/GetAttachmentsDetail?jBINKeyID=\" + jBINKeyID + \"&co=\" + co + \"&contract=\" + contract\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n updateAttachmentOrder(fromBillAttachmentID: number, toBillAttachmentID: number, newSequence: number, billType: string) {\r\n return this.http.post(\"/Field/UpdateAttachmentOrder\",\r\n {\r\n fromBillAttachmentID: fromBillAttachmentID,\r\n toBillAttachmentID: toBillAttachmentID,\r\n newSequence: newSequence,\r\n billType: billType\r\n }).toPromise();\r\n }\r\n\r\n copyAttachment(attachmentID: number, jBINKeyID: number, moduleID: number) {\r\n return this.http.post(\"/Field/CopyAttachment\",\r\n {\r\n attachmentID: attachmentID,\r\n jBINKeyID: jBINKeyID,\r\n moduleID: moduleID\r\n }).toPromise();\r\n }\r\n\r\n addBulkAttendees(huddleID: number, pRCo: number, pRCRKeyID: number) {\r\n return this.http.post(\"/Field/AddBulkAttendees\",\r\n {\r\n huddleID: huddleID,\r\n PRCo: pRCo,\r\n PRCRKeyID: pRCRKeyID\r\n }).toPromise();\r\n }\r\n addBillAttachment(jBINKeyID: number, attachmentID: number) {\r\n return this.http.post(\"/Field/AddBillAttachment\",\r\n {\r\n jBINKeyID: jBINKeyID,\r\n attachmentID: attachmentID\r\n }).toPromise();\r\n }\r\n\r\n renameAttachment(renamedfile: string, description: string, attachmentID: number, jBINKeyID: number) {\r\n return this.http.post(\"/Field/RenameAttachment\", {\r\n renamedfile: renamedfile,\r\n description: description,\r\n attachmentID: attachmentID,\r\n jBINKeyID: jBINKeyID\r\n }).toPromise();\r\n }\r\n\r\n excludeIncludeAttachment(billAttachmentID: number, isExclude: boolean) {\r\n return this.http.post(\"/Field/ExcludeIncludeAttachment\", {\r\n billAttachmentID: billAttachmentID,\r\n isExclude: isExclude\r\n }).toPromise();\r\n }\r\n\r\n initializeAttachments(jCCo: number, contract: string, jBINKeyID: number, phase: string, begMthString: string, endMthString: string, begDateString: string, endDateString: string, costType: number, sortOrder: string) {\r\n return this.http.post(\"/Field/InitializeAttachments\", {\r\n jCCo: jCCo,\r\n contract: contract,\r\n jBINKeyID: jBINKeyID,\r\n phase: phase,\r\n begMthString: begMthString,\r\n endMthString: endMthString,\r\n begDateString: begDateString,\r\n endDateString: endDateString,\r\n costType: costType,\r\n sortOrder: sortOrder\r\n }).toPromise();\r\n }\r\n\r\n compileAndSavePDFData(company: number, jBINKeyID: number, billNumber: number, billMonthString: string, begDateString: string, endDateString: string, inclJCDetail: boolean\r\n , showArchitect: boolean, showOwner: boolean, phases: string, contract: string, breakDetail: boolean, restrictByBillNumber: boolean, begMthString: string, endMthString: string, sortOrder: string) {\r\n return this.http.post(\"/Field/CompileAndSavePDFData\", {\r\n company: company,\r\n jBINKeyID: jBINKeyID,\r\n billNumber: billNumber,\r\n billMonthString: billMonthString,\r\n begDateString: begDateString,\r\n endDateString: endDateString,\r\n inclJCDetail: inclJCDetail,\r\n showArchitect: showArchitect,\r\n showOwner: showOwner,\r\n phases: phases,\r\n contract: contract,\r\n breakDetail: breakDetail,\r\n restrictByBillNumber: restrictByBillNumber,\r\n begMthString: begMthString,\r\n endMthString: endMthString,\r\n sortOrder: sortOrder\r\n }).toPromise();\r\n }\r\n\r\n downloadCompilePDFFile(billMonthString: string, begDateString: string, endDateString: string, contract: string, billNumber: number) {\r\n var url = \"/Field/DownloadCompilePDFFile?contract=\" + contract + \"&billMonthString=\" + billMonthString +\r\n \"&begDateString=\" + begDateString +\r\n \"&endDateString=\" + endDateString +\r\n \"&billNumber=\" + billNumber\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n compileAndSaveZIPData(company: number, jBINKeyID: number, billNumber: number, billMonthString: string, begDateString: string, endDateString: string, inclJCDetail: boolean\r\n , showArchitect: boolean, showOwner: boolean, phases: string, contract: string, breakDetail: boolean, restrictByBillNumber: boolean, begMthString: string, endMthString: string, sortOrder: string) {\r\n return this.http.post(\"/Field/CompileAndSaveZIPData\", {\r\n company: company,\r\n jBINKeyID: jBINKeyID,\r\n billNumber: billNumber,\r\n billMonthString: billMonthString,\r\n begDateString: begDateString,\r\n endDateString: endDateString,\r\n inclJCDetail: inclJCDetail,\r\n showArchitect: showArchitect,\r\n showOwner: showOwner,\r\n phases: phases,\r\n contract: contract,\r\n breakDetail: breakDetail,\r\n restrictByBillNumber: restrictByBillNumber,\r\n begMthString: begMthString,\r\n endMthString: endMthString,\r\n sortOrder: sortOrder\r\n }).toPromise();\r\n }\r\n\r\n downloadCompileZIPFile(billMonthString: string, begDateString: string, endDateString: string, contract: string, billNumber: number) {\r\n var url = \"/Field/DownloadCompileZIPFile?contract=\" + contract + \"&billMonthString=\" + billMonthString +\r\n \"&begDateString=\" + begDateString +\r\n \"&endDateString=\" + endDateString +\r\n \"&billNumber=\" + billNumber\r\n return this.http.get(url).toPromise();\r\n\r\n }\r\n\r\n getPOVendors(pOCo?: number, searchString?: string) {\r\n var url = \"/Field/GetPOVendors?pOCo=\" + pOCo + \"&searchString=\" + searchString;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPOItemByAPULKeyID(apULKeyID: number) {\r\n var url = \"/Field/GetPOItemByAPULKeyID?aPULKeyID=\" + apULKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getJCPhaseDesc(jcco: number, job: any, phase: any, apco: any) {\r\n var url = \"/Field/GetJCPhaseDesc?jcco=\" + jcco + \"&job=\" + job + \"&phase=\" + phase + \"&apco=\" + apco;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getMaterialInfo(rQCo?: number, material?: string) {\r\n var url = \"/Field/GetMaterialInfo?rQCo=\" + rQCo + \"&material=\" + material;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ApplicantService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getPersonalInfo() {\r\n var url = \"/Applicant/GetPersonalInfo\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getStagesByProfileID() {\r\n var url = \"/Applicant/GetStagesByProfileID\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getReqColumns(reqForm: string) {\r\n var url = \"/Applicant/GetReqColumns?reqForm=\" + reqForm;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getRecruiterList() {\r\n var url = \"/Applicant/GetRecruiterList\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getApplicantsByJobReq(requestParam: string) {\r\n var url = \"/Applicant/GetApplicantsByJobReq?\" + requestParam;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n exportJobReqFull(reqStageID: string, status: string, startDate: string, endDate: string, searchString: string, district: string, filename: string) {\r\n var url = \"/Applicant/ExportJobReqFull?reqStageID=\" + reqStageID + \"&status=\" + status +\r\n \"&startDate=\" + startDate + \"&endDate=\" + endDate + \"&searchString=\" + searchString + \"&district=\" + district + \"&filename=\" + filename;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getApplicantSearchReportFull(requestObj: any) {\r\n var url = \"/Applicant/getApplicantSearchReportFull?file=\" + requestObj.file + \"&beginDate=\" + requestObj.beginDate +\r\n \"&endDate=\" + requestObj.endDate + \"&filename=\" + requestObj.filename + \"&district=\" + requestObj.district + \"&appStage=\" +\r\n requestObj.appStage + \"&reqID=\" + requestObj.reqID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getStages(reqID?: any, onboardID?: any){\r\n var url = \"/Applicant/GetStages?reqID=\" + reqID + \"&onboardID=\" + onboardID\r\n return this.http.get(url).toPromise();\r\n }\r\n \r\n getReqDetails(reqID?:any, reqApplyToken?:any) {\r\n var url = \"/Applicant/GetReqDetails?reqID=\" + reqID + \"&reqApplyToken=\" + reqApplyToken;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n reqSpecQuesAnswerGet(reqID?: any, onboardID?: any) {\r\n var url = \"/Applicant/ReqSpecQuesAnswerGet?reqID=\" + reqID + \"&onboardID=\" + onboardID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPersonalInfoForDate(onboardID: string){\r\n var url = \"/Applicant/GetPersonalInfoForDate?onboardID=\" + onboardID\r\n return this.http.get(url).toPromise();\r\n }\r\n \r\n updateDispReason(onboardID: string, dispReason: string) {\r\n return this.http.post(\"/Applicant/UpdateDispReason\", {\r\n onboardID: onboardID,\r\n dispReason: dispReason\r\n }).toPromise();\r\n }\r\n \r\n personalInfoEdit(data: any) {\r\n return this.http.post(\"/Applicant/PersonalInfoEdit\", {\r\n onboardID: data.onboardID,\r\n firstName: data.firstName,\r\n lastName: data.lastName,\r\n email: data.email,\r\n phone: data.phone,\r\n address1: data.address1,\r\n address2: data.address2,\r\n city: data.city,\r\n state: data.state,\r\n cell: data.cell,\r\n zip: data.zip,\r\n contact: data.contact,\r\n contactSource: data.contactSource,\r\n contactSourceNotes: data.contactSourceNotes,\r\n hireDateStr: data.hireDateStr,\r\n country: data.country,\r\n midName: data.midName,\r\n suffix: data.suffix,\r\n hRRMKeyID: data.hRRMKeyID,\r\n birthdayStr: data.birthdayStr, \r\n maritalStatus: data.maritalStatus,\r\n countryOther: data.countryOther,\r\n isManagerEdit: data.isManagerEdit,\r\n reservedHRRef: data.reservedHRRef\r\n }).toPromise();\r\n }\r\n\r\n applicantHistoryGet(reqApplicantID?: any, reqID?: any) {\r\n var url = \"/Applicant/ApplicantHistoryGet?reqApplicantID=\" + reqApplicantID + \"&reqID=\" + reqID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getApplicantPrevReqs(onboardID?: any) {\r\n var url = \"/Applicant/GetApplicantPrevReqs?onboardID=\" + onboardID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n applicantChangeStage(reqApplicantIDString: string, reqStageID?: number) {\r\n return this.http.post(\"/Applicant/ApplicantChangeStage\", {\r\n reqApplicantIDString: reqApplicantIDString,\r\n reqStageID: reqStageID\r\n }).toPromise();\r\n }\r\n\r\n setDateHired(onboardID: string, hireDateStr: string) {\r\n return this.http.post(\"/Applicant/SetDateHired\", {\r\n onboardID: onboardID,\r\n hireDateStr: hireDateStr\r\n }).toPromise();\r\n }\r\n getAssignedRecruiters(reqID?: any){\r\n var url = \"/Applicant/GetAssignedRecruiters?reqID=\" + reqID\r\n return this.http.get(url).toPromise();\r\n }\r\n \r\n getReqGrid(status: string){\r\n var url = \"/Applicant/GetReqGrid?status=\" + status;\r\n return this.http.get(url).toPromise();\r\n }\r\n \r\n reqCopyMove(onboardID?: any, isCopy?: boolean, moveToReqID?: any, onboardIDArray?: any[]) {\r\n return this.http.post(\"/Applicant/ReqCopyMove\", {\r\n onboardID: onboardID,\r\n isCopy: isCopy,\r\n moveToReqID: moveToReqID,\r\n onboardIDArray: onboardIDArray\r\n }).toPromise();\r\n }\r\n \r\n applicantRatingGet(reqApplicantID?: any){\r\n var url = \"/Applicant/ApplicantRatingGet?reqApplicantID=\" + reqApplicantID;\r\n return this.http.get(url).toPromise();\r\n }\r\n \r\n applicantRatingAddEdit(reqApplicantID?: any, ratingValue?: string, reqID?: any, reqApplicantRatingID?: any, ratingStage?: string) {\r\n return this.http.post(\"/Applicant/ApplicantRatingAddEdit\", {\r\n reqApplicantID: reqApplicantID,\r\n ratingValue: ratingValue,\r\n reqID: reqID,\r\n reqApplicantRatingID: reqApplicantRatingID,\r\n ratingStage: ratingStage\r\n }).toPromise();\r\n }\r\n\r\n applicantRatingRemove(reqApplicantID?: any, reqApplicantRatingID?: number) {\r\n return this.http.post(\"/Applicant/ApplicantRatingRemove\", {\r\n reqApplicantID: reqApplicantID,\r\n reqApplicantRatingID: reqApplicantRatingID\r\n }).toPromise();\r\n }\r\n\r\n setVeteranReview(onboardID?: any, isRecommended?: boolean) {\r\n return this.http.post(\"/Applicant/SetVeteranReview\", {\r\n onboardID: onboardID,\r\n isRecommended: isRecommended\r\n }).toPromise();\r\n }\r\n\r\n applicantToOnboard(onboardID?: any, onboardProfileID?: number, reqID?: any) {\r\n return this.http.post(\"/Applicant/ApplicantToOnboard\", {\r\n onboardID: onboardID,\r\n onboardProfileID: onboardProfileID,\r\n reqID: reqID\r\n }).toPromise();\r\n }\r\n\r\n deleteApplicant(onboardID?: any) {\r\n return this.http.post(\"/Applicant/DeleteApplicant\", {\r\n onboardID: onboardID\r\n }).toPromise();\r\n }\r\n\r\n sendBulkEmail(requestObj?: any) {\r\n return this.http.post(\"/Applicant/SendBulkEmail\", {\r\n toEmail: requestObj.toEmail,\r\n ccEmail: requestObj.ccEmail,\r\n bccEmail: requestObj.bccEmail,\r\n subject: requestObj.subject,\r\n body: requestObj.body,\r\n newFilenames: requestObj.newFilenames,\r\n newFiles: requestObj.newFiles,\r\n onboardID: requestObj.onboardID,\r\n reqID: requestObj.reqID,\r\n emailTemplateID: requestObj.emailTemplateID,\r\n includeICS: requestObj.includeICS,\r\n icsStartDate: requestObj.icsStartDate,\r\n icsEndDate: requestObj.icsEndDate,\r\n location: requestObj.location,\r\n sendEmail: requestObj.sendEmail,\r\n templateTo: requestObj.templateTo,\r\n mailFrom: requestObj.mailFrom,\r\n queueType: requestObj.queueType,\r\n notificationMode: requestObj.notificationMode,\r\n sMSTo: requestObj.sMSTo\r\n }).toPromise();\r\n }\r\n\r\n sendEmail(requestObj?: any) {\r\n return this.http.post(\"/Applicant/SendEmail\", {\r\n toEmail: requestObj.toEmail,\r\n ccEmail: requestObj.ccEmail,\r\n bccEmail: requestObj.bccEmail,\r\n subject: requestObj.subject,\r\n body: requestObj.body,\r\n newFilenames: requestObj.newFilenames,\r\n newFiles: requestObj.newFiles,\r\n includeICS: requestObj.includeICS,\r\n icsStartDate: requestObj.icsStartDate,\r\n icsEndDate: requestObj.icsEndDate,\r\n location: requestObj.location,\r\n onboardID: requestObj.onboardID,\r\n reqID: requestObj.reqID,\r\n mailFrom: requestObj.mailFrom,\r\n queueType: requestObj.queueType,\r\n notificationMode: requestObj.notificationMode,\r\n sMSTo: requestObj.sMSTo\r\n }).toPromise();\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HiringService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n profilesGetForInvite() {\r\n var url = \"/Hiring/ProfilesGetForInvite\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getDashboard(onboardID: any, status?: string) {\r\n var url = \"/Hiring/GetDashboard?onboardID=\" + onboardID + (status != null ? \"&status=\" + status : '');\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getProcessData() {\r\n var url = \"/Hiring/getProcessData\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getHiredData() {\r\n var url = \"/Hiring/getHiredData\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getBirdDogOnboardToExclude() {\r\n var url = \"/Hiring/GetBirdDogOnboardToExclude\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n\r\n i9GenList(fromDateStr: string, toDateStr: string) {\r\n var url = \"/Hiring/I9GenList?fromDateStr=\" + fromDateStr + \"&toDateStr=\" + toDateStr;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n i9Gen(employeeList: any[]) {\r\n return this.http.post(\"/Hiring/I9Gen\",\r\n {\r\n employeeList: employeeList\r\n }).toPromise();\r\n }\r\n\r\n getRaceCodes() {\r\n var url = \"/Hiring/GetRaceCodes\";\r\n return this.http.get(url).toPromise();\r\n }\r\n getOnboardEmergencyContacts(onboardID?: any) {\r\n var url = \"/Hiring/GetOnboardEmergencyContacts?onboardID=\" + onboardID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n maxNumberOfAttachments() {\r\n var url = \"/Hiring/MaxNumberOfAttachments\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getMaritalStatus() {\r\n var url = \"/Hiring/GetMaritalStatus\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getOnboardingEmployees(employeeLabel: string) {\r\n var url = \"/Hiring/GetOnboardingEmployees?searchText=\" + employeeLabel;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n defaultsGetAllList(data: any) {\r\n var url = \"/Hiring/DefaultsGetAllList?onboardProfileID=\" + data;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getTasksByOnboardID(data?: any) {\r\n var url = \"/Hiring/GetTasksByOnboardID?inputGuid=\" + data;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getApplicantsByJobReq(onboardID: any) {\r\n var url = \"/Applicant/GetApplicantsByJobReq?onboardID=\" + onboardID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n personalInfoEdit(onboardID: any, firstName: string, lastName: string, email: string, phone: string, address1: string, address2: string, city: string, state: string, cell: string,\r\n zip: string, contact: string, contactSource: string, contactSourceNotes: string, hireDateStr: string, country: string, midName: string, suffix: string, hRRMKeyID: number, birthdayStr: string,\r\n maritalStatus: string, countryOther: string, isManagerEdit: boolean, reservedHRRef: number) {\r\n return this.http.post(\"/Applicant/PersonalInfoEdit\", {\r\n onboardID: onboardID,\r\n firstName: firstName,\r\n lastName: lastName,\r\n email: email,\r\n phone: phone,\r\n address1: address1,\r\n address2: address2,\r\n city: city,\r\n state: state,\r\n cell: cell,\r\n zip: zip,\r\n contact: contact,\r\n contactSource: contactSource,\r\n contactSourceNotes: contactSourceNotes,\r\n hireDateStr: hireDateStr,\r\n country: country,\r\n midName: midName,\r\n suffix: suffix,\r\n hRRMKeyID: hRRMKeyID,\r\n birthdayStr: birthdayStr,\r\n maritalStatus: maritalStatus,\r\n countryOther: countryOther,\r\n isManagerEdit: isManagerEdit,\r\n reservedHRRef: reservedHRRef\r\n }).toPromise();\r\n }\r\n\r\n insertOnboardTasks(onboardID: any, onboardTaskDefID: number) {\r\n return this.http.post(\"/Hiring/InsertOnboardTasks\", {\r\n onboardID: onboardID,\r\n onboardTaskDefID: onboardTaskDefID\r\n }).toPromise();\r\n }\r\n\r\n updateArchiveByOnboardID(data) {\r\n return this.http.post(\"/Hiring/UpdateArchiveByOnboardID\", {\r\n onboardID: data\r\n }).toPromise();\r\n }\r\n applicantNotesGet(reqApplicantID: any) {\r\n var url = \"/Applicant/ApplicantNotesGet?reqApplicantID=\" + reqApplicantID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n applicantNotesAddEdit(reqApplicantID: any, noteText: string, reqID: any, reqApplicantNoteID?: number) {\r\n return this.http.post(\"/Applicant/ApplicantNotesAddEdit\",\r\n {\r\n reqApplicantID: reqApplicantID,\r\n noteText: noteText,\r\n reqID: reqID,\r\n reqApplicantNoteID: reqApplicantNoteID\r\n }).toPromise();\r\n }\r\n\r\n applicantNotesRemove(reqApplicantID: any, reqApplicantNoteID?: number) {\r\n return this.http.post(\"/Applicant/ApplicantNotesRemove\", {\r\n reqApplicantID: reqApplicantID,\r\n reqApplicantNoteID: reqApplicantNoteID\r\n }).toPromise();\r\n }\r\n\r\n getDependentLookupByColumnName(columnName: string, countryCode?: string) {\r\n var url = \"/Hiring/GetDependentLookupByColumnName?columnName=\" + columnName + (countryCode != null ? \"&countryCode=\" + countryCode : \"\");\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getI9ByOnboardID(id: any, step: number) {\r\n var url = \"/Hiring/GetI9ByOnboardID?onboardID=\" + id + \"&step=\" + step;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n oNGetI9ByOnboardIDStep2(id: any) {\r\n var url = \"/Hiring/ONGetI9ByOnboardIDStep2?onboardID=\" + id;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n updateI9ByOnboardIDPart2(formData2: any) {\r\n var payload = new URLSearchParams();\r\n payload.set('onboardID', formData2.OnboardID)\r\n payload.set('s2EmpLastName', formData2.S2EmpLastName ?? \"\")\r\n payload.set('s2EmpFirstName', formData2.S2EmpFirstName ?? \"\")\r\n payload.set('s2EmpMiddleName', formData2.S2EmpMiddleName ?? \"\")\r\n payload.set('s2EmpCitizenStatus', formData2.S2EmpCitizenStatus)\r\n payload.set('listADocumentTitle', formData2.ListADocumentTitle ?? \"\")\r\n payload.set('listAIssuingAuthority', formData2.ListAIssuingAuthority ?? \"\")\r\n payload.set('listADocumentNumber', formData2.ListADocumentNumber ?? \"\")\r\n payload.set('listAExpirationDateStr', formData2.ListAExpirationDateStr ?? \"\")\r\n payload.set('listADocumentTitle2', formData2.ListADocumentTitle2 ?? \"\")\r\n payload.set('listAIssuingAuthority2', formData2.ListAIssuingAuthority2 ?? \"\")\r\n payload.set('listADocumentNumber2', formData2.ListADocumentNumber2 ?? \"\")\r\n payload.set('listAExpirationDateStr2', formData2.ListAExpirationDateStr2 ?? \"\")\r\n payload.set('listADocumentTitle3', formData2.ListADocumentTitle3 ?? \"\")\r\n payload.set('listAIssuingAuthority3', formData2.ListAIssuingAuthority3 ?? \"\")\r\n payload.set('listADocumentNumber3', formData2.ListADocumentNumber3 ?? \"\")\r\n payload.set('listAExpirationDateStr3', formData2.ListAExpirationDateStr3 ?? \"\")\r\n payload.set('listBDocumentTitle', formData2.ListBDocumentTitle ?? \"\")\r\n payload.set('listBIssuingAuthority', formData2.ListBIssuingAuthority ?? \"\")\r\n payload.set('listBDocumentNumber', formData2.ListBDocumentNumber ?? \"\")\r\n payload.set('listBExpirationDateStr', formData2.ListBExpirationDateStr ?? \"\")\r\n payload.set('listCDocumentTitle', formData2.ListCDocumentTitle ?? \"\")\r\n payload.set('listCIssuingAuthority', formData2.ListCIssuingAuthority ?? \"\")\r\n payload.set('listCDocumentNumber', formData2.ListCDocumentNumber ?? \"\")\r\n payload.set('listCExpirationDateStr', formData2.ListCExpirationDateStr ?? \"\")\r\n payload.set('s2SignatureBinary', formData2.S2SignatureBinary ?? null)\r\n payload.set('s2SignatureDateStr', formData2.S2SignatureDateStr ?? \"\")\r\n payload.set('s2SignatureTitle', formData2.S2SignatureTitle ?? \"\")\r\n payload.set('s2SignatureFirstName', formData2.S2SignatureFirstName ?? \"\")\r\n payload.set('s2SignatureLastName', formData2.S2SignatureLastName ?? \"\")\r\n payload.set('s2BusinessName', formData2.S2BusinessName ?? \"\")\r\n payload.set('s2BusinessAddress', formData2.S2BusinessAddress ?? \"\")\r\n payload.set('s2BusinessCity', formData2.S2BusinessCity ?? \"\")\r\n payload.set('s2BusinessState', formData2.S2BusinessState ?? \"\")\r\n payload.set('s2Zip', formData2.S2Zip ?? \"\")\r\n payload.set('s2AdditionalInfo', formData2.S2AdditionalInfo ?? \"\")\r\n payload.set('s2EmployeeFirstDayStr', formData2.S2EmployeeFirstDayStr ?? \"\")\r\n payload.set('s3LastName', formData2.S3LastName ?? \"\")\r\n payload.set('s3FirstName', formData2.S3FirstName ?? \"\")\r\n payload.set('s3MiddleInitial', formData2.S3MiddleInitial ?? \"\")\r\n payload.set('s3RehireDateStr', formData2.S3RehireDateStr ?? \"\")\r\n payload.set('s3DocumentTitle', formData2.S3DocumentTitle ?? \"\")\r\n payload.set('s3DocumentNumber', formData2.S3DocumentNumber ?? \"\")\r\n payload.set('s3ExpirationDateStr', formData2.S3ExpirationDateStr ?? \"\")\r\n if (formData2.S3SignatureBinary != null) {\r\n payload.set('s3SignatureBinary', formData2.S3SignatureBinary ?? null)\r\n }\r\n payload.set('s3SignatureDateStr', formData2.S3SignatureDateStr ?? \"\")\r\n payload.set('s3SignatureName', formData2.S3SignatureName ?? \"\")\r\n payload.set('longitude', formData2.longitude ?? null)\r\n payload.set('latitude', formData2.latitude ?? null)\r\n payload.set('s2SignatureTypeSign', formData2.S2SignatureTypeSign ?? false)\r\n payload.set('s3SignatureTypeSign', formData2.S3SignatureTypeSign ?? false)\r\n payload.set('s2AltDocExamProcedure', formData2.S2AltDocExamProcedure ?? false)\r\n payload.set('s3AltDocExamProcedure', formData2.S3AltDocExamProcedure ?? false)\r\n payload.set('s3AdditionalInfo', formData2.S3AdditionalInfo ?? \"\")\r\n \r\n var headers = new HttpHeaders({\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n });\r\n var options = { headers: headers };\r\n return this.http.post(\"/Hiring/UpdateI9ByOnboardIDPart2\",\r\n payload,\r\n options\r\n ).toPromise();\r\n }\r\n\r\n removeFileAttachment(fileAttachmentID: number) {\r\n return this.http.post(\"/Employee/RemoveFileAttachment\", {\r\n fileAttachmentID: fileAttachmentID\r\n }).toPromise();\r\n }\r\n\r\n getItem(checklistInstanceID: number) {\r\n var url = \"/Checklist/GetItem?checklistInstanceID=\" + checklistInstanceID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getChoicesByTemplateItemID(checklistTemplateItemID: number, checklistInstance: number) {\r\n var url = \"/Checklist/GetChoicesByTemplateItemID?checklistTemplateItemID=\" + checklistTemplateItemID + \"&checklistInstanceID=\" + checklistInstance;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getInsCodes() {\r\n var url = \"/Hiring/GetInsCodes\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getTimeRevGroup() {\r\n var url = \"/Hiring/GetTimeRevGroup\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getHRCO() {\r\n var url = \"/Employee/GetHRCO\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getACACode() {\r\n var url = \"/Hiring/GetACACode\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPRCo() {\r\n var url = \"/Hiring/GetPRCo\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCraft(data: number) {\r\n var url = \"/Hiring/GetCraft?pRCo=\" + data;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getClass(pRCo: number, craft: any) {\r\n var url = \"/Hiring/GetClass?pRCo=\" + pRCo + \"&craft=\" + craft;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getRehireDetailsByHRRef(hRRef: number, hRCo: number) {\r\n var url = \"/Hiring/GetRehireDetailsByHRRef?HRRef=\" + hRRef + \"&HRCo=\" + hRCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getPRDept(pRCo: number) {\r\n var url = \"/Hiring/GetPRDept?pRCo=\" + pRCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCompanyGroups(data: number) {\r\n var url = \"/Admin/GetCompanyGroups?pRCo=\" + data;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getEarnCode(pRCo: number) {\r\n var url = \"/Hiring/GetEarnCode?pRCo=\" + pRCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n initializeEmployee(onboardID: any, hRCoForInitialization: number, effectiveHireDateString: string, hRRef: number, pRCo: number, pRGroup: number, craft: string, classID: string, pRDept: string, earnCode: number, gender: string, wage: any, raceEthnic: string, insuranceCode: string, timesheetRevGroup: string, insState: string, codeSeries1: string, codeSeries2: string, employmentStatus: string, localCode: string, overtimeSchedule: string, pREmployee: number) {\r\n return this.http.post(\"/Hiring/InitializeEmployee\", {\r\n onboardID: onboardID,\r\n hRCoForInitialization: hRCoForInitialization,\r\n effectiveHireDateString: effectiveHireDateString,\r\n hRRef: hRRef,\r\n pRCo: pRCo,\r\n pRGroup: pRGroup,\r\n craft: craft,\r\n classID: classID,\r\n pRDept: pRDept,\r\n earnCode: earnCode,\r\n gender: gender,\r\n wage: wage,\r\n raceEthnic: raceEthnic,\r\n insuranceCode: insuranceCode,\r\n timesheetRevGroup: timesheetRevGroup,\r\n insState: insState,\r\n codeSeries1: codeSeries1,\r\n codeSeries2: codeSeries2,\r\n employmentStatus: employmentStatus,\r\n localCode: localCode,\r\n overtimeSchedule: overtimeSchedule,\r\n pREmployee: pREmployee\r\n }).toPromise();\r\n }\r\n\r\n getEmploymentStatus(hRCo: number) {\r\n var url = \"/Hiring/GetEmploymentStatus?hRCo=\" + hRCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getLocalCode(pRCo: number) {\r\n var url = \"/Hiring/GetLocalCode?pRCo=\" + pRCo;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getOnboardDirectDeposits(id?: number) {\r\n var url = \"/Hiring/GetOnboardDirectDeposits?onboardID=\" + id;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getW4Info(id: number, step: number) {\r\n var url = \"/Hiring/GetW4Info?onboardID=\" + id + \"&step=\" + step;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n updateW4ByOnboardIDPart2(onboardID: any, employerNameAddress: string, officeCode: string, eIN: string, dateFirstEmploymentStr: string) {\r\n return this.http.post(\"/Hiring/UpdateW4ByOnboardIDPart2\",\r\n {\r\n onboardID: onboardID,\r\n employerNameAddress: employerNameAddress,\r\n officeCode: officeCode,\r\n eIN: eIN,\r\n dateFirstEmploymentStr: dateFirstEmploymentStr\r\n }).toPromise();\r\n }\r\n\r\n processOnboardingForms(recordID: number, onboardID: string, instanceIDs: number[], templateIDs: number[], filenames: string[], filetypes: string[], includeW4?: boolean, includeI9?: boolean, includeIden?: boolean, language?: string, applicantOnboardID?: string, includeDD?: boolean, includeEC?: boolean) {\r\n return this.http.post(\"/Hiring/ProcessOnboardingForms\", {\r\n recordID: recordID,\r\n onboardID: onboardID,\r\n instanceIDs: instanceIDs,\r\n templateIDs: templateIDs,\r\n filenames: filenames,\r\n filetypes: filetypes,\r\n includeW4: includeW4,\r\n includeI9: includeI9,\r\n includeIden: includeIden,\r\n language: language,\r\n applicantOnboardID: applicantOnboardID,\r\n includeDD: includeDD,\r\n includeEC: includeEC\r\n }).toPromise();\r\n }\r\n\r\n updateItem(requestObj: any) {\r\n return this.http.post(\"/Checklist/UpdateItem\", {\r\n checklistInstanceItemID: requestObj.checklistInstanceItemID,\r\n itemComments: requestObj.itemComments,\r\n itemResponse: requestObj.itemResponse,\r\n itemIsCorrected: requestObj.itemIsCorrected,\r\n correctedComments: requestObj.correctedComments,\r\n signatureDataStr: requestObj.signatureDataStr,\r\n typeSign: requestObj.typeSign,\r\n typeID: requestObj.typeID,\r\n time: requestObj.time,\r\n longitude: requestObj.longitude,\r\n latitude: requestObj.latitude,\r\n itemResponseDisplay: requestObj.itemResponseDisplay\r\n }).toPromise();\r\n }\r\n\r\n fileAttachmentUpdateCaption(fileAttachmentID: any, attachmentCaption: string) {\r\n return this.http.post(\"/Checklist/FileAttachmentUpdateCaption\", {\r\n fileAttachmentID: fileAttachmentID,\r\n attachmentCaption: attachmentCaption\r\n }).toPromise();\r\n }\r\n\r\n deleteTask(onboardTaskID: number) {\r\n return this.http.post(\"/Hiring/DeleteTask\", {\r\n onboardTaskID: onboardTaskID\r\n }).toPromise();\r\n }\r\n\r\n\r\n unsubmitOnboardTasks(onboardID?: any) {\r\n return this.http.post(\"/Hiring/UnsubmitOnboardTasks\", {\r\n onboardID: onboardID\r\n }).toPromise();\r\n }\r\n\r\n deleteOnboarding(onboardID: any) {\r\n return this.http.post(\"/Hiring/DeleteOnboarding\", {\r\n onboardID: onboardID\r\n }).toPromise();\r\n }\r\n\r\n sendReminder(onboardID?: any) {\r\n return this.http.post(\"/Hiring/SendReminder\", {\r\n onboardID: onboardID\r\n }).toPromise();\r\n }\r\n\r\n beginOnboardingProcess(requestObj: any) {\r\n return this.http.post(\"/Hiring/BeginOnboardingProcess\", {\r\n firstName: requestObj.firstName,\r\n lastName: requestObj.lastName,\r\n midName: requestObj.midName,\r\n suffix: requestObj.suffix,\r\n onboardingPIN: requestObj.onboardingPIN,\r\n email: requestObj.email,\r\n onboardTaskDefIDString: requestObj.onboardTaskDefIDString,\r\n hRRMKeyID: requestObj.hRRMKeyID,\r\n onboardProfileID: requestObj.onboardProfileID,\r\n reqID: requestObj.reqID,\r\n phone: requestObj.phone,\r\n address1: requestObj.address1,\r\n address2: requestObj.address2,\r\n city: requestObj.city,\r\n state: requestObj.state,\r\n zip: requestObj.zip,\r\n contact: requestObj.contact,\r\n contactSource: requestObj.contactSource,\r\n contactSourceNotes: requestObj.contactSourceNotes,\r\n cell: requestObj.cell,\r\n noHireCheck: requestObj.noHireCheck,\r\n country: requestObj.country,\r\n countryOther: requestObj.countryOther,\r\n ignoreLogout: requestObj.ignoreLogout\r\n }).toPromise();\r\n }\r\n\r\n updateExpectedHireDate(onboardID: any, hireDate?: any) {\r\n return this.http.post(\"/Applicant/UpdateApplicantExpectedHireDate\", {\r\n onboardId: onboardID,\r\n hireDate: hireDate\r\n }).toPromise();\r\n }\r\n\r\n updateExpectedHRRef(onboardID: any, hRRef: number ,hRRMKeyID?:number) {\r\n return this.http.post(\"/Applicant/updateExpectedHRRef\", {\r\n onboardId: onboardID,\r\n hRRef: hRRef,\r\n hRRMKeyID: hRRMKeyID\r\n }).toPromise();\r\n }\r\n\r\n getVistaOptions(requestParam: string) {\r\n var url = \"/Hiring/GetVistaOptions?\" + requestParam;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n clearOnboardingID() {\r\n return this.http.post(\"/Hiring/ClearOnboardingID\", {\r\n }, { responseType: 'text' }).toPromise();\r\n }\r\n\r\n locationGet() {\r\n var url = \"/Hiring/LocationGet\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n logout() {\r\n var url = \"/Hiring/Logout\";\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getInfoByOnboardID() {\r\n var url = \"/Hiring/GetInfoByOnboardID\";\r\n return this.http.get(url).toPromise();\r\n }\r\n \r\n updateSelfInfoByOnboardID(onboardID: any, raceEthnic: string, gender: string, veteran: string, disability: string, genderIdentity: string, genderIdentity_OtherDesc: string, veteran_Disabled: boolean, veteran_AFServiceMedal: boolean, veteran_ActiveDutyWartime: boolean, veteran_DischargeDate: any) {\r\n return this.http.post(\"/Hiring/UpdateSelfInfoByOnboardID\", {\r\n onboardID: onboardID,\r\n raceEthnic: raceEthnic,\r\n gender: gender,\r\n veteran: veteran,\r\n disability: disability,\r\n genderIdentity: genderIdentity,\r\n genderIdentity_OtherDesc: genderIdentity_OtherDesc,\r\n veteran_Disabled: veteran_Disabled,\r\n veteran_AFServiceMedal: veteran_AFServiceMedal,\r\n veteran_ActiveDutyWartime: veteran_ActiveDutyWartime,\r\n veteran_DischargeDate: veteran_DischargeDate\r\n }).toPromise();\r\n }\r\n\r\n saveOnboardEmergencyContact(emContactID: number, contactName: string, relationship: string, homePhone: string, workPhone: string, address: string, city: string, state: string, zip: string, cellPhone: string, note: string) {\r\n return this.http.post(\"/Hiring/SaveOnboardEmergencyContact\", {\r\n emContactID: emContactID,\r\n contactName: contactName,\r\n relationship: relationship,\r\n homePhone: homePhone,\r\n workPhone: workPhone,\r\n address: address,\r\n city: city,\r\n state: state,\r\n zip: zip,\r\n cellPhone: cellPhone,\r\n note: note\r\n }).toPromise();\r\n }\r\n\r\n saveOnboardDirectDeposit(onboardDirectDepositID: number, seq: any, routingID: string, bankAcct: string, method: string, amount: number, pct: any, acctType: string) {\r\n return this.http.post(\"/Hiring/SaveOnboardDirectDeposit\",\r\n {\r\n onboardDirectDepositID: onboardDirectDepositID,\r\n seq: seq,\r\n routingID: routingID,\r\n bankAcct: bankAcct,\r\n method: method,\r\n amount: amount,\r\n pct: pct,\r\n acctType: acctType\r\n }).toPromise();\r\n }\r\n\r\n deleteOnboardDirectDeposit(onboardDirectDepositID: number) {\r\n return this.http.post(\"/Hiring/DeleteOnboardDirectDeposit\",\r\n {\r\n onboardDirectDepositID: onboardDirectDepositID\r\n }).toPromise();\r\n }\r\n\r\n deleteOnboardEmergencyContact(emContactID: number) {\r\n return this.http.post(\"/Hiring/DeleteOnboardEmergencyContact\", {\r\n emContactID: emContactID\r\n }).toPromise();\r\n }\r\n\r\n getProfiles(pRCo?: number, onboardLocationID?: number) {\r\n var url = \"/Hiring/GetProfiles?profileType=O&company=\" + pRCo + \"&onboardLocationID=\" + onboardLocationID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n insertUpdatei9(formData: any) {\r\n return this.http.post(\"/Hiring/InsertUpdatei9\", {\r\n s1LastName: formData.S1LastName,\r\n s1FirstName: formData.S1FirstName,\r\n s1MiddleInitial: formData.S1MiddleInitial,\r\n s1OtherLastName: formData.S1OtherLastName,\r\n s1Address: formData.S1Address,\r\n s1Apt: formData.S1Apt,\r\n s1City: formData.S1City,\r\n s1State: formData.S1State,\r\n s1Zip: formData.S1Zip,\r\n s1BirthDateStr: formData.S1BirthDateStr,\r\n s1SSN: formData.S1SSN,\r\n s1EmployeeEmail: formData.S1EmployeeEmail,\r\n s1EmployeePhone: formData.S1EmployeePhone,\r\n s1CitizenStatus: formData.S1CitizenStatus,\r\n s1AlienUSCISNumberQ3: formData.S1AlienUSCISNumberQ3,\r\n s1AlienExpirationStr: formData.S1AlienExpirationStr,\r\n s1AlienUSCISNumberQ4: formData.S1AlienUSCISNumberQ4,\r\n s1FormI94Admission: formData.S1FormI94Admission,\r\n s1ForeignPassportNumber: formData.S1ForeignPassportNumber,\r\n s1IssuanceCountry: formData.S1IssuanceCountry,\r\n s1SignatureBinary: formData.S1SignatureBinary,\r\n s1SignatureDateStr: formData.S1SignatureDateStr,\r\n isPreparerUsed: formData.IsPreparerUsed,\r\n preparerSignatureBinary: formData.PreparerSignatureBinary,\r\n preparerSignatureDateStr: formData.PreparerSignatureDateStr,\r\n preparerLastName: formData.PreparerLastName,\r\n preparerFirstName: formData.PreparerFirstName,\r\n preparerAddress: formData.PreparerAddress,\r\n preparerCity: formData.PreparerCity,\r\n preparerState: formData.PreparerState,\r\n preparerZip: formData.PreparerZip,\r\n longitude: formData.longitude,\r\n latitude: formData.latitude,\r\n IsPreparerUsedYN: formData.IsPreparerUsedYN\r\n }).toPromise();\r\n }\r\n\r\n getTypeSign(type: any, name: any) {\r\n var url = \"/Hiring/GetTypeSign?type=\" + type + \"&name=\" + name;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n insertUpdatew4(formData: any) {\r\n var payload = new URLSearchParams();\r\n payload.set('lastName', formData.LastName)\r\n payload.set('firstNameMiddleInitial', formData.FirstNameMiddleInitial)\r\n payload.set('address', formData.Address)\r\n payload.set('city', formData.City)\r\n payload.set('state', formData.State)\r\n payload.set('zip', formData.Zip)\r\n payload.set('sSN', formData.SSN)\r\n payload.set('maritalStatus', formData.MaritalStatus)\r\n payload.set('isDiffLastName', formData.IsDiffLastName)\r\n payload.set('isExempt', formData.IsExempt)\r\n payload.set('signDateStr', formData.SignDateStr)\r\n payload.set('signatureBinary', formData.SignatureBinary)\r\n payload.set('latitude', formData.Latitude)\r\n payload.set('longitude', formData.Longitude)\r\n payload.set('formLanguage', formData.FormLanguage)\r\n payload.set('typeSign', formData.TypeSign)\r\n payload.set('multiJobs2020', formData.MultiJobs2020)\r\n payload.set('otherIncome2020', formData.OtherIncome2020)\r\n payload.set('dependentAmt2020', formData.DependentAmt2020)\r\n payload.set('deductions2020', formData.Deductions2020)\r\n payload.set('totalAllowance', formData.TotalAllowance)\r\n payload.set('additionalAmount', formData.AdditionalAmount)\r\n payload.set('qualChildAmount', formData.QualChildAmount)\r\n payload.set('otherDependentAmount', formData.OtherDependentAmount)\r\n var headers = new HttpHeaders({\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n });\r\n var options = { headers: headers };\r\n return this.http.post(\"/Hiring/InsertUpdatew4\",\r\n payload,\r\n options\r\n ).toPromise();\r\n }\r\n\r\n getLoginStatus() {\r\n var url = \"/Hiring/GetLoginStatus\";\r\n return this.http.get(url, { responseType: 'text' }).pipe();\r\n }\r\n\r\n getReqDetails(reqID: any) {\r\n var url = \"/Careers/GetReqDetails?reqID=\" + reqID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n reqSpecQuesAnswerGet(reqID: any, onboardID?: any) {\r\n var url = \"/Applicant/ReqSpecQuesAnswerGet?reqID=\" + reqID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n reqSpecQuesAnswerAddEdit(reqSpecAnswerID: number, reqSpecQuesID: number, questionText: string, answerText: string) {\r\n return this.http.post(\"/Applicant/ReqSpecQuesAnswerAddEdit\", {\r\n reqSpecAnswerID: reqSpecAnswerID,\r\n reqSpecQuesID: reqSpecQuesID,\r\n questionText: questionText,\r\n answerText: answerText\r\n }).toPromise();\r\n }\r\n\r\n deleteOnboardByID(onboardID?: any) {\r\n return this.http.post(\"/Hiring/DeleteOnboardByID\", {\r\n onboardID: onboardID\r\n }).toPromise();\r\n }\r\n\r\n submitOnboardTasks(onboardID?: any) {\r\n return this.http.post(\"/Hiring/SubmitOnboardTasks\", {\r\n onboardID: onboardID\r\n }).toPromise();\r\n }\r\n\r\n changeOnboardProfile(onboardID: any, newOnboardProfileID: number) {\r\n return this.http.post(\"/Hiring/ChangeOnboardProfile\", {\r\n onboardID: onboardID,\r\n newOnboardProfileID: newOnboardProfileID\r\n }).toPromise();\r\n }\r\n\r\n validateAddress(address: string, city: string, state: string, zip: string) {\r\n var url = \"/Hiring/ValidateAddress?streetAddress=\" + address + \"&city=\" + city + \"&state=\" + state + \"&postalCode=\" + zip;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n downloadTaskRDL(onboardingID: any, fullName: any, view: any, rawData: any) {\r\n var url = \"/Hiring/DownloadTaskRDL\";\r\n var temp = \"\";\r\n if (onboardingID != null) {\r\n temp += \"?onboardingID=\" + onboardingID;\r\n }\r\n if (fullName != null) {\r\n (temp.length == 0 ? temp += \"?\" : temp += \"&\");\r\n temp += \"fullName=\" + fullName;\r\n }\r\n if (view != null) {\r\n (temp.length == 0 ? temp += \"?\" : temp += \"&\");\r\n temp += \"view=\" + view;\r\n }\r\n if (rawData != null) {\r\n (temp.length == 0 ? temp += \"?\" : temp += \"&\");\r\n temp += \"rawData=\" + rawData;\r\n }\r\n url += temp;\r\n return this.http.get(url).toPromise();\r\n }\r\n \r\n onInitializeBirdDogRecord(requestObj: any) {\r\n return this.http.post(\"/Hiring/ONInitializeBirdDogRecord\", {\r\n hRCoForInitialization: requestObj.hRCoForInitialization,\r\n effectiveHireDateStr: requestObj.effectiveHireDateStr,\r\n pRCo: requestObj.pRCo,\r\n pRGroup: requestObj.pRGroup,\r\n craft: requestObj.craft,\r\n classID: requestObj.classID,\r\n pRDept: requestObj.pRDept,\r\n earnCode: requestObj.earnCode,\r\n email: requestObj.email,\r\n account1: requestObj.account1,\r\n account2: requestObj.account2,\r\n account3: requestObj.account3,\r\n accountType1: requestObj.accountType1,\r\n accountType2: requestObj.accountType2,\r\n accountType3: requestObj.accountType3,\r\n addressLine1: requestObj.addressLine1,\r\n addressLine2: requestObj.addressLine2,\r\n allowancesandDeductionConfirmation: requestObj.allowancesandDeductionConfirmation,\r\n amount1: requestObj.amount1,\r\n amount2: requestObj.amount2,\r\n amount3: requestObj.amount3,\r\n amountType1: requestObj.amountType1,\r\n amountType2: requestObj.amountType2,\r\n amountType3: requestObj.amountType3,\r\n businessUnit: requestObj.businessUnit,\r\n confirmationofStateResidency: requestObj.confirmationofStateResidency,\r\n countryofResidence: requestObj.countryofResidence,\r\n countyWithholding: requestObj.countyWithholding,\r\n dateExported: requestObj.dateExported,\r\n dateofBirth: requestObj.dateofBirth,\r\n directDeposit: requestObj.directDeposit,\r\n emergencyContact: requestObj.emergencyContact,\r\n emergencyContactHomePhoneNumber: requestObj.emergencyContactHomePhoneNumber,\r\n emergencyContactMobilePhoneNumber: requestObj.emergencyContactMobilePhoneNumber,\r\n emergencyContactRelationship: requestObj.emergencyContactRelationship,\r\n emergencyContactWorkPhoneNumber: requestObj.emergencyContactWorkPhoneNumber,\r\n employeeCity: requestObj.employeeCity,\r\n employeeEmailAddress: requestObj.employeeEmailAddress,\r\n employeeNumber: requestObj.employeeNumber,\r\n federalAddlAllowances: requestObj.federalAddlAllowances,\r\n hRRef: requestObj.hRRef,\r\n federalAllowances: requestObj.federalAllowances,\r\n federalExemption: requestObj.federalExemption,\r\n federalFilingStatus: requestObj.federalFilingStatus,\r\n federalPerjuryConfirmation: requestObj.federalPerjuryConfirmation,\r\n firstName: requestObj.firstName,\r\n gender: requestObj.gender,\r\n homePhoneNumber: requestObj.homePhoneNumber,\r\n i9Assistance: requestObj.i9Assistance,\r\n institution1: requestObj.institution1,\r\n institution2: requestObj.institution2,\r\n institution3: requestObj.institution3,\r\n lastName: requestObj.lastName,\r\n locationName: requestObj.locationName,\r\n locationNumber: requestObj.locationNumber,\r\n maidenName: requestObj.maidenName,\r\n maritalStatus: requestObj.maritalStatus,\r\n middleName: requestObj.middleName,\r\n mobilePhoneNumber: requestObj.mobilePhoneNumber,\r\n nameSuffix: requestObj.nameSuffix,\r\n preferredName: requestObj.preferredName,\r\n primaryState: requestObj.primaryState,\r\n raceEthnicity: requestObj.raceEthnicity,\r\n reasonableAccommodations: requestObj.reasonableAccommodations,\r\n route1: requestObj.route1,\r\n route2: requestObj.route2,\r\n route3: requestObj.route3,\r\n socialSecurityNumber: requestObj.socialSecurityNumber,\r\n state: requestObj.state,\r\n stateExemptionTotal: requestObj.stateExemptionTotal,\r\n stateWithholding: requestObj.stateWithholding,\r\n stateWithholdingPercentage: requestObj.stateWithholdingPercentage,\r\n veteran: requestObj.veteran,\r\n zipCode: requestObj.zipCode,\r\n wage: requestObj.wage,\r\n insuranceCode: requestObj.insuranceCode,\r\n timesheetRevGroup: requestObj.timesheetRevGroup,\r\n systemID: requestObj.systemID,\r\n TasksCompleted: requestObj.TasksCompleted\r\n }).toPromise();\r\n }\r\n\r\n onboardI9GetSupA(onboardID: any) {\r\n var url = \"/Hiring/OnboardI9GetSupA?onboardID=\" + onboardID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n onboardI9SupAInsertUpdate(objData: any) {\r\n return this.http.post(\"/Hiring/OnboardI9SupAInsertUpdate\", {\r\n objData: objData\r\n }).toPromise();\r\n }\r\n\r\n onboardI9SupADelete(onboardID: any, seq: any) {\r\n return this.http.post(\"/Hiring/OnboardI9SupADelete\", {\r\n onboardID: onboardID, seq: seq\r\n }).toPromise();\r\n }\r\n\r\n\r\n getTagsByOnboard(onboardID: any){\r\n var url = \"/Hiring/GetTagsByOnboard?onboardID=\" + onboardID\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n tagsManage(isManage: boolean, reqID?: any){\r\n var url = \"/Hiring/TagsManage?isManage=\" + isManage + \"&reqID=\" + reqID\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n addTagsByOnboard(onboardID: any, tagID: number) {\r\n return this.http.post(\"/Hiring/AddTagsByOnboard\", {\r\n onboardID: onboardID,\r\n tagID: tagID\r\n }).toPromise();\r\n }\r\n\r\n deleteTagsByOnboard(onboardID: any, tagID: number) {\r\n return this.http.post(\"/Hiring/DeleteTagsByOnboard\", {\r\n onboardID: onboardID,\r\n tagID: tagID\r\n }).toPromise();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HomeService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getBulletins(sectionToLoad :string) {\r\n return this.http.get(\"/Employee/GetBulletinsGetIndex?sectionToLoad=\"+ sectionToLoad).toPromise();\r\n }\r\n\r\n getLastLogonDate() {\r\n return this.http.get(\"/Home/GetLastLogonDate\", { responseType: 'text' }).toPromise();\r\n }\r\n\r\n getModules() {\r\n return this.http.get(\"/Home/GetModules\").toPromise();\r\n }\r\n\r\n getClockInStatus(fromFieldKiosk:boolean, currentTimeString: any) {\r\n return this.http.get(\"/Employee/GetClockInStatus?fromFieldKiosk=\" + fromFieldKiosk +\"¤tTimeString=\" + currentTimeString + \"&where=1\").toPromise();\r\n }\r\n\r\n postClockAction(requestObj: any) {\r\n return this.http.post(\"/Employee/PostClockAction\", { gPSLat: requestObj.gPSLat, gPSLong: requestObj.gPSLong, jCJMKeyID: requestObj.jCJMKeyID, jCJPKeyID: requestObj.jCJPKeyID, signatureData: requestObj.signatureData, clockTimeString: requestObj.clockTimeString }).toPromise();\r\n }\r\n\r\n changeLanguage(type: any) {\r\n return this.http.post(\"/Account/SetLanguage\", { language: type }).toPromise();\r\n }\r\n\r\n getCurrentStatus() {\r\n return this.http.get(\"/Performance/GetCurrentStatus\").toPromise();\r\n }\r\n\r\n getJobs(form:string) {\r\n return this.http.get(\"/Employee/GetJobs?form=\" + form).toPromise();\r\n }\r\n\r\n setJob(jCJMKeyID: any, userKeyID: any) {\r\n return this.http.post(\"/DailyReports/SetJob\", { lastUsedJCJMKeyID: jCJMKeyID, userKeyID: userKeyID }).toPromise();\r\n }\r\n\r\n getPhasesByJCJMKeyID(jCJMKeyID: any) {\r\n return this.http.get(\"/Employee/GetPhasesByJCJMKeyID?jCJMKeyID=\" + jCJMKeyID + \"&laborOnly=true\").toPromise();\r\n }\r\n\r\n getTypeSign(type: string) {\r\n return this.http.get(\"/Checklist/GetTypeSign?type=\" + type).toPromise();\r\n }\r\n\r\n setHotlistItem(module) {\r\n return this.http.post(\"/Home/SetHotlistItem\", { moduleID: module.ModuleID, isItemAdded: module.IsHotlistItem }).toPromise();\r\n }\r\n\r\n sendAcknowledge(bulletinID: any, bulletinAttachDocumentFlagValue: any, filename: any, bulletinSignatureText: any, bulletinFileData: any, bulletinFileName: any, isFillablePDF: any) {\r\n return this.http.post(\"/Employee/sendAcknowledge\", {\r\n bulletinID: bulletinID, bulletinAttachDocumentFlagValue: bulletinAttachDocumentFlagValue,\r\n filename: filename, bulletinSignatureText: bulletinSignatureText,\r\n bulletinFileData: bulletinFileData, bulletinFileName: bulletinFileName, isFillablePDF: isFillablePDF\r\n }).toPromise();\r\n }\r\n\r\n getBulletinsGetIndex(bulletinID: any, onboardID?: any) {\r\n var url = \"/Employee/GetBulletinsGetIndex?bulletinID=\" + bulletinID + \"&onboardID=\" + onboardID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getDBAttachmentList(moduleID: number, bulletinID?: any, recordGuid?: any, onboardingUser?: boolean) {\r\n var url = \"/Document/GetDBAttachmentList?moduleID=\" + moduleID + \"&recordID=\" + bulletinID + \"&recordGuid=\" + recordGuid + \"&onboardingUser=\" + onboardingUser;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n sentBulletinSign(bulletinID: any, bulletinAttachDocumentFlagValue: any, signatureStr: any, bulletinSignatureText: any, latitude: any, longitude: any, filename: any, bulletinFileData: any,\r\n bulletinFileName: any, isFillablePDF: any) {\r\n return this.http.post(\"/Employee/SentBulletinSign\", {\r\n bulletinID: bulletinID, bulletinAttachDocumentFlagValue: bulletinAttachDocumentFlagValue, signatureStr: signatureStr, bulletinSignatureText: bulletinSignatureText\r\n , latitude: latitude, longitude: longitude, filename: filename, bulletinFileData: bulletinFileData, bulletinFileName: bulletinFileName, isFillablePDF: isFillablePDF\r\n }).toPromise();\r\n }\r\n\r\n getCompanyLogo(co: number, size: string) {\r\n return this.http.get(\"/Company/GetLogo?co=\" + co + \"&size=\" + size.toUpperCase(), { responseType: 'text' }).toPromise();\r\n }\r\n\r\n getPortalName(co: number) {\r\n return this.http.get(\"/Company/GetPortalName?co=\" + co, { responseType: 'text' }).toPromise();\r\n }\r\n\r\n getAPCount() {\r\n return this.http.get(\"/Employee/GetAPCount\").toPromise();\r\n }\r\n\r\n getPOReviewCount() {\r\n return this.http.get(\"/Employee/GetPOReviewCount\").toPromise();\r\n }\r\n\r\n getExpenseApprovalCount() {\r\n return this.http.get(\"/Employee/GetExpenseApprovalCount\").toPromise();\r\n }\r\n\r\n getEmployeeInfo() {\r\n return this.http.get(\"/Employee/GetInfo\").toPromise();\r\n }\r\n\r\n updateAPCount(currentCount: number) {\r\n return this.http.post(\"/APRouter/UpdateAPCount\", { currentCount: currentCount }).toPromise();\r\n }\r\n\r\n updateEXCount(currentCount: number) {\r\n return this.http.post(\"/Employee/UpdateEXCount\", { currentCount: currentCount }).toPromise();\r\n }\r\n\r\n getCount() {\r\n return this.http.get(\"/Employee/GetCount\").toPromise();\r\n }\r\n\r\n getUserFields() {\r\n return this.http.get(\"/Employee/GetUserFields\").toPromise();\r\n }\r\n\r\n getComboItemsByFieldID(fieldID: any) {\r\n return this.http.get(\"/Employee/GetComboItemsByFieldID?fieldID=\" + fieldID).toPromise();\r\n }\r\n\r\n personalInfoUpdate(postData :any) {\r\n return this.http.post(\"/Employee/PersonalInfoUpdate\",\r\n {\r\n formData: postData,\r\n attachmentsJson: \"\",\r\n fileNamesJson: \"\",\r\n recordKeyID: null\r\n }).toPromise();\r\n }\r\n\r\n setDocConsent(cellPhone: any, email: string, consentPaystubs: boolean, consentW2T4: boolean, consentACA1095: boolean, optOutSMS: any) {\r\n return this.http.post(\"/Employee/SetDocConsent\",\r\n {\r\n cellPhone: cellPhone,\r\n email: email,\r\n consentPaystubs: consentPaystubs,\r\n consentW2T4: consentW2T4,\r\n consentACA1095: consentACA1095,\r\n optOutSMS: optOutSMS\r\n }).toPromise();\r\n }\r\n\r\n unbindViewpointID() {\r\n return this.http.post(\"/Account/UnbindViewpointID\", {}).toPromise();\r\n }\r\n\r\n getUserContext() {\r\n return this.http.get(\"/Account/GetUserContext\").toPromise();\r\n }\r\n\r\n getManagerGrid() {\r\n return this.http.get(\"/Performance/GetManagerGrid\").toPromise();\r\n }\r\n\r\n getPdfData(ID: string) {\r\n return this.http.get(\"/Document/GetRawAttachmentData?attachmentID=\" + ID + \"&keepOriginal=false\").toPromise();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subscription, Subject, from } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OfficeDataService {\r\n private _handler: Subject = new Subject();\r\n\r\n boradcast(text: string) {\r\n this._handler.next(text);\r\n }\r\n\r\n subscribe(callback: (text: any) => void): Subscription {\r\n return this._handler.subscribe(callback);\r\n }\r\n /* SGF - SingleGridForm\r\n * RGW - ReportGateway*/\r\n public OfficeNavBarOn = false;\r\n public ModalMsg = \"Please Wait ...\"\r\n public SGFSubOn = false;\r\n public SGFIsNewRow = null;\r\n public SGFRowDataEdit = {};\r\n public SGFCombobox = {};\r\n public SGFCompany = null;\r\n public SGFForm = null;\r\n public SGFCompanyList = [];\r\n public SGFFormList = [];\r\n public SGFFormMetadata: [{ [key: string]: any}];\r\n public SGFFormData = [];\r\n public SGFMode = null;\r\n public SGFTitle = null;\r\n public SGFStaticLookupsResponse: [{ [key: string]: any }];\r\n public SGFRoute = null;\r\n public SGFSortList = [];\r\n public SGFFilteringList = {};\r\n public SGFCurrentFormReadOnly = false;\r\n\r\n public RGWSubOn = false;\r\n public RGWCat = \"All\";\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OfficeService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getCompanies() {\r\n return this.http.get(\"/Office/GetCompanies\").toPromise();\r\n }\r\n\r\n getForms(company: any, module: any) {\r\n return this.http.get(\"/Office/GetForms?co=\" + company + \"&module=\" + module).toPromise();\r\n }\r\n\r\n getFormMetadata(tableName: any, company: any) {\r\n return this.http.get(\"/Office/GetFormMetadata?form=\" + tableName + \"&co=\" + company).toPromise();\r\n }\r\n\r\n getFormData(tableName: any, company: any, orderby: any, keyid: any, rowsPerPage: any, pageNumber: any, where: any) {\r\n return this.http.get(\"/Office/GetData?form=\" + tableName + \"&co=\" + company + \"&rowsPerPage=\" + rowsPerPage + \"&pageNumber=\" + pageNumber + orderby + \"&keyid=\" + keyid + where).toPromise();\r\n }\r\n\r\n insertUpdateData(co: any, form: any, formData: any, keyID: any) {\r\n return this.http.post(\"/Office/InsertUpdateData\",\r\n {\r\n co: co,\r\n form: form,\r\n formData: formData,\r\n keyID: keyID,\r\n }).toPromise();\r\n }\r\n\r\n deleteRow(co: any, form: any, keyID: any) {\r\n return this.http.post(\"/Office/DeleteData\",\r\n {\r\n co: co,\r\n form: form,\r\n keyID: keyID,\r\n }).toPromise();\r\n }\r\n\r\n getAttachmentList(co: any, form: any, keyID: any, UniqueAttchID: any) {\r\n return this.http.get(\"/Office/GetAttachmentList?co=\" + co + \"&form=\" + form + \"&keyID=\" + keyID + \"&UniqueAttchID=\" + UniqueAttchID).toPromise();\r\n }\r\n\r\n insertAttachment(co: any, form: any, keyID: any, description: any, origFileName: any, attachmentTypeID: any, attachData: any) {\r\n return this.http.post(\"/Office/InsertAttachment\",\r\n {\r\n co: co,\r\n form: form,\r\n keyID: keyID,\r\n description: description,\r\n origFileName: origFileName,\r\n attachmentTypeID: attachmentTypeID,\r\n attachData: attachData\r\n }).toPromise();\r\n }\r\n\r\n updateAttachmentMetadata(co: any, form: any, keyID: any, description: any, attachmentID: any, attachmentTypeID: any) {\r\n return this.http.post(\"/Office/UpdateAttachmentMetadata\",\r\n {\r\n co: co,\r\n form: form,\r\n keyID: keyID,\r\n attachmentID: attachmentID,\r\n description: description,\r\n attachmentTypeID: attachmentTypeID,\r\n }).toPromise();\r\n }\r\n\r\n getAttachmentData(co: any, form: any, keyID: any, attachmentID: any) {\r\n return this.http.get(\"/Office/GetAttachmentData?co=\" + co + \"&form=\" + form + \"&keyID=\" + keyID + \"&attachmentID=\" + attachmentID).toPromise();\r\n }\r\n\r\n deleteAttachment(co: any, form: any, keyID: any, attachmentID: any) {\r\n return this.http.post(\"/Office/DeleteAttachment\",\r\n {\r\n co: co,\r\n form: form,\r\n keyID: keyID,\r\n attachmentID: attachmentID,\r\n }).toPromise();\r\n }\r\n\r\n getAttachmentTypes(co: any) {\r\n return this.http.get(\"/Office/AttachmentTypes?co=\" + co).toPromise();\r\n }\r\n\r\n getFormItemGroups(form: any) {\r\n return this.http.get(\"/Office/GetFormItemGroups?form=\" + form).toPromise();\r\n }\r\n\r\n getFormItemFields(form: any) {\r\n return this.http.get(\"/Office/GetFormItemFields?form=\" + form).toPromise();\r\n }\r\n\r\n getFormReports(co: any, form: any) {\r\n return this.http.get(\"/Office/getFormReports?co=\" + co + \"&form=\" + form).toPromise();\r\n }\r\n\r\n getLookup(co: any, form: any, seq: any, lookup: any, formData: any, searchString: any) {\r\n return this.http.post(\"/Office/getLookup\", {\r\n co: co,\r\n form: form,\r\n seq: seq,\r\n lookup: lookup,\r\n formData: formData,\r\n searchString: searchString\r\n }).toPromise();\r\n }\r\n\r\n getStaticLookups(co: any, form: any) {\r\n return this.http.get(\"/Office/getStaticLookups?co=\" + co + \"&form=\" + form).toPromise();\r\n }\r\n\r\n getVaInquiries(co) {\r\n return this.http.get(\"/Office/GetVaInquiries?co=\" + co).toPromise();\r\n }\r\n\r\n getVaInquiryData(co, queryName, paramValues) {\r\n let url = \"/Office/GetVaInquiryData?co=\" + co + \"&queryName=\" + queryName;\r\n let params = \"\";\r\n for (let i = 0; i < paramValues.length; i++) {\r\n params += \"¶mValues[\" + i + \"]=\" + encodeURIComponent(paramValues[i]);\r\n }\r\n return this.http.get(url + params).toPromise();\r\n }\r\n\r\n getVaInquiryLookup(co, lookup) {\r\n return this.http.get(\"/Office/GetVaInquiryLookup?co=\" + co + \"&lookup=\" + lookup).toPromise();\r\n }\r\n\r\n getVaInquiryParameters(co, queryName) {\r\n return this.http.get(\"/Office/GetVaInquiryParameters?co=\" + co + \"&queryName=\" + queryName).toPromise();\r\n }\r\n\r\n updateFormState(form, groups, fields) {\r\n let url = \"/Office/UpdateFormState\";\r\n let postData = {\r\n form: form,\r\n groups: groups,\r\n fields: fields\r\n }\r\n return this.http.post(url, postData).toPromise();\r\n }\r\n\r\n getExcelFile(tableName: any, company: any, orderby: any, keyid: any, where: any, columnInfo: any, fileName: any) {\r\n return this.http.post(\"/office/SaveExcelFile\", {\r\n form: tableName,\r\n co: company,\r\n orderby: orderby,\r\n keyid: keyid,\r\n where: where,\r\n columns: columnInfo\r\n }).toPromise().then((response) => {\r\n if (response[\"success\"] == false) {\r\n return false;\r\n }\r\n else {\r\n let url = \"/Office/GetExcelFile?formName=\" + tableName + \"&fileName=\" + fileName ?? tableName;\r\n window.location.href = url;\r\n return true;\r\n }\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PerformanceService {\n http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n getMyHistory() {\n return this.http.get(\"/Performance/GetMyHistory\").toPromise();\n }\n\n getCurrentStatus() {\n return this.http.get(\"/Performance/GetCurrentStatus\").toPromise();\n }\n\n getPRCo() {\n return this.http.get(\"/Performance/GetPRCo\").toPromise();\n }\n\n getManagerGrid(pRCoForFilter?: number, hidePreviousReview?: boolean) {\n return this.http.get(\"/Performance/GetManagerGrid?pRCoForFilter=\" + pRCoForFilter + \"&hidePreviousReview=\" + hidePreviousReview).toPromise();\n }\n\n createPerformanceReview(performanceInstanceID: string) {\n return this.http.post(\"/Performance/CreatePerformanceReview\",\n {\n performanceInstanceID: performanceInstanceID\n }).toPromise();\n }\n\n confirmInstance(performanceInstanceID?: number) {\n return this.http.post(\"/Performance/ConfirmInstance\",\n {\n performanceInstanceID: performanceInstanceID\n }).toPromise();\n }\n\n getChecklistReviewers(checklistInstanceID: number) {\n return this.http.get(\"/Checklist/GetChecklistReviewers?checklistInstanceID=\" + checklistInstanceID).toPromise();\n }\n\n initializeChecklistReviewers(checklistInstanceID: number) {\n return this.http.post(\"/Checklist/InitializeChecklistReviewers\",\n {\n checklistInstanceID: checklistInstanceID\n }).toPromise();\n }\n\n deleteChecklistReviewers(checklistRevID: number) {\n return this.http.post(\"/Checklist/DeleteChecklistReviewers\",\n {\n checklistRevID: checklistRevID\n }).toPromise();\n }\n\n sendChecklists(checklistInstanceIDs: number, filenames: string[], fromEmail: string, toEmail: string[], subject: string, message: string, newFilenames: string[], newFiles: any[], templateID: any[], mailFrom: string, queueType: string, notificationMode: string, sMSTo: string) {\n return this.http.post(\"/Checklist/SendChecklists\",\n {\n checklistInstanceIDs: checklistInstanceIDs,\n filenames: filenames,\n fromEmail: fromEmail,\n toEmail: toEmail,\n subject: subject,\n message: message,\n newFilenames: newFilenames,\n newFiles: newFiles,\n templateID: templateID,\n mailFrom: mailFrom,\n queueType: queueType,\n notificationMode: notificationMode,\n sMSTo: sMSTo\n }).toPromise();\n }\n\n sendChecklistSign(signatureDataStr: string, checklistInstanceID: number, typeSign: boolean, latitude: number, longitude: number) {\n return this.http.post(\"/Checklist/SendChecklistSign\",\n {\n signatureDataStr: signatureDataStr,\n checklistInstanceID: checklistInstanceID,\n typeSign: typeSign,\n latitude: latitude,\n longitude: longitude\n }).toPromise();\n }\n\n getPerformanceInfo(checklistInstanceID: number) {\n var url = \"/Performance/GetPerformanceInfo?checklistInstanceID=\" + checklistInstanceID;\n return this.http.get(url).toPromise();\n }\n\n getTemplateInfo(checklistTemplateID: number) {\n var url = \"/Checklist/GetTemplateInfo?checklistTemplateID=\" + checklistTemplateID;\n return this.http.get(url).toPromise();\n }\n\n getChecklistInstanceDetails(checklistInstanceID: number) {\n var url = \"/Checklist/GetChecklistInstanceDetails?checklistInstanceID=\" + checklistInstanceID;\n return this.http.get(url).toPromise();\n }\n\n getLookupMaxChoice() {\n var url = \"/Checklist/GetLookupMaxChoice\";\n return this.http.get(url).toPromise();\n }\n\n completeReview(checklistInstanceID: number, templateID: number, fileName: string) {\n return this.http.post(\"/Performance/CompleteReview\",\n {\n checklistInstanceID: checklistInstanceID,\n templateID: templateID,\n fileName: fileName\n }).toPromise();\n }\n\n getAnalytics(pRCoForFilter?: number, templateFilter?: string, fromDateStr?: string, toDateStr?: string) {\n var url = \"/Performance/GetAnalytics?pRCoForFilter=\" + pRCoForFilter + \"&templateFilter=\" + templateFilter + \"&fromDateStr=\" + fromDateStr + \"&toDateStr=\" + toDateStr;\n return this.http.get(url).toPromise();\n }\n\n getAdminGrid(pRCoForFilter?: number, createdDateStartStr?: string, createdDateEndStr?: string, statusFilter?: string, templateFilter?: string) {\n var url = \"/Performance/GetAdminGrid?pRCoForFilter=\" + pRCoForFilter + \"&createdDateStartStr=\" + createdDateStartStr + \"&createdDateEndStr=\" + createdDateEndStr + \"&statusFilter=\" + statusFilter + \"&templateFilter=\" + templateFilter;\n return this.http.get(url).toPromise();\n }\n\n editPerformanceInstance(performanceInstanceID: string, dateDueStr: string) {\n return this.http.post(\"/Performance/EditPerformanceInstance\",\n {\n performanceInstanceID: performanceInstanceID,\n dateDueStr: dateDueStr\n }).toPromise();\n }\n\n purgePerformanceInstance(performanceInstanceID?: number) {\n return this.http.post(\"/Performance/PurgePerformanceInstance\", {\n performanceInstanceID: performanceInstanceID\n }).toPromise();\n }\n\n unsubmitReview(performanceInstanceID?: number, performanceReviewerID?: number) {\n return this.http.post(\"/Performance/UnsubmitReview\",\n {\n performanceInstanceID: performanceInstanceID,\n performanceReviewerID: performanceReviewerID\n }).toPromise();\n }\n\n getChecklistTemplates(checklistTemplateCatgID?: number) {//move to checkListService\n var url = \"/Checklist/GetChecklistTemplates?checklistTemplateCatgID=\" + checklistTemplateCatgID\n return this.http.get(url).toPromise();\n }\n\n getAttendees() {\n return this.http.get(\"/Admin/GetAttendees\").toPromise();\n }\n\n getReviewersByInstance(performanceInstanceID: any) {\n var url = \"/Performance/GetReviewersByInstance?performanceInstanceID=\" + performanceInstanceID;\n return this.http.get(url).toPromise();\n }\n\n reviewerAdd(performanceInstanceID: any, reviewerUserKeyID: number) {\n return this.http.post(\"/Performance/ReviewerAdd\",\n {\n performanceInstanceID: performanceInstanceID,\n reviewerUserKeyID: reviewerUserKeyID\n }).toPromise();\n }\n\n reviewerDelete(performanceInstanceID: any, performanceReviewerID: number) {\n return this.http.post(\"/Performance/ReviewerDelete\",\n {\n performanceInstanceID: performanceInstanceID,\n performanceReviewerID: performanceReviewerID\n }).toPromise();\n }\n\n sendReminderEmail(performanceInstanceIDString: string, isScheduled: boolean, sendEmail: boolean){\n return this.http.post(\"/Performance/SendReminderEmail\",\n {\n performanceInstanceIDString: performanceInstanceIDString,\n isScheduled: isScheduled,\n sendEmail: sendEmail\n }).toPromise();\n }\n\n getTemplateCategories(checklistTemplateCatgID: number) {\n var url = \"/Checklist/GetTemplateCategories?checklistTemplateCatgID=\" + checklistTemplateCatgID;\n return this.http.get(url).toPromise();\n }\n\n getEmplByChecklistTemplateID(checklistTemplateID:number) {\n var url = \"/Performance/GetEmplByChecklistTemplateID?checklistTemplateID=\" + checklistTemplateID;\n return this.http.get(url).toPromise();\r\n }\n\n initializePerformanceInstance(requestObj:any) {\n return this.http.post(\"/Performance/InitializePerformanceInstance\",\n {\n userKeyIDString: requestObj.userKeyIDString,\n dateDueStr: requestObj.dateDueStr,\n employeeChecklistTemplateID: requestObj.employeeChecklistTemplateID,\n managerChecklistTemplateID: requestObj.managerChecklistTemplateID,\n disableSelfReview: requestObj.disableSelfReview\n }).toPromise();\r\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TimeOffService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getExistingDates(userKeyID:number, showApprovedOnly:boolean, startDateString: string, endDateString: string ){\r\n return this.http.get(\"/Time-Off/GetExistingDates?userKeyId=\" + userKeyID + \"&showApprovedOnly=\" + showApprovedOnly).toPromise();\r\n }\r\n\r\n getDefaultWorkHours(id: number){\r\n return this.http.get(\"/Time-Off/GetDefaultWorkHours?id=\" + id).toPromise();\r\n }\r\n\r\n getEmployees(){\r\n return this.http.get(\"/TimeOff/GetEmployees\").toPromise();\r\n }\r\n\r\n getRequestHistory(userKeyID: number) {\r\n return this.http.get(\"/Time-Off/GetRequestHistory?id=\" + userKeyID).toPromise();\r\n }\r\n\r\n getPayPeriods(pREHKeyID: number) {\r\n return this.http.get(\"/Time-Off/GetPayPeriods?id=\" + pREHKeyID).toPromise();\r\n }\r\n\r\n cancelLeaveRequest(leaveRequestID: number, keyID: number) {\r\n return this.http.post(\"/Time-Off/CancelLeaveRequest\",\r\n {\r\n leaveRequestID: leaveRequestID,\r\n KeyID: keyID\r\n }).toPromise();\r\n }\r\n\r\n getLeaveCodes(id:number){\r\n return this.http.get(\"/Time-Off/GetLeaveCodes?id=\"+ id).toPromise();\r\n }\r\n\r\n insertCashOutRequest(pREHKeyID: number, pREndDate: string, cashHours: number) {\r\n return this.http.post(\"/Time-Off/InsertCashOutRequest\",\r\n {\r\n id: pREHKeyID,\r\n date: pREndDate,\r\n hours: cashHours\r\n }).toPromise();\r\n }\r\n\r\n getLeaveReason() {\r\n return this.http.get(\"/Time-Off/GetLeaveReason\").toPromise();\r\n }\r\n\r\n getApproverByPREHKeyID(pREHKeyID: number) {\r\n return this.http.get(\"/Time-Off/GetApproverByPREHKeyID?id=\" + pREHKeyID).toPromise();\r\n }\r\n\r\n timeoffAutoVP(fileName: string, fileData: any, moduleID: number, recordKeyIDList: any[], fileAttachmentID: any, fileAttachmentType: string) {\r\n return this.http.post(\"/Document/timeoffAutoVP\",\r\n {\r\n fileName: fileName,\r\n fileData: fileData,\r\n moduleID: moduleID,\r\n recordKeyIDList: recordKeyIDList,\r\n fileAttachmentID: fileAttachmentID,\r\n fileAttachmentType: fileAttachmentType\r\n }).toPromise();\r\n }\r\n\r\n insertLeaveRequest(id : number, dateStrings: any[], submittedNotes: string, leaveCodeId: string, hours: any, totalHours: number, reqType: string, format: string, reasonCode: string) {\r\n return this.http.post(\"/Time-Off/InsertLeaveRequest\",\r\n {\r\n id: id,\r\n dateStrings: dateStrings,\r\n submittedNotes: submittedNotes,\r\n leaveCodeId: leaveCodeId,\r\n hours: hours,\r\n totalHours: totalHours,\r\n reqType: reqType,\r\n format: format,\r\n reasonCode: reasonCode\r\n }).toPromise();\r\n }\r\n\r\n getRequestsByMonth(pRCo:number, monthStr:string, employee:number){\r\n return this.http.get(\"/Admin/GetRequestsByMonth?pRCo=\" + pRCo + \"&monthStr=\" + monthStr + \"&employee=\" + employee).toPromise();\r\n }\r\n\r\n getHolidaysByUserKeyID(id: number, year: any){\r\n return this.http.get(\"/Time-Off/GetHolidaysByUserKeyID?id=\" + id + \"&year=\" + year).toPromise();\r\n }\r\n\r\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-auto-complete-email-t-c-b',\r\n templateUrl: './auto-complete-email-t-c-b.component.html',\r\n styleUrls: ['./auto-complete-email-t-c-b.component.css']\r\n})\r\nexport class AutoCompleteEmailTCBComponent {\r\n\r\n suggestions: any[] = [];\r\n selectedIndex: number = -1;\r\n @Input(\"model\") selectedTags: any[];\r\n @Input() dropDownList: any[];\r\n @Input(\"disable\") disabled: any;\r\n @Input() searchText: any;\r\n @Input() displayName: any;\r\n @Input() emailName: any;\r\n @Input() selectedEmail: any;\r\n @Output() modelChange = new EventEmitter();\r\n @Output() selectedEmailChange = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n search() {\r\n //Put search logic here\r\n if (this.searchText.length > 0) {\r\n var suggestions = [];\r\n this.dropDownList.forEach((email: any) => {\r\n if (email[this.emailName].toLowerCase().indexOf(this.searchText.toLowerCase()) > -1 || email[this.displayName].toLowerCase().indexOf(this.searchText.toLowerCase()) > -1)\r\n suggestions.push({ DisplayName: email[this.displayName], EmailAddress: email[this.emailName] });\r\n });\r\n this.suggestions = suggestions;\r\n if (this.suggestions.length == 0)\r\n this.selectedIndex = -1;\r\n else {\r\n if (this.selectedIndex == -1 || this.selectedIndex > this.suggestions.length) {\r\n this.selectedIndex = 0;\r\n }\r\n }\r\n } else\r\n this.suggestions = [];\r\n }\r\n\r\n checkKeyDown(event: any) {\r\n if (event.keyCode === 40) {//down key, increment selectedIndex\r\n event.preventDefault();\r\n if (this.selectedIndex + 1 !== this.suggestions.length) {\r\n this.selectedIndex++;\r\n }\r\n }\r\n else if (event.keyCode === 38) { //up key, decrement selectedIndex\r\n event.preventDefault();\r\n if (this.selectedIndex - 1 !== -1) {\r\n this.selectedIndex--;\r\n }\r\n }\r\n else if (event.keyCode === 13) { //enter pressed\r\n this.addToInput(this.selectedIndex);\r\n }\r\n else if (event.keyCode === 9) { //tab pressed\r\n this.addToInput(this.selectedIndex);\r\n }\r\n }\r\n\r\n addToInput(index: number) {\r\n if (this.suggestions.length > 0) {\r\n this.searchText = this.suggestions[index].EmailAddress;\r\n this.selectedTags.push(this.suggestions[index])\r\n this.suggestions = [];\r\n }\r\n }\r\n\r\n addToSelectedTags(index: number, where: string) {\r\n if (this.selectedTags.indexOf(this.suggestions[index]) === -1) {\r\n if (index != -1) {\r\n this.selectedTags.push(this.suggestions[index]);\r\n this.searchText = '';\r\n this.suggestions = [];\r\n this.selectedEmail = where;\r\n this.selectedEmailChange.emit(this.selectedEmail);\r\n this.modelChange.emit(this.selectedTags);\r\n }\r\n else {\r\n if (this.validateEmail(this.searchText)) {\r\n var newItem = { EmailAddress: this.searchText, DisplayName: this.searchText }\r\n this.selectedTags.push(newItem);\r\n this.searchText = '';\r\n this.suggestions = [];\r\n this.selectedEmail = where;\r\n this.selectedEmailChange.emit(this.selectedEmail);\r\n this.modelChange.emit(this.selectedTags);\r\n }\r\n }\r\n }\r\n }\r\n\r\n validateEmail(email: any) {\r\n var re = /^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$/i;\r\n return re.test(email);\r\n }\r\n\r\n removeTag(index: number) {\r\n this.selectedTags.splice(index, 1);\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
  • {{suggestion.DisplayName}} ({{suggestion.EmailAddress}})
  • \r\n
\r\n
","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-auto-complete-email',\r\n templateUrl: './auto-complete-email.component.html',\r\n styleUrls: ['./auto-complete-email.component.css']\r\n})\r\nexport class AutoCompleteEmailComponent {\r\n suggestions: any[] = [];\r\n selectedIndex: number = -1;\r\n emailList: any[] = [];\r\n @Input(\"model\") selectedTags: any[];\r\n @Input() dropDownList: any[];\r\n @Input(\"disable\") disabled: any;\r\n @Input() searchText: any;\r\n @Output() modelChange = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n search() {\r\n //Put search logic here\r\n if (this.searchText.length > 0) {\r\n var suggestions = [];\r\n this.emailList.forEach((email: any) => {\r\n if (email.EmailAddress.toLowerCase().indexOf(this.searchText.toLowerCase()) > -1 || email.DisplayName.toLowerCase().indexOf(this.searchText.toLowerCase()) > -1)\r\n suggestions.push(email);\r\n });\r\n this.suggestions = suggestions;\r\n if (this.suggestions.length == 0)\r\n this.selectedIndex = -1;\r\n else {\r\n if (this.selectedIndex == -1 || this.selectedIndex > this.suggestions.length) {\r\n this.selectedIndex = 0;\r\n }\r\n }\r\n } else\r\n this.suggestions = [];\r\n }\r\n\r\n checkKeyDown(event) {\r\n if (event.keyCode === 40) {//down key, increment selectedIndex\r\n event.preventDefault();\r\n if (this.selectedIndex + 1 !== this.suggestions.length) {\r\n this.selectedIndex++;\r\n }\r\n }\r\n else if (event.keyCode === 38) { //up key, decrement selectedIndex\r\n event.preventDefault();\r\n if (this.selectedIndex - 1 !== -1) {\r\n this.selectedIndex--;\r\n }\r\n }\r\n else if (event.keyCode === 13) { //enter pressed\r\n this.addToSelectedTags(this.selectedIndex);\r\n }\r\n else if (event.keyCode === 9) { //tab pressed\r\n this.addToSelectedTags(this.selectedIndex);\r\n }\r\n }\r\n\r\n addToSelectedTags(index) {\r\n if (this.selectedTags.indexOf(this.suggestions[index]) === -1) {\r\n if (index != -1) {\r\n this.selectedTags.push(this.suggestions[index]);\r\n this.searchText = '';\r\n this.suggestions = [];\r\n }\r\n else {\r\n if (this.validateEmail(this.searchText)) {\r\n var newItem = { EmailAddress: this.searchText, DisplayName: this.searchText }\r\n this.selectedTags.push(newItem);\r\n this.modelChange.emit(this.selectedTags);\r\n this.searchText = '';\r\n this.suggestions = [];\r\n }\r\n }\r\n }\r\n }\r\n\r\n validateEmail(email) {\r\n var re = /^([\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$/i;\r\n return re.test(email);\r\n }\r\n\r\n removeTag(index) {\r\n this.selectedTags.splice(index, 1);\r\n }\r\n\r\n}","
\r\n
\r\n
No Emails Selected
\r\n
\r\n {{selectedTag.DisplayName}}\r\n  close\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
    \r\n
  • {{suggestion.DisplayName}} ({{suggestion.EmailAddress}})
  • \r\n
\r\n
","import { Component, ElementRef, OnInit } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport _ from 'lodash';\r\nimport moment from 'moment';\r\nimport { forkJoin } from 'rxjs';\r\nimport { EmployeeInfoService } from '../../../core/services/employee-info.service';\r\nimport { EventService } from '../../../core/services/event.service';\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { TimeParserService } from '../../../core/services/time-parser.service';\r\nimport { UtilityService } from '../../../core/services/utility.service';\r\n\r\nimport { CrewTimecardGridService } from '../crew-timecard-grid/services/crew-timecard-grid.service';\r\nimport { CrewTimecardDataService } from '../crew-timecard-grid/services/crew-timecard-data.service'\r\nimport { CrewTimecardManagerService } from '../crew-timecard-grid/services/crew-timecard-manager.service'\r\nimport { EditCellValueModalComponent } from 'src/app/modals/crew-timecard/edit-cell-value-modal/edit-cell-value-modal.component';\r\nimport { CopyCrewLineModalComponent } from '../../../modals/crew-timecard/copy-crew-line-modal/copy-crew-line-modal.component';\r\nimport { WarningModalComponent } from '../../../modals/shared/warning-modal/warning-modal.component';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\n\r\nlet _this;\r\n\r\n@Component({\r\n selector: 'app-crew-timecard-grid',\r\n templateUrl: './crew-timecard-grid.component.html',\r\n styleUrls: ['./crew-timecard-grid.component.css'],\r\n providers: [CrewTimecardDataService, CrewTimecardManagerService]\r\n})\r\n\r\nexport class CrewTimecardGridComponent implements OnInit {\r\n\tportalSettings: any;\r\n\temployeeInfo: any;\r\n crewTimecardID: string;\r\n dataTable: webix.ui.datatable;\r\n\tcrewTimecardDataService: CrewTimecardDataService;\r\n\ttimeParserService: TimeParserService;\r\n\r\n\tamountEarnCodes: any[];\r\n\tamountPayTypes: any[];\r\n\tcallback: any;\r\n\tdependentQueue: any[];\r\n\tcolumnInfoByEmployee: any;\r\n\tcolumnOptions: any[];\r\n\tcolumnRules: any;\r\n\tcurrentCell: any;\r\n\tcurrentEmployeeColumns: {};\r\n\tgridData: any;\r\n\theight: number;\r\n\tlastRequestedEmployeeDefault: any;\r\n\tlastUsedList: any[];\r\n\tleftSplit: number;\r\n\trawRows: any[];\r\n\trowKeysToIgnore: any[] = [\"PostDate\", \"DailyTime\", \"IsRowAggregate\"];\r\n\r\n\tnextEditor: any;\r\n\tsavedValues: any;\r\n\r\n\tmobileMode: boolean = false;\r\n rawData: any;\r\n root: ElementRef;\r\n\tsharedColumnInfo: any[];\r\n\tusageMode: string;\r\n\r\n\t//caching variables\r\n\temployeeList: any[];\r\n\tunfilteredEmployeeList: any[];\r\n\tbulkEmployeeList: any[];\r\n\temployeeListBound: boolean;\r\n\temployeesToExclude: any[];\r\n\tlookupValuesCache: any;\r\n\tcacheByColumnValue: any;\r\n\temployeeLockStatus: any;\r\n\r\n\t//grid status variables\r\n\taddingRow: boolean;\r\n\tequipmentAutoSelectRebind: boolean;\r\n\tfirstRowCopy: any;\r\n\tisReadOnlyGridTime: boolean;\r\n\tlastEditedCell: any;\r\n\tlastRequestedRow: any;\r\n\tlargestSortID: any;\r\n\tprocessingRow: boolean;\r\n\trebindingEmployee: boolean;\r\n\ttableSort: string;\r\n\ttableReverse: boolean;\r\n\ttabPressed: string;\r\n \r\n constructor(\r\n private crewTimecardGridService: CrewTimecardGridService,\r\n\t\tprivate employeeInfoService: EmployeeInfoService,\r\n\t\tprivate bsModalService: BsModalService,\r\n portalSettingsService: PortalSettingsService,\r\n timeParserService: TimeParserService,\r\n crewTimecardDataService: CrewTimecardDataService,\r\n\t\tprivate crewTimecardManagerService: CrewTimecardManagerService,\r\n\t\tprivate ngbmodalService: NgbModal,\r\n\t\tprivate eventService: EventService,\r\n\t\tprivate utilityService: UtilityService,\r\n root: ElementRef\r\n\t) {\r\n\t\tthis.portalSettings = portalSettingsService.getPortalSettings();\r\n\t\tthis.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n\t\tthis.crewTimecardDataService = crewTimecardDataService;\r\n\t\tthis.timeParserService = timeParserService;\r\n\t\tthis.root = root;\r\n\t\tthis.tableSort = sessionStorage.getItem(\"CrewTableSort\");\r\n\t\tthis.tableReverse = sessionStorage.getItem(\"CrewTableReverse\") == \"true\";\r\n\t\tthis.isReadOnlyGridTime = this.employeeInfo.IsReadOnlyGridTime\r\n\t\t_this = this;\r\n //TODO see if other config values are necessary\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.mobileMode = this.utilityService.isMobileMode();\r\n\t\tthis.customizeWebix();\r\n\t\tthis.windowResize();\r\n\t}\r\n\r\n\tgetDataService() {\r\n\t\treturn this.crewTimecardDataService;\r\n\t}\r\n\r\n\tgetRowProperties() {\r\n\t\treturn this.gridData.rowPropertyNames;\r\n }\r\n\r\n\temployeeChanged() {\r\n\t\tif (this.crewTimecardDataService.timecardLoaded && !this.crewTimecardDataService.unsavedChanges && !this.crewTimecardDataService.rowDeleted) {\r\n\t\t\tthis.crewTimecardDataService.initRowCounts();\r\n\t\t\tif (this.crewTimecardDataService.payPeriod.EnableCrews)\r\n\t\t\t\tthis.filterByEmployeeMultiple();\r\n\t\t\telse\r\n\t\t\t\tthis.filterByEmployee();\r\n\t\t}\r\n }\r\n\r\n loadTimecard(crewTimecardID, callback: any = null) {\r\n this.crewTimecardID = crewTimecardID;\r\n\t\tthis.initValues();\r\n\t\tthis.callback = callback;\r\n //TODO do emplockstatus and employeecolumn need to be nested or can it run in parallel?\r\n this.getEmployeeLockStatus();\r\n this.getEmployeeColumns();\r\n\r\n //get shared column info\r\n this.crewTimecardGridService.getColumnsByPRCoGroup(this.crewTimecardDataService.payPeriod.PRCo, this.crewTimecardDataService.payPeriod.PRGroup, \"C\").then((response) => {\r\n $.each(response, (key, val: any) => {\r\n this.sharedColumnInfo[val.ColumnName] = val;\r\n });\r\n this.getTimecardData();\r\n }); \r\n }\r\n\r\n private initValues() {\r\n if (this.dataTable != null)\r\n\t\t\tthis.dataTable.destructor();\r\n\t\tthis.amountEarnCodes = [];\r\n\t\tthis.amountPayTypes = [];\r\n\t\tthis.bulkEmployeeList = [];\r\n\t\tthis.cacheByColumnValue = {};\r\n\t\tthis.callback = null;\r\n\t\tthis.crewTimecardDataService.initValues();\r\n\t\tthis.columnInfoByEmployee = {};\r\n\t\tthis.columnOptions = [];\r\n\t\tthis.dependentQueue = [];\r\n\t\tthis.employeeList = [];\r\n\t\tthis.employeeListBound = false;\r\n\t\tthis.employeeLockStatus = {};\r\n\t\tthis.employeesToExclude = [];\r\n\t\tthis.lastRequestedEmployeeDefault = null;\r\n\t\tthis.crewTimecardDataService.loadingValues = false;\r\n\t\tthis.lookupValuesCache = {};\r\n\t\tthis.nextEditor = null;\r\n\t\tthis.sharedColumnInfo = [];\r\n\t\tthis.unfilteredEmployeeList = [];\r\n\t\tthis.largestSortID = 0;\r\n\r\n\t\t//get expense earncodes and pay types\r\n\t\tlet amountBasedEarnCodesSetting = this.portalSettings[\"AmountBasedEarnCodes\"].ConfigValue;\r\n\t\tif (amountBasedEarnCodesSetting != null) {\r\n\t\t\tthis.amountEarnCodes = amountBasedEarnCodesSetting.split(\",\");\r\n\t\t}\r\n\r\n\t\tvar amountBasedPayTypesSetting = this.portalSettings[\"AmountBasedPayTypes\"].ConfigValue;\r\n\t\tif (amountBasedPayTypesSetting != null) {\r\n\t\t\tthis.amountPayTypes = amountBasedPayTypesSetting.split(\",\");\r\n\t\t}\r\n }\r\n\r\n //methods for getting and processing timecard grid data\r\n\tprivate getTimecardData() {\r\n\t\ttry {\r\n\t\t\tthis.crewTimecardGridService.getCrewTimecardData(\r\n\t\t\t\tthis.crewTimecardDataService.payPeriod.PRPCKeyID,\r\n\t\t\t\tthis.crewTimecardDataService.template.CrewTemplateID).then((response) => {\r\n\t\t\t\t\tthis.crewTimecardDataService.timecardLoaded = true;\r\n\t\t\t\t\tif (response == null || response == \"\") {\r\n\t\t\t\t\t\tthis.crewTimecardDataService.alertType = \"default\";\r\n\t\t\t\t\t\tthis.crewTimecardDataService.alertMsg = \"Please add column groups to your template.\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.rawData = response;\r\n\t\t\t\t\t\tthis.checkRawData();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t} catch (err) {\r\n\t\t\tif (\"PR Timecard missing Shift or Earncode\") {\r\n\t\t\t\tthis.crewTimecardDataService.alertType = \"danger\";\r\n\t\t\t\tthis.crewTimecardDataService.alertMsg = \"Payroll timecard requires EarnCode or Shift as a column header.Please modify your Grid Timecard layout.\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.crewTimecardDataService.alertType = \"danger\";\r\n\t\t\t\tthis.crewTimecardDataService.alertMsg = \"An error occurred while loading the timecard.\";\r\n }\r\n\t\t\t\r\n }\r\n\t\t\r\n }\r\n\r\n private checkRawData() {\r\n //TODO implement\r\n this.getEmployeesList();\r\n }\r\n\r\n //extracts employees from the timecard data to populate the employee filter\r\n private getEmployeesList() {\r\n\t\tlet employeeDropdownList = [];\r\n\t\tif (this.rawData.TimecardData.Employee != null) {\r\n\t\t\tif (this.rawData.TimecardData.Employee[0] != null) {\r\n\t\t\t\t$.each(this.rawData.TimecardData.Employee, (key, val) => {\r\n\r\n\t\t\t\t\tif (val[\"@Value\"] != \"\" && employeeDropdownList.indexOf(val[\"@Value\"]) == -1) {\r\n\t\t\t\t\t\temployeeDropdownList.push({ Value: val[\"@Value\"], Label: val[\"@Label\"] });\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse if (this.rawData.TimecardData.Employee[\"@Value\"] != null && this.rawData.TimecardData.Employee[\"@Value\"] != \"\") {\r\n\t\t\t\temployeeDropdownList.push({ Value: this.rawData.TimecardData.Employee[\"@Value\"], Label: this.rawData.TimecardData.Employee[\"@Label\"] });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\temployeeDropdownList.sort(this.employeeDropdownSort);\r\n\t\tlet multiselectEmployeesList = [];\r\n\t\tif (this.crewTimecardDataService.payPeriod.EnableCrews)\r\n\t\t\tmultiselectEmployeesList = _.cloneDeep(employeeDropdownList);\r\n\t\temployeeDropdownList.unshift({ Value: \"all\", Label: \"All Employees\" });\r\n\t\tthis.crewTimecardDataService.employees = employeeDropdownList;\r\n\t\tthis.crewTimecardDataService.multiSelectEmployees = multiselectEmployeesList\r\n\t\tif (this.crewTimecardDataService.payPeriod.IsTimeWorkedEnabled)\r\n\t\t\tthis.crewTimecardDataService.timeWorked.setEmployeeList(this.crewTimecardDataService.employees);\r\n\t\t//check that selected employee is in the list\r\n\t\tif (this.crewTimecardDataService.selectedEmployee != null && this.crewTimecardDataService.selectedEmployee != \"all\") {\r\n\t\t\tlet employeeFound = false;\r\n\t\t\t$.each(this.crewTimecardDataService.employees, (key, val) => {\r\n\t\t\t\tif (val.Value == this.crewTimecardDataService.selectedEmployee) {\r\n\t\t\t\t\temployeeFound = true;\r\n\t\t\t\t\tif (this.crewTimecardDataService.payPeriod.EnableCrews) {\r\n\t\t\t\t\t\tthis.crewTimecardDataService.selectedEmployees = [val];\r\n\t\t\t\t\t}\t\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (!employeeFound) {\r\n\t\t\t\tthis.crewTimecardDataService.selectedEmployee = \"all\";\r\n\t\t\t\tif (this.crewTimecardDataService.employees.length == 2)\r\n\t\t\t\t\tthis.crewTimecardDataService.timeWorked.setEmployee(this.crewTimecardDataService.employees[1].Value);\r\n\t\t\t\telse\r\n\t\t\t\t\tthis.crewTimecardDataService.timeWorked.setEmployee(null);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.crewTimecardDataService.selectedEmployee = \"all\";\r\n\t\t\tif (this.crewTimecardDataService.employees.length == 2) \r\n\t\t\t\tthis.crewTimecardDataService.timeWorked.setEmployee(this.crewTimecardDataService.employees[1].Value);\r\n\t\t\telse\r\n\t\t\t\tthis.crewTimecardDataService.timeWorked.setEmployee(null);\r\n\t\t}\r\n\r\n\t\tif (this.crewTimecardDataService.payPeriod.EnableCrews)\r\n\t\t\tthis.filterByEmployeeMultiple();\r\n\t\telse\r\n\t\t\tthis.filterByEmployee();\r\n\t}\r\n\r\n\tprivate refreshEmployeeList() {\r\n\t\twebix.delay(() => {\r\n\t\t\tlet employeeDropdownList = [];\r\n\t\t\tlet multiselectEmployeesList = [];\r\n\t\t\tlet usedEmployees = [];\r\n\r\n\t\t\tthis.dataTable.eachRow((rowID) => {\r\n\t\t\t\tlet rowValues = this.dataTable.getItem(rowID);\r\n\t\t\t\tlet employee = null;\r\n\t\t\t\tlet currentEmployee = rowValues.Employee;\r\n\t\t\t\tcurrentEmployee = currentEmployee.substr(0, currentEmployee.indexOf(\"@\"));\r\n\t\t\t\tif (usedEmployees.indexOf(currentEmployee) == -1) {\r\n\t\t\t\t\t//get employee from employeeList\r\n\t\t\t\t\tlet employee = null;\r\n\t\t\t\t\tthis.unfilteredEmployeeList.every((unfilteredEmployee) => {\r\n\t\t\t\t\t\tif (unfilteredEmployee.Value == currentEmployee) {\r\n\t\t\t\t\t\t\temployee = unfilteredEmployee;\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (employee == null) {\r\n\t\t\t\t\t\temployee = { Label: rowValues[\"Employee___@Value\"], Value: currentEmployee };\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\temployeeDropdownList.push(employee);\r\n\t\t\t\t\tusedEmployees.push(currentEmployee);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\temployeeDropdownList.sort(this.employeeDropdownSort);\r\n\t\t\tif (this.crewTimecardDataService.payPeriod.EnableCrews)\r\n\t\t\t\tmultiselectEmployeesList = _.cloneDeep(employeeDropdownList);\r\n\t\t\temployeeDropdownList.unshift({ Value: \"all\", Label: \"All Employees\" });\r\n\t\t\tthis.crewTimecardDataService.employees = employeeDropdownList;\r\n\t\t\tthis.crewTimecardDataService.multiSelectEmployees = multiselectEmployeesList;\r\n\r\n\t\t}, this.dataTable);\r\n }\r\n\r\n private filterByEmployee() {\r\n\t\tif (this.crewTimecardDataService.selectedEmployee == null || this.crewTimecardDataService.selectedEmployee == \"all\") {\r\n\t\t\tthis.loadDataTable(this.rawData, false);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet tempData = [];\r\n\t\t\tif (this.rawData.TimecardData.Employee[\"@Value\"] == null) {\r\n\t\t\t\t$.each(this.rawData.TimecardData.Employee, (key, val) => {\r\n\t\t\t\t\tif (val[\"@Value\"] == this.crewTimecardDataService.selectedEmployee) {\r\n\t\t\t\t\t\ttempData.push(val);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this.rawData.TimecardData.Employee[\"@Value\"] == this.crewTimecardDataService.selectedEmployee) {\r\n\t\t\t\t\ttempData.push(this.rawData.TimecardData.Employee);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet filteredData = _.cloneDeep(this.rawData);\r\n\t\t\tfilteredData.TimecardData.Employee = tempData;\r\n\t\t\tthis.loadDataTable(filteredData, true);\r\n\t\t}\r\n }\r\n\r\n\tprivate filterByEmployeeMultiple() {\r\n\t\t//get selected employees from list\r\n\t\tif (this.crewTimecardDataService.selectedEmployees.length == 0 || this.crewTimecardDataService.selectedEmployees.length == this.crewTimecardDataService.multiSelectEmployees.length) {\r\n\t\t\tthis.loadDataTable(this.rawData, false);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet tempData = [];\r\n\t\t\tif (Array.isArray(this.rawData.TimecardData.Employee)) {\r\n\t\t\t\t$.each(this.rawData.TimecardData.Employee, (key, val) => {\r\n\t\t\t\t\tif (this.crewTimecardDataService.selectedEmployees.map((x) => { return x.Value; }).indexOf(val[\"@Value\"]) > -1) {\r\n\t\t\t\t\t\ttempData.push(val);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tlet filteredData = _.cloneDeep(this.rawData);\r\n\t\t\t\tfilteredData.TimecardData.Employee = tempData;\r\n\t\t\t\tthis.loadDataTable(filteredData, true);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.loadDataTable(this.rawData, false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate filterByType() {\r\n\t\t//filter rows\r\n\t\tvar filteredRows = [], filteredColumns = [], filteredRowProperties = [];;\r\n\t\tthis.gridData.rows.forEach((row) => {\r\n\t\t\tif (row.Type != null && row.Type != \"\") {\r\n\t\t\t\tvar index = row.Type.indexOf(\"@\");\r\n\t\t\t\tvar typeValue = index > -1 ? row.Type.substr(0, index) : row.Type;\r\n\t\t\t\tif (typeValue == this.crewTimecardDataService.type)\r\n\t\t\t\t\tfilteredRows.push(row);\r\n\t\t\t}\r\n })\r\n\r\n\t\t//filter columns\r\n\t\tthis.gridData.columns.forEach((column) => {\r\n\t\t\tif (this.gridData.rowPropertyNames.indexOf(column.id) == -1) {\r\n\t\t\t\tfilteredColumns.push(column);\r\n\t\t\t}\r\n\t\t\telse if (this.sharedColumnInfo[column.id] != null && column.id != \"Type\") {\r\n\t\t\t\tvar colLineType = this.sharedColumnInfo[column.id].LineType;\r\n\t\t\t\tif (this.crewTimecardDataService.type == \"J\") {\r\n\t\t\t\t\tif (colLineType == \"J\" || colLineType == \"A\" || colLineType == \"F\" || colLineType == \"T\") {\r\n\t\t\t\t\t\tfilteredColumns.push(column);\r\n\t\t\t\t\t\tfilteredRowProperties.push(column.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.crewTimecardDataService.type == \"S\") {\r\n\t\t\t\t\tif (colLineType == \"S\" || colLineType == \"A\" || colLineType == \"T\") {\r\n\t\t\t\t\t\tfilteredColumns.push(column);\r\n\t\t\t\t\t\tfilteredRowProperties.push(column.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.crewTimecardDataService.type == \"M\") {\r\n\t\t\t\t\tif (colLineType == \"M\" || colLineType == \"A\" || colLineType == \"F\") {\r\n\t\t\t\t\t\tfilteredColumns.push(column);\r\n\t\t\t\t\t\tfilteredRowProperties.push(column.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n })\r\n\r\n\t\tthis.gridData.rows = filteredRows;\r\n\t\tthis.gridData.columns = filteredColumns;\r\n\t\tthis.gridData.rowPropertyNames = filteredRowProperties;\r\n }\r\n\r\n private loadDataTable(data, isFiltered) {\r\n\t\t//if the data is filtered, call GetGridData to get a parsed version of the unfiltered grid data\r\n\t\tlet rawGridData = this.crewTimecardManagerService.getGridData(this.rawData, this.sharedColumnInfo, this.crewTimecardDataService.payPeriod);\r\n\t\tthis.rawRows = rawGridData.rows;\r\n\t\tif (isFiltered && this.crewTimecardDataService.usageMode != \"approval\") {\r\n\t\t\tthis.gridData = this.crewTimecardManagerService.getGridData(data, this.sharedColumnInfo, this.crewTimecardDataService.payPeriod);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.gridData = this.crewTimecardManagerService.getGridData(data, this.sharedColumnInfo, this.crewTimecardDataService.payPeriod);\r\n\t\t}\r\n\r\n\t\t//if timeworked is enabled, calculate totals\r\n\t\tif (this.crewTimecardDataService.payPeriod.IsTimeWorkedEnabled && this.crewTimecardDataService.usageMode == \"crewtimecard\" ) {\r\n\t\t\tthis.calculateTimecardTotals();\r\n\t\t}\r\n\r\n\t\tthis.firstRowCopy = _.cloneDeep(this.gridData.rows[0]);\r\n\r\n\t\t//filter grid data columns and rows by type\r\n\t\tif (this.gridData.rowPropertyNames.indexOf(\"Type\") > -1 && this.crewTimecardDataService.type != \"all\")\r\n\t\t\tthis.filterByType();\r\n\r\n\t\t//ApprovalTODO - generate filter lists for job approval\r\n\r\n\t\tthis.columnRules = {}\r\n\t\t//create validation and sorting rules\r\n\t\t$.each(this.gridData.columns, (key, val) => {\r\n\t\t\tlet metadataName = val.id.substr(val.id.lastIndexOf(\"@\") + 1);\r\n\t\t\tif (metadataName in this.sharedColumnInfo) {\r\n\t\t\t\tif (this.sharedColumnInfo[metadataName].IsCombo == 1) {\r\n\t\t\t\t\tval.sort = this.dropdownSort(metadataName);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (metadataName == \"udSort\") {\r\n\t\t\t\t\t\tthis.columnRules[val.id] = this.isInteger;\r\n\t\t\t\t\t\tval.sort = \"int\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tswitch (this.sharedColumnInfo[metadataName].ValidationDataType) {\r\n\t\t\t\t\t\t\tcase \"int\":\r\n\t\t\t\t\t\t\t\tthis.columnRules[val.id] = this.isInteger;\r\n\t\t\t\t\t\t\t\tval.sort = \"int\";\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"numeric\":\r\n\t\t\t\t\t\t\t\tthis.columnRules[val.id] = this.isNumber;\r\n\t\t\t\t\t\t\t\tval.sort = \"int\";\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase \"varchar\":\r\n\t\t\t\t\t\t\t\tval.sort = \"string\";\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\t//add id to each row\r\n\t\t$.each(this.gridData.rows, (key, val) => {\r\n\t\t\t$.each(val, (rowKey, rowVal) => {\r\n\t\t\t\tif (this.rowKeysToIgnore.indexOf(rowKey) == -1 && rowVal.indexOf(\"@row_\") != -1) {\r\n\t\t\t\t\tthis.gridData.rows[key][rowKey] = rowVal + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tval.id = this.crewTimecardDataService.newRowID;\r\n\t\t\tthis.crewTimecardDataService.newRowID++;\r\n\t\t});\r\n\r\n //add editors\r\n\t\tthis.addEditors();\r\n\r\n\t\t//Note - unfiltered rows is for Job Approval\r\n\t\t//unfilteredRows = angular.copy(gridData.rows);\r\n\r\n\t\t//set udSort\r\n\t\tif (this.columnExists(\"udSort\")) {\r\n\t\t\tfor (let i = 0; i < this.rawRows.length; i++) {\r\n\t\t\t\tlet sortValue = this.rawRows[i][\"udSort\"];\r\n\t\t\t\tif (sortValue != null && sortValue != \"\" && sortValue > this.largestSortID) {\r\n\t\t\t\t\tthis.largestSortID = sortValue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//ApprovalTODO - count pending/rejected rows then perform approval filter\r\n\r\n\t\t//set webix datatable split settings\r\n\t\tthis.leftSplit = this.getDataTableSplit();\r\n\r\n\t\t//ApprovalTODO - set subview grid\r\n\r\n\t\t//calculate height\r\n\t\tif (this.usageMode == \"approval\") {\r\n\t\t\tthis.height = Math.max($(document).height() - $(\"#crewActionBar\").height() - 210, 300);\r\n\t\t}\r\n\t\t//handle sizing adjustment for time worked \r\n\t\telse {\r\n\t\t\tthis.height = Math.max($(document).height() - $(\"#crewActionBar\").height() - 170 - (this.crewTimecardDataService.isSubmitted ? 80 : 0), 300);\r\n\t\t}\r\n\r\n\t\tthis.initWebixGrid();\r\n\t}\r\n\r\n\tprivate getDataTableSplit() {\r\n\t\tlet leftSplit = 0;\r\n\t\tif (this.mobileMode && this.crewTimecardDataService.usageMode != \"approval\" && this.crewTimecardDataService.template.StickyColumnCount != 0) {\r\n\t\t\tleftSplit = 1;\r\n\t\t}\r\n\t\telse if (this.mobileMode && this.crewTimecardDataService.usageMode == \"approval\") {\r\n\t\t\tleftSplit = 2;\r\n\t\t}\r\n\t\telse if (this.crewTimecardDataService.usageMode == \"approval\") {\r\n\t\t\tleftSplit = this.crewTimecardDataService.payPeriod != null && this.crewTimecardDataService.payPeriod.StickyJobApprovalCount != null ? this.crewTimecardDataService.payPeriod.StickyJobApprovalCount : this.gridData.rowPropertyNames.length;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tleftSplit = this.crewTimecardDataService.template != null && this.crewTimecardDataService.template.StickyColumnCount != null ? this.crewTimecardDataService.template.StickyColumnCount : this.gridData.rowPropertyNames.length;\r\n\t\t}\r\n\t\treturn leftSplit;\r\n }\r\n\r\n\t//Grid init functions\r\n\tprivate initWebixGrid() {\r\n\t\tif (this.dataTable != null) {\r\n\t\t\tthis.dataTable.destructor();\r\n\t\t\tthis.dataTable = null;\r\n\t\t}\r\n\r\n\t\t//TODO - incomplete properties to convert\r\n\t\t//rules: tooltip, on, ready\r\n\t\t//on is used for subview creation for approval\r\n\t\t//not sure if tooltip is used or necessary\r\n this.dataTable = webix.ui({\r\n container: this.crewTimecardID,\r\n id: this.crewTimecardID,\r\n view: \"datatable\",\r\n columns: this.gridData.columns,\r\n data: this.gridData.rows,\r\n\t\t\tresizeColumn: true,\r\n\t\t\theight: this.height,\r\n\t\t\teditable: true,\r\n\t\t\tfooter: true,\r\n\t\t\tmath: true,\r\n\t\t\tleftSplit: this.leftSplit,\r\n\t\t\trules: this.columnRules,\r\n\t\t\tscheme: {\r\n\t\t\t\t$change: this.sumHours\r\n\t\t\t},\r\n\t\t\ttype: {\r\n\t\t\t\trcheckbox: function (obj, common, value, config) {\r\n\t\t\t\t\tvar checked = (value == config.checkValue) ? 'checked=\"true\"' : '';\r\n\t\t\t\t\treturn \"\";\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonClick: {\r\n\t\t\t\t\"approvebtn\": (e, id, trg) => this.approveRow(e, id, trg),\r\n\t\t\t\t\"delbtn\": (e, id, trg) => this.deleteRow(e, id, trg),\r\n\t\t\t\t\"splitbtn\": (e, id, trg) => this.splitRow(e, id, trg),\r\n\t\t\t\t\"copybtn\": (e, id, trg) => this.copyRow(e, id, trg)\r\n }\r\n\t\t});\r\n\t\tthis.crewTimecardDataService.dataTable = this.dataTable;\r\n\t\tthis.initRows();\r\n\t\tthis.applyTableReadOnly();\r\n\t\tthis.attachWebixEvents();\r\n\t\tthis.attachWebixKeyboardOverrides();\r\n\t\tthis.dataTable.refresh();\r\n this.dataTable.resize();\r\n\t}\r\n\r\n\tsumHours(items) {\r\n\r\n\t\tlet total: number = 0;\r\n\t\tlet earnCodeIndex = _this.gridData.columnPropertyNames.indexOf(\"EarnCode\");\r\n\t\tlet payTypeIndex = _this.gridData.columnPropertyNames.indexOf(\"PayType\");\r\n\r\n\t\tif (earnCodeIndex > -1 || payTypeIndex > -1) {\r\n\t\t\t//Check earncode or paytype depending on type\r\n\t\t\tif (items.Type == \"S\") {\r\n\t\t\t\t$.each(items, (key: string, val) => {\r\n\t\t\t\t\tif (key.substr(key.indexOf(\"@\") + 1) == \"Hours\") {\r\n\t\t\t\t\t\tlet keyParts = key.split(\"___\");\r\n\t\t\t\t\t\tlet payType = keyParts[payTypeIndex];\r\n\t\t\t\t\t\tif (_this.amountPayTypes.indexOf(payType) == -1) {\r\n\t\t\t\t\t\t\tif (val != \"\" && !isNaN(val)) {\r\n\t\t\t\t\t\t\t\ttotal += parseFloat(val);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$.each(items, (key: string, val) => {\r\n\t\t\t\t\tif (key.substr(key.indexOf(\"@\") + 1) == \"Hours\") {\r\n\t\t\t\t\t\tlet keyParts = key.split(\"___\");\r\n\t\t\t\t\t\tlet earnCode = keyParts[earnCodeIndex];\r\n\t\t\t\t\t\tif (_this.amountEarnCodes.indexOf(earnCode) == -1) {\r\n\t\t\t\t\t\t\tif (val != \"\" && !isNaN(val)) {\r\n\t\t\t\t\t\t\t\ttotal += parseFloat(val);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$.each(items, (key: string, val) => {\r\n\t\t\t\tif (key.substr(key.indexOf(\"@\") + 1) == \"Hours\") {\r\n\t\t\t\t\tif (val != \"\" && !isNaN(val)) {\r\n\t\t\t\t\t\ttotal += parseFloat(val);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\titems[\"Sub Total\"] = total.toFixed(2);\r\n\t}\r\n\r\n\t//creates custom webix datafilters and functions as necessary\r\n\tprivate customizeWebix() {\r\n\t\t(webix.ui.datafilter as any).summFixedColumn = webix.extend({\r\n\t\t\trefresh: (master, node, value) => {\r\n\t\t\t\tlet result = 0;\r\n\t\t\t\tlet num = 0;\r\n\t\t\t\tlet expenses = 0;\r\n\t\t\t\tmaster.mapCells(null, value.columnId, null, 1, (value, row_id) => {\r\n\t\t\t\t\tlet valueCopy = value;\r\n\t\t\t\t\tif (this.dataTable != null && this.dataTable.getItem(row_id) != null) {\r\n\t\t\t\t\t\tlet row = this.dataTable.getItem(row_id);\r\n\t\t\t\t\t\tlet exclude = false;\r\n\t\t\t\t\t\tif (row.Type != null && row.Type != \"\") {\r\n\t\t\t\t\t\t\tlet index = row.Type.indexOf(\"@\");\r\n\t\t\t\t\t\t\tlet typeValue = index > -1 ? row.Type.substr(0, index) : row.Type;\r\n\t\t\t\t\t\t\tif (typeValue == \"S\") {\r\n\t\t\t\t\t\t\t\tif (row.SMPayType != null && row.SMPayType != \"\" && row.SMPayType != \"null\") {\r\n\t\t\t\t\t\t\t\t\tlet payType = row.SMPayType.substr(0, row.SMPayType.indexOf(\"@\"));\r\n\t\t\t\t\t\t\t\t\tif (this.amountPayTypes.indexOf(payType) > -1) {\r\n\t\t\t\t\t\t\t\t\t\texclude = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tif (row.EarnCode != null && row.EarnCode != \"\" && row.EarnCode != \"null\") {\r\n\t\t\t\t\t\t\t\t\tlet earnCode = row.EarnCode.substr(0, row.EarnCode.indexOf(\"@\"));\r\n\t\t\t\t\t\t\t\t\tif (this.amountEarnCodes.indexOf(earnCode) > -1) {\r\n\t\t\t\t\t\t\t\t\t\texclude = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (row.EarnCode != null && row.EarnCode != \"\" && row.EarnCode != \"null\") {\r\n\t\t\t\t\t\t\t\tlet earnCode = row.EarnCode.substr(0, row.EarnCode.indexOf(\"@\"));\r\n\t\t\t\t\t\t\t\tif (this.amountEarnCodes.indexOf(earnCode) > -1) {\r\n\t\t\t\t\t\t\t\t\texclude = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!exclude) {\r\n\t\t\t\t\t\t\tvalueCopy = valueCopy * 1;\r\n\t\t\t\t\t\t\tif (!isNaN(valueCopy))\r\n\t\t\t\t\t\t\t\tresult += valueCopy;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (!isNaN(valueCopy)) {\r\n\t\t\t\t\t\t\t\texpenses += parseFloat(valueCopy);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn value;\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvalueCopy = value * 1;\r\n\t\t\t\t\t\tif (!isNaN(valueCopy))\r\n\t\t\t\t\t\t\tresult += valueCopy;\r\n\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthis.crewTimecardDataService.expenses = expenses;\r\n\t\t\t\tnode.firstChild.innerHTML = result.toFixed(2);\r\n\t\t\t}\r\n\t\t}, webix.ui.datafilter.summColumn);\r\n\t}\r\n\r\n\tprivate addEditors() {\r\n\t\tlet dateFormat = webix.Date.dateToStr(\"%m/%d/%y\", false);\r\n\t\tlet earnCodeIndex = this.gridData.columnPropertyNames.indexOf(\"EarnCode\");\r\n\t\tlet isEarnCodeColumn = earnCodeIndex > -1;\r\n\t\tlet payTypeIndex = this.gridData.columnPropertyNames.indexOf(\"PayType\");\r\n\t\tlet isPayTypeColumn = payTypeIndex > -1;\r\n\r\n\t\t$.each(this.gridData.columns, (loopGridColumnIndex, loopGridColumn) => {\r\n\t\t\tlet columnName = loopGridColumn.id.substr(loopGridColumn.id.indexOf(\"@\") + 1);\r\n\r\n\t\t\tif (this.sharedColumnInfo[columnName] != null && (this.crewTimecardDataService.usageMode != \"approval\" || columnName != \"Employee\")) {\r\n\t\t\t\tif (this.sharedColumnInfo[columnName].IsCombo === 1) {\r\n\r\n\t\t\t\t\tif (this.mobileMode)\r\n\t\t\t\t\t\tloopGridColumn.editor = 'popupWindowCombo';\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tloopGridColumn.editor = 'combo';\r\n\t\t\t\t\tloopGridColumn.template = function (obj) {\r\n\t\t\t\t\t\tlet value = \"\";\r\n\t\t\t\t\t\tif (_this.columnOptions[loopGridColumn.id].getItem(obj[loopGridColumn.id]) != null) {\r\n\t\t\t\t\t\t\tvalue = _this.columnOptions[loopGridColumn.id].getItem(obj[loopGridColumn.id]).value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (_this.crewTimecardDataService.usageMode == \"approval\" && _this.sharedColumnInfo[columnName].ApprovalVisibilityModeID == 2)\r\n\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (columnName != \"Employee\" && columnName != \"Type\" && (_this.sharedColumnInfo[columnName] == null || _this.sharedColumnInfo[columnName].ColumnVisibilityModeID == 2)) {\r\n\t\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\treturn \"\" + value;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.columnOptions[loopGridColumn.id] = new webix.DataCollection({});\r\n\t\t\t\t\tloopGridColumn.options = this.columnOptions[loopGridColumn.id];\r\n\r\n\t\t\t\t\t//insert initial options\r\n\t\t\t\t\tlet tempOptions = [];\r\n\t\t\t\t\t$.each(this.gridData.rows, (key, val) => {\r\n\t\t\t\t\t\tlet value = val[loopGridColumn.id + \"___@Value\"];\r\n\t\t\t\t\t\tlet id = val[loopGridColumn.id];\r\n\t\t\t\t\t\tif (id != null) {\r\n\t\t\t\t\t\t\tlet obj = { id: id, value: value, visible: true };\r\n\t\t\t\t\t\t\tif (loopGridColumn.id == \"udKDSTrackerID\" && value == \"\") {\r\n\t\t\t\t\t\t\t\tobj.value = \"Standard Timecard\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (this.containsObject(obj, tempOptions) == -1)\r\n\t\t\t\t\t\t\t\ttempOptions.push(obj);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$.each(tempOptions, (key, val) => {\r\n\t\t\t\t\t\tthis.columnOptions[loopGridColumn.id].add(val);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (this.sharedColumnInfo[columnName].ColumnVisibilityModeID == 4) {\r\n\t\t\t\t\t\tloopGridColumn.suggest = {\r\n\t\t\t\t\t\t\ton: {\r\n\t\t\t\t\t\t\t\tonBeforeShow: function () {\r\n\t\t\t\t\t\t\t\t\tthis.define(\"width\", 300);\r\n\t\t\t\t\t\t\t\t\tthis.resize();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tbody: {\r\n\t\t\t\t\t\t\t\tdataFeed: function (value, valueObject) {\r\n\t\t\t\t\t\t\t\t\tlet row = _this.dataTable.getItem(_this.currentCell.row);\r\n\t\t\t\t\t\t\t\t\tif (valueObject.value != null && valueObject.value.length > 2 && _this.currentCell != null) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tlet requestParams = _this.getRequestParams(_this.currentCell.column, row, false);\r\n\t\t\t\t\t\t\t\t\t\trequestParams.currentCell = _this.currentCell;\r\n\t\t\t\t\t\t\t\t\t\trequestParams.rowData.searchString = valueObject.value;\r\n\t\t\t\t\t\t\t\t\t\tthis.load(\"valueLookupProxy->/Timecard/GetCellPossibleValues\", (options) => { _this.lastUsedList = options }, requestParams);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse if (row[_this.currentCell.column + \"___@Value\"] != null && row[_this.currentCell.column + \"___@Value\"] != \"\") {\r\n\t\t\t\t\t\t\t\t\t\tlet requestParams = _this.getRequestParams(_this.currentCell.column, row, false);\r\n\t\t\t\t\t\t\t\t\t\trequestParams.currentCell = _this.currentCell;\r\n\t\t\t\t\t\t\t\t\t\trequestParams.rowData.searchString = row[_this.currentCell.column + \"___@Value\"];\r\n\t\t\t\t\t\t\t\t\t\tthis.parse([{ id: row[_this.currentCell.column], value: row[_this.currentCell.column + \"___@Value\"], visible: true }])\r\n\t\t\t\t\t\t\t\t\t\tthis.load(\"valueLookupProxy->/Timecard/GetCellPossibleValues\", (options) => { _this.lastUsedList = options }, requestParams);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tthis.parse([{ id: \"null\", value: \"Type more to load options...\", visible: true }]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\r\n\t\t\t\t\t\tloopGridColumn.suggest = {\r\n\t\t\t\t\t\t\tfilter: function (item, value) {\r\n\r\n\t\t\t\t\t\t\t\tif (item.value.toString().toLowerCase().replace(/ /g, '').indexOf(value.toLowerCase().replace(/ /g, '')) > -1 && item.visible == true)\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tfitMaster: _this.sharedColumnInfo[columnName].InputLength > 300,\r\n\t\t\t\t\t\t\trelative: \"bottom\"\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t//case for bYN\r\n\t\t\t\telse if (this.sharedColumnInfo[columnName].ValidationDataType == \"bit\") {\r\n\t\t\t\t\tloopGridColumn.editor = \"checkbox\";\r\n\t\t\t\t\tloopGridColumn.checkValue = \"Y\";\r\n\t\t\t\t\tloopGridColumn.uncheckValue = \"N\";\r\n\t\t\t\t\tloopGridColumn.template = function (obj, common, value, config) {\r\n\r\n\t\t\t\t\t\tlet emp = obj.Employee.substr(0, obj.Employee.indexOf(\"@\"));\r\n\t\t\t\t\t\tif (obj.IsApproved == \"1\" ||\r\n\t\t\t\t\t\t\tobj.IsSubmitted == \"1\" ||\r\n\t\t\t\t\t\t\tobj.IsReadOnly == \"1\" ||\r\n\t\t\t\t\t\t\t(_this.employeeLockStatus[emp] != null && _this.employeeLockStatus[emp].IsLocked) ||\r\n\t\t\t\t\t\t\t_this.sharedColumnInfo[columnName].ColumnVisibilityModeID == 2 ||\r\n\t\t\t\t\t\t\t(_this.crewTimecardDataService.usageMode == \"approval\" && (obj.PendingStatus != \"U\" || _this.sharedColumnInfo[columnName].ApprovalVisibilityModeID == 2))) {\r\n\t\t\t\t\t\t\treturn common.rcheckbox(obj, common, value, config);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\treturn common.checkbox(obj, common, value, config);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (columnName == \"PostDate\") {\r\n\t\t\t\t\t\tloopGridColumn.editor = 'date';\r\n\t\t\t\t\t\tloopGridColumn.map = \"(date)#PostDate#\"\r\n\t\t\t\t\t\tloopGridColumn.format = dateFormat;\r\n\t\t\t\t\t\tloopGridColumn.sort = \"date\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (columnName == \"StartTime\") {\r\n\t\t\t\t\t\tloopGridColumn.editor = 'startTime';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (columnName == \"StopTime\") {\r\n\t\t\t\t\t\tloopGridColumn.editor = 'stopTime';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (columnName == \"Hours\") {\r\n\t\t\t\t\t\tloopGridColumn.editor = 'number';\r\n\t\t\t\t\t\tloopGridColumn.template = function (row) {\r\n\r\n\t\t\t\t\t\t\tif (row[loopGridColumn.id] != null) {\r\n\t\t\t\t\t\t\t\tif (row.Type != null && row.Type != \"\") {\r\n\t\t\t\t\t\t\t\t\tlet type = row.Type.substr(0, row.Type.indexOf(\"@\"));\r\n\t\t\t\t\t\t\t\t\tif (type == \"S\") {\r\n\t\t\t\t\t\t\t\t\t\tlet payType;\r\n\t\t\t\t\t\t\t\t\t\tif (isPayTypeColumn) {\r\n\t\t\t\t\t\t\t\t\t\t\tlet columnValueParts = loopGridColumn.id.split(\"___\");\r\n\t\t\t\t\t\t\t\t\t\t\tpayType = columnValueParts[earnCodeIndex];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\tif (row.SMPayType != null && row.PayType != \"\" && row.SMPayType != \"null\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tpayType = row.SMPayType.substr(0, row.SMPayType.indexOf(\"@\"));\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn row[loopGridColumn.id];\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (_this.amountPayTypes.indexOf(payType) > -1) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn webix.i18n.priceFormat(row[loopGridColumn.id]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\treturn row[loopGridColumn.id];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tlet earnCode;\r\n\t\t\t\t\t\t\t\t\t\tif (isEarnCodeColumn) {\r\n\t\t\t\t\t\t\t\t\t\t\tlet columnValueParts = loopGridColumn.id.split(\"___\");\r\n\t\t\t\t\t\t\t\t\t\t\tearnCode = columnValueParts[earnCodeIndex];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\tif (row.EarnCode != null && row.EarnCode != \"\" && row.EarnCode != \"null\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tearnCode = row.EarnCode.substr(0, row.EarnCode.indexOf(\"@\"));\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn row[loopGridColumn.id];\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (_this.amountEarnCodes.indexOf(earnCode) > -1) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn webix.i18n.priceFormat(row[loopGridColumn.id]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\treturn row[loopGridColumn.id];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tlet earnCode;\r\n\t\t\t\t\t\t\t\t\tif (isEarnCodeColumn) {\r\n\t\t\t\t\t\t\t\t\t\tlet columnValueParts = loopGridColumn.id.split(\"___\");\r\n\t\t\t\t\t\t\t\t\t\tearnCode = columnValueParts[earnCodeIndex];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tif (row.EarnCode != null && row.EarnCode != \"\" && row.EarnCode != \"null\") {\r\n\t\t\t\t\t\t\t\t\t\t\tearnCode = row.EarnCode.substr(0, row.EarnCode.indexOf(\"@\"));\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\treturn row[loopGridColumn.id];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (_this.amountEarnCodes.indexOf(earnCode) > -1) {\r\n\t\t\t\t\t\t\t\t\t\treturn webix.i18n.priceFormat(row[loopGridColumn.id]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\treturn row[loopGridColumn.id];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t//check if type exists, else treat it as a \"J\" type\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tloopGridColumn.editor = 'text';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\telse if (columnName == \"udKDSTrackerID\") {\r\n\t\t\t\tthis.columnOptions[loopGridColumn.id] = new webix.DataCollection({});\r\n\t\t\t\tloopGridColumn.editor = 'combo';\r\n\t\t\t\tloopGridColumn.template = function (obj) {\r\n\t\t\t\t\tlet value = \"\";\r\n\t\t\t\t\tif (_this.columnOptions[loopGridColumn.id].getItem(obj[loopGridColumn.id]) != null) {\r\n\t\t\t\t\t\tvalue = _this.columnOptions[loopGridColumn.id].getItem(obj[loopGridColumn.id]).value;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tloopGridColumn.options = this.columnOptions[loopGridColumn.id];\r\n\t\t\t\t//insert initial options\r\n\t\t\t\tlet tempOptions = [];\r\n\t\t\t\t$.each(this.gridData.rows, (key, val) => {\r\n\t\t\t\t\tlet value = val[loopGridColumn.id + \"___@Value\"];\r\n\t\t\t\t\tlet id = val[loopGridColumn.id];\r\n\t\t\t\t\tif (id != null) {\r\n\t\t\t\t\t\tlet obj = { id: id, value: value, visible: true };\r\n\t\t\t\t\t\tif (this.containsObject(obj, tempOptions) == -1)\r\n\t\t\t\t\t\t\ttempOptions.push(obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t$.each(tempOptions, (key, val) => {\r\n\t\t\t\t\tthis.columnOptions[loopGridColumn.id].add(val);\r\n\t\t\t\t});\r\n\t\t\t\tloopGridColumn.suggest = {\r\n\t\t\t\t\tfilter: function (item, value) {\r\n\t\t\t\t\t\tif (item.value.toString().toLowerCase().indexOf(value.toLowerCase()) > -1 && item.visible == true)\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfitMaster: this.sharedColumnInfo[columnName].InputLength > 300,\r\n\t\t\t\t\trelative: \"bottom\"\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\telse if (loopGridColumn.id == \"Sub Total\") {\r\n\t\t\t\tloopGridColumn.template = function (obj) {\r\n\t\t\t\t\tif (obj[loopGridColumn.id] != null) {\r\n\t\t\t\t\t\tif (!isEarnCodeColumn && obj.EarnCode != null && obj.EarnCode != \"\" && obj.EarnCode != \"null\") {\r\n\t\t\t\t\t\t\tlet earnCode = obj.EarnCode.substr(0, obj.EarnCode.indexOf(\"@\"));\r\n\t\t\t\t\t\t\tif (_this.amountEarnCodes.indexOf(earnCode) > -1) {\r\n\t\t\t\t\t\t\t\treturn webix.i18n.priceFormat(obj[loopGridColumn.id]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\treturn obj[loopGridColumn.id];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\treturn obj[loopGridColumn.id];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (columnName == \"action\") {\r\n\t\t\t\tloopGridColumn.editor = null;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tloopGridColumn.editor = 'text';\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate attachWebixEvents() {\r\n\t\tthis.dataTable.attachEvent(\"onBeforeEditStart\", (eventInfo) => this.beforeEditStart(eventInfo));\r\n\t\tthis.dataTable.attachEvent(\"onAfterEditStart\", (id) => this.afterEditStart(id));\r\n\t\tthis.dataTable.attachEvent(\"onBeforeEditStop\", (state, editor) => this.beforeEditStop(state,editor));\r\n\t\tthis.dataTable.attachEvent(\"onAfterEditStop\", (state, editor) => this.afterEditStop(state, editor));\r\n\t\tthis.dataTable.attachEvent(\"onCheck\", (id, column, state) => this.onCheck(id, column, state));\r\n\t\tthis.dataTable.attachEvent(\"onHeaderClick\", (id) => this.onHeaderClick(id));\r\n\t\t//TODO implement for approval\r\n\t\t//this.dataTable.attachEvent(\"onSubViewCreate\", this.onSubViewCreate);\r\n\r\n\t}\r\n\r\n\tprivate attachWebixKeyboardOverrides() {\r\n\t\t//webix keyboard controls\r\n\t\tthis.dataTable.attachEvent(\"onKeyPress\", (code, e) => {\r\n\t\t\tif (!this.crewTimecardDataService.timecardSaving && !this.crewTimecardDataService.loadingValues) {\r\n\t\t\t\tif ((this.crewTimecardDataService.usageMode != \"PR\" && this.crewTimecardDataService.usageMode != \"PREQ\")) {\r\n\t\t\t\t\t//ctrl + `\r\n\t\t\t\t\tif (e.ctrlKey && code === 192) {\r\n\t\t\t\t\t\tif (!this.isReadOnlyGridTime)\r\n\t\t\t\t\t\t\tthis.addTimecardRow(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//tab controls\r\n\t\t\t\tif (code === 9) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t//F = forward, B = back\r\n\t\t\t\t\tif (e.shiftKey)\r\n\t\t\t\t\t\tthis.tabPressed = \"B\";\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tthis.tabPressed = \"F\"\r\n\t\t\t\t\tlet editor = this.dataTable.getEditor();\r\n\t\t\t\t\tthis.nextEditor = editor;\r\n\t\t\t\t\tif (editor == null || editor == 0) {\r\n\r\n\t\t\t\t\t\tif (this.lastEditedCell != null && this.lastEditedCell != 0 && !this.mobileMode) {\r\n\t\t\t\t\t\t\twebix.delay(() => {\r\n\t\t\t\t\t\t\t\tthis.dataTable.editNext();\r\n\t\t\t\t\t\t\t}, this.dataTable);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (editor.config.editor == \"combo\") {\r\n\t\t\t\t\t\tlet value = editor.getPopup().getBody().getSelectedId();\r\n\t\t\t\t\t\tif (this.sharedColumnInfo[editor.config.id] == null) {\r\n\t\t\t\t\t\t\tif (value == null || value == \"\") {\r\n\t\t\t\t\t\t\t\tvalue = editor.getPopup().getBody().getFirstId();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\teditor.setValue(value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (value != \"\") {\r\n\t\t\t\t\t\t\t\tvalue = editor.getPopup().getBody().getFirstId();\r\n\t\t\t\t\t\t\t\teditor.setValue(value);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Arrow down\r\n\t\t\t\tif (code === 40) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tlet last = this.dataTable.getLastId();\r\n\t\t\t\t\tlet editor = this.dataTable.getEditor();\r\n\t\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(editor.column) == -1 && editor != null && editor.config.editor != \"combo\") {\r\n\t\t\t\t\t\tlet newRow = this.dataTable.getNextId(editor.row, 1);\r\n\t\t\t\t\t\tif (newRow != undefined) {\r\n\t\t\t\t\t\t\tthis.dataTable.editCell(newRow, editor.column, false, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Arrow up\r\n\t\t\t\tif (code === 38) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tlet first = this.dataTable.getFirstId();\r\n\t\t\t\t\tlet editor = this.dataTable.getEditor();\r\n\t\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(editor.column) == -1 && editor != null && editor.config.editor != \"combo\") {\r\n\t\t\t\t\t\tlet newRow = this.dataTable.getPrevId(editor.row, 1);\r\n\t\t\t\t\t\tif (newRow != undefined) {\r\n\t\t\t\t\t\t\tthis.dataTable.editCell(newRow, editor.column, false, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Enter key\r\n\t\t\t\tif (code === 13) {\r\n\t\t\t\t\tthis.nextEditor = this.dataTable.getEditor();\r\n\t\t\t\t\twebix.delay(() => {\r\n\t\t\t\t\t\tthis.dataTable.editNext();\r\n\t\t\t\t\t}, this.dataTable);\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n }\r\n\r\n\t//Counts subimitted rows and adds initial readonly CSS\r\n\tprivate initRows() {\r\n\t\tlet previousEmployee: any = null;\r\n\t\tthis.crewTimecardDataService.rowCount = this.dataTable.count();\r\n\t\tif (this.crewTimecardDataService.usageMode != \"approval\") {\r\n\t\t\tthis.dataTable.eachRow((rowID) => {\r\n\t\t\t\tlet row = this.dataTable.getItem(rowID);\r\n\t\t\t\tlet isEmployeeRow = $.inArray(\"Employee\", this.gridData.rowPropertyNames) != -1;\r\n\t\t\t\tlet currentEmployee = row.Employee;\r\n\t\t\t\tcurrentEmployee = currentEmployee.substr(0, currentEmployee.indexOf(\"@\"));\r\n\t\t\t\tif (row.IsApproved == \"1\" && row.IsReadOnly != \"1\")\r\n\t\t\t\t\tthis.crewTimecardDataService.approvedRows++;\r\n\t\t\t\tif (row.IsSubmitted != \"1\")\r\n\t\t\t\t\tthis.crewTimecardDataService.unsubmittedRows++;\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (this.employeesToExclude.indexOf(currentEmployee) == -1) {\r\n\t\t\t\t\t\tthis.employeesToExclude.push(currentEmployee);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (row.IsSubmitted == \"1\" && row.IsApproved == \"0\" && row.IsReadOnly != \"1\")\r\n\t\t\t\t\tthis.crewTimecardDataService.unapprovedRows++;\r\n\t\t\t\t//apply readonly css if necessary\r\n\t\t\t\tthis.dataTable.addCellCss(rowID, \"Sub Total\", \"cellReadOnly\");\r\n\t\t\t\tif (row.IsReadOnly == \"1\") {\r\n\t\t\t\t\t$.each(this.gridData.columns, (key, column) => {\r\n\t\t\t\t\t\tthis.dataTable.addCellCss(rowID, column.id, \"cellReadOnly\");\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t//hide approve button if Employee is not a row group or if the current employee is the same as the previous row.\r\n\t\t\t\t\tlet employee = row.Employee;\r\n\t\t\t\t\temployee = employee.substr(0, employee.indexOf(\"@\"));\r\n\t\t\t\t\t//make type read only on existing lines\r\n\t\t\t\t\t$.each(this.gridData.columns, (key, column) => {\r\n\t\t\t\t\t\tif (column.id == \"Type\") {\r\n\t\t\t\t\t\t\tthis.dataTable.addCellCss(rowID, column.id, \"cellReadOnly\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (employee != null) {\r\n\t\t\t\t\t\tif (row.IsSubmitted == \"1\" || (this.employeeLockStatus[employee] != null && this.employeeLockStatus[employee].IsLocked)) {\r\n\t\t\t\t\t\t\t$.each(this.gridData.columns, (key, column) => {\r\n\t\t\t\t\t\t\t\tif (column.id != \"action\")\r\n\t\t\t\t\t\t\t\t\tthis.dataTable.addCellCss(rowID, column.id, \"cellReadOnly\");\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t//279351: allow hideCell only if it not Field ticket screen. Field ticket screen doesn't contain Approve button \r\n\t\t\t\t\t\t\tif (!(this.crewTimecardDataService.usageMode == \"PR\" || this.crewTimecardDataService.usageMode == \"PREQ\") &&\r\n\t\t\t\t\t\t\t\t(!isEmployeeRow || currentEmployee == previousEmployee || row.IsApproved == \"1\" ||\r\n\t\t\t\t\t\t\t\t\t(this.employeeLockStatus[employee] != null && this.employeeLockStatus[employee].IsLocked && row.IsSubmitted != \"1\"))) {\r\n\t\t\t\t\t\t\t\tthis.dataTable.addCellCss(rowID, \"action\", \"hideCell\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tpreviousEmployee = row.Employee;\r\n\t\t\t\tpreviousEmployee = previousEmployee.substr(0, previousEmployee.indexOf(\"@\"));\r\n\t\t\t});\r\n\r\n\t\t\t//count the number of unsubmitted rows in raw data for clone check\r\n\t\t\tlet totalSubmittedRows = 0;\r\n\t\t\tthis.rawRows.forEach((row) => {\r\n\t\t\t\tif (row.IsSubmitted == \"1\")\r\n\t\t\t\t\ttotalSubmittedRows++;\r\n\t\t\t})\r\n\t\t\tthis.crewTimecardDataService.totalSubmittedRows = totalSubmittedRows;\r\n\r\n\t\t\t//set time worked read only based on unsubmitted rows\r\n\t\t\tif (this.crewTimecardDataService.payPeriod.IsTimeWorkedEnabled) {\r\n\t\t\t\tthis.crewTimecardDataService.timeWorked.setReadOnly(this.crewTimecardDataService.unsubmittedRows < this.crewTimecardDataService.rowCount);\r\n\t\t\t}\r\n }\r\n\t}\r\n\r\n\tprivate applyTableReadOnly() {\r\n\t\tlet typeExists = this.gridData.rowPropertyNames.indexOf(\"Type\") > -1;\r\n\t\tlet earnPayExists = this.gridData.rowPropertyNames.indexOf(\"EarnCode\") > -1 || this.gridData.rowPropertyNames.indexOf(\"PayType\") > -1;\r\n\t\tthis.dataTable.eachRow((rowID) => {\r\n\t\t\tlet row = this.dataTable.getItem(rowID);\r\n\t\t\tif (typeExists || row[\"Type___@Value\"] == \"S\") {\r\n\t\t\t\tthis.applyLineTypeCSS(rowID);\r\n\t\t\t}\r\n\t\t\tif (earnPayExists) {\r\n\t\t\t\tthis.applyAmountCSS(rowID);\r\n\t\t\t}\r\n\r\n\t\t});\r\n }\r\n\r\n\t//Webix event handlers\r\n\t//Note - use _this instead of this in the event handlers as the scope of the handlers is changed\r\n\tprivate beforeEditStart(eventInfo) {\r\n\t\tlet nextCol, nextRow;\r\n\t\tif (_this.isReadOnlyGridTime || _this.crewTimecardDataService.readOnlyGrid)\r\n\t\t\treturn false;\r\n\t\tlet editor = _this.dataTable.getEditor();\r\n\t\tlet resolvedColumnName = eventInfo.column.substr(eventInfo.column.indexOf(\"@\") + 1);\r\n\t\tif (_this.sharedColumnInfo[eventInfo.column] != null && _this.sharedColumnInfo[eventInfo.column].ValidationDataType == \"bit\") {\r\n\t\t\tif (_this.tabPressed == \"F\") {\r\n\t\t\t\tnextCol = _this.dataTable.columnId(_this.dataTable.getColumnIndex(eventInfo.column) + 1);\r\n\t\t\t}\r\n\t\t\telse if (_this.tabPressed == \"B\") {\r\n\t\t\t\tnextCol = _this.dataTable.columnId(_this.dataTable.getColumnIndex(eventInfo.column) - 1);\r\n\t\t\t}\r\n\t\t\tif (nextCol) {\r\n\t\t\t\t_this.dataTable.editCell(eventInfo.row, nextCol, false, true);\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tlet row = _this.dataTable.getItem(eventInfo.row);\r\n\t\t//disallow type change if row is not new\r\n\t\tif (eventInfo.column == \"Type\" && !row.isNewRow) {\r\n\t\t\tif (_this.tabPressed == \"F\") {\r\n\t\t\t\tnextCol = _this.dataTable.columnId(_this.dataTable.getColumnIndex(eventInfo.column) + 1);\r\n\t\t\t}\r\n\t\t\telse if (_this.tabPressed == \"B\") {\r\n\t\t\t\tnextCol = _this.dataTable.columnId(_this.dataTable.getColumnIndex(eventInfo.column) - 1);\r\n\t\t\t}\r\n\t\t\tif (nextCol) {\r\n\t\t\t\t_this.dataTable.editCell(eventInfo.row, nextCol, false, true);\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t//disallow editing if certain fields on an amount row\r\n\t\tif (eventInfo.column.indexOf(\"@StartTime\") > -1 || eventInfo.column.indexOf(\"@StopTime\") > -1 || eventInfo.column.indexOf(\"@BreakHours\") > -1) {\r\n\t\t\tif (_this.isAmountRow(eventInfo.row)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tlet employee = row.Employee;\r\n\t\temployee = employee.substr(0, employee.indexOf(\"@\"));\r\n\t\t//Note - JobPhaseCombined is hardcoded to be read only\r\n\t\tif (_this.crewTimecardDataService.usageMode == \"approval\") {\r\n\t\t\tif (((eventInfo.column.indexOf(\"@Hours\") == -1 && eventInfo.column.indexOf(\"@UsageUnits\") == -1)) &&\r\n\t\t\t\t(_this.sharedColumnInfo[resolvedColumnName] == null || _this.sharedColumnInfo[resolvedColumnName].ApprovalVisibilityModeID == 2 || resolvedColumnName == \"JobPhaseCombined\") || row.IsRowAggregate) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse if (((eventInfo.column.indexOf(\"@Hours\") > -1) && (_this.sharedColumnInfo[\"Hours\"].ApprovalVisibilityModeID == 2 || row.IsRowAggregate))) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse if ((eventInfo.column.indexOf(\"@UsageUnits\") > -1) && (_this.sharedColumnInfo[\"UsageUnits\"].ApprovalVisibilityModeID == 2 || row.IsRowAggregate)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\t//#316534: For Locked, don't allow to edit\r\n\t\t\tif (row.IsLocked == '1')\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (eventInfo.column != \"Employee\" && eventInfo.column != \"Type\" && (_this.sharedColumnInfo[eventInfo.column] != null && _this.sharedColumnInfo[eventInfo.column].ColumnVisibilityModeID == 2)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!_this.crewTimecardDataService.payPeriod.EnableCrews) {\r\n\t\t\tif (_this.crewTimecardDataService.selectedEmployee != null && _this.crewTimecardDataService.selectedEmployee != \"all\" && eventInfo.column == \"Employee\")\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (_this.dependentQueue.length > 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t//read only cell\r\n\t\tif (row.IsReadOnly == \"1\" || row.IsSubmitted == \"1\" || (_this.employeeLockStatus[employee] != null && _this.employeeLockStatus[employee].IsLocked)) {\r\n\t\t\t//279351: Allow edit on submitted record when the config is true for Field Ticket\r\n\t\t\tif (!((_this.crewTimecardDataService.usageMode == \"PR\" || _this.crewTimecardDataService.usageMode == \"PREQ\") && row.IsApproved == \"0\") || _this.portalSettings.DTREmpEquReadOnlyOverride.ConfigValue == 0)\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\tif (_this.crewTimecardDataService.usageMode == \"approval\" && row.PendingStatus != \"U\")\r\n\t\t\treturn false;\r\n\t\t// return (do not allow editing) if _this cell is a \"Grouping Cell\" -- a treenode parent\r\n\t\tif (row.$parent != null && typeof (row.$parent) === \"string\" && row.$parent.length > 0 && row.$parent === eventInfo.row) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tlet isCellReferringToRowProperty = $.inArray(eventInfo.column, _this.gridData.rowPropertyNames) !== -1;\r\n\t\tlet column = _this.gridData.getColumnByName(eventInfo.column);\r\n\t\t//allow edit if the column is the delete column\r\n\t\tif (column.id == \"action\") {\r\n\t\t\t_this.dataTable.editNext();\r\n\t\t\t_this.nextEditor = null;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (!isCellReferringToRowProperty && _this.gridData.columnMap[eventInfo.column] == null) return false;\r\n\t\tlet columnName = isCellReferringToRowProperty ? eventInfo.column : _this.gridData.columnMap[eventInfo.column].valuePropertyName.substr(1);\r\n\t\t//disable edit if column does not match with line type\r\n\t\tif (columnName != \"Type\" && row.Type != null && row.Type != \"\") {\r\n\t\t\tlet rowLineType = row.Type.substr(0, row.Type.indexOf(\"@\"));\r\n\t\t\tlet colLineType = _this.sharedColumnInfo[columnName].LineType;\r\n\t\t\tif (rowLineType == \"J\") {\r\n\t\t\t\tif (colLineType != \"J\" && colLineType != \"A\" && colLineType != \"F\" && colLineType != \"T\") {\r\n\t\t\t\t\tif (_this.tabPressed == \"F\") {\r\n\t\t\t\t\t\tnextCol = _this.dataTable.columnId(_this.dataTable.getColumnIndex(eventInfo.column) + 1);\r\n\t\t\t\t\t\tif (nextCol == \"Sub Total\") {\r\n\t\t\t\t\t\t\tnextCol = _this.dataTable.columnId(0);\r\n\t\t\t\t\t\t\tnextRow = _this.dataTable.getNextId(eventInfo.row, 1)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (_this.tabPressed == \"B\") {\r\n\t\t\t\t\t\tnextCol = _this.dataTable.columnId(_this.dataTable.getColumnIndex(eventInfo.column) - 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (nextCol) {\r\n\t\t\t\t\t\tif (nextRow)\r\n\t\t\t\t\t\t\t_this.dataTable.editCell(nextRow, nextCol, false, true);\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_this.dataTable.editCell(eventInfo.row, nextCol, false, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse if (rowLineType == \"S\") {\r\n\t\t\t\tif ((colLineType != \"S\" && colLineType != \"A\" && colLineType != \"T\") || columnName == \"Job\") {\r\n\t\t\t\t\tif (_this.tabPressed == \"F\") {\r\n\t\t\t\t\t\tnextCol = _this.dataTable.columnId(_this.dataTable.getColumnIndex(eventInfo.column) + 1);\r\n\t\t\t\t\t\tif (nextCol == \"Sub Total\") {\r\n\t\t\t\t\t\t\tnextCol = _this.dataTable.columnId(0);\r\n\t\t\t\t\t\t\tnextRow = _this.dataTable.getNextId(eventInfo.row, 1)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (_this.tabPressed == \"B\") {\r\n\t\t\t\t\t\tnextCol = _this.dataTable.columnId(_this.dataTable.getColumnIndex(eventInfo.column) - 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (nextCol) {\r\n\t\t\t\t\t\tif (nextRow)\r\n\t\t\t\t\t\t\t_this.dataTable.editCell(nextRow, nextCol, false, true);\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_this.dataTable.editCell(eventInfo.row, nextCol, false, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (rowLineType == \"M\") {\r\n\t\t\t\tif (colLineType != \"M\" && colLineType != \"A\" && colLineType != \"F\") {\r\n\t\t\t\t\tif (_this.tabPressed == \"F\") {\r\n\t\t\t\t\t\tnextCol = _this.dataTable.columnId(_this.dataTable.getColumnIndex(eventInfo.column) + 1);\r\n\t\t\t\t\t\tif (nextCol == \"Sub Total\") {\r\n\t\t\t\t\t\t\tnextCol = _this.dataTable.columnId(0);\r\n\t\t\t\t\t\t\tnextRow = _this.dataTable.getNextId(eventInfo.row, 1)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (_this.tabPressed == \"B\") {\r\n\t\t\t\t\t\tnextCol = _this.dataTable.columnId(_this.dataTable.getColumnIndex(eventInfo.column) - 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (nextCol) {\r\n\t\t\t\t\t\tif (nextRow)\r\n\t\t\t\t\t\t\t_this.dataTable.editCell(nextRow, nextCol, false, true);\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_this.dataTable.editCell(eventInfo.row, nextCol, false, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (_this.sharedColumnInfo[columnName].IsCombo !== 1) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\t_this.tabPressed = null;\r\n\t\tif (columnName == \"Employee\" && _this.employeeListBound && _this.sharedColumnInfo[eventInfo.column].ColumnVisibilityModeID != 4) {\r\n\t\t\tif (row.id != _this.lastRequestedRow)\r\n\t\t\t\t_this.bindPossibleValues(_this.employeeList, false, \"Employee\", row);\r\n\t\t\telse\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\telse if (_this.sharedColumnInfo[eventInfo.column].ColumnVisibilityModeID == 4) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t//check if cache value exists, if not the cell has not been loaded yet\r\n\t\t\tif (_this.lookupValuesCache[row.id] != null) {\r\n\t\t\t\tif (_this.lookupValuesCache[row.id][columnName] != null) {\r\n\t\t\t\t\t//put cache binding logic here\r\n\t\t\t\t\tif (row.id != _this.lastRequestedRow)\r\n\t\t\t\t\t\t_this.bindPossibleValues(_this.lookupValuesCache[row.id][columnName], false, columnName, row);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t_this.lookupValuesCache[row.id] = {};\r\n\t\t\t\t\treturn _this.getCellValues(columnName, row, false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t_this.lookupValuesCache[row.id] = {};\r\n\t\t\t\treturn _this.getCellValues(columnName, row, false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate afterEditStart(id) {\r\n\t\t_this.currentCell = id;\r\n\t\tlet state = {old: null, value: null};\r\n\t\tlet editor = _this.dataTable.getEditor();\r\n\t\tthis.lastEditedCell = editor;\r\n\t\tstate.old = editor.getValue();\r\n\t\tlet row = _this.dataTable.getItem(id.row);\r\n\t\t_this.lastEditedCell = editor;\r\n\t\tif (editor.config.editor == \"popupWindowCombo\") {\r\n\t\t\tlet requestParams = null;\r\n\t\t\tif (_this.sharedColumnInfo[editor.column].ColumnVisibilityModeID == 4) {\r\n\t\t\t\trequestParams = _this.getRequestParams(_this.currentCell.column, row, false);\r\n\t\t\t\trequestParams.currentCell = _this.currentCell;\r\n\t\t\t}\r\n\t\t\tlet options = _this.columnOptions[id.column].serialize();\r\n\t\t\toptions = options.filter(function (obj) {\r\n\t\t\t\tif (obj.visible && obj.value != \"\" && obj.value != \"null\")\r\n\t\t\t\t\treturn true;\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\r\n\t\t\tlet modalRef = _this.ngbmodalService.open(EditCellValueModalComponent);\r\n\t\t\tmodalRef.componentInstance.options = options;\r\n\t\t\tmodalRef.componentInstance.column = id.column;\r\n\t\t\tmodalRef.componentInstance.mode = _this.sharedColumnInfo[editor.column].ColumnVisibilityModeID == 4 ? \"super\" : \"normal\";\r\n\t\t\tmodalRef.componentInstance.requestParams = requestParams;\r\n\r\n\t\t\tmodalRef.result.then((result: any) => {\r\n\t\t\t\tif (result != null && result.id != null && result.id != state.old) {\r\n\t\t\t\t\tif (result.id != \"null\" && _this.sharedColumnInfo[editor.column].ColumnVisibilityModeID == 4 && _this.columnOptions[editor.column].getItem(result.id) == null) {\r\n\t\t\t\t\t\t_this.columnOptions[editor.column].add({ id: result.id, value: result.value, visible: false });\r\n\t\t\t\t\t}\r\n\t\t\t\t\trow[id.column] = result.id;\r\n\t\t\t\t\tstate.value = result.id;\r\n\t\t\t\t\t_this.valueChanged(state, editor);\r\n\t\t\t\t}\r\n\t\t\t\t_this.dataTable.refresh();\r\n\t\t\t}, () => {\r\n\t\t\t\t//dismissed\r\n\t\t\t\t_this.dataTable.refresh();\r\n\t\t\t\t_this.dataTable.editStop();\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet popup: any = $$(this.dataTable.getEditor().config.suggest);\r\n\t\t\tif (popup != null)\r\n\t\t\t\tpopup.getList().filter(\"visible\", true)\r\n\t\t}\r\n\t}\r\n\r\n\tprivate beforeEditStop(state, editor) {\r\n\t\tlet row = _this.dataTable.getItem(editor.row);\r\n\t\tlet colPrefix = editor.column.substr(0, editor.column.indexOf(\"@\"));\r\n\t\tlet startColName = colPrefix + \"@StartTime\";\r\n\t\tlet stopColName = colPrefix + \"@StopTime\";\r\n\t\tif (state.value != state.old) {\r\n\t\t\tif (editor.column.indexOf(\"StartTime\") != -1 && state.value != null && state.value != \"\") {\r\n\t\t\t\tlet value = _this.timeParserService.parseStartStop(state.value, \"StartTime\", true);\r\n\t\t\t\tif (value != \"Invalid Time\") {\r\n\t\t\t\t\tstate.value = value;\r\n\t\t\t\t\tif (row[stopColName] != null && row[stopColName] != \"\") {\r\n\t\t\t\t\t\t_this.calculateHours(row, colPrefix, true, false, false, state.value);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.crewTimecardDataService.alertType = \"danger\";\r\n\t\t\t\t\tthis.crewTimecardDataService.alertMsg = \"Invalid time entered: \\\"\" + state.value + \"\\\"\";\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\telse if (editor.column.indexOf(\"StopTime\") != -1 && state.value != null && state.value != \"\") {\r\n\t\t\t\tlet value = _this.timeParserService.parseStartStop(state.value, \"StopTime\", true);\r\n\t\t\t\tif (value != \"Invalid Time\") {\r\n\t\t\t\t\tstate.value = value\r\n\t\t\t\t\tif (row[startColName] != null && row[startColName] != \"\") {\r\n\t\t\t\t\t\t_this.calculateHours(row, colPrefix, false, true, false, state.value);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.crewTimecardDataService.alertType = \"danger\";\r\n\t\t\t\t\tthis.crewTimecardDataService.alertMsg = \"Invalid time entered: \\\"\" + state.value + \"\\\"\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (editor.column.indexOf(\"BreakHours\") != -1) {\r\n\t\t\t\tif (row[startColName] != null && row[startColName] != \"\") {\r\n\t\t\t\t\t_this.calculateHours(row, colPrefix, false, false, true, state.value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate afterEditStop(state, editor) {\r\n\t\tif (state.value != state.old) {\r\n\t\t\tif (this.columnOptions[editor.column] != null && this.columnOptions[editor.column].getItem(state.value) == null && this.lastUsedList != null) {\r\n\t\t\t\tfor (var i = 0; i < this.lastUsedList.length; i++) {\r\n\t\t\t\t\tif (this.lastUsedList[i].id == state.value) {\r\n\t\t\t\t\t\tthis.columnOptions[editor.column].add({ id: state.value, value: this.lastUsedList[i].value });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t//columnOptions[editor.column].add(id: state)\r\n\t\t\t};\r\n\t\t\tthis.valueChanged(state, editor);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onCheck(id, column, state) {\r\n\t\tthis.valueChanged(state, { row: id, column: column });\r\n\t}\r\n\r\n\tprivate valueChanged(state, editor) {\r\n\t\tlet row = this.dataTable.getItem(editor.row);\r\n\t\t//if amount row, clear certain fields\r\n\t\tif (editor.column == \"EarnCode\" || editor.column == \"PayType\") {\r\n\t\t\tif (this.isAmountRow(editor.row)) {\r\n\t\t\t\tthis.gridData.columns.forEach((column) => {\r\n\t\t\t\t\tlet columnName = column.id;\r\n\t\t\t\t\tif (columnName.indexOf(\"@StartTime\") > -1 || columnName.indexOf(\"@StopTime\") > -1 || columnName.indexOf(\"@BreakHours\") > -1) {\r\n\t\t\t\t\t\trow[columnName] = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (editor.column == \"PostDate\" && row[\"PostDate\"] != null && typeof row[\"PostDate\"].getMonth == 'function') {\r\n\t\t\tlet yyyy = row[\"PostDate\"].getFullYear().toString();\r\n\t\t\tlet mm = (row[\"PostDate\"].getMonth() + 1).toString();\r\n\t\t\tlet dd = row[\"PostDate\"].getDate().toString();\r\n\t\t\trow[\"PostDate\"] = yyyy + \"/\" + mm + \"/\" + dd;\r\n\t\t}\r\n\t\tthis.crewTimecardDataService.unsavedChanges = true;\r\n\r\n\t\t//Process change of line type\r\n\t\t//remove cell css\r\n\t\tif (this.crewTimecardDataService.usageMode != \"PR\" && this.crewTimecardDataService.usageMode != \"PREQ\") {\r\n\t\t\tif (editor.column == \"Employee\") {\r\n\t\t\t\tthis.refreshEmployeeList();\r\n\t\t\t}\r\n\t\t\tif (editor.column == \"EarnCode\" || editor.column == \"PayType\") {\r\n\t\t\t\tthis.applyAmountCSS(row.id);\r\n\t\t\t}\r\n\t\t\tif (editor.column == \"Type\") {\r\n\t\t\t\tthis.gridData.columns.forEach((val) => {\r\n\t\t\t\t\tif (val.id != \"Sub Total\")\r\n\t\t\t\t\t\tthis.dataTable.removeCellCss(row.id, val.id, \"cellReadOnly\");\r\n\t\t\t\t});\r\n\t\t\t\tthis.applyLineTypeCSS(row.id);\r\n\t\t\t}\r\n\t\t\tif (this.gridData.rowPropertyNames.indexOf(editor.column) != -1) {\r\n\t\t\t\trow.headerModified = true;\r\n\r\n\t\t\t\t//Do dependent stuff here\r\n\t\t\t\tif (editor.column == \"Employee\" || editor.column == \"Type\") {\r\n\t\t\t\t\t//EMPLOYEE REBIND LOGIC RIGHT HERE\r\n\t\t\t\t\tthis.rebindingEmployee = true;\r\n\t\t\t\t\tlet isTypeUsed = row.Type != null && row.Type != \"\" && row.Type.substr(0, row.Type.indexOf(\"@\")) != \"\";\r\n\t\t\t\t\tlet employeeDependentColumns = this.sharedColumnInfo[\"Employee\"].DependentColumns != null ? this.sharedColumnInfo[\"Employee\"].DependentColumns.split(\",\") : [];\r\n\t\t\t\t\tthis.gridData.rowPropertyNames.forEach((rowProperty) => {\r\n\t\t\t\t\t\tif (rowProperty != \"Employee\" && this.sharedColumnInfo[rowProperty] != null && this.sharedColumnInfo[rowProperty].IsCombo == 1) {\r\n\t\t\t\t\t\t\tif (employeeDependentColumns.indexOf(rowProperty) > -1 && (!isTypeUsed || !this.isCellReadOnly(row, rowProperty))) {\r\n\t\t\t\t\t\t\t\tthis.dependentQueue.push(rowProperty);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.sharedColumnInfo[editor.column].DependentColumns != null && this.sharedColumnInfo[editor.column].DependentColumns != \"\") {\r\n\t\t\t\t\tlet dependentColumns = this.sharedColumnInfo[editor.column].DependentColumns.split(\",\");\r\n\t\t\t\t\tdependentColumns.forEach((col) => {\r\n\t\t\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(col) > -1) {\r\n\t\t\t\t\t\t\tlet isTypeUsed = row.Type != null && row.Type != \"\" && row.Type.substr(0, row.Type.indexOf(\"@\")) != \"\";\r\n\t\t\t\t\t\t\tif (!isTypeUsed || !this.isCellReadOnly(row, col)) {\r\n\t\t\t\t\t\t\t\tthis.dependentQueue.push(col);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (col == \"Equipment\" && editor.column == \"WO\" && this.sharedColumnInfo[\"Equipment\"].IsAutoSelectFirstValue)\r\n\t\t\t\t\t\t\tthis.equipmentAutoSelectRebind = true;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t\tif (this.dependentQueue.length > 0) {\r\n\t\t\t\t\tthis.getCellValues(this.dependentQueue[0], row, true);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (this.rebindingEmployee) {\r\n\t\t\t\t\t\tlet employee = \"\";\r\n\t\t\t\t\t\tif (row[\"Employee\"] != null && row[\"Employee\"] != \"\")\r\n\t\t\t\t\t\t\temployee = row[\"Employee\"].substr(0, row[\"Employee\"].indexOf(\"@\"));\r\n\t\t\t\t\t\tthis.rebindingEmployee = false;\r\n\t\t\t\t\t\tif (this.columnInfoByEmployee[employee] == null) {\r\n\t\t\t\t\t\t\tthis.getEmployeeColumnInfo(employee, row.id, false, false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.bindDefaultValues(row.id);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this.gridData.rowPropertyNames.indexOf(editor.column) != -1) {\r\n\t\t\t\trow.headerModified = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//save display value under ___@Value\r\n\t\tif (this.sharedColumnInfo[editor.column] != null && this.sharedColumnInfo[editor.column].IsCombo === 1) {\r\n\t\t\tlet optionItem = this.columnOptions[editor.column].getItem(state.value);\r\n\t\t\tif (optionItem != null) {\r\n\t\t\t\trow[editor.column + \"___@Value\"] = optionItem.value;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\trow[editor.column + \"___@Value\"] = \"\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onHeaderClick(id) {\r\n\t\tif (this.dataTable.getColumnConfig(id.column).sort) {\r\n\t\t\tif (id.column != this.tableSort) {\r\n\t\t\t\tthis.tableSort = id.column;\r\n\t\t\t\tthis.tableReverse = false;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.tableReverse = !this.tableReverse;\r\n\t\t\t}\r\n\t\t\tsessionStorage.setItem(\"CrewTableSort\", this.tableSort);\r\n\t\t\tsessionStorage.setItem(\"CrewTableReverse\", this.tableReverse.toString());\r\n\t\t}\r\n }\r\n\r\n\t//Webix button functions\r\n\tprivate deleteRow(e, id, trg) {\r\n\t\tthis.dataTable.editStop();\r\n\t\tlet row = this.dataTable.getItem(id);\r\n\t\tif (row.IsReadOnly != \"1\") {\r\n\t\t\tlet promises = [];\r\n\t\t\tif (row.isNewRow != true) {\r\n\t\t\t\tlet columnCollection = this.crewTimecardManagerService.getRow(id);\r\n\t\t\t\tlet cellsToDelete = [];\r\n\r\n\t\t\t\t$.each(this.gridData.columnMap, (resolvedColumnName, columnMetadata) => {\r\n\t\t\t\t\tlet keyID = this.crewTimecardManagerService.getColumnPropertyValue(columnCollection, resolvedColumnName, \"@KeyID\");\r\n\t\t\t\t\tcellsToDelete.push(keyID);\r\n\t\t\t\t});\r\n\t\t\t\tlet cellIDString = cellsToDelete.join(\",\");\r\n\t\t\t\tlet errors = 0;\r\n\t\t\t\tthis.crewTimecardGridService.deleteTimecardRow(cellIDString).then((response: any) => {\r\n\t\t\t\t\tif (response.success) {\r\n\t\t\t\t\t\tthis.dataTable.remove(id);\r\n\t\t\t\t\t\tthis.crewTimecardDataService.rowCount = this.dataTable.count();\r\n\t\t\t\t\t\tthis.crewTimecardDataService.unsubmittedRows--;\r\n\r\n\t\t\t\t\t\t//set time worked read only based on unsubmitted rows\r\n\t\t\t\t\t\tif (this.crewTimecardDataService.payPeriod.IsTimeWorkedEnabled) {\r\n\t\t\t\t\t\t\tthis.crewTimecardDataService.timeWorked.setReadOnly(this.crewTimecardDataService.unsubmittedRows < this.crewTimecardDataService.rowCount);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.dataTable.remove(id);\r\n\t\t\t\tthis.crewTimecardDataService.rowCount = this.dataTable.count();\r\n\t\t\t\tthis.crewTimecardDataService.unsubmittedRows--;\r\n\r\n\t\t\t\t//set time worked read only based on unsubmitted rows\r\n\t\t\t\tif (this.crewTimecardDataService.payPeriod.IsTimeWorkedEnabled) {\r\n\t\t\t\t\tthis.crewTimecardDataService.timeWorked.setReadOnly(this.crewTimecardDataService.unsubmittedRows < this.crewTimecardDataService.rowCount);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tthis.crewTimecardDataService.rowDeleted = true;\r\n\t\treturn false;\r\n }\r\n\r\n\tprivate approveRow(e, id, trg) {\r\n\t\tlet row = this.dataTable.getItem(id);\r\n\t\t//Handle approval logic here\r\n\t\tlet promises = [];\r\n\t\tlet keyID = this.crewTimecardManagerService.getRowID(id);\r\n\r\n\t\tif (keyID != null) {\r\n\t\t\tlet modalMessage;\r\n\t\t\tlet employee = row[\"Employee___@Value\"];\r\n\t\t\tif (employee == null)\r\n\t\t\t\tmodalMessage = \"

Are you sure you want to approve this employee's timecard entries?

\";\r\n\t\t\telse\r\n\t\t\t\tmodalMessage = \"

Are you sure you want to approve the timecard entries for \" + employee + \"?

\";\r\n\r\n\t\t\tconst initialState = {\r\n\t\t\t\tmodalData: {\r\n\t\t\t\t\tmodalTitle: \"Approve Timecard Warning\",\r\n\t\t\t\t\tmodalMessage: modalMessage,\r\n\t\t\t\t\tmodalAction: \"Approve\"\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tlet modalRef = this.bsModalService.show(WarningModalComponent, { initialState, ignoreBackdropClick: true, keyboard: true });\r\n\r\n\t\t\tmodalRef.onHide.subscribe((response: any) => {\r\n\t\t\t\tvar result = modalRef.content.userAction;\r\n\t\t\t\tif (result == \"Approve\") {\r\n\t\t\t\t\tthis.crewTimecardDataService.timecardLoaded = false;\r\n\t\t\t\t\tthis.crewTimecardGridService.approveCrewTimecard(this.crewTimecardDataService.template.CrewTemplateID, this.crewTimecardDataService.payPeriod.PRPCKeyID, keyID, moment().format(\"MM/DD/YYYY h:mm:ss a\")).then((response) => {\r\n\t\t\t\t\t\t//TODO trigger approved timecards changed procedure\r\n\t\t\t\t\t\tthis.loadTimecard(\"crewTimecardGrid\");\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t//Note - this is called from the index component\r\n\tapproveAllRows() {\r\n\t\tlet promises = [];\r\n\t\tlet previousEmployee = null;\r\n\t\tlet i = 0;\r\n\t\tlet keyIDs = '';\r\n\t\tthis.dataTable.eachRow((rowID) => {\r\n\t\t\tlet rowValues = this.dataTable.getItem(rowID);\r\n\t\t\tif (rowValues.IsSubmitted == \"1\" && rowValues.IsReadOnly != \"1\" && rowValues.IsApproved == \"0\") {\r\n\t\t\t\tlet keyID = this.crewTimecardManagerService.getRowID(rowID);\r\n\t\t\t\tlet currentEmployee = rowValues.Employee;\r\n\t\t\t\tcurrentEmployee = currentEmployee.substr(0, currentEmployee.indexOf(\"@\"));\r\n\t\t\t\tif (keyID != null && previousEmployee != currentEmployee) {\r\n\t\t\t\t\ti++;\r\n\t\t\t\t\tkeyIDs += keyID + ',';\r\n\t\t\t\t\tif (i % 50 == 0) {\r\n\t\t\t\t\t\tpromises.push(\r\n\t\t\t\t\t\t\tthis.crewTimecardGridService.approveCrewTimecard(this.crewTimecardDataService.template.CrewTemplateID, this.crewTimecardDataService.payPeriod.PRPCKeyID, null, moment().format(\"MM/DD/YYYY h:mm:ss a\"), keyIDs)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tkeyIDs = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tpreviousEmployee = currentEmployee;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (keyIDs != '') {\r\n\t\t\tpromises.push(this.crewTimecardGridService.approveCrewTimecard(this.crewTimecardDataService.template.CrewTemplateID, this.crewTimecardDataService.payPeriod.PRPCKeyID, null, moment().format(\"MM/DD/YYYY h:mm:ss a\"), keyIDs));\r\n\t\t}\r\n\r\n\t\tforkJoin(promises).subscribe({\r\n\t\t\tcomplete: () => {\r\n\t\t\t\tthis.loadTimecard(this.crewTimecardID);\r\n\t\t\t\tthis.eventService.broadcast('approvedTimecardsChanged');\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate rejectRow(e, id, trg) {\r\n\t\t//TODO Approval Implement\r\n\t}\r\n\r\n\tprivate deleteZeroRow(e, id, trg) {\r\n\t\t//TODO Implement\r\n\t}\r\n\r\n\tprivate jobApprovalApprove(e, id, trg) {\r\n\t\t//TODO - Approval Implement\r\n\t}\r\n\r\n\tprivate jobApprovalUndo(e, id, trg) {\r\n\t\t//TODO - Approval Implement\r\n\t}\r\n\r\n\tprivate splitRow(e, id, trg) {\r\n\t\t//TODO - Approval Implement\r\n\t}\r\n\r\n\t//Note - renamed from \"bulk employee add\" to reduce confusion from the other bulk add\r\n\tprivate copyRow(e, id, trg) {\r\n\t\tlet row = this.dataTable.getItem(id);\r\n\t\tif (this.crewTimecardDataService.payPeriod.EnableCrews && this.crewTimecardDataService.crewsList.length == 0) {\r\n\t\t\tthis.getCrewsList(row);\r\n\t\t}\r\n\t\telse if (this.bulkEmployeeList.length == 0) {\r\n\t\t\tthis.getBulkEmployeeList(row);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.openCopyRowModal(row);\r\n\t\t}\r\n\t}\r\n\r\n\r\n //methods for getting additional data\r\n\tprivate getCellValues(columnName, row, isDependent) {\r\n\t\t//check if column is a super dropdown\r\n\t\tif (this.sharedColumnInfo[columnName].ColumnVisibilityModeID == 4 && (columnName != \"Employee\") && (columnName != \"Equipment\" || !this.equipmentAutoSelectRebind)) {\r\n\t\t\tif (columnName == \"Equipment\")\r\n\t\t\t\tthis.equipmentAutoSelectRebind = false;\r\n\t\t\tlet employee = \"\";\r\n\t\t\tif (row[\"Employee\"] != null && row[\"Employee\"] != \"\")\r\n\t\t\t\temployee = row[\"Employee\"].substr(0, row[\"Employee\"].indexOf(\"@\"));\r\n\r\n\t\t\tif (isDependent) {\r\n\t\t\t\t//if column is a dependent, clear the field and rebind it's dependents\r\n\t\t\t\trow[columnName] = \"\";\r\n\t\t\t\trow[columnName + '___@Value'] = \"\";\r\n\t\t\t\tif (this.sharedColumnInfo[columnName].DependentColumns != null) {\r\n\t\t\t\t\tlet dependentColumns = this.sharedColumnInfo[columnName].DependentColumns.split(\",\");\r\n\t\t\t\t\t$.each(dependentColumns, (colKey, col) => {\r\n\t\t\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(col) > -1) {\r\n\t\t\t\t\t\t\tlet isTypeUsed = row.Type != null && row.Type != \"\" && row.Type.substr(0, row.Type.indexOf(\"@\")) != \"\";\r\n\t\t\t\t\t\t\tif (!isTypeUsed || !this.isCellReadOnly(row, col)) {\r\n\t\t\t\t\t\t\t\tthis.dependentQueue.push(col);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.dependentQueue.shift();\r\n\t\t\tif (this.dependentQueue.length > 0) {\r\n\t\t\t\tthis.getCellValues(this.dependentQueue[0], row, true);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this.rebindingEmployee) {\r\n\t\t\t\t\tthis.rebindingEmployee = false;\r\n\t\t\t\t\tif (this.columnInfoByEmployee[employee] == null) {\r\n\t\t\t\t\t\tthis.getEmployeeColumnInfo(employee, row.id, null, null);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.bindDefaultValues(row.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.crewTimecardDataService.loadingValues = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tlet requestParams = this.getRequestParams(columnName, row, isDependent);\r\n\t\tlet rowData = requestParams.rowData;\r\n\t\tlet columnValuesString = requestParams.columnValuesString;\r\n\t\tif (!isDependent) {\r\n\t\t\trow[columnName + \"___RowData\"] = rowData;\r\n\t\t}\r\n\t\tthis.crewTimecardDataService.loadingValues = true;\r\n\t\t//check if values exist in secondary cache\r\n\t\tif (this.cacheByColumnValue[columnValuesString] != null && this.cacheByColumnValue[columnValuesString][columnName] != null) {\r\n\t\t\tif (this.lookupValuesCache[row.id] != null) {\r\n\t\t\t\tthis.lookupValuesCache[row.id][columnName] = this.cacheByColumnValue[columnValuesString][columnName];\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.lookupValuesCache[row.id] = {};\r\n\t\t\t\tthis.lookupValuesCache[row.id][columnName] = this.cacheByColumnValue[columnValuesString][columnName];\r\n\t\t\t}\r\n\t\t\tthis.bindPossibleValues(this.cacheByColumnValue[columnValuesString][columnName], isDependent, columnName, row);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t//get lookup values from server\r\n\t\t\tthis.crewTimecardGridService.getCellPossibleValues(rowData).then((response: any) => {\r\n\t\t\t\tlet possibleValues = response.PossibleValues;\r\n\t\t\t\tfor (let i = 0; i < possibleValues.length; i++) {\r\n\t\t\t\t\tpossibleValues[i].Value = possibleValues[i].Value.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\r\n\t\t\t\t\tpossibleValues[i].PopUpLabel = possibleValues[i].Label.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\r\n\t\t\t\t\tpossibleValues[i].Label = this.escapeHtml(possibleValues[i].Label.replace(/(\\r\\n|\\n|\\r)/gm, \"\"));\r\n\t\t\t\t}\r\n\t\t\t\tif (columnName == \"Employee\" && !this.employeeListBound) {\r\n\t\t\t\t\tlet callcount = 0;\r\n\t\t\t\t\tthis.unfilteredEmployeeList = _.cloneDeep(possibleValues);\r\n\t\t\t\t\tfor (let i = possibleValues.length - 1; i >= 0; i--) {\r\n\t\t\t\t\t\tif (this.employeesToExclude.indexOf(possibleValues[i].Value) > -1) {\r\n\t\t\t\t\t\t\tpossibleValues.splice(i, 1);\r\n\t\t\t\t\t\t\tcallcount++;\r\n\t\t\t\t\t\t\tif (callcount == this.employeesToExclude.length)\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.employeeList = _.cloneDeep(possibleValues);\r\n\t\t\t\t}\r\n\t\t\t\tif (this.cacheByColumnValue[columnValuesString] != null) {\r\n\t\t\t\t\tthis.cacheByColumnValue[columnValuesString][columnName] = possibleValues;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.cacheByColumnValue[columnValuesString] = {};\r\n\t\t\t\t\tthis.cacheByColumnValue[columnValuesString][columnName] = possibleValues;\r\n\t\t\t\t}\r\n\t\t\t\tif (this.lookupValuesCache[row.id] != null) {\r\n\t\t\t\t\tthis.lookupValuesCache[row.id][columnName] = possibleValues;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.lookupValuesCache[row.id] = {};\r\n\t\t\t\t\tthis.lookupValuesCache[row.id][columnName] = possibleValues;\r\n\t\t\t\t}\r\n\t\t\t\tthis.bindPossibleValues(possibleValues, isDependent, columnName, row);\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\r\n\t\tif (!isDependent)\r\n\t\t\treturn false;\r\n }\r\n\r\n\tprivate getEmployeeColumnInfo(employee, rowID, rebindCurrent, addrow) {\r\n\t\tlet employeeColumnInfo = {};\r\n\t\tif (this.columnInfoByEmployee[employee] == null) {\r\n\t\t\tthis.crewTimecardGridService.getTimecardColumns(null, employee, this.crewTimecardDataService.payPeriod.PRCo, this.crewTimecardDataService.payPeriod.PRGroup, null, \"C\").then((response: any) => {\r\n\t\t\t\t$.each(response, (key, val) => {\r\n\t\t\t\t\temployeeColumnInfo[val.ColumnName] = val;\r\n\t\t\t\t});\r\n\t\t\t\tthis.columnInfoByEmployee[employee] = employeeColumnInfo;\r\n\t\t\t\tif (rebindCurrent) {\r\n\t\t\t\t\tthis.currentEmployeeColumns = this.columnInfoByEmployee[employee];\r\n\t\t\t\t\tif (addrow)\r\n\t\t\t\t\t\tthis.addTimecardRow(true);\r\n\t\t\t\t}\r\n\t\t\t\tif (rowID != null) {\r\n\t\t\t\t\tthis.bindDefaultValues(rowID);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (rowID != null) {\r\n\t\t\t\tthis.bindDefaultValues(rowID);\r\n\t\t\t}\r\n\t\t}\r\n }\r\n\r\n private getEmployeeColumns() {\r\n\r\n\t}\r\n\r\n\tprivate getEmployeeLockStatus() {\r\n\t\tthis.crewTimecardGridService.getEmplLockStatus(this.crewTimecardDataService.payPeriod.HQBCKeyID, this.crewTimecardDataService.template.CrewTemplateID).then((response: any) => {\r\n\t\t\tthis.crewTimecardDataService.lockedEmployees = [];;\r\n\t\t\tfor (let i = 0; i < response.length; i++) {\r\n\t\t\t\tthis.employeeLockStatus[response[i].Employee] = response[i];\r\n\t\t\t\tthis.employeesToExclude.push(response[i].Employee.toString());\r\n\t\t\t\tif (response[i].IsLocked)\r\n\t\t\t\t\tthis.crewTimecardDataService.lockedEmployees.push(response[i]);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getRequestParams(columnName, row, isDependent) {\r\n\t\tlet rowPropArr = $.map(this.gridData.rowPropertyNames, (propName) => {\r\n\t\t\treturn {\r\n\t\t\t\tpropName: propName,\r\n\t\t\t\tpropValue: this.crewTimecardManagerService.getRowValue(row, propName),\r\n\t\t\t\tisCombo: this.sharedColumnInfo[columnName] != null && this.sharedColumnInfo[columnName].IsCombo === 1,\r\n\t\t\t\teditable: true\r\n\t\t\t}\r\n\t\t});\r\n\t\tlet valuePropPrefix = $.map(this.gridData.columnPropertyNames, (propName) => { return row[propName]; }).join('___') + '___';\r\n\t\tlet columnValuesList = valuePropPrefix.split('___');\r\n\t\tlet propsToRequest = rowPropArr\r\n\t\t\t.concat($.map(this.gridData.columnPropertyNames, (propName, propNameIndex) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpropName: propName,\r\n\t\t\t\t\tpropValue: $.inArray(propName, this.gridData.rowPropertyNames) !== -1 ? null : columnValuesList[propNameIndex],\r\n\t\t\t\t\teditable: false,\r\n\t\t\t\t\tisCombo: false\r\n\t\t\t\t};\r\n\t\t\t}))\r\n\t\t\t.concat($.map(this.gridData.valuePropertyNames, (propName) => {\r\n\t\t\t\tlet propNameAdjusted = propName.substr(1);\r\n\t\t\t\tlet propValue = row[valuePropPrefix + '@' + propNameAdjusted];\r\n\t\t\t\tif (typeof propValue === \"string\") {\r\n\t\t\t\t\tpropValue = propValue.substr(0, propValue.indexOf(\"@\"));\r\n\t\t\t\t}\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpropName: propNameAdjusted,\r\n\t\t\t\t\tpropValue: propValue,\r\n\t\t\t\t\teditable: true,\r\n\t\t\t\t\tisCombo: this.sharedColumnInfo[propNameAdjusted].IsCombo === 1\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t\tlet columnValues = $.map(propsToRequest, (columnObj, oblumnObjIndex) => {\r\n\t\t\treturn {\r\n\t\t\t\tColumnName: columnObj.propName,\r\n\t\t\t\tForm: \"PRTimeCards\",\r\n\t\t\t\tValue: columnObj.propValue,\r\n\t\t\t\tMode: columnObj.editable ? 3 : 2, // 2 is Readonly and 3 is editable\r\n\t\t\t\tIsCombo: columnObj.isCombo\r\n\t\t\t}\r\n\t\t});\r\n\t\tlet columnValuesString = JSON.stringify(columnValues);\r\n\t\tlet rowData = {\r\n\t\t\tcrewTemplateID: null,\r\n\t\t\tcolumn: columnName,\r\n\t\t\tpayPeriod: this.crewTimecardDataService.payPeriod.PRPCKeyID,\r\n\t\t\trow: {\r\n\t\t\t\tId: row.KeyID,\r\n\t\t\t\tColumnValues: columnValues\r\n\t\t\t},\r\n\t\t\tsearchString: null\r\n\t\t};\r\n\t\tif (this.crewTimecardDataService.template != null && this.crewTimecardDataService.template.CrewTemplateID != null)\r\n\t\t\trowData.crewTemplateID = this.crewTimecardDataService.template.CrewTemplateID;\r\n\t\treturn {\r\n\t\t\tcolumnValuesString: columnValuesString,\r\n\t\t\tcurrentCell: null,\r\n\t\t\temployeesToExclude: this.employeesToExclude,\r\n\t\t\trowData: rowData\r\n\t\t};\r\n\t}\r\n\r\n\t//operations on timecard rows and cells\r\n\taddTimecardRow(ignoreAddingRow: boolean) {\r\n\t\tif (this.isReadOnlyGridTime || this.crewTimecardDataService.readOnlyGrid)\r\n\t\t\treturn;\r\n\t\tif (!this.addingRow || ignoreAddingRow) {\r\n\t\t\tthis.addingRow = true;\r\n\t\t\tlet firstRow = this.dataTable.getItem(this.dataTable.getFirstId());\r\n\t\t\tlet previousEmployee = null;\r\n\t\t\tif (firstRow != null && firstRow.Employee != null) {\r\n\t\t\t\tpreviousEmployee = firstRow.Employee.substr(0, firstRow.Employee.indexOf(\"@\"));\r\n\t\t\t\tif (this.employeesToExclude.indexOf(previousEmployee) > -1) {\r\n\t\t\t\t\tpreviousEmployee = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (firstRow == null || previousEmployee == null || firstRow.Employee == \"\") {\r\n\t\t\t\tthis.crewTimecardDataService.newRowID++;\r\n\t\t\t\tthis.largestSortID++;\r\n\t\t\t\tlet newRow = { isNewRow: true, KeyID: \"-1\", id: this.crewTimecardDataService.newRowID, Type: null, Employee: null };\r\n\t\t\t\t$.each(this.dataTable.config.columns, (loopGridColumnIndex, loopGridColumn) => {\r\n\t\t\t\t\tif (loopGridColumn.id == \"Sub Total\") {\r\n\t\t\t\t\t\t/*newRow[loopGridColumn.id] = \"=sumHours(\" + this.crewTimecardDataService.newRowID + \")\";*/\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tnewRow[loopGridColumn.id] = \"\";\r\n\r\n\r\n\t\t\t\t});\r\n\t\t\t\t//Add Column Property Values\r\n\t\t\t\tif (this.firstRowCopy != null) {\r\n\t\t\t\t\t$.each(this.gridData.columnPropertyNames, (key, val) => {\r\n\t\t\t\t\t\tnewRow[val] = this.firstRowCopy[val];\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t//handle Type\r\n\t\t\t\tif (this.crewTimecardDataService.type != \"all\") {\r\n\t\t\t\t\tnewRow.Type = this.crewTimecardDataService.type + \"@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.gridData.rowPropertyNames.indexOf(\"Type\") > -1) {\r\n\t\t\t\t\tlet newVal = \"J@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\tlet newLabel = \"J - Job\";\r\n\t\t\t\t\tif (this.columnOptions[\"Type\"].getItem(newVal) == null) {\r\n\t\t\t\t\t\tthis.columnOptions[\"Type\"].add({ id: newVal, value: newLabel, visible: true });\r\n\t\t\t\t\t}\r\n\t\t\t\t\tnewRow.Type = newVal;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//If a single employee is selected, add row will automatically select the first employee\r\n\t\t\t\tif (this.crewTimecardDataService.selectedEmployee != null && this.crewTimecardDataService.selectedEmployee != \"all\") {\r\n\t\t\t\t\tlet newVal = this.crewTimecardDataService.selectedEmployee + \"@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\tlet newLabel;\r\n\t\t\t\t\tfor (let i = 0; i < this.crewTimecardDataService.employees.length; i++) {\r\n\t\t\t\t\t\tif (this.crewTimecardDataService.employees[i].Value == this.crewTimecardDataService.selectedEmployee) {\r\n\t\t\t\t\t\t\tnewLabel = this.crewTimecardDataService.employees[i].Label;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.columnOptions[\"Employee\"].add({ id: newVal, value: newLabel, visible: true });\r\n\t\t\t\t\tnewRow.Employee = newVal;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(\"udSort\") > -1) {\r\n\t\t\t\t\tnewRow[\"udSort\"] = this.largestSortID;\r\n\t\t\t\t\tnewRow[\"udSort___@Value\"] = this.largestSortID;\r\n\t\t\t\t}\r\n\t\t\t\tif (this.firstRowCopy == null) {\r\n\t\t\t\t\tthis.firstRowCopy = _.cloneDeep(newRow);\r\n\t\t\t\t}\r\n\t\t\t\tthis.dataTable.add(newRow, 0);\r\n\r\n\t\t\t\tif (newRow.Type != null && newRow.Type != \"\")\r\n\t\t\t\t\tthis.applyLineTypeCSS(newRow.id);\r\n\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(\"EarnCode\") > -1 || this.gridData.rowPropertyNames.indexOf(\"PayType\") > -1) {\r\n\t\t\t\t\tthis.applyAmountCSS(newRow.id);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.dataTable.addCellCss(newRow.id.toString(), \"Sub Total\", \"cellReadOnly\");\r\n\t\t\t\t//dataTable.editCell(newRow.id, dataTable.config.columns[0].id, false, true);\r\n\t\t\t\tthis.crewTimecardDataService.rowCount = this.dataTable.count();\r\n\t\t\t\tthis.crewTimecardDataService.unsubmittedRows++;\r\n\r\n\t\t\t\t//set time worked read only based on unsubmitted rows\r\n\t\t\t\tif (this.crewTimecardDataService.payPeriod.IsTimeWorkedEnabled) {\r\n\t\t\t\t\tthis.crewTimecardDataService.timeWorked.setReadOnly(this.crewTimecardDataService.unsubmittedRows < this.crewTimecardDataService.rowCount);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.addingRow = false;\r\n\t\t\t\treturn newRow;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (this.currentEmployeeColumns == null || previousEmployee != this.lastRequestedEmployeeDefault) {\r\n\t\t\t\t\tthis.lastRequestedEmployeeDefault = previousEmployee;\r\n\t\t\t\t\t//this.getEmployeeColumnInfo(previousEmployee, this.crewTimecardDataService.payPeriod.PRCo, true);\r\n\t\t\t\t\tif (this.columnInfoByEmployee[previousEmployee] == null) {\r\n\t\t\t\t\t\tthis.getEmployeeColumnInfo(previousEmployee, null, true, true)\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.currentEmployeeColumns = this.columnInfoByEmployee[previousEmployee];\r\n\t\t\t\t\t\tthis.addTimecardRow(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.crewTimecardDataService.newRowID++;\r\n\t\t\t\t\tthis.largestSortID++;\r\n\t\t\t\t\tlet newRow = { isNewRow: true, KeyID: \"-1\", id: this.crewTimecardDataService.newRowID, Type: null, Employee: null };\r\n\t\t\t\t\tif (this.crewTimecardDataService.type != \"all\") {\r\n\t\t\t\t\t\tnewRow.Type = this.crewTimecardDataService.type + \"@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$.each(this.dataTable.config.columns, (loopGridColumnIndex, loopGridColumn) => {\r\n\t\t\t\t\t\tlet columnName = loopGridColumn.id.substr(loopGridColumn.id.indexOf(\"@\") + 1);\r\n\t\t\t\t\t\tif (loopGridColumn.id == \"Sub Total\") {\r\n\t\t\t\t\t\t\t/*newRow[loopGridColumn.id] = \"=sumHours(\" + this.crewTimecardDataService.newRowID + \")\";*/\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (this.currentEmployeeColumns[columnName] == null) {\r\n\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = \"\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t//New line types\r\n\t\t\t\t\t\t\t//1: Blank value\r\n\t\t\t\t\t\t\t//2: Previous value\r\n\t\t\t\t\t\t\t//3: Default value\r\n\t\t\t\t\t\t\tif (columnName == \"Employee\" && this.crewTimecardDataService.selectedEmployee != null && this.crewTimecardDataService.selectedEmployee != \"all\") {\r\n\t\t\t\t\t\t\t\tlet prevVal = firstRow[\"Employee\"].substr(0, firstRow[loopGridColumn.id].indexOf(\"@\"));\r\n\t\t\t\t\t\t\t\tif (prevVal != null && prevVal != \"null\" && prevVal != \"\") {\r\n\t\t\t\t\t\t\t\t\tlet newVal = prevVal + \"@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t\t\t\t\tlet newLabel = this.columnOptions[\"Employee\"].getItem(firstRow[loopGridColumn.id]).value;\r\n\t\t\t\t\t\t\t\t\tif (this.columnOptions[\"Employee\"].getItem(newVal) == null) {\r\n\t\t\t\t\t\t\t\t\t\tthis.columnOptions[\"Employee\"].add({ id: newVal, value: newLabel, visible: true });\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tnewRow[\"Employee\"] = newVal;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tnewRow[\"Employee\"] = \"\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if (columnName == \"Type\") {\r\n\t\t\t\t\t\t\t\tif (this.crewTimecardDataService.type == \"all\") {\r\n\t\t\t\t\t\t\t\t\tswitch (this.currentEmployeeColumns[columnName].NewLineTypeID) {\r\n\t\t\t\t\t\t\t\t\t\tcase 1:\r\n\t\t\t\t\t\t\t\t\t\t\tlet newVal = \"J@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t\t\t\t\t\t\tlet newLabel = \"J - Job\";\r\n\t\t\t\t\t\t\t\t\t\t\tif (this.columnOptions[columnName].getItem(newVal) == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis.columnOptions[columnName].add({ id: newVal, value: newLabel, visible: true });\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tnewRow.Type = newVal;\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tcase 2:\r\n\t\t\t\t\t\t\t\t\t\t\tif (firstRow.Type != null && firstRow.Type != \"\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tlet prevVal = firstRow.Type.substr(0, firstRow.Type.indexOf(\"@\"));\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (prevVal != null && prevVal != \"null\" && prevVal != \"\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet newVal = prevVal + \"@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet newLabel = this.columnOptions[columnName].getItem(firstRow[loopGridColumn.id]).value;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.columnOptions[columnName].getItem(newVal) == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.columnOptions[columnName].add({ id: newVal, value: newLabel, visible: true });\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = newVal;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet newVal = \"J@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet newLabel = \"J - Job\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.columnOptions[columnName].getItem(newVal) == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.columnOptions[columnName].add({ id: newVal, value: newLabel, visible: true });\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewRow.Type = newVal;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\tlet newVal = \"J@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t\t\t\t\t\t\t\tlet newLabel = \"J - Job\";\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (this.columnOptions[columnName].getItem(newVal) == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.columnOptions[columnName].add({ id: newVal, value: newLabel, visible: true });\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tnewRow.Type = newVal;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\tcase 3:\r\n\t\t\t\t\t\t\t\t\t\t\tif (this.currentEmployeeColumns[columnName].DefaultValue == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tlet newVal = \"J@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t\t\t\t\t\t\t\tlet newLabel = \"J - Job\";\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (this.columnOptions[columnName].getItem(newVal) == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.columnOptions[columnName].add({ id: newVal, value: newLabel, visible: true });\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tnewRow.Type = newVal;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\t//if item is a combobox, add the value to the dropdown\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (this.sharedColumnInfo[columnName].IsCombo == 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet newVal = this.currentEmployeeColumns[columnName].DefaultValue + \"@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet newLabel = this.currentEmployeeColumns[columnName].DefaultLabel;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.columnOptions[columnName].getItem(newVal) == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.columnOptions[columnName].add({ id: newVal, value: newLabel, visible: true });\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = newVal;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tlet newVal = this.crewTimecardDataService.type + \"@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t\t\t\t\tnewRow.Type = newVal;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tswitch (this.currentEmployeeColumns[columnName].NewLineTypeID) {\r\n\t\t\t\t\t\t\t\t\tcase 1:\r\n\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = \"\";\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\tcase 2:\r\n\t\t\t\t\t\t\t\t\t\tif (columnName == \"PostDate\") {\r\n\t\t\t\t\t\t\t\t\t\t\tlet dateString = firstRow[loopGridColumn.id]\r\n\t\t\t\t\t\t\t\t\t\t\tif (firstRow[loopGridColumn.id] != null && firstRow[loopGridColumn.id] != \"\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t//format date into a form that webix understands\r\n\t\t\t\t\t\t\t\t\t\t\t\tlet yyyy = firstRow[loopGridColumn.id].getFullYear().toString();\r\n\t\t\t\t\t\t\t\t\t\t\t\tlet mm = (firstRow[loopGridColumn.id].getMonth() + 1).toString();\r\n\t\t\t\t\t\t\t\t\t\t\t\tlet dd = firstRow[loopGridColumn.id].getDate().toString();\r\n\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = yyyy + \"/\" + mm + \"/\" + dd;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = null;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t//if item is a combobox, add value to the dropdown\r\n\t\t\t\t\t\t\t\t\t\t\tif (this.sharedColumnInfo[columnName].IsCombo == 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (firstRow[loopGridColumn.id] != null && firstRow[loopGridColumn.id] != \"\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet prevVal = firstRow[loopGridColumn.id].substr(0, firstRow[loopGridColumn.id].indexOf(\"@\"));\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (prevVal != null && prevVal != \"null\" && prevVal != \"\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet newVal = prevVal + \"@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet newLabel = this.columnOptions[columnName].getItem(firstRow[loopGridColumn.id]).value;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (this.columnOptions[columnName].getItem(newVal) == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.columnOptions[columnName].add({ id: newVal, value: newLabel, visible: true });\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = newVal;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id + \"___@Value\"] = firstRow[loopGridColumn.id + \"___@Value\"];\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = \"\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id + \"___@Value\"] = \"\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = \"\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id + \"___@Value\"] = \"\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = firstRow[loopGridColumn.id];\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\tcase 3:\r\n\t\t\t\t\t\t\t\t\t\tif (this.currentEmployeeColumns[columnName].DefaultValue == null) {\r\n\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = \"\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t//if item is a combobox, add the value to the dropdown\r\n\t\t\t\t\t\t\t\t\t\t\tif (this.sharedColumnInfo[columnName].IsCombo == 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tlet newVal = this.currentEmployeeColumns[columnName].DefaultValue + \"@row_\" + this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t\t\t\t\t\t\t\tlet newLabel = this.currentEmployeeColumns[columnName].DefaultLabel;\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (this.columnOptions[columnName].getItem(newVal) == null) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.columnOptions[columnName].add({ id: newVal, value: newLabel, visible: true });\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = newVal;\r\n\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id + \"___@Value\"] = newLabel;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\tnewRow[loopGridColumn.id] = this.currentEmployeeColumns[columnName].DefaultValue;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\t//Add Column Property Values\r\n\t\t\t\t\tif (this.firstRowCopy != null) {\r\n\t\t\t\t\t\t$.each(this.gridData.columnPropertyNames, (key, val) => {\r\n\t\t\t\t\t\t\tnewRow[val] = this.firstRowCopy[val];\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(\"udSort\") > -1) {\r\n\t\t\t\t\t\tnewRow[\"udSort\"] = this.largestSortID;\r\n\t\t\t\t\t\tnewRow[\"udSort___@Value\"] = this.largestSortID;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.firstRowCopy == null) {\r\n\t\t\t\t\t\tthis.firstRowCopy = _.cloneDeep(newRow);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.dataTable.add(newRow, 0);\r\n\r\n\t\t\t\t\tif (newRow.Type != null && newRow.Type != \"\")\r\n\t\t\t\t\t\tthis.applyLineTypeCSS(newRow.id);\r\n\t\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(\"EarnCode\") > -1 || this.gridData.rowPropertyNames.indexOf(\"PayType\") > -1) {\r\n\t\t\t\t\t\tthis.applyAmountCSS(newRow.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.dataTable.addCellCss(newRow.id.toString(), \"Sub Total\", \"cellReadOnly\");\r\n\t\t\t\t\tthis.crewTimecardDataService.rowCount = this.dataTable.count();\r\n\t\t\t\t\tthis.crewTimecardDataService.unsubmittedRows++;\r\n\r\n\t\t\t\t\t//set time worked read only based on unsubmitted rows\r\n\t\t\t\t\tif (this.crewTimecardDataService.payPeriod.IsTimeWorkedEnabled) {\r\n\t\t\t\t\t\tthis.crewTimecardDataService.timeWorked.setReadOnly(this.crewTimecardDataService.unsubmittedRows < this.crewTimecardDataService.rowCount);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.addingRow = false;\r\n\t\t\t\t\treturn newRow;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tbindDefaultValues(rowID) {\r\n\t\tlet row = this.dataTable.getItem(rowID);\r\n\t\tlet employee = row[\"Employee\"].substr(0, row[\"Employee\"].indexOf(\"@\"));\r\n\t\tlet employeeDependentColumns = this.sharedColumnInfo[\"Employee\"].DependentColumns != null ? this.sharedColumnInfo[\"Employee\"].DependentColumns.split(\",\") : [];\r\n\t\t$.each(this.dataTable.config.columns, (loopGridColumnIndex, loopGridColumn) => {\r\n\t\t\tlet columnName = loopGridColumn.id.substr(loopGridColumn.id.indexOf(\"@\") + 1);\r\n\t\t\tif (loopGridColumn.id != \"SubTotal\" && loopGridColumn.id != \"Employee\" && columnName != \"Hours\" && this.columnInfoByEmployee[employee][columnName] != null) {\r\n\r\n\t\t\t\tswitch (this.columnInfoByEmployee[employee][columnName].NewLineTypeID) {\r\n\t\t\t\t\tcase 3:\r\n\t\t\t\t\t\tif (this.columnInfoByEmployee[employee][columnName].DefaultValue == null) {\r\n\t\t\t\t\t\t\trow[loopGridColumn.id] = \"\";\r\n\t\t\t\t\t\t\trow[loopGridColumn.id + \"___@Value\"] = \"\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t//if item is a combobox, add the value to the dropdown\r\n\t\t\t\t\t\t\tlet cellReadOnly = false;\r\n\t\t\t\t\t\t\tif (row.Type != null && row.Type != \"\" && row.Type.substr(0, row.Type.indexOf(\"@\")) != \"\") {\r\n\t\t\t\t\t\t\t\tcellReadOnly = this.isCellReadOnly(row, columnName);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (!cellReadOnly) {\r\n\t\t\t\t\t\t\t\tif (this.sharedColumnInfo[columnName].IsCombo == 1) {\r\n\t\t\t\t\t\t\t\t\t//bind the default value to the cell and add to dropdown list if it doesn't exist\r\n\t\t\t\t\t\t\t\t\tlet newValID = this.columnInfoByEmployee[employee][columnName].DefaultValue + \"@row_\" + rowID;\r\n\t\t\t\t\t\t\t\t\tlet newValLabel = this.columnInfoByEmployee[employee][columnName].DefaultLabel;\r\n\t\t\t\t\t\t\t\t\tlet valueFound = this.columnOptions[columnName].getItem(newValID) != null;\r\n\t\t\t\t\t\t\t\t\tif (employeeDependentColumns.indexOf(columnName) > -1) {\r\n\t\t\t\t\t\t\t\t\t\t//if column is dependent of employee, verify the default value exists and perform dependent value rebinding\r\n\t\t\t\t\t\t\t\t\t\tif (valueFound) {\r\n\t\t\t\t\t\t\t\t\t\t\trow[loopGridColumn.id] = newValID;\r\n\t\t\t\t\t\t\t\t\t\t\trow[loopGridColumn.id + \"___@Value\"] = newValLabel;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\trow[loopGridColumn.id] = \"\";\r\n\t\t\t\t\t\t\t\t\t\t\trow[loopGridColumn.id + \"___@Value\"] = \"\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (this.sharedColumnInfo[columnName].DependentColumns != null) {\r\n\t\t\t\t\t\t\t\t\t\t\tlet dependentColumns = this.sharedColumnInfo[columnName].DependentColumns.split(\",\");\r\n\t\t\t\t\t\t\t\t\t\t\tlet isTypeUsed = row.Type != null && row.Type != \"\" && row.Type.substr(0, row.Type.indexOf(\"@\")) != \"\";\r\n\t\t\t\t\t\t\t\t\t\t\t$.each(dependentColumns, (dependentKey, dependentCol) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (this.dependentQueue.indexOf(dependentCol) == -1 && this.gridData.rowPropertyNames.indexOf(dependentCol) > -1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t//dependentQueue.push(dependentCol);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (!isTypeUsed || !this.isCellReadOnly(row, dependentCol)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.dependentQueue.push(dependentCol);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trow[dependentCol] = \"\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trow[dependentCol + '___@Value'] = \"\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tif (!valueFound) {\r\n\t\t\t\t\t\t\t\t\t\t\tthis.columnOptions[columnName].add({ id: newValID, value: newValLabel, visible: true });\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\trow[loopGridColumn.id] = newValID;\r\n\t\t\t\t\t\t\t\t\t\trow[loopGridColumn.id + '___@Value'] = newValLabel;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\trow[loopGridColumn.id] = this.columnInfoByEmployee[employee][columnName].DefaultValue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\trow[loopGridColumn.id] = \"\";\r\n\t\t\t\t\t\t\t\trow[loopGridColumn.id + \"___@Value\"] = \"\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (this.dependentQueue.length > 0) {\r\n\t\t\tthis.getCellValues(this.dependentQueue[0], row, true);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.dataTable.refresh();\r\n\t\t\tif (this.nextEditor != null) {\r\n\t\t\t\tthis.dataTable.editCell(this.nextEditor.row, this.nextEditor.column);\r\n\t\t\t\tthis.dataTable.editNext();\r\n\t\t\t}\r\n\t\t\tthis.nextEditor = null;\r\n\t\t\tthis.crewTimecardDataService.loadingValues = false;\r\n\t\t}\r\n\t\twebix.delay(() => {\r\n\t\t\tthis.dataTable.refresh();\r\n\t\t}, this.dataTable);\r\n\t}\r\n\r\n\tbindPossibleValues(possibleValues, isDependent, columnName, row) {\r\n\t\tlet employee = \"\";\r\n\t\tif (row[\"Employee\"] != null && row[\"Employee\"] != \"\")\r\n\t\t\temployee = row[\"Employee\"].substr(0, row[\"Employee\"].indexOf(\"@\"));\r\n\t\tif (this.columnOptions[columnName] != null) {\r\n\t\t\tthis.lastRequestedRow = row.id;\r\n\r\n\t\t\tif (this.sharedColumnInfo[columnName].ValidationDataType == \"bit\") {\r\n\t\t\t\tif (possibleValues.length > 0) {\r\n\t\t\t\t\trow[columnName] = possibleValues[0].Value;\r\n\t\t\t\t\tthis.dataTable.refresh();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t//save used values\r\n\t\t\t\tthis.savedValues = [];\r\n\t\t\t\tthis.dataTable.eachRow((currentRow) => {\r\n\r\n\t\t\t\t\tlet currentItem = this.dataTable.getItem(currentRow);\r\n\t\t\t\t\tlet listValue = this.columnOptions[columnName].getItem(currentItem[columnName]);\r\n\r\n\t\t\t\t\tif (listValue != null && this.containsObject(listValue, this.savedValues) == -1) {\r\n\t\t\t\t\t\tlistValue.visible = false;\r\n\t\t\t\t\t\tthis.savedValues.push(listValue);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t//clear out previous lookup values\r\n\t\t\t\tthis.columnOptions[columnName].clearAll();\r\n\r\n\t\t\t\t//add empty value for clearing chosen options\r\n\t\t\t\tif (columnName != \"Type\") {\r\n\t\t\t\t\tif (columnName == \"udKDSTrackerID\") {\r\n\t\t\t\t\t\tthis.columnOptions[columnName].add({ id: \"null\", value: \"Standard Timecard\", visible: true, popUpLabel: \"Standard Timecard\" });\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tthis.columnOptions[columnName].add({ id: \"null\", value: \"\", visible: true, popUpLabel: \"\" });\r\n\t\t\t\t}\r\n\t\t\t\tlet options = possibleValues.map((valueObj) => {\r\n\t\t\t\t\treturn { id: valueObj.Value + \"@row_\" + row.id, value: valueObj.Label, visible: true, popUpLabel: valueObj.PopUpLabel };\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//re-add saved values\r\n\t\t\t\tlet savedValueIds = options.map((x) => { return x.id });\r\n\t\t\t\tfor (let i = 0; i < this.savedValues.length; i++) {\r\n\t\t\t\t\tif (savedValueIds.indexOf(this.savedValues[i].id) < 0) {\r\n\t\t\t\t\t\toptions.push(this.savedValues[i]);\r\n\t\t\t\t\t\tsavedValueIds.push(this.savedValues[i].id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.columnOptions[columnName].parse(options);\r\n\t\t\t\tthis.columnOptions[columnName].refresh();\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t\tif (columnName == \"Employee\")\r\n\t\t\t\tthis.employeeListBound = true;\r\n\t\t\tif (!isDependent) {\r\n\t\t\t\tthis.dataTable.editCell(row.id, columnName, false, true);\r\n\t\t\t\tthis.processingRow = false;\r\n\t\t\t\tthis.crewTimecardDataService.loadingValues = false;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (columnName != \"PostDate\" && columnName != \"Memo\" && this.sharedColumnInfo[columnName].ValidationDataType != \"bit\") {\r\n\t\t\t\t\tlet valueFound = false;\r\n\t\t\t\t\tlet value = \"\";\r\n\t\t\t\t\tif (row[columnName] != null && row[columnName] != \"\")\r\n\t\t\t\t\t\tvalue = row[columnName].substr(0, row[columnName].indexOf(\"@\"));\r\n\t\t\t\t\t$.each(possibleValues, (key, val) => {\r\n\t\t\t\t\t\tif (value == val.Value) {\r\n\t\t\t\t\t\t\tvalueFound = true;\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (!valueFound || this.sharedColumnInfo[columnName].IsAutoSelectFirstValue) {\r\n\t\t\t\t\t\t//auto select first\r\n\t\t\t\t\t\tlet cellReadOnly = false;\r\n\t\t\t\t\t\tif (row.Type != null && row.Type != \"\" && row.Type.substr(0, row.Type.indexOf(\"@\")) != \"\") {\r\n\t\t\t\t\t\t\tcellReadOnly = this.isCellReadOnly(row, columnName);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!cellReadOnly && this.sharedColumnInfo[columnName].IsAutoSelectFirstValue && possibleValues.length > 0) {\r\n\t\t\t\t\t\t\trow[columnName] = possibleValues[0].Value + \"@row_\" + row.id;\r\n\t\t\t\t\t\t\trow[columnName + \"___@Value\"] = possibleValues[0].Label;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t//clear value if it no longer exists\r\n\t\t\t\t\t\t\trow[columnName] = \"\";\r\n\t\t\t\t\t\t\trow[columnName + \"___@Value\"] = \"\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.dataTable.refresh();\r\n\t\t\t\t\t\t//push this column's dependent columns to the dependent column stack if the value changed\r\n\t\t\t\t\t\tif (value != null && value != \"\" && this.sharedColumnInfo[columnName].DependentColumns != null && this.sharedColumnInfo[columnName].DependentColumns != \"\") {\r\n\t\t\t\t\t\t\tlet dependentColumns = this.sharedColumnInfo[columnName].DependentColumns.split(\",\");\r\n\t\t\t\t\t\t\t$.each(dependentColumns, (key, val) => {\r\n\r\n\t\t\t\t\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(val) > -1 && this.dependentQueue.indexOf(val) == -1 && this.sharedColumnInfo[val] != null && this.sharedColumnInfo[val].IsCombo == 1) {\r\n\t\t\t\t\t\t\t\t\tif (this.sharedColumnInfo[val].ColumnVisibilityModeID == 1 || this.sharedColumnInfo[val].ColumnVisibilityModeID == 3) {\r\n\t\t\t\t\t\t\t\t\t\tlet isTypeUsed = row.Type != null && row.Type != \"\" && row.Type.substr(0, row.Type.indexOf(\"@\")) != \"\";\r\n\t\t\t\t\t\t\t\t\t\tif (!isTypeUsed || !this.isCellReadOnly(row, val)) {\r\n\t\t\t\t\t\t\t\t\t\t\tthis.dependentQueue.push(val);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\trow[val] = \"\";\r\n\t\t\t\t\t\t\t\t\t\trow[val + '___@Value'] = \"\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t//remove first element from dependent queue, as it is now done binding\r\n\t\t\t\tif (this.dependentQueue.length > 0)\r\n\t\t\t\t\tthis.dependentQueue.shift();\r\n\t\t\t\tif (this.dependentQueue.length == 0) {\r\n\t\t\t\t\t//if Employee was changed, bind default values for the row\r\n\t\t\t\t\tif (this.rebindingEmployee) {\r\n\t\t\t\t\t\tthis.rebindingEmployee = false;\r\n\t\t\t\t\t\tif (this.columnInfoByEmployee[employee] == null) {\r\n\t\t\t\t\t\t\tthis.getEmployeeColumnInfo(employee, row.id, null, null);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.bindDefaultValues(row.id);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.crewTimecardDataService.loadingValues = false;\r\n\t\t\t\t\t\tif (this.nextEditor != null) {\r\n\t\t\t\t\t\t\tthis.dataTable.editCell(this.nextEditor.row, this.nextEditor.column);\r\n\t\t\t\t\t\t\tthis.dataTable.editNext();\r\n\t\t\t\t\t\t\tthis.nextEditor = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.getCellValues(this.dependentQueue[0], row, true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\t//remove first element from dependent queue, as it is now done binding\r\n\t\t\tif (isDependent) {\r\n\t\t\t\tif (this.dependentQueue.length > 0)\r\n\t\t\t\t\tthis.dependentQueue.shift();\r\n\t\t\t\tif (this.dependentQueue.length == 0) {\r\n\t\t\t\t\t//if Employee was changed, bind default values for the row\r\n\t\t\t\t\tif (this.rebindingEmployee) {\r\n\t\t\t\t\t\tthis.rebindingEmployee = false;\r\n\t\t\t\t\t\tif (this.columnInfoByEmployee[employee] == null) {\r\n\t\t\t\t\t\t\tthis.getEmployeeColumnInfo(employee, row.id, null, null);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.bindDefaultValues(row.id);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.crewTimecardDataService.loadingValues = false;\r\n\t\t\t\t\t\tif (this.nextEditor != null) {\r\n\t\t\t\t\t\t\tthis.dataTable.editNext();\r\n\t\t\t\t\t\t\t//this.dataTable.editNext(true, this.nextEditor);\r\n\t\t\t\t\t\t\tthis.nextEditor = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.getCellValues(this.dependentQueue[0], row, true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t//recalculates the hours column when Start/Stop in row is modified\r\n\tcalculateHours(row, colPrefix, isStartTime, isStopTime, isBreakHours, stateValue) {\r\n\t\tlet startTime, stopTime, breakHours = null;\r\n\t\tlet startColName = colPrefix + \"@StartTime\";\r\n\t\tlet stopColName = colPrefix + \"@StopTime\";\r\n\t\tlet time24HourMode = this.portalSettings.Timecard24Hours.ConfigValue === \"1\";\r\n\t\tif (isStartTime) {\r\n\t\t\tstartTime = (stateValue == \"00:00\" || stateValue == \"0:00\") ? Date.today() : this.timeParserService.parseTime(stateValue);\r\n\t\t}\r\n\t\telse if (isStopTime) {\r\n\t\t\tstopTime = (stateValue == \"00:00\" || stateValue == \"0:00\") ? Date.today().addDays(1) : this.timeParserService.parseTime(stateValue);\r\n\t\t}\r\n\t\telse if (isBreakHours && stateValue != null && stateValue != \"\") {\r\n\t\t\tbreakHours = parseFloat(stateValue);\r\n\t\t}\r\n\r\n\t\tif (startTime == null && !isStartTime) {\r\n\t\t\tstartTime = (row[startColName] == \"00:00\" || row[startColName] == \"0:00\") ? Date.today() : this.timeParserService.parseTime(row[startColName]);\r\n\t\t}\r\n\t\tif (stopTime == null && !isStopTime) {\r\n\t\t\tstopTime = (row[stopColName] == \"00:00\" || row[stopColName] == \"0:00\") ? Date.today().addDays(1) : this.timeParserService.parseTime(row[stopColName]);\r\n\t\t}\r\n\t\tif (breakHours == null && !isBreakHours && row[colPrefix + \"@BreakHours\"] != null && row[colPrefix + \"@BreakHours\"] != \"\") {\r\n\t\t\tbreakHours = parseFloat(row[colPrefix + \"@BreakHours\"]);\r\n\t\t}\r\n\r\n\t\tif (startTime != null && stopTime != null) {\r\n\t\t\tlet elapsedHours = (stopTime - startTime) / (1000 * 60 * 60.0);\r\n\t\t\tlet isEndTimeGreaterThanStartTime = elapsedHours > 0;\r\n\t\t\tlet dayInHours = time24HourMode ? 24 : 12;\r\n\t\t\telapsedHours = isEndTimeGreaterThanStartTime\r\n\t\t\t\t? elapsedHours\r\n\t\t\t\t: dayInHours + elapsedHours;\r\n\t\t\telapsedHours -= breakHours;\r\n\t\t\trow[colPrefix + \"@Hours\"] = parseFloat(elapsedHours.toFixed(2));\r\n\t\t}\r\n }\r\n\r\n\t//validate rows for timecard save\r\n\tvalidateRows() {\r\n\t\tlet rowProperties = this.gridData.rowPropertyNames;\r\n\t\tlet postDateRowProp = false;\r\n\t\t$.each(rowProperties, (key, val) => {\r\n\t\t\tif (val == \"PostDate\") {\r\n\t\t\t\tpostDateRowProp = true;\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\tlet startDateValueProp = false;\r\n\t\tlet stopDateValueProp = false;\r\n\t\tthis.gridData.valuePropertyNames.forEach((propertyName) => {\r\n\t\t\tif (propertyName == \"@StartTime\") {\r\n\t\t\t\tstartDateValueProp = true;\r\n\t\t\t}\r\n\t\t\tif (propertyName == \"@StopTime\") {\r\n\t\t\t\tstopDateValueProp = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\tlet rowID = this.dataTable.getFirstId();\r\n\t\tlet row = this.dataTable.getItem(rowID);\r\n\t\tlet missingEmployee = [];\r\n\t\tlet invalidRows = [];\r\n\t\tlet missingPhase = [];\r\n\t\tlet removePhase = [];\r\n\t\tlet missingDate = [];\r\n\t\tlet invalidDate = [];\r\n\t\tlet invalidTime = [];\r\n\t\tlet missingRequired = [];\r\n\t\tlet missingHours = [];\r\n\t\tlet missingRevCode = [];\r\n\t\tlet missingEquipPhase = [];\r\n\t\tlet isUsageUnitValueGroup = false;\r\n\t\t//#235105: Check value grouping is included with UsageUnits\r\n\t\tthis.dataTable.eachColumn((column) => {\r\n\t\t\tif (column.indexOf('@UsageUnits') > -1) {\r\n\t\t\t\tisUsageUnitValueGroup = true;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.dataTable.eachRow((rowID) => {\r\n\t\t\trow = this.dataTable.getItem(rowID);\r\n\t\t\t//check if new row has hours\r\n\t\t\tif (row.isNewRow && this.portalSettings.AllowZeroHourCrewLine.ConfigValue != \"1\") {\r\n\t\t\t\tlet valueFound = false;\r\n\t\t\t\t//#235105: Check whether usage unit has been added on Value group, if so then ensure any one column has filled up with value. \r\n\t\t\t\tif (isUsageUnitValueGroup) {\r\n\t\t\t\t\t$.each(row, (rowKey: string, rowValue) => {\r\n\t\t\t\t\t\tif (rowKey.indexOf(\"@Hours\") > -1 || rowKey == \"Hours\" || rowKey.indexOf(\"UsageUnits\") > -1) {\r\n\t\t\t\t\t\t\tif (rowValue != null && rowValue != 0 && rowValue != \"\") {\r\n\t\t\t\t\t\t\t\tvalueFound = true;\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t//If Usage unit is not in Value group, ensure that hours has been filled up.\r\n\t\t\t\telse {\r\n\t\t\t\t\t$.each(row, (rowKey: string, rowValue) => {\r\n\t\t\t\t\t\tif (rowKey.indexOf(\"@Hours\") > -1 || rowKey == \"Hours\") {\r\n\t\t\t\t\t\t\tif (rowValue != null && rowValue != 0 && rowValue != \"\") {\r\n\t\t\t\t\t\t\t\tvalueFound = true;\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!valueFound) {\r\n\t\t\t\t\tmissingHours.push(rowID);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tlet valueFound = false;\r\n\t\t\t\t//#235105: Check whether usage unit has been added on Value group, if so then ensure any one column has filled up with value. \r\n\t\t\t\tif (isUsageUnitValueGroup) {\r\n\t\t\t\t\t$.each(row, (rowKey: string, rowValue) => {\r\n\t\t\t\t\t\tif (rowKey.indexOf(\"@Hours\") > -1 || rowKey == \"Hours\" || rowKey.indexOf(\"UsageUnits\") > -1) {\r\n\t\t\t\t\t\t\tif (rowValue != null && rowValue != \"\") {\r\n\t\t\t\t\t\t\t\tvalueFound = true;\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t//If Usage unit is not in Value group, ensure that hours has been filled up.\r\n\t\t\t\telse {\r\n\t\t\t\t\t$.each(row, (rowKey: string, rowValue) => {\r\n\t\t\t\t\t\tif (rowKey.indexOf(\"@Hours\") > -1 || rowKey == \"Hours\") {\r\n\t\t\t\t\t\t\tif (rowValue != null && rowValue != \"\") {\r\n\t\t\t\t\t\t\t\tvalueFound = true;\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tif (!valueFound) {\r\n\t\t\t\t\tmissingHours.push(rowID);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//check Employee\r\n\t\t\tif (row[\"Employee\"] == null || row[\"Employee\"].substr(0, row[\"Employee\"].indexOf(\"@\")) == \"\") {\r\n\t\t\t\tmissingEmployee.push(rowID);\r\n\t\t\t}\r\n\t\t\t//check that Phase exists if Job exists\r\n\t\t\tif ((row[\"Job\"] != null && row[\"Job\"].substr(0, row[\"Job\"].indexOf(\"@\")) != \"\" && row[\"Job\"] != \"null\") ||\r\n\t\t\t\t(row[\"JCCoJobCombined\"] != null && row[\"JCCoJobCombined\"].substr(0, row[\"JCCoJobCombined\"].indexOf(\"@\")) != \"\" && row[\"JCCoJobCombined\"] != \"null\")) {\r\n\t\t\t\tlet valid = false;\r\n\t\t\t\tif (row[\"Type\"] == null || row[\"Type\"] == \"\" || row[\"Type\"].substr(0, row[\"Type\"].indexOf(\"@\")) == \"J\") {\r\n\t\t\t\t\tif (row[\"Phase\"] == null || row[\"Phase\"].substr(0, row[\"Phase\"].indexOf(\"@\")) == \"\" || row[\"Phase\"] == \"null\") {\r\n\t\t\t\t\t\tmissingPhase.push(rowID);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if (row[\"Type\"].substr(0, row[\"Type\"].indexOf(\"@\")) == \"M\") {\r\n\t\t\t\t\t//if line is mechanic, make sure there is no phase\r\n\t\t\t\t\tif (row[\"Phase\"] == null || row[\"Phase\"].substr(0, row[\"Phase\"].indexOf(\"@\")) == \"\" || row[\"Phase\"] == \"null\") {\r\n\t\t\t\t\t\t//all good\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tremovePhase.push(rowID);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t//check that RevCode or EquipPhase exists if Equipment Exists\r\n\t\t\tif (row[\"Equipment\"] != null && row[\"Equipment\"].substr(0, row[\"Equipment\"].indexOf(\"@\")) != \"\" && row[\"Equipment\"] != \"null\") {\r\n\t\t\t\tlet valid = false;\r\n\t\t\t\tif (this.sharedColumnInfo[\"RevCode\"] != null && this.sharedColumnInfo[\"RevCode\"].ColumnVisibilityModeID != 1 && !this.isCellReadOnly(row, \"RevCode\") && (row[\"RevCode\"] == null || row[\"RevCode\"].substr(0, row[\"RevCode\"].indexOf(\"@\")) == \"\" || row[\"RevCode\"] == \"null\")) {\r\n\t\t\t\t\tmissingRevCode.push(rowID);\r\n\t\t\t\t}\r\n\t\t\t\tif (this.sharedColumnInfo[\"EquipPhase\"] != null && this.sharedColumnInfo[\"EquipPhase\"].ColumnVisibilityModeID != 1 && !this.isCellReadOnly(row, \"EquipPhase\") && (row[\"EquipPhase\"] == null || row[\"EquipPhase\"].substr(0, row[\"EquipPhase\"].indexOf(\"@\")) == \"\" || row[\"EquipPhase\"] == \"null\")) {\r\n\t\t\t\t\tmissingEquipPhase.push(rowID);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet timeValid = true;\r\n\t\t\t//check Start/Stop times for invalid characters\r\n\t\t\tif (row[\"StartTime\"] != null) {\r\n\t\t\t\tlet timeValue = _this.timeParserService.parseStartStop(row[\"StartTime\"], \"StartTime\", true);\r\n\t\t\t\t\r\n\t\t\t\tif (timeValue == \"Invalid Time\") {\r\n\t\t\t\t\tinvalidTime.push(rowID);\r\n\t\t\t\t\ttimeValid = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (timeValid && row[\"StopTime\"] != null) {\r\n\t\t\t\tlet timeValue = _this.timeParserService.parseStartStop(row[\"StopTime\"], \"StopTime\", true);\r\n\r\n\t\t\t\tif (timeValue == \"Invalid Time\") {\r\n\t\t\t\t\tinvalidTime.push(rowID);\r\n\t\t\t\t\ttimeValid = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t//check Start/Stop if it is a value property\r\n\t\t\tif (startDateValueProp) {\r\n\t\t\t\t$.each(row, (rowKey: string, rowVal) => {\r\n\t\t\t\t\tif (timeValid && rowKey.includes(\"StartTime\")) {\r\n\t\t\t\t\t\tlet timeValue = _this.timeParserService.parseStartStop(rowVal, \"StartTime\", true);\r\n\t\t\t\t\t\tif (timeValue == \"Invalid Time\") {\r\n\t\t\t\t\t\t\tinvalidTime.push(rowID);\r\n\t\t\t\t\t\t\ttimeValid = false;\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\telse if (timeValid && stopDateValueProp) {\r\n\t\t\t\t$.each(row, (rowKey: string, rowVal) => {\r\n\t\t\t\t\tif (timeValid && rowKey.includes(\"StopTime\")) {\r\n\t\t\t\t\t\tlet timeValue = _this.timeParserService.parseStartStop(rowVal, \"StopDate\", true);\r\n\t\t\t\t\t\tif (timeValue == \"Invalid Time\") {\r\n\t\t\t\t\t\t\tinvalidTime.push(rowID);\r\n\t\t\t\t\t\t\ttimeValid = false;\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\t//check date\r\n\t\t\tif (postDateRowProp) {\r\n\t\t\t\tif (row[\"PostDate\"] == \"\") {\r\n\t\t\t\t\tmissingDate.push(rowID);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t//validate date is within payperiod\r\n\t\t\t\t\tlet date = moment(Date.parse(row[\"PostDate\"]));\r\n\t\t\t\t\tif (date.isBefore(this.crewTimecardDataService.payPeriod.StartDateMoment, 'day') || date.isAfter(this.crewTimecardDataService.payPeriod.EndDateMoment, 'day')) {\r\n\t\t\t\t\t\tinvalidDate.push(rowID);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//check required fields are filled in\r\n\t\t\trowProperties.forEach((propertyName) => {\r\n\t\t\t\tif (propertyName != \"PostDate\") {\r\n\t\t\t\t\tlet cellValue = null;\r\n\t\t\t\t\tif (typeof row[propertyName] === 'string') {\r\n\t\t\t\t\t\tlet index = row[propertyName].indexOf(\"@\");\r\n\t\t\t\t\t\tcellValue = index > -1 ? row[propertyName].substr(0, index) : row[propertyName];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tcellValue = row[propertyName];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (row.Type != null && row.Type != \"\") {\r\n\t\t\t\t\t\tlet type = row.Type.substr(0, row.Type.indexOf(\"@\"));\r\n\t\t\t\t\t\tif (this.crewTimecardDataService.columnInfoByType[type] != null && this.crewTimecardDataService.columnInfoByType[type][propertyName] != null && propertyName != \"PostDate\" && this.crewTimecardDataService.columnInfoByType[type][propertyName].IsRequired && !this.isCellReadOnly(row, propertyName)) {\r\n\t\t\t\t\t\t\tif ((row[propertyName] == null || cellValue == \"\" || row[propertyName] == \"null\") && this.crewTimecardDataService.columnInfoByType[type][propertyName].ValidationDataType != \"bit\") {\r\n\t\t\t\t\t\t\t\tmissingRequired.push({ row: rowID, field: propertyName });\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (this.sharedColumnInfo[propertyName] != null && propertyName != \"PostDate\" && this.sharedColumnInfo[propertyName].IsRequired && !this.isCellReadOnly(row, propertyName)) {\r\n\t\t\t\t\t\t\tif ((row[propertyName] == null || cellValue == \"\" || row[propertyName] == \"null\") && this.sharedColumnInfo[propertyName].ValidationDataType != \"bit\") {\r\n\t\t\t\t\t\t\t\tmissingRequired.push({ row: rowID, field: propertyName });\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t});\r\n\t\treturn {\r\n\t\t\tinvalidRows: invalidRows,\r\n\t\t\tmissingPhase: missingPhase,\r\n\t\t\tremovePhase: removePhase,\r\n\t\t\tmissingDate: missingDate,\r\n\t\t\tinvalidDate: invalidDate,\r\n\t\t\tinvalidTime: invalidTime,\r\n\t\t\tmissingEmployee: missingEmployee,\r\n\t\t\tmissingRequired: missingRequired,\r\n\t\t\tmissingHours: missingHours,\r\n\t\t\tmissingRevCode: missingRevCode,\r\n\t\t\tmissingEquipPhase: missingEquipPhase\r\n\t\t};\r\n\t}\r\n\r\n\tsaveCrewTimecard(finishCrewTimecardSave: Function, submitData, fieldToChange) {\r\n\t\tlet changedData = this.crewTimecardManagerService.getChangedData(this.dataTable);\r\n\t\t//TODO reset timeworked calculations?\r\n\t\t//crewGridDataService.totalsCalculated = false;\r\n\t\tlet timecardRows = [];\r\n\t\t$.each(changedData, (uniqueRowId, updatedData: any) => {\r\n\t\t\ttimecardRows.push({\r\n\t\t\t\tId: updatedData.keyId,\r\n\t\t\t\tColumnValues: $.map(updatedData.values, (updatedValue, columnName) => {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tColumnName: columnName,\r\n\t\t\t\t\t\tForm: \"PRTimeCards\",\r\n\t\t\t\t\t\tValue: updatedValue\r\n\t\t\t\t\t};\r\n\t\t\t\t})\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tif (timecardRows.length > 0) {\r\n\t\t\tthis.crewTimecardGridService.saveCrewTimecard(\r\n\t\t\t\tthis.crewTimecardDataService.payPeriod.KeyID,\r\n\t\t\t\ttimecardRows,\r\n\t\t\t\tthis.crewTimecardDataService.template.CrewTemplateID\r\n\t\t\t).then((response: any) => {\r\n\t\t\t\tfinishCrewTimecardSave(response.success, submitData, fieldToChange, response.error);\r\n\t\t\t}, (reason) => {\r\n\t\t\t\t//timeoutService.refreshTimeout();\r\n\t\t\t\t//this.alert = { type: 'danger', msg: \"An error occured when attempting to save the timecard.\" }\r\n\t\t\t\tfinishCrewTimecardSave(false, submitData, fieldToChange, \"An error occured when attempting to save the timecard.\");\r\n\t\t\t})\r\n }\r\n\t\telse {\r\n\r\n\t\t\tfinishCrewTimecardSave(true, submitData, fieldToChange);\r\n }\r\n }\r\n\r\n\t//CSS stuff\r\n\tapplyAmountCSS(rowID) {\r\n\t\tlet row = this.dataTable.getItem(rowID);\r\n\t\t//only apply this CSS if the row is editable\r\n\t\tif (row.IsReadOnly != \"1\" && row.IsSubmitted != \"1\" && row.IsApproved != \"1\") {\r\n\t\t\tif (this.isAmountRow(rowID)) {\r\n\t\t\t\t$.each(this.gridData.columns, (key, column) => {\r\n\t\t\t\t\tlet columnName = column.id;\r\n\t\t\t\t\tif (columnName.indexOf(\"@StartTime\") > -1 || columnName.indexOf(\"@StopTime\") > -1 || columnName.indexOf(\"@BreakHours\") > -1) {\r\n\t\t\t\t\t\tthis.dataTable.addCellCss(rowID, columnName, \"cellReadOnly\");\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$.each(this.gridData.columns, (key, column) => {\r\n\t\t\t\t\tlet columnName = column.id;\r\n\t\t\t\t\tif (columnName.indexOf(\"@StartTime\") > -1 || columnName.indexOf(\"@StopTime\") > -1 || columnName.indexOf(\"@BreakHours\") > -1) {\r\n\t\t\t\t\t\tthis.dataTable.removeCellCss(rowID, columnName, \"cellReadOnly\");\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tapplyLineTypeCSS(rowID) {\r\n\t\tlet row = this.dataTable.getItem(rowID);\r\n\t\tlet rowLineType = row.Type.substr(0, row.Type.indexOf(\"@\"));\r\n\r\n\t\tif (rowLineType != null && rowLineType != \"\" && rowLineType != \"null\") {\r\n\t\t\t//iterate over row properties using the row properties list\r\n\t\t\t$.each(this.gridData.rowPropertyNames, (key, propertyName) => {\r\n\t\t\t\t//row[propertyName + '___@Value'] = row[propertyName];\r\n\t\t\t\t//if column's linetype does not match up with row, clear value and make read only\r\n\t\t\t\tif (this.sharedColumnInfo[propertyName] != null && this.sharedColumnInfo[propertyName].LineType != null) {\r\n\t\t\t\t\tlet colLineType = this.sharedColumnInfo[propertyName].LineType;\r\n\t\t\t\t\tif (rowLineType == \"J\") {\r\n\t\t\t\t\t\tif (colLineType != \"J\" && colLineType != \"A\" && colLineType != \"F\" && colLineType != \"T\") {\r\n\t\t\t\t\t\t\trow[propertyName] = \"\";\r\n\t\t\t\t\t\t\trow[propertyName + \"___@Value\"] = \"\";\r\n\t\t\t\t\t\t\tthis.dataTable.addCellCss(rowID, propertyName, \"cellReadOnly\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (rowLineType == \"S\") {\r\n\t\t\t\t\t\tif ((colLineType != \"S\" && colLineType != \"A\" && colLineType != \"T\") || propertyName == \"Job\") {\r\n\t\t\t\t\t\t\trow[propertyName] = \"\";\r\n\t\t\t\t\t\t\trow[propertyName + \"___@Value\"] = \"\";\r\n\t\t\t\t\t\t\tthis.dataTable.addCellCss(rowID, propertyName, \"cellReadOnly\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (rowLineType == \"M\") {\r\n\t\t\t\t\t\tif (colLineType != \"M\" && colLineType != \"A\" && colLineType != \"F\") {\r\n\t\t\t\t\t\t\trow[propertyName] = \"\";\r\n\t\t\t\t\t\t\trow[propertyName + \"___@Value\"] = \"\";\r\n\t\t\t\t\t\t\tthis.dataTable.addCellCss(rowID, propertyName, \"cellReadOnly\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t//iterate over row values \r\n\t\t\t$.each(this.gridData.valuePropertyNames, (key, propertyName) => {\r\n\t\t\t\tlet columnName = propertyName.slice(1);\r\n\t\t\t\t//if column's linetype does not match up with row, clear value and make read only\r\n\t\t\t\tif (this.sharedColumnInfo[columnName] != null && this.sharedColumnInfo[columnName].LineType != null) {\r\n\t\t\t\t\tlet colLineType = this.sharedColumnInfo[columnName].LineType;\r\n\t\t\t\t\tif (rowLineType == \"J\") {\r\n\t\t\t\t\t\tif (colLineType != \"J\" && colLineType != \"A\" && colLineType != \"F\" && colLineType != \"T\") {\r\n\t\t\t\t\t\t\t$.each(row, (rowKey: string, rowVal) => {\r\n\t\t\t\t\t\t\t\tif (rowKey.indexOf(\"@\") > -1) {\r\n\t\t\t\t\t\t\t\t\tlet resolvedPropName = rowKey.substr(rowKey.indexOf(\"@\") + 1);\r\n\t\t\t\t\t\t\t\t\tif (resolvedPropName == columnName) {\r\n\t\t\t\t\t\t\t\t\t\tthis.dataTable.addCellCss(rowID, rowKey, \"cellReadOnly\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (rowLineType == \"S\") {\r\n\t\t\t\t\t\tif ((colLineType != \"S\" && colLineType != \"A\" && colLineType != \"T\") || columnName == \"Job\") {\r\n\t\t\t\t\t\t\t$.each(row, (rowKey: string, rowVal) => {\r\n\t\t\t\t\t\t\t\tif (rowKey.indexOf(\"@\") > -1) {\r\n\t\t\t\t\t\t\t\t\tlet resolvedPropName = rowKey.substr(rowKey.indexOf(\"@\") + 1);\r\n\t\t\t\t\t\t\t\t\tif (resolvedPropName == columnName) {\r\n\t\t\t\t\t\t\t\t\t\tthis.dataTable.addCellCss(rowID, rowKey, \"cellReadOnly\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (rowLineType == \"M\") {\r\n\t\t\t\t\t\tif (colLineType != \"M\" && colLineType != \"A\" && colLineType != \"F\") {\r\n\t\t\t\t\t\t\t$.each(row, (rowKey: string, rowVal) => {\r\n\t\t\t\t\t\t\t\tif (rowKey.indexOf(\"@\") > -1) {\r\n\t\t\t\t\t\t\t\t\tlet resolvedPropName = rowKey.substr(rowKey.indexOf(\"@\") + 1);\r\n\t\t\t\t\t\t\t\t\tif (resolvedPropName == columnName) {\r\n\t\t\t\t\t\t\t\t\t\tthis.dataTable.addCellCss(rowID, rowKey, \"cellReadOnly\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t//Time Worked\r\n\tcalculateTimecardTotals() {\r\n\t\tlet totalsByEmployee = {};\r\n\t\t//TODO - figure out how to use this\r\n\t\tlet totalsCalculated = false;\r\n\r\n\t\t//Get EarnCodes and PayTypes to exclude\r\n\t\tlet earnCodesToExclude = [];\r\n\t\tlet payTypesToExclude = [];\r\n\t\tif (this.portalSettings.EarnCodesToExcludeTimeValidation.ConfigValue != null && this.portalSettings.EarnCodesToExcludeTimeValidation.ConfigValue != \"\") {\r\n\t\t\tearnCodesToExclude = this.portalSettings.EarnCodesToExcludeTimeValidation.ConfigValue.split(\",\");\r\n\t\t\tfor (let i = 0; i < earnCodesToExclude.length; i++) {\r\n\t\t\t\tearnCodesToExclude[i] = parseInt(earnCodesToExclude[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tearnCodesToExclude = [];\r\n\t\t}\r\n\t\tif (this.portalSettings.PayTypesToExcludeTimeValidation.ConfigValue != null && this.portalSettings.PayTypesToExcludeTimeValidation.ConfigValue != \"\") {\r\n\t\t\tpayTypesToExclude = this.portalSettings.PayTypesToExcludeTimeValidation.ConfigValue.split(\",\");\r\n\t\t\tfor (let i = 0; i < payTypesToExclude.length; i++) {\r\n\t\t\t\tpayTypesToExclude[i] = parseInt(payTypesToExclude[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tpayTypesToExclude = [];\r\n\t\t}\r\n\r\n\t\t//check if earncode or paytype is a column group\r\n\t\tlet earnCodeIndex = this.gridData.columnPropertyNames.indexOf(\"EarnCode\");\r\n\t\tlet isEarnCodeColumn = earnCodeIndex > -1;\r\n\t\tlet payTypeIndex = this.gridData.columnPropertyNames.indexOf(\"SMPayType\");\r\n\t\tlet isPayTypeColumn = payTypeIndex > -1;\r\n\t\tlet totals = {};\r\n\t\tthis.rawRows.forEach((row) => {\r\n\t\t\tif (row.Employee != null && row.Employee != \"\") {\r\n\t\t\t\t//initialize total by employee\r\n\t\t\t\tlet employee = row.Employee.substr(0, row.Employee.indexOf(\"@\"));\r\n\t\t\t\tif (totalsByEmployee[employee] == null) {\r\n\t\t\t\t\ttotalsByEmployee[employee] = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet exclude = false;\r\n\t\t\t\t//check if type exists, else treat it as a \"J\" type\r\n\t\t\t\tif (row.Type != null && row.Type != \"\") {\r\n\t\t\t\t\tlet type = row.Type.substr(0, row.Type.indexOf(\"@\"));\r\n\t\t\t\t\tif (type == \"S\") {\r\n\t\t\t\t\t\t//if line is an \"S\" type, use paytype to determine if the row is excluded\r\n\t\t\t\t\t\tif (isPayTypeColumn) {\r\n\t\t\t\t\t\t\t//iterate through columns, and check the value of the payType\r\n\t\t\t\t\t\t\t$.each(row, (key: string, val) => {\r\n\t\t\t\t\t\t\t\tif (key.indexOf(\"@Hours\") > -1 && val != null && val != \"\") {\r\n\t\t\t\t\t\t\t\t\t//get payType value from column name\r\n\t\t\t\t\t\t\t\t\tlet columnValueParts = key.split(\"___\");\r\n\t\t\t\t\t\t\t\t\tlet payType = parseInt(columnValueParts[payTypeIndex]);\r\n\t\t\t\t\t\t\t\t\t//if payType is not excluded, add it to totals\r\n\t\t\t\t\t\t\t\t\tif (payTypesToExclude.indexOf(payType) == -1) {\r\n\t\t\t\t\t\t\t\t\t\tlet index = key.search(/\\d\\d\\d\\d-\\d\\d-\\d\\d/);\r\n\t\t\t\t\t\t\t\t\t\tlet dateString = key.substr(index, 10);\r\n\t\t\t\t\t\t\t\t\t\t//dates are always in the form of yyyy-mm-dd regardless of locale\r\n\t\t\t\t\t\t\t\t\t\tif (totalsByEmployee[employee][dateString] == null) {\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString] = { timecardHours: 0, otherHours: 0, totalHours: 0 }\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t//check the row value of paytype to see if it is not an excluded code\r\n\t\t\t\t\t\t\tif (row.SMPayType != null && row.SMPayType != \"\" && row.SMPayType != \"null\") {\r\n\t\t\t\t\t\t\t\tlet payType = parseInt(row.SMPayType.substr(0, row.SMPayType.indexOf(\"@\")));\r\n\t\t\t\t\t\t\t\tif (payTypesToExclude.indexOf(payType) > -1) {\r\n\t\t\t\t\t\t\t\t\texclude = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t//if it is not excluded, add the hours to the totals\r\n\t\t\t\t\t\t\tif (!exclude) {\r\n\t\t\t\t\t\t\t\t$.each(row, (key: string, val) => {\r\n\t\t\t\t\t\t\t\t\tif (key.indexOf(\"@Hours\") > -1 && val != null && val != \"\") {\r\n\t\t\t\t\t\t\t\t\t\tlet index = key.search(/\\d\\d\\d\\d-\\d\\d-\\d\\d/);\r\n\t\t\t\t\t\t\t\t\t\tlet dateString = key.substr(index, 10);\r\n\t\t\t\t\t\t\t\t\t\t//dates are always in the form of yyyy-mm-dd regardless of locale\r\n\t\t\t\t\t\t\t\t\t\tif (totalsByEmployee[employee][dateString] == null) {\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString] = { timecardHours: 0, otherHours: 0, totalHours: 0 }\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (isEarnCodeColumn) {\r\n\t\t\t\t\t\t\t//iterate through columns, and check the value of the earncode\r\n\t\t\t\t\t\t\t$.each(row, (key: string, val) => {\r\n\t\t\t\t\t\t\t\tif (key.indexOf(\"@Hours\") > -1 && val != null && val != \"\") {\r\n\t\t\t\t\t\t\t\t\t//get earncode value from column name\r\n\t\t\t\t\t\t\t\t\tlet columnValueParts = key.split(\"___\");\r\n\t\t\t\t\t\t\t\t\tlet earnCode = parseInt(columnValueParts[earnCodeIndex]);\r\n\t\t\t\t\t\t\t\t\t//if earncode is not excluded, add it to totals\r\n\t\t\t\t\t\t\t\t\tif (earnCodesToExclude.indexOf(earnCode) == -1) {\r\n\t\t\t\t\t\t\t\t\t\tlet index = key.search(/\\d\\d\\d\\d-\\d\\d-\\d\\d/);\r\n\t\t\t\t\t\t\t\t\t\tlet dateString = key.substr(index, 10);\r\n\t\t\t\t\t\t\t\t\t\t//dates are always in the form of yyyy-mm-dd regardless of locale\r\n\t\t\t\t\t\t\t\t\t\tif (totalsByEmployee[employee][dateString] == null) {\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString] = { timecardHours: 0, otherHours: 0, totalHours: 0 }\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t//check the row value of earncode to see if it is not an excluded code\r\n\t\t\t\t\t\t\tif (row.EarnCode != null && row.EarnCode != \"\" && row.Earncode != \"null\") {\r\n\t\t\t\t\t\t\t\tlet earnCode = parseInt(row.EarnCode.substr(0, row.EarnCode.indexOf(\"@\")));\r\n\t\t\t\t\t\t\t\tif (earnCodesToExclude.indexOf(earnCode) > -1) {\r\n\t\t\t\t\t\t\t\t\texclude = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t//if it is not excluded, add the hours to the totals\r\n\t\t\t\t\t\t\tif (!exclude) {\r\n\t\t\t\t\t\t\t\t$.each(row, (key: string, val) => {\r\n\t\t\t\t\t\t\t\t\tif (key.indexOf(\"@Hours\") > -1 && val != null && val != \"\") {\r\n\t\t\t\t\t\t\t\t\t\tlet index = key.search(/\\d\\d\\d\\d-\\d\\d-\\d\\d/);\r\n\t\t\t\t\t\t\t\t\t\tlet dateString = key.substr(index, 10);\r\n\t\t\t\t\t\t\t\t\t\t//dates are always in the form of yyyy-mm-dd regardless of locale\r\n\t\t\t\t\t\t\t\t\t\tif (totalsByEmployee[employee][dateString] == null) {\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString] = { timecardHours: 0, otherHours: 0, totalHours: 0 }\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (isEarnCodeColumn) {\r\n\t\t\t\t\t\t//iterate through columns, and check the value of the earncode\r\n\t\t\t\t\t\t$.each(row, (key: string, val) => {\r\n\t\t\t\t\t\t\tif (key.indexOf(\"@Hours\") > -1 && val != null && val != \"\") {\r\n\t\t\t\t\t\t\t\t//get earncode value from column name\r\n\t\t\t\t\t\t\t\tlet columnValueParts = key.split(\"___\");\r\n\t\t\t\t\t\t\t\tlet earnCode = parseInt(columnValueParts[earnCodeIndex]);\r\n\t\t\t\t\t\t\t\t//if earncode is not excluded, add it to totals\r\n\t\t\t\t\t\t\t\tif (earnCodesToExclude.indexOf(earnCode) == -1) {\r\n\t\t\t\t\t\t\t\t\tlet index = key.search(/\\d\\d\\d\\d-\\d\\d-\\d\\d/);\r\n\t\t\t\t\t\t\t\t\tlet dateString = key.substr(index, 10);\r\n\t\t\t\t\t\t\t\t\t//dates are always in the form of yyyy-mm-dd regardless of locale\r\n\t\t\t\t\t\t\t\t\tif (totalsByEmployee[employee][dateString] == null) {\r\n\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString] = { timecardHours: 0, otherHours: 0, totalHours: 0 }\r\n\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t//check the row value of earncode to see if it is not an excluded code\r\n\t\t\t\t\t\tif (row.EarnCode != null && row.EarnCode != \"\" && row.Earncode != \"null\") {\r\n\t\t\t\t\t\t\tlet earnCode = parseInt(row.EarnCode.substr(0, row.EarnCode.indexOf(\"@\")));\r\n\t\t\t\t\t\t\tif (earnCodesToExclude.indexOf(earnCode) > -1) {\r\n\t\t\t\t\t\t\t\texclude = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//if it is not excluded, add the hours to the totals\r\n\t\t\t\t\t\tif (!exclude) {\r\n\t\t\t\t\t\t\t$.each(row, (key: string, val) => {\r\n\t\t\t\t\t\t\t\tif (key.indexOf(\"@Hours\") > -1 && val != null && val != \"\") {\r\n\t\t\t\t\t\t\t\t\tlet index = key.search(/\\d\\d\\d\\d-\\d\\d-\\d\\d/);\r\n\t\t\t\t\t\t\t\t\tlet dateString = key.substr(index, 10);\r\n\t\t\t\t\t\t\t\t\t//dates are always in the form of yyyy-mm-dd regardless of locale\r\n\t\t\t\t\t\t\t\t\tif (totalsByEmployee[employee][dateString] == null) {\r\n\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString] = { timecardHours: 0, otherHours: 0, totalHours: 0 }\r\n\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours = parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].timecardHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t\ttotalsByEmployee[employee][dateString].totalHours += parseFloat(val);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.getOtherTotals(totalsByEmployee);\r\n\t\t\r\n }\r\n\r\n\tgetOtherTotals(totalsByEmployee) {\r\n\t\tlet employeeString = this.crewTimecardDataService.employees.slice(1, this.crewTimecardDataService.employees.length).map((elem) => { return elem.Value; }).join(\",\");\r\n\r\n\t\tthis.crewTimecardGridService.getDailyOtherHours(employeeString, this.crewTimecardDataService.payPeriod.PRCo, this.crewTimecardDataService.payPeriod.PRPCKeyID, this.crewTimecardDataService.template.CrewTemplateID).then((response: any) => {\r\n\t\t\tresponse.forEach((item) => {\r\n\t\t\t\tlet date = moment.utc(item.PostDate);\r\n\t\t\t\tlet dateString = date.format(\"YYYY-MM-DD\");\r\n\t\t\t\tif (totalsByEmployee[item.Employee] == null)\r\n\t\t\t\t\ttotalsByEmployee[item.Employee] = {};\r\n\t\t\t\tif (totalsByEmployee[item.Employee][dateString] == null) {\r\n\t\t\t\t\ttotalsByEmployee[item.Employee][dateString] = { timecardHours: 0, otherHours: 0, totalHours: 0 }\r\n\t\t\t\t\ttotalsByEmployee[item.Employee][dateString].otherHours = parseFloat(item.TotalHoursWorkedOnOtherCards);\r\n\t\t\t\t\ttotalsByEmployee[item.Employee][dateString].totalHours = parseFloat(item.TotalHoursWorkedOnOtherCards);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttotalsByEmployee[item.Employee][dateString].otherHours += parseFloat(item.TotalHoursWorkedOnOtherCards);\r\n\t\t\t\t\ttotalsByEmployee[item.Employee][dateString].totalHours += parseFloat(item.TotalHoursWorkedOnOtherCards);\r\n\t\t\t\t}\r\n })\r\n\t\t\tthis.crewTimecardDataService.timeWorked.setTimecardTotalsByEmployee(totalsByEmployee);\r\n\t\t\t//if timecard load was triggered for a clock submit, run clock submit code\r\n\t\t\tif (this.callback != null && this.callback.callbackType == \"clockSubmit\") {\r\n\t\t\t\tthis.callback.callbackFunction();\r\n }\r\n\t\t});\r\n\r\n\t}\r\n\r\n\t//Clone grid helper methods\r\n\tgetGridDates() {\r\n\t\tlet dates = [];\r\n\t\tif (typeof this.gridData != 'undefined') {\r\n\t\t\tthis.gridData.columns.forEach((column) => {\r\n\t\t\t\tif (column.id.indexOf(\"Hours\") > 0) {\r\n\t\t\t\t\tlet dateString = column.id.match(/\\d\\d\\d\\d-\\d\\d-\\d\\d/g);\r\n\t\t\t\t\tif (dateString != null && dateString.length > 0 && dateString[0] != null) {\r\n\t\t\t\t\t\tlet date = moment(dateString[0], \"YYYY-MM-DD\");\r\n\t\t\t\t\t\t//check if date exists already\r\n\t\t\t\t\t\tlet toDateObj = { Date: date, DisplayDate: moment(date).format(\"l\") };\r\n\t\t\t\t\t\tif (this.containsObject(toDateObj, dates) == -1) {\r\n\t\t\t\t\t\t\tdates.push(toDateObj);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn dates;\r\n\t}\r\n\r\n\t//Copy row helper methods\r\n\tprivate getCrewsList(row) {\r\n\t\tthis.crewTimecardGridService.getCrews(this.crewTimecardDataService.payPeriod.PRCo, this.crewTimecardDataService.payPeriod.PRGroup).then((response: any[]) => {\r\n\t\t\tthis.crewTimecardDataService.crewsList = response;\r\n\t\t\tif (this.bulkEmployeeList.length == 0) {\r\n\t\t\t\tthis.getBulkEmployeeList(row);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.openCopyRowModal(row);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tgetBulkEmployeeList(row) {\r\n\t\tthis.crewTimecardGridService.getBulkEmployeeList(this.crewTimecardDataService.payPeriod.PRCo, this.crewTimecardDataService.payPeriod.PRGroup).then((response: any[]) => {\r\n\t\t\tlet tempEmployeeList = response;\r\n\t\t\tlet callcount = 0;\r\n\t\t\tfor (let i = tempEmployeeList.length - 1; i >= 0; i--) {\r\n\t\t\t\tif (this.employeesToExclude.indexOf(tempEmployeeList[i].Employee.toString()) > -1) {\r\n\t\t\t\t\ttempEmployeeList.splice(i, 1);\r\n\t\t\t\t\tcallcount++;\r\n\t\t\t\t\tif (callcount == this.employeesToExclude.length)\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.bulkEmployeeList = tempEmployeeList;\r\n\t\t\tthis.openCopyRowModal(row);\r\n\t\t});\r\n\t}\r\n\r\n\topenCopyRowModal(row) {\r\n\t\tif (row.isReadOnly != \"1\") {\r\n\t\t\tthis.processingRow = false;\r\n\t\t\tthis.crewTimecardDataService.loadingValues = false;\r\n\r\n\t\t\tlet modalRef = _this.ngbmodalService.open(CopyCrewLineModalComponent, { size: 'lg', backdrop: 'static', keyboard: false });\r\n\t\t\tmodalRef.componentInstance.crewsList = this.crewTimecardDataService.crewsList;\r\n\t\t\tmodalRef.componentInstance.employees = _.cloneDeep(this.bulkEmployeeList);\r\n\t\t\tmodalRef.componentInstance.payPeriod = this.crewTimecardDataService.payPeriod;\r\n\t\t\tmodalRef.componentInstance.row = row;\r\n\t\t\tmodalRef.componentInstance.rowProperties = this.gridData.rowPropertyNames;\r\n\t\t\tmodalRef.componentInstance.sharedColumnInfo = this.sharedColumnInfo;\r\n\r\n\t\t\t\r\n\r\n\t\t\tmodalRef.result.then((result: any) => {\r\n\t\t\t\tthis.crewTimecardDataService.timecardLoaded = false;\r\n\t\t\t\tlet selectedEmployees = result.selectedEmployees;\r\n\t\t\t\tselectedEmployees.forEach((selectedEmployee) => {\r\n\t\t\t\t\tlet newRow: any = {};\r\n\t\t\t\t\tthis.crewTimecardDataService.newRowID++;\r\n\t\t\t\t\tnewRow.id = this.crewTimecardDataService.newRowID;\r\n\t\t\t\t\t\r\n\t\t\t\t\t$.each(row, (rowKey: string, rowVal: any) => {\r\n\t\t\t\t\t\tif (rowKey == \"udSort\") {\r\n\t\t\t\t\t\t\tthis.largestSortID++;\r\n\t\t\t\t\t\t\tnewRow[rowKey] = this.largestSortID;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (rowKey != \"id\") {\r\n\t\t\t\t\t\t\tif (typeof rowVal == \"string\") {\r\n\t\t\t\t\t\t\t\tlet valIndex = rowVal.indexOf(\"@row_\");\r\n\t\t\t\t\t\t\t\tif (valIndex > -1) {\r\n\t\t\t\t\t\t\t\t\tlet parsedRowVal = rowVal.substr(0, valIndex);\r\n\t\t\t\t\t\t\t\t\tnewRow[rowKey] = parsedRowVal + \"@row_\" + newRow.id;\r\n\t\t\t\t\t\t\t\t\tif (this.sharedColumnInfo[rowKey] != null && this.sharedColumnInfo[rowKey].IsCombo == 1 && this.columnOptions[rowKey] != null) {\r\n\t\t\t\t\t\t\t\t\t\tthis.columnOptions[rowKey].add({ id: parsedRowVal + \"@row_\" + newRow.id, value: row[rowKey + \"___@Value\"] });\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tnewRow[rowKey] = rowVal;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tnewRow[rowKey] = rowVal;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t//special handling for copying PostDate as webix only recognizes dates in a specific format while adding\r\n\t\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(\"PostDate\") > -1 && row.PostDate != null && typeof row.PostDate.getMonth == 'function') {\r\n\t\t\t\t\t\tlet yyyy = row.PostDate.getFullYear().toString();\r\n\t\t\t\t\t\tlet mm = (row.PostDate.getMonth() + 1).toString();\r\n\t\t\t\t\t\tlet dd = row.PostDate.getDate().toString();\r\n\t\t\t\t\t\tnewRow.PostDate = yyyy + \"/\" + mm + \"/\" + dd;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tnewRow.isNewRow = true;\r\n\r\n\t\t\t\t\t//craft class logic\r\n\t\t\t\t\tif (result.useEmpDefaultCraftClass) {\r\n\t\t\t\t\t\tif (row.Craft !== undefined) {\r\n\r\n\t\t\t\t\t\t\tnewRow[\"Craft___@Value\"] = selectedEmployee.CraftDisplay;\r\n\t\t\t\t\t\t\tif (this.columnOptions[\"Craft\"] != null) {\r\n\t\t\t\t\t\t\t\tnewRow.Craft = selectedEmployee.Craft + \"@row_\" + newRow.id;\r\n\t\t\t\t\t\t\t\tthis.columnOptions[\"Craft\"].add({ id: selectedEmployee.Craft + \"@row_\" + newRow.id, value: selectedEmployee.CraftDisplay });\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tnewRow.Craft = selectedEmployee.Craft;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (row.Class !== undefined) {\r\n\r\n\t\t\t\t\t\t\tnewRow[\"Class___@Value\"] = selectedEmployee.ClassDisplay;\r\n\t\t\t\t\t\t\tif (this.columnOptions[\"Class\"] != null) {\r\n\t\t\t\t\t\t\t\tnewRow.Class = selectedEmployee.Class + \"@row_\" + newRow.id\r\n\t\t\t\t\t\t\t\tthis.columnOptions[\"Class\"].add({ id: selectedEmployee.Class + \"@row_\" + newRow.id, value: selectedEmployee.ClassDisplay });\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tnewRow.Class = selectedEmployee.Class;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (result.useEmplDefaultEarnCode && row.EarnCode !== undefined) {\r\n\t\t\t\t\t\tnewRow[\"EarnCode___@Value\"] = selectedEmployee.EarnCodeDisplay;\r\n\t\t\t\t\t\tif (this.columnOptions[\"EarnCode\"] != null) {\r\n\t\t\t\t\t\t\tnewRow.EarnCode = selectedEmployee.EarnCode + \"@row_\" + newRow.id;\r\n\t\t\t\t\t\t\tthis.columnOptions[\"EarnCode\"].add({ id: selectedEmployee.EarnCode + \"@row_\" + newRow.id, value: selectedEmployee.EarnCodeDisplay });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tnewRow.EarnCode = selectedEmployee.EarnCode;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//PRDEPT LOGIC\r\n\t\t\t\t\tif (this.sharedColumnInfo[\"PRDept\"] != null && this.sharedColumnInfo[\"PRDept\"].ColumnVisibilityModeID == 3) {\r\n\t\t\t\t\t\tnewRow[\"PRDept@Value\"] = selectedEmployee.PRDeptDisplay;\r\n\t\t\t\t\t\tif (this.columnOptions[\"PRDept\"] != null) {\r\n\t\t\t\t\t\t\tnewRow.PRDept = selectedEmployee.PRDept + \"@row_\" + newRow.id;\r\n\t\t\t\t\t\t\tthis.columnOptions[\"PRDept\"].add({ id: selectedEmployee.PRDept + \"@row_\" + newRow.id, value: selectedEmployee.PRDeptDisplay });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tnewRow.Employee = selectedEmployee.Employee.toString() + \"@row_\" + newRow.id;\r\n\t\t\t\t\tthis.columnOptions[\"Employee\"].add({ id: selectedEmployee.Employee.toString() + \"@row_\" + newRow.id, value: selectedEmployee.EmployeeDisplayName });\r\n\t\t\t\t\tnewRow[\"Employee___@Value\"] = selectedEmployee.EmployeeDisplayName;\r\n\t\t\t\t\tnewRow.IsSubmitted = \"0\";\r\n\t\t\t\t\tnewRow.KeyID = -1;\r\n\t\t\t\t\tthis.dataTable.add(newRow, 0);\r\n\t\t\t\t\tthis.crewTimecardDataService.timecardLoaded = true;\r\n\r\n\t\t\t\t\t//Save Button Visibility\r\n\t\t\t\t\tthis.crewTimecardDataService.rowCount++;\r\n\t\t\t\t\tthis.crewTimecardDataService.unsubmittedRows++;\r\n\r\n\t\t\t\t\t//set time worked read only based on unsubmitted rows\r\n\t\t\t\t\tif (this.crewTimecardDataService.payPeriod.IsTimeWorkedEnabled) {\r\n\t\t\t\t\t\tthis.crewTimecardDataService.timeWorked.setReadOnly(this.crewTimecardDataService.unsubmittedRows < this.crewTimecardDataService.rowCount);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.dataTable.refresh();\r\n })\r\n\t\t\t}, () => { /*dimissal*/ });\r\n }\r\n }\r\n\r\n\t//Bulk Add helper methods\r\n\tgetBulkAddColumns() {\r\n\t\tlet bulkAddColumns = [];\r\n\t\tlet bulkAddDates = [];\r\n\t\t$.each(this.gridData.columnMap, (columnKey, column: any) => {\r\n\t\t\tif (column.valuePropertyName == \"@Hours\" || column.valuePropertyName == \"@UsageUnits\") {\r\n\t\t\t\tif (bulkAddDates.length == 0 || bulkAddDates[bulkAddDates.length - 1].DateValue != column.columnValues[0]) {\r\n\t\t\t\t\tlet bulkAddDate = { DateDisplay: column.columnDisplayValues[0].replace(/ /g, \" \").replace(/‑/g, \"-\").replace(\"
\", ' - '), DateValue: column.columnValues[0] };\r\n\t\t\t\t\tbulkAddDates.push(bulkAddDate);\r\n\t\t\t\t}\r\n\t\t\t\tif (bulkAddDates.length < 2) {\r\n\t\t\t\t\tlet columnObj = { ColumnDisplay: \"\", ColumnName: \"\" };\r\n\r\n\t\t\t\t\tif (column.columnValues.length > 1)\r\n\t\t\t\t\t\tcolumnObj.ColumnDisplay = column.columnDisplayValues.slice(1).join(\" \") + \" \" + column.valuePropertyName.substr(1);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tcolumnObj.ColumnDisplay = column.valuePropertyName.substr(1);\r\n\t\t\t\t\tcolumnObj.ColumnDisplay = columnObj.ColumnDisplay.replace(/ /g, \" \").replace(/‑/g, \"-\").replace(\"
\", ' - ');\r\n\t\t\t\t\tcolumnObj.ColumnName = column.resolvedColumnName.slice(column.resolvedColumnName.indexOf(\"___\") + 3);\r\n\t\t\t\t\tbulkAddColumns.push(columnObj);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tBulkAddColumns: bulkAddColumns, BulkAddDates: bulkAddDates\r\n\t\t};\r\n\t}\r\n\r\n\tbulkAdd(newRowData, selectedEmployees, bulkAddDates, columnValues) {\r\n\t\tthis.bindBulkDefaults(newRowData, selectedEmployees, bulkAddDates, columnValues);\r\n }\r\n\r\n\tbindBulkDefaults(newRowData, selectedEmployees, bulkAddDates, columnValues) {\r\n\t\tthis.crewTimecardGridService.getDefaultsForEmplList(selectedEmployees.map((x) => { return x.PREHKeyID }).join(\",\")).then((response: any[]) => {\r\n\t\t\tlet rowsToAdd = [];\r\n\t\t\tlet rowData = { KeyID: \"-1\", isNewRow: true, Type: newRowData.Type.Value, \"Type___@Value\": newRowData.Type.Label };\r\n\r\n\t\t\t//copy values to new rowData object\r\n\t\t\t$.each(newRowData, (key: string, val: any) => {\r\n\t\t\t\t//if key is a row property, copy it directly to new object\r\n\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(key) > -1) {\r\n\t\t\t\t\tif (this.sharedColumnInfo[key].IsCombo == 1 && val != null) {\r\n\t\t\t\t\t\trowData[key] = val.Value;\r\n\t\t\t\t\t\trowData[key + \"___@Value\"] = val.Label;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\trowData[key] = val;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\t//if key is a column propery, copy to new object for each date in selected dates\r\n\t\t\t\telse if (this.isValueProperty(key, this.gridData.valuePropertyNames)) {\r\n\t\t\t\t\tbulkAddDates.forEach((bulkAddDate) => {\r\n\t\t\t\t\t\trowData[bulkAddDate.DateValue + \"___\" + key] = val;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tlet employeeDefaults = {};\r\n\r\n\t\t\tfor (let i = 0; i < response.length; i++) {\r\n\t\t\t\temployeeDefaults[response[i].Employee] = response[i];\r\n\t\t\t}\r\n\r\n\t\t\tfor (let i = 0; i < selectedEmployees.length; i++) {\r\n\t\t\t\tconst employee = selectedEmployees[i];\r\n\t\t\t\tlet rowCopy: any = _.cloneDeep(rowData);\r\n\t\t\t\trowCopy.Employee = employee.Employee;\r\n\t\t\t\trowCopy[\"Employee___@Value\"] = employee.EmployeeDisplayName;\r\n\r\n\t\t\t\t//go through each row property; if it is null, check and set a default value \r\n\t\t\t\tfor (let j = 0; j < this.gridData.rowPropertyNames.length; j++) {\r\n\t\t\t\t\tconst columnName = this.gridData.rowPropertyNames[j];\r\n\r\n\t\t\t\t\tif (newRowData[columnName] == null) {\r\n\t\t\t\t\t\t//Case: New Line Type = Employee Default\r\n\t\t\t\t\t\tif (this.sharedColumnInfo[columnName].NewLineTypeID == 3) {\r\n\t\t\t\t\t\t\tif (employeeDefaults[employee.Employee] != null && employeeDefaults[employee.Employee][columnName] != null) {\r\n\t\t\t\t\t\t\t\trowCopy[columnName] = employeeDefaults[employee.Employee][columnName];\r\n\r\n\t\t\t\t\t\t\t\tif (this.sharedColumnInfo[columnName].IsCombo == 1)\r\n\t\t\t\t\t\t\t\t\trowCopy[columnName + \"___@Value\"] = employeeDefaults[employee.Employee][columnName + \"Label\"];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//TODO Case: New Line Type = Previous Value\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (newRowData[columnName].Value != null && newRowData[columnName].Value == \"-1\") {\r\n\t\t\t\t\t\trowCopy[columnName] = null;\r\n\t\t\t\t\t\trowCopy[columnName + \"___@Value\"] = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\trowsToAdd.push(rowCopy);\r\n\t\t\t}\r\n\r\n\t\t\tlet tempArray = [];\r\n\t\t\tfor (let i = rowsToAdd.length - 1; i >= 0; i--) {\r\n\t\t\t\ttempArray.push(rowsToAdd[i]);\r\n\t\t\t}\r\n\t\t\tthis.bulkAddCTRows(tempArray);\r\n\t\t});\r\n\t}\r\n\r\n\tbulkAddCTRows(rowsToAdd) {\r\n\t\tlet callback = (addedRows) => {\r\n\t\t\taddedRows.forEach((row) => {\r\n\t\t\t\t$.each(row, (key: string, val) => {\r\n\t\t\t\t\tif (this.gridData.rowPropertyNames.indexOf(key) > -1 && this.columnOptions[key] != null) {\r\n\t\t\t\t\t\tif (this.columnOptions[key].getItem(row[key]) == null) {\r\n\t\t\t\t\t\t\tthis.columnOptions[key].add({ id: row[key], value: row[key + \"___@Value\"], visible: true });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n }\r\n\r\n\t\tthis.crewTimecardManagerService.addRows(rowsToAdd, this.dataTable, callback);\r\n\t\tthis.crewTimecardDataService.unsavedChanges = true;\r\n\t\tthis.crewTimecardDataService.rowCount += rowsToAdd.length;\r\n\t\tthis.crewTimecardDataService.unsubmittedRows += rowsToAdd.length;\r\n\t\tthis.crewTimecardDataService.newRowID += rowsToAdd.length;\r\n\t\tthis.crewTimecardDataService.timecardLoaded = true;\r\n\r\n\t\t//set time worked read only based on unsubmitted rows\r\n\t\tif (this.crewTimecardDataService.payPeriod.IsTimeWorkedEnabled) {\r\n\t\t\tthis.crewTimecardDataService.timeWorked.setReadOnly(this.crewTimecardDataService.unsubmittedRows < this.crewTimecardDataService.rowCount);\r\n\t\t}\r\n\r\n\t\tthis.dataTable.refresh();\r\n }\r\n\r\n\t//This exists because propertynames can be complex and contain other characters\r\n\tisValueProperty(propertyName, propertyNames) {\r\n\t\tfor (var i = 0; i < propertyNames.length; i++) {\r\n\t\t\tif (propertyName.indexOf(propertyNames[i]) > -1)\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t//helper methods\r\n\r\n\tprivate containsObject(obj, list): number {\r\n\t\tlet i;\r\n\t\tfor (i = 0; i < list.length; i++) {\r\n\t\t\tif (_.isEqual(list[i], obj)) {\r\n\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn -1;\r\n\t}\r\n\r\n\tprivate columnExists(columnName): boolean {\r\n\t\tif (columnName == null || columnName == \"\")\r\n\t\t\treturn false;\r\n\t\tfor (var i = 0; i < this.gridData.columns.length; i++) {\r\n\t\t\tif (this.gridData.columns[i].id == columnName)\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n }\r\n\r\n\tprivate dropdownSort(column) {\r\n\t\treturn (a, b) => {\r\n\t\t\tif (column == \"Employee\" && this.portalSettings.RemoveEmployeeNumberFromDropdown.ConfigValue != \"1\" && this.portalSettings.ShowLastFirstFormat.ConfigValue != \"1\") {\r\n\t\t\t\tvalueA = (a.Employee != null && a.Value != \"\") ? parseInt(a.Employee.substr(0, a.Employee.indexOf(\"@\"))) : 0;\r\n\t\t\t\tvalueB = (b.Employee != null && b.Value != \"\") ? parseInt(b.Employee.substr(0, b.Employee.indexOf(\"@\"))) : 0;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvar valueA, valueB;\r\n\t\t\t\tvalueA = a[column + \"___@Value\"];\r\n\t\t\t\tvalueB = b[column + \"___@Value\"];\r\n\t\t\t}\r\n\t\t\treturn valueA > valueB ? 1 : (valueA < valueB ? -1 : 0);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate valueSort(column) {\r\n\t\treturn (a, b) => {\r\n\t\t\tif (column == \"Employee\" && this.portalSettings.RemoveEmployeeNumberFromDropdown.ConfigValue != \"1\" && this.portalSettings.ShowLastFirstFormat.ConfigValue != \"1\") {\r\n\t\t\t\ta = (a != null && a != \"\") ? parseInt(a.substr(0, a.indexOf(\"@\"))) : 0;\r\n\t\t\t\tb = (b != null && b != \"\") ? parseInt(b.substr(0, b.indexOf(\"@\"))) : 0;\r\n\t\t\t}\r\n\t\t\treturn a > b ? 1 : (a < b ? -1 : 0);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tprivate employeeDropdownSort(a, b) {\r\n\t\tlet employeeA, employeeB;\r\n\t\tif (_this.portalSettings.RemoveEmployeeNumberFromDropdown.ConfigValue != \"1\") {\r\n\t\t\temployeeA = (a.Value != null && a.Value != \"\") ? parseInt(a.Value) : 0;\r\n\t\t\temployeeB = (b.Value != null && b.Value != \"\") ? parseInt(b.Value) : 0;\r\n\t\t}\r\n\t\telse {\r\n\t\t\temployeeA = a.Label;\r\n\t\t\temployeeB = b.Label;\r\n\t\t}\r\n\r\n\t\treturn employeeA > employeeB ? 1 : (employeeA < employeeB ? -1 : 0);\r\n }\r\n\r\n\tpublic escapeHtml(unsafe: string) {\r\n\t\treturn unsafe\r\n\t\t\t.replace(/&/g, \"&\")\r\n\t\t\t.replace(//g, \">\")\r\n\t\t\t.replace(/\"/g, \""\")\r\n\t\t\t.replace(/'/g, \"'\");\r\n }\r\n\r\n\tprivate isAmountRow(rowID) {\r\n\t\tlet row = this.dataTable.getItem(rowID);\r\n\t\tlet rowLineType = row.Type != null ? row.Type.substr(0, row.Type.indexOf(\"@\")) : \"J\";\r\n\t\tif (rowLineType != \"S\" && row.EarnCode != null && row.EarnCode.substr(0, row.EarnCode.indexOf(\"@\")) != \"\") {\r\n\t\t\tlet earnCode = row.EarnCode.substr(0, row.EarnCode.indexOf(\"@\"));\r\n\t\t\tif (this.amountEarnCodes.indexOf(earnCode) > -1) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (rowLineType == \"S\" && row.PayType != null && row.PayType.substr(0, row.PayType.indexOf(\"@\")) != \"\") {\r\n\t\t\tlet payType = row.EarnCode.substr(0, row.EarnCode.indexOf(\"@\"));\r\n\t\t\tif (this.amountPayTypes.indexOf(payType) > -1) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate isCellReadOnly(row, columnName) {\r\n\t\tif (row.Type == null) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (this.sharedColumnInfo[columnName] == null) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tlet rowLineType = row.Type.substr(0, row.Type.indexOf(\"@\"));\r\n\t\tlet colLineType = this.sharedColumnInfo[columnName].LineType;\r\n\t\tif (rowLineType == \"J\") {\r\n\t\t\tif (colLineType != \"J\" && colLineType != \"A\" && colLineType != \"F\" && colLineType != \"T\") {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\telse if (rowLineType == \"S\") {\r\n\t\t\tif ((colLineType != \"S\" && colLineType != \"A\" && colLineType != \"T\") || columnName == \"Job\") {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\telse if (rowLineType == \"M\") {\r\n\t\t\tif (colLineType != \"M\" && colLineType != \"A\" && colLineType != \"F\") {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\telse\r\n\t\t\treturn false;\r\n\t}\r\n\r\n\tprivate isNumber(input) {\r\n\t\tif (input == null || !isNaN(input))\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate isInteger(input) {\r\n\t\tif (input == null || (!isNaN(input) && input % 1 == 0))\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n\t}\r\n\r\n\twindowResize() {\r\n\t\twindow.onresize = (event) => {\r\n\t\t\tif (this.dataTable != null) {\r\n\t\t\t\tlet height = $(document).height() - $(\"#crewActionBar\").height() - 170;\r\n\t\t\t\tthis.dataTable.config.height = Math.max(height, 300);\r\n\t\t\t\tthis.dataTable.resize();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n ngOnDestroy() {\r\n this.dataTable.destructor();\r\n }\r\n\r\n}\r\n","
","import { Injectable } from '@angular/core';\r\nimport { TimeWorkedComponent } from '../../time-worked/time-worked.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CrewTimecardDataService {\r\n timeWorked: TimeWorkedComponent = null;\r\n alertMsg: string;\r\n alertType: string;\r\n approvedRows: number;\r\n columnInfoByType: { J: any; M: any; S: any; };\r\n crewsList: any[];\r\n dataTable: webix.ui.datatable;\r\n employees: any[];\r\n \r\n employeesToExclude: any[];\r\n isSubmitted: number;\r\n loadingValues: boolean = false;\r\n lockedEmployees: any[];\r\n multiSelectEmployees: any[] = [];\r\n newRowID: number;\r\n payPeriod: any;\r\n readOnlyGrid: boolean = false;\r\n rowCount: number;\r\n rowDeleted: boolean;\r\n selectedEmployee: any = null;\r\n selectedEmployees: any[] = [];\r\n template: any;\r\n timecardLoaded: boolean = false;\r\n timecardSaving: boolean = false;\r\n totalSubmittedRows: number;\r\n type: string = \"all\";\r\n unapprovedRows: number;\r\n usageMode: string;\r\n unsavedChanges: boolean;\r\n unsubmittedRows: number;\r\n \r\n rejectReasons: any;\r\n expenses: any;\r\n\r\n testValue: string;\r\n\r\n constructor() {\r\n }\r\n\r\n initValues() {\r\n this.alertMsg = null;\r\n this.alertType = null;\r\n this.employeesToExclude = [];\r\n this.rowDeleted = false;\r\n this.initRowCounts();\r\n }\r\n\r\n initRowCounts() {\r\n this.newRowID = 1;\r\n this.rowCount = 0;\r\n this.totalSubmittedRows = 0;\r\n this.unapprovedRows = 0;\r\n this.unsubmittedRows = 0;\r\n this.approvedRows = 0;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CrewTimecardGridService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getBulkEmployeeList(pRCo, pRGroup) {\r\n let url = \"/CrewTimecard/GetBulkEmployeeList?pRCo=\" + pRCo + \"&pRGroup=\" + pRGroup;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCellPossibleValues(rowData) {\r\n let url = \"/Timecard/GetCellPossibleValues\";\r\n return this.http.post(\"/Timecard/GetCellPossibleValues\", rowData).toPromise();\r\n }\r\n\r\n getColumnsByPRCoGroup(pRCo, pRGroup, isCrewOrStandard) {\r\n let url = \"/CrewTimecard/GetColumnsByPRCoGroup?pRCo=\" + pRCo + \"&pRGroup=\" + pRGroup + \"&isCrewOrStandard=\" + isCrewOrStandard;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCrews(pRCo, pRGRoup) {\r\n let url = \"/CrewTimecard/GetCrews?PRCo=\" + pRCo + \"&PRGroup=\" + pRGRoup;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getCrewTimecardData(pRPCKeyID, crewTemplateID) {\r\n let url = \"/CrewTimecard/Data?payPeriodId=\" + pRPCKeyID + \"&templateId=\" + crewTemplateID\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getDailyOtherHours(employeeString, pRCo, pRPCKeyID, crewTemplateID) {\r\n let url = \"/Timecard/GetDailyOtherHours?employee=\" + employeeString + \"&pRCo=\" + pRCo + \"&pRPCKeyID=\" + pRPCKeyID + \"&crewTemplateID=\" + crewTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getDefaultsForEmplList(pREHKeyIDString) {\r\n let url = \"/CrewTimecard/GetDefaultsForEmplList?pREHKeyIDString=\" + pREHKeyIDString;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getEmplLockStatus(hQBCKeyID, crewTemplateID) {\r\n let url = \"/CrewTimecard/GetEmplLockStatus?hQBCKeyID=\" + hQBCKeyID + \"&crewTemplateID=\" + crewTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getTimecardColumns(employeeId: number, employee: number, pRCo: number, pRGroup: number, filterType: string, isCrewOrStandard: string) {\r\n let url = \"/Timecard/GetTimecardColumns?employeeId=\" + employeeId + \"&employee=\" + employee + \"&pRCo=\" + pRCo + \"&pRGroup=\" + pRGroup + \"&isCrewOrStandard=\" + isCrewOrStandard\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n approveCrewTimecard(crewTemplateID, pRPCKeyID, keyID, submittedOnString, keyIDString = null) {\r\n let url = \"/CrewTimecard/ApproveCrewTimecard\";\r\n let postData: any = {\r\n crewTemplateID: crewTemplateID,\r\n pRPCKeyID: pRPCKeyID,\r\n keyID: keyID,\r\n submittedOnString: submittedOnString\r\n }\r\n if (keyIDString != null)\r\n postData.keyIDString = keyIDString;\r\n return this.http.post(url, postData).toPromise();\r\n }\r\n\r\n deleteTimecardRow(rowId) {\r\n let url = \"/Timecard/DeleteTimecardRow\";\r\n return this.http.post(url, { rowId: rowId }).toPromise();\r\n }\r\n\r\n saveCrewTimecard(timecardId, rows, crewTemplateID) {\r\n let url = \"/CrewTimecard/SaveCrewTimecard\";\r\n return this.http.post(url, {\r\n timecardId: timecardId,\r\n rows: rows,\r\n crewTemplateID: crewTemplateID,\r\n employee: -1\r\n }).toPromise();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport _ from 'lodash';\r\nimport { EmployeeInfoService } from '../../../../core/services/employee-info.service';\r\nimport { PortalSettingsService } from '../../../../core/services/portal-settings.service';\r\nimport { TimeParserService } from '../../../../core/services/time-parser.service';\r\nimport { CrewTimecardDataService } from './crew-timecard-data.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n/** Class performs all data manipulations relating to the crew timecard grid data */\r\nexport class CrewTimecardManagerService {\r\n crewTimecardDataService: CrewTimecardDataService;\r\n employeeInfo: any;\r\n portalSettings: any;\r\n timeParserService: TimeParserService;\r\n\r\n originalData: any;\r\n modifiedData: any;\r\n rowPropertyNames: any[];\r\n columnPropertyNames: any[];\r\n valuePropertyNames: any[];\r\n columns: any[];\r\n columnMap: any;\r\n columnMapKeyArr: any[];\r\n rows: any[];\r\n sharedColumnInfo: {};\r\n currentEmployeeColumns: any;\r\n dailyTimeByEmployee: any;\r\n namesToExclude: string[];\r\n columnsForDR: any[];\r\n dataTable: any;\r\n gridData: any;\r\n lastID: any;\r\n equipmentEmployee: any;\r\n equipmentDefaultEarnCode: any;\r\n equipmentDefaultShift: any;\r\n largestSortID: number;\r\n udSortUsed: boolean;\r\n time24HourMode: boolean;\r\n showEquipment: boolean; \r\n\r\n constructor(\r\n crewTimecardDataService: CrewTimecardDataService,\r\n employeeInfoService: EmployeeInfoService,\r\n portalSettingsService: PortalSettingsService,\r\n timeParserService: TimeParserService\r\n ) {\r\n\r\n this.crewTimecardDataService = crewTimecardDataService;\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n this.timeParserService = timeParserService;\r\n\r\n this.originalData = {};\r\n this.modifiedData = {};\r\n this.rowPropertyNames = [];\r\n this.columnPropertyNames = [];\r\n this.valuePropertyNames = [];\r\n this.columns = [];\r\n this.columnMap = {};\r\n this.columnMapKeyArr = [];\r\n this.rows = [];\r\n this.sharedColumnInfo = {};\r\n this.currentEmployeeColumns;\r\n this.dailyTimeByEmployee;\r\n this.namesToExclude = [\"@KeyID\", \"@IsReadOnly\", \"@DateSubmitted\", \"@IsApproved\", \"@IsSubmitted\", \"@PendingStatus\", \"@IsDelete\", \"IsRowAggregate\", \"@IsLocked\"];\r\n this.columnsForDR = [];\r\n this.gridData = null;\r\n this.lastID = null;\r\n this.equipmentEmployee = null;\r\n this.equipmentDefaultEarnCode = null;\r\n this.equipmentDefaultShift = null;\r\n this.largestSortID = 0;\r\n this.udSortUsed = false;\r\n this.time24HourMode = this.portalSettings.Timecard24Hours.ConfigValue == \"1\";\r\n this.showEquipment = this.portalSettings.DTRShowEquipment.ConfigValue == \"1\";\r\n\r\n }\r\n\r\n //get functions\r\n getChangedData(dataTable) {\r\n let allowZeroLine = this.portalSettings[\"AllowZeroHourCrewLine\"].ConfigValue == \"1\";\r\n let changedRowsByRowId = {};\r\n dataTable.eachRow((gridRowId) => {\r\n let row = dataTable.getItem(gridRowId);\r\n if (this.crewTimecardDataService.usageMode != \"approval\" || (row.PendingStatus == \"U\" && row.IsRowAggregate != true)) {\r\n let oldColumnCollection = row.isNewRow ? null : this.getColumnCollectionByRowValues(this.originalData.TimecardData, row['___ColumnCollection']);\r\n $.each(this.columnMap, (resolvedColumnName: string, columnMetadata) => {\r\n let newValue = row[resolvedColumnName];\r\n let oldValue = row.isNewRow === true ? null : this.getColumnPropertyValue(oldColumnCollection, resolvedColumnName, columnMetadata.valuePropertyName);\r\n let keyIds = row.isNewRow ? '-1' : this.getColumnPropertyValue(oldColumnCollection, resolvedColumnName, '@KeyID');\r\n if (keyIds.constructor === Array) {\r\n $.each(keyIds, (key, keyId) => {\r\n if (resolvedColumnName.indexOf(\"Hours\") > -1) {\r\n if (oldValue !== \"\" && oldValue != null) {\r\n oldValue = parseFloat(oldValue);\r\n }\r\n if (newValue !== \"\" && newValue != null) {\r\n newValue = parseFloat(newValue);\r\n }\r\n }\r\n else if (resolvedColumnName.indexOf(\"StartTime\") > -1 && oldValue != null && oldValue.length > 8) {\r\n if (oldValue !== \"\" && oldValue != null) {\r\n oldValue = this.parseTime(oldValue, \"StartTime\");\r\n }\r\n }\r\n else if (resolvedColumnName.indexOf(\"StopTime\") > -1 && oldValue != null && oldValue.length > 8) {\r\n if (oldValue !== \"\" && oldValue != null) {\r\n oldValue = this.parseTime(oldValue, \"StopTime\");\r\n }\r\n }\r\n let valueChanged = false;\r\n valueChanged = (row.isNewRow || row.headerModified)\r\n ? newValue != null && newValue.toString().length > 0 && newValue != \"null\"\r\n : (newValue !== oldValue);\r\n //case to handle 0 hour lines\r\n if (oldValue === \"\" || oldValue == null) {\r\n //any case where a value used to exist and a header value changed\r\n if (row.headerModified && keyId != -1) {\r\n valueChanged = true;\r\n }\r\n //handling for 0 hour lines\r\n\r\n else if ((newValue === 0 && allowZeroLine) || (newValue !== 0 && newValue != null && newValue != \"\")) {\r\n valueChanged = true;\r\n }\r\n else {\r\n valueChanged = false;\r\n }\r\n }\r\n if (valueChanged) {\r\n\r\n let columnValues = resolvedColumnName.split('___');\r\n if (keyId != -1 || ((newValue !== 0 || allowZeroLine) && newValue !== \"\")) {\r\n columnValues.splice(columnValues.length - 1, 1);\r\n let uniqueRowId = $.map(this.rowPropertyNames, (rowPropertyName) => {\r\n return this.getRowValue(row, rowPropertyName);\r\n }).join('___') +\r\n '___' + columnValues.join('___');\r\n let values = {};\r\n if (!changedRowsByRowId[uniqueRowId]) {\r\n changedRowsByRowId[uniqueRowId] = {\r\n keyId: keyId,\r\n values: values\r\n };\r\n for (let i = 0; i < columnMetadata.columnValues.length; ++i) {\r\n let columnPropertyName = this.columnPropertyNames[i];\r\n values[columnPropertyName] = columnMetadata.columnValues[i];\r\n }\r\n //345660 Get visible columns on the Grid.\r\n for (let i = 0; i < this.gridData.rowPropertyNames.length; ++i) {\r\n let rowPropertyName = this.gridData.rowPropertyNames[i];\r\n values[rowPropertyName] = this.getRowValue(row, rowPropertyName);\r\n }\r\n if (this.rowPropertyNames.indexOf(\"Type\") > -1 && !values.hasOwnProperty(\"Type\")) {\r\n values[\"Type\"] = this.getRowValue(row, \"Type\");\r\n }\r\n }\r\n let propName = columnMetadata.valuePropertyName.substr(1);\r\n if (this.crewTimecardDataService.usageMode != \"approval\" || propName != \"Hours\" || row.IsRowAggregate != true) {\r\n changedRowsByRowId[uniqueRowId].values[columnMetadata.valuePropertyName.substr(1)] = newValue;\r\n if (propName == \"StartTime\" && !changedRowsByRowId[uniqueRowId].values.hasOwnProperty(\"StopTime\")) {\r\n changedRowsByRowId[uniqueRowId].values[\"StopTime\"] = row[resolvedColumnName.substr(0, resolvedColumnName.indexOf(\"@\")) + \"@StopTime\"];\r\n }\r\n else if (propName == \"StopTime\" && !changedRowsByRowId[uniqueRowId].values.hasOwnProperty(\"StartTime\")) {\r\n changedRowsByRowId[uniqueRowId].values[\"StartTime\"] = row[resolvedColumnName.substr(0, resolvedColumnName.indexOf(\"@\")) + \"@StartTime\"];\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n let keyId = keyIds;\r\n if (resolvedColumnName.indexOf(\"Hours\") > -1) {\r\n if (oldValue !== \"\" && oldValue != null) {\r\n oldValue = parseFloat(oldValue);\r\n }\r\n if (newValue !== \"\" && newValue != null) {\r\n newValue = parseFloat(newValue);\r\n }\r\n }\r\n else if (resolvedColumnName.indexOf(\"StartTime\") > -1 && oldValue != null && oldValue.length > 8) {\r\n if (oldValue !== \"\" && oldValue != null) {\r\n oldValue = this.parseTime(oldValue, \"StartTime\");\r\n }\r\n }\r\n else if (resolvedColumnName.indexOf(\"StopTime\") > -1 && oldValue != null && oldValue.length > 8) {\r\n if (oldValue !== \"\" && oldValue != null) {\r\n oldValue = this.parseTime(oldValue, \"StopTime\");\r\n }\r\n }\r\n let valueChanged = false;\r\n valueChanged = (row.isNewRow || row.headerModified)\r\n ? newValue != null && newValue.toString().length > 0 && newValue != \"null\"\r\n : (newValue !== oldValue);\r\n //case to handle auto 0 population\r\n if (oldValue === \"\" || oldValue == null) {\r\n //any case where a value used to exist and a header value changed\r\n if (row.headerModified && keyId != -1) {\r\n valueChanged = true;\r\n }\r\n //handling for 0 hour lines\r\n else if ((newValue === 0 && allowZeroLine) || (newValue !== 0 && newValue != null && newValue != \"\")) {\r\n valueChanged = true;\r\n }\r\n else {\r\n valueChanged = false;\r\n }\r\n }\r\n if (valueChanged) {\r\n let columnValues = resolvedColumnName.split('___');\r\n if (keyId != -1 || ((newValue !== 0 || allowZeroLine) && newValue !== \"\")) {\r\n columnValues.splice(columnValues.length - 1, 1);\r\n let uniqueRowId = $.map(this.rowPropertyNames, (rowPropertyName) => {\r\n return this.getRowValue(row, rowPropertyName);\r\n }).join('___') +\r\n '___' + columnValues.join('___');\r\n let values = {};\r\n if (!changedRowsByRowId[uniqueRowId]) {\r\n changedRowsByRowId[uniqueRowId] = {\r\n keyId: keyId,\r\n values: values\r\n };\r\n for (let i = 0; i < columnMetadata.columnValues.length; ++i) {\r\n let columnPropertyName = this.columnPropertyNames[i];\r\n values[columnPropertyName] = columnMetadata.columnValues[i];\r\n }\r\n //345660 Get visible columns on the Grid.\r\n for (let i = 0; i < this.gridData.rowPropertyNames.length; ++i) {\r\n let rowPropertyName = this.gridData.rowPropertyNames[i];\r\n values[rowPropertyName] = this.getRowValue(row, rowPropertyName);\r\n }\r\n if (this.rowPropertyNames.indexOf(\"Type\") > -1 && !values.hasOwnProperty(\"Type\")) {\r\n values[\"Type\"] = this.getRowValue(row, \"Type\");\r\n }\r\n }\r\n let propName = columnMetadata.valuePropertyName.substr(1);\r\n if (this.crewTimecardDataService.usageMode != \"approval\" || propName != \"Hours\" || row.IsRowAggregate != true) {\r\n changedRowsByRowId[uniqueRowId].values[columnMetadata.valuePropertyName.substr(1)] = newValue;\r\n if (propName == \"StartTime\" && !changedRowsByRowId[uniqueRowId].values.hasOwnProperty(\"StopTime\")) {\r\n changedRowsByRowId[uniqueRowId].values[\"StopTime\"] = row[resolvedColumnName.substr(0, resolvedColumnName.indexOf(\"@\")) + \"@StopTime\"];\r\n }\r\n else if (propName == \"StopTime\" && !changedRowsByRowId[uniqueRowId].values.hasOwnProperty(\"StartTime\")) {\r\n changedRowsByRowId[uniqueRowId].values[\"StartTime\"] = row[resolvedColumnName.substr(0, resolvedColumnName.indexOf(\"@\")) + \"@StartTime\"];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n })\r\n return changedRowsByRowId;\r\n }\r\n\r\n getColumnPropertyValue(columnCollection, columnKey, propertyName) {\r\n let parentObj = columnCollection;\r\n let columnValues = columnKey.split('___');\r\n for (let i = 0; i < this.columnPropertyNames.length; ++i) {\r\n let collection = parentObj[this.columnPropertyNames[i]];\r\n parentObj = this.getCollectionItemByProperty(collection, '@Value', columnValues[i], this.columnPropertyNames[i]);\r\n }\r\n //special case for collection keyIDs for approval\r\n if (this.crewTimecardDataService.usageMode == \"approval\" && propertyName == \"@KeyID\" && parentObj.Value.constructor === Array) {\r\n let keyIDs = [];\r\n $.each(parentObj.Value, (key, val) => {\r\n if (val[\"@KeyID\"] != -1)\r\n keyIDs.push(val[\"@KeyID\"]);\r\n });\r\n return keyIDs;\r\n }\r\n return parentObj.Value[propertyName];\r\n }\r\n\r\n getGridData(timecardData, sharedColumnInfo, payPeriod) {\r\n let _this = this;\r\n this.sharedColumnInfo = sharedColumnInfo;\r\n\r\n //TODO what is currentEmployeeeColumns even used for? Deprecate?\r\n //currentEmployeeColumns = currentEmployeeColumns;\r\n\r\n //sharedColumnInfo = metadata;\r\n //adjustTimecardData(timecardData);\r\n this.originalData = $.extend(true, {}, timecardData);\r\n this.modifiedData = timecardData;\r\n //dailyTimeByEmployee = dailyTime;\r\n\r\n // This data represents columns, rows, and values picked out by the user\r\n this.rowPropertyNames = [];\r\n this.columnPropertyNames = [];\r\n this.valuePropertyNames = [];\r\n\r\n this.adjustTimecardData(timecardData);\r\n\r\n this.populateRowPropertyNames(timecardData);\r\n this.populateColumnPropertyNames(timecardData);\r\n this.populateValuePropertyNames(timecardData);\r\n\r\n this.columns = [];\r\n this.columnMap = {};\r\n this.columnMapKeyArr = [];\r\n this.populateColumnMap(this.getFirstObjectWithName(timecardData, 'ColumnCollection'), this.columnPropertyNames, [], [], []);\r\n this.addColumnsForRows();\r\n this.addRemainingColumnGroups(payPeriod);\r\n\r\n this.rows = [];\r\n this.populateRows(timecardData.TimecardData, this.rowPropertyNames, {}, true, []);\r\n\r\n this.gridData = {\r\n columnMap: this.columnMap,\r\n columns: this.columns,\r\n rows: this.rows,\r\n rowPropertyNames: this.rowPropertyNames,\r\n columnPropertyNames: this.columnPropertyNames,\r\n valuePropertyNames: this.valuePropertyNames,\r\n getColumnByName: (columnName) => {\r\n let column = null;\r\n $.each(_this.columns, (loopColumnIndex, loopColumn) => {\r\n if (loopColumn.id === columnName) {\r\n column = loopColumn;\r\n return false;\r\n }\r\n });\r\n return column;\r\n }\r\n }\r\n return this.gridData;\r\n }\r\n\r\n //Names simplified from getCrewTimecardRow, RowID, ...\r\n getRow(gridRowId) {\r\n let row = this.crewTimecardDataService.dataTable.getItem(gridRowId);\r\n let columnCollection = this.getColumnCollectionByRowValues(this.modifiedData.TimecardData, row['___ColumnCollection']);\r\n return columnCollection;\r\n }\r\n\r\n getRowID(gridRowId) {\r\n let row = this.crewTimecardDataService.dataTable.getItem(gridRowId);\r\n let keyID = null;\r\n let columnCollection = this.getColumnCollectionByRowValues(this.originalData.TimecardData, row['___ColumnCollection']);\r\n //return the first KeyID\r\n $.each(this.columnMap, (resolvedColumnName, columnMetadata) => {\r\n keyID = this.getColumnPropertyValue(columnCollection, resolvedColumnName, '@KeyID');\r\n if (keyID > 0) {\r\n return false;\r\n }\r\n });\r\n return keyID;\r\n }\r\n\r\n getRowIDs(gridRowId, row) {\r\n if (row == null)\r\n row = this.crewTimecardDataService.dataTable.getItem(gridRowId);\r\n let columnCollection = this.getColumnCollectionByRowValues(this.originalData.TimecardData, row['___ColumnCollection']);\r\n let rowIDs = [];\r\n $.each(this.columnMap, (resolvedColumnName, columnMetadata) => {\r\n let id = this.getColumnPropertyValue(columnCollection, resolvedColumnName, '@KeyID');\r\n if (id.constructor === Array) {\r\n rowIDs = rowIDs.concat(id);\r\n }\r\n else if (id != -1)\r\n rowIDs.push(id);\r\n });\r\n return rowIDs;\r\n }\r\n\r\n getRowValue(rowObj, rowPropertyName) {\r\n let rowValue = rowObj[rowPropertyName];\r\n if (typeof rowValue === \"string\") {\r\n if (rowPropertyName == \"udKDSTrackerID\" || this.sharedColumnInfo[rowPropertyName].IsCombo == 1)\r\n rowValue = rowValue.substr(0, rowValue.indexOf(\"@\"));\r\n //#305419 Replacing \"null\" value with empty string.\r\n if (rowValue == \"null\") {\r\n rowValue = \"\";\r\n }\r\n }\r\n if (this.sharedColumnInfo[rowPropertyName] != null && this.sharedColumnInfo[rowPropertyName].ValidationDataType == \"bit\" && rowValue == null) {\r\n rowValue = \"N\";\r\n }\r\n //238738: Ensure that user selection has appropriate format for PostDate\r\n if (rowPropertyName.indexOf(\"PostDate\") > -1 && rowValue != null && typeof rowValue.getMonth == 'function') {\r\n let yyyy = rowValue.getFullYear().toString();\r\n let mm = (rowValue.getMonth() + 1).toString();\r\n let dd = rowValue.getDate().toString();\r\n rowValue = yyyy + \"/\" + mm + \"/\" + dd;\r\n }\r\n return rowValue;\r\n }\r\n\r\n //functions for preparing grid data\r\n private adjustTimecardData(timecardData) {\r\n function mapPropertyValuesToCollections(obj) {\r\n $.each(obj, (propertyKey, propertyValue) => {\r\n if (propertyKey == 'ColumnCollection') {\r\n mapPropertyValuesToCollections(propertyValue);\r\n } else if (propertyKey[0] != '@' && propertyKey != 'Value') {\r\n if (!$.isArray(propertyValue)) {\r\n obj[propertyKey] = [propertyValue];\r\n }\r\n $.each(obj[propertyKey], (childIndex, child) => {\r\n mapPropertyValuesToCollections(child);\r\n });\r\n }\r\n });\r\n }\r\n mapPropertyValuesToCollections(timecardData.TimecardData);\r\n }\r\n\r\n private populateRowPropertyNames(timecardData) {\r\n this.populatePropertiesArray(timecardData.TimecardData, this.rowPropertyNames, 'ColumnCollection');\r\n }\r\n\r\n private populateColumnPropertyNames(timecardData) {\r\n let columnCollection = this.getFirstObjectWithName(timecardData, 'ColumnCollection');\r\n this.populatePropertiesArray(columnCollection, this.columnPropertyNames, 'Value');\r\n }\r\n\r\n private populateValuePropertyNames(timecardData) {\r\n let valuesCollection = this.getFirstObjectWithName(timecardData, 'Value');\r\n if (valuesCollection.constructor === Array) {\r\n valuesCollection = valuesCollection[0];\r\n }\r\n $.each(valuesCollection, (valuePropertyName: string, valuePropertyValue) => {\r\n if (this.namesToExclude.indexOf(valuePropertyName) == -1) {\r\n if (this.crewTimecardDataService.usageMode == \"PR\") {\r\n if (valuePropertyName != \"@UsageUnits\" || this.showEquipment) {\r\n this.valuePropertyNames.push(valuePropertyName);\r\n }\r\n }\r\n else if (this.crewTimecardDataService.usageMode == \"PREQ\") {\r\n if (valuePropertyName == \"@UsageUnits\") {\r\n this.valuePropertyNames.push(valuePropertyName);\r\n }\r\n }\r\n else {\r\n this.valuePropertyNames.push(valuePropertyName);\r\n }\r\n\r\n }\r\n });\r\n }\r\n\r\n populatePropertiesArray(obj, propertiesArr, stopPropertyName) {\r\n let onlyPropertyName = null;\r\n $.each(obj, (propertyName, propertyValue) => {\r\n if (propertyName[0] !== '@') { // ignore attribute property names\r\n onlyPropertyName = propertyName;\r\n return false;\r\n }\r\n return true;\r\n });\r\n propertiesArr.push(onlyPropertyName);\r\n if (!obj[onlyPropertyName][0][stopPropertyName]) {\r\n this.populatePropertiesArray(obj[onlyPropertyName][0], propertiesArr, stopPropertyName);\r\n }\r\n }\r\n\r\n populateColumnMap(columnParent, remainingColumnPropertyNames, columnValues, columnDisplayValues, columnValueCounts) {\r\n if (remainingColumnPropertyNames.length == 0) {\r\n $.each(this.valuePropertyNames, (valuePropertyNameIndex, valuePropertyName) => {\r\n let columnKey = columnValues.join('___') + '___' + valuePropertyName;\r\n this.columnMapKeyArr.push(columnKey);\r\n this.columnMap[columnKey] = {\r\n columnValueCounts: columnValueCounts,\r\n columnDisplayValues: columnDisplayValues,\r\n columnValues: $.extend([], columnValues),\r\n valuePropertyName: valuePropertyName,\r\n resolvedColumnName: columnKey\r\n };\r\n });\r\n } else {\r\n let columnCollection = columnParent[remainingColumnPropertyNames[0]];\r\n $.each(columnCollection, (columnIndex, column) => {\r\n let subColumnValues = $.extend([], columnValues);\r\n let subColumnDisplayValues = $.extend([], columnDisplayValues);\r\n let subColumnValueCounts = $.extend([], columnValueCounts);\r\n subColumnValues.push(column['@Value']);\r\n subColumnDisplayValues.push(column['@Label']);\r\n subColumnValueCounts.push(this.getColumnValuesCount(column, this.columnPropertyNames.slice(subColumnValueCounts.length + 1)));\r\n this.populateColumnMap(column, remainingColumnPropertyNames.slice(1), subColumnValues, subColumnDisplayValues, subColumnValueCounts);\r\n });\r\n }\r\n }\r\n\r\n //TODO - can this method be cleaned up?\r\n addColumnsForRows() {\r\n let PRColumnsToIgnore = [];\r\n if (!this.showEquipment) {\r\n PRColumnsToIgnore.push(\"Equipment\");\r\n PRColumnsToIgnore.push(\"UsageUnits\");\r\n PRColumnsToIgnore.push(\"EMCo\");\r\n }\r\n // Add in columns for displaying row names --- first one will be a grouping function unless there is only one row property name\r\n let rowsToSkip = 0;\r\n //if approval mode, add approved column first\r\n let approvalU = \" \"\r\n + \" \"\r\n + \"\";\r\n let approvalA = \" \"\r\n + \" \"\r\n + \"\";\r\n let approvalR = \" \"\r\n + \" \"\r\n + \"\";\r\n if (this.crewTimecardDataService.usageMode == \"approval\")\r\n this.columns.push({\r\n id: \"Approval\",\r\n header: \"\",\r\n width: 158,\r\n template: function (obj) {\r\n if (obj.IsReadOnly == \"1\") {\r\n return \"\";\r\n }\r\n else if (obj.PendingStatus == \"A\") {\r\n return approvalA;\r\n }\r\n else if (obj.PendingStatus == \"R\") {\r\n return approvalR;\r\n }\r\n else {\r\n return approvalU;\r\n }\r\n }\r\n });\r\n if (this.rowPropertyNames.length >= 2) {\r\n let colWidth = 150;\r\n let header = this.rowPropertyNames[0];\r\n if (this.sharedColumnInfo[this.rowPropertyNames[0]] != null) {\r\n if (this.crewTimecardDataService.usageMode == \"approval\")\r\n colWidth = this.sharedColumnInfo[this.rowPropertyNames[0]].InputLength || 150;\r\n else\r\n colWidth = this.sharedColumnInfo[this.rowPropertyNames[0]].InputLength || 150;\r\n header = this.sharedColumnInfo[this.rowPropertyNames[0]].ColumnLabel;\r\n }\r\n rowsToSkip = 1;\r\n if (this.crewTimecardDataService.usageMode == \"approval\" && this.rowPropertyNames[0] == \"Employee\") {\r\n this.columns.push({\r\n id: this.rowPropertyNames[0],\r\n header: header,\r\n width: colWidth,\r\n template: \"{common.subrow()} #EmployeeLabel#\"\r\n });\r\n }\r\n else if (this.crewTimecardDataService.usageMode == \"PR\") {\r\n if (header != \"JCCo\" && header != \"Job\" && header != \"udUM\" && header != \"RevCode\" && PRColumnsToIgnore.indexOf(header) == -1) {\r\n this.columns.push({\r\n id: this.rowPropertyNames[0],\r\n header: header,\r\n width: colWidth,\r\n adjust: false\r\n });\r\n if (header == \"udSort\") {\r\n this.udSortUsed = true;\r\n }\r\n }\r\n }\r\n else if (this.crewTimecardDataService.usageMode == \"PREQ\") {\r\n if (header == \"Equipment\" || header == \"Phase\" || header == \"udUM\" || header == \"RevCode\" || header == \"Memo\" || header == \"udSort\" || header == \"UsageUnits\") {\r\n this.columns.push({\r\n id: this.rowPropertyNames[0],\r\n header: header,\r\n width: colWidth,\r\n adjust: false\r\n });\r\n if (header == \"udSort\") {\r\n this.udSortUsed = true;\r\n }\r\n }\r\n }\r\n else {\r\n this.columns.push({\r\n id: this.rowPropertyNames[0],\r\n header: header,\r\n width: colWidth,\r\n adjust: false\r\n });\r\n }\r\n\r\n }\r\n $.each(this.rowPropertyNames.slice(rowsToSkip), (rowPropertyNameIndex, rowPropertyName) => {\r\n //Job Approval\r\n if (this.crewTimecardDataService.usageMode == \"approval\") {\r\n if (rowPropertyName == \"Memo\") {\r\n let colWidth = 250;\r\n let header = rowPropertyName;\r\n\r\n if (this.sharedColumnInfo[rowPropertyName] != null) {\r\n if (this.crewTimecardDataService.usageMode == \"approval\")\r\n colWidth = this.sharedColumnInfo[rowPropertyName].InputLength || 250;\r\n header = this.sharedColumnInfo[rowPropertyName].ColumnLabel;\r\n }\r\n if (header == \"udKDSTrackerID\")\r\n header = \"Timecard\";\r\n this.columns.push({ id: rowPropertyName, header: header, width: colWidth });\r\n }\r\n else {\r\n if (rowPropertyName != \"udSort\") {\r\n let colWidth = 150;\r\n let header = rowPropertyName;\r\n if (this.sharedColumnInfo[rowPropertyName] != null) {\r\n if (this.crewTimecardDataService.usageMode == \"approval\")\r\n colWidth = this.sharedColumnInfo[rowPropertyName].InputLength || 150;\r\n header = this.sharedColumnInfo[rowPropertyName].ColumnLabel;\r\n }\r\n if (header == \"udKDSTrackerID\")\r\n header = \"Timecard\";\r\n this.columns.push({ id: rowPropertyName, header: header, width: colWidth });\r\n }\r\n }\r\n }\r\n //Field Ticket Payroll\r\n else if (this.crewTimecardDataService.usageMode == \"PR\") {\r\n if (rowPropertyName != \"JCCo\" && rowPropertyName != \"Job\" && rowPropertyName != \"udUM\" && rowPropertyName != \"RevCode\" && PRColumnsToIgnore.indexOf(rowPropertyName) == -1) {\r\n let colWidth = 150;\r\n let header = rowPropertyName;\r\n if (this.sharedColumnInfo[rowPropertyName] != null) {\r\n colWidth = this.sharedColumnInfo[rowPropertyName].InputLength || 150;\r\n header = this.sharedColumnInfo[rowPropertyName].ColumnLabel;\r\n }\r\n if (header == \"udKDSTrackerID\")\r\n header = \"Timecard\";\r\n this.columns.push({ id: rowPropertyName, header: header, width: colWidth });\r\n if (rowPropertyName == \"udSort\") {\r\n this.udSortUsed = true;\r\n }\r\n\r\n }\r\n }\r\n //Field Ticket Equipment\r\n else if (this.crewTimecardDataService.usageMode == \"PREQ\") {\r\n if (rowPropertyName == \"Equipment\" || rowPropertyName == \"Phase\" || rowPropertyName == \"udUM\" || rowPropertyName == \"RevCode\" || rowPropertyName == \"Memo\" || rowPropertyName == \"udSort\" || rowPropertyName == \"UsageUnits\") {\r\n\r\n let colWidth = 150;\r\n let header = rowPropertyName;\r\n if (this.sharedColumnInfo[rowPropertyName] != null) {\r\n colWidth = this.sharedColumnInfo[rowPropertyName].InputLength || 150;\r\n header = this.sharedColumnInfo[rowPropertyName].ColumnLabel;\r\n }\r\n if (header == \"udKDSTrackerID\")\r\n header = \"Timecard\";\r\n this.columns.push({ id: rowPropertyName, header: header, width: colWidth });\r\n if (rowPropertyName == \"udSort\") {\r\n this.udSortUsed = true;\r\n }\r\n }\r\n }\r\n //Grid Timecard\r\n else {\r\n if (rowPropertyName == \"Memo\") {\r\n let colWidth = 250;\r\n let header = rowPropertyName;\r\n\r\n if (this.sharedColumnInfo[rowPropertyName] != null) {\r\n colWidth = this.sharedColumnInfo[rowPropertyName].InputLength || 250;\r\n header = this.sharedColumnInfo[rowPropertyName].ColumnLabel;\r\n }\r\n if (header == \"udKDSTrackerID\")\r\n header = \"Timecard\";\r\n this.columns.push({ id: rowPropertyName, header: header, width: colWidth });\r\n }\r\n else {\r\n let colWidth = 150;\r\n let header = rowPropertyName;\r\n if (this.sharedColumnInfo[rowPropertyName] != null) {\r\n colWidth = this.sharedColumnInfo[rowPropertyName].InputLength || 150;\r\n header = this.sharedColumnInfo[rowPropertyName].ColumnLabel;\r\n }\r\n if (header == \"udKDSTrackerID\")\r\n header = \"Timecard\";\r\n this.columns.push({ id: rowPropertyName, header: header, width: colWidth });\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n addRemainingColumnGroups(payPeriod) {\r\n this.columnsForDR = [];\r\n let multiDayTicketMode = payPeriod.DTRMultiDayMode;\r\n let totalHeader = this.portalSettings.CrewTotalsHeaderOverride.ConfigValue != null && this.portalSettings.CrewTotalsHeaderOverride.ConfigValue != \"\" ? this.portalSettings.CrewTotalsHeaderOverride.ConfigValue : \"Tot\";\r\n if (this.crewTimecardDataService.usageMode == \"approval\") {\r\n this.columns.push({\r\n id: \"Sub Total\",\r\n header: totalHeader,\r\n math: \"sumHours($r)\",\r\n adjust: \"header\",\r\n width: 50,\r\n footer: { content: \"summFixedColumn\" }\r\n });\r\n }\r\n let preqPostDates = [];\r\n $.each(this.columnMapKeyArr, (columnMapKeyIndex, columnMapKey) => {\r\n let headers = [];\r\n let columnMetadata = this.columnMap[columnMapKey];\r\n let columnName = columnMapKey.substr(columnMapKey.indexOf(\"@\") + 1);\r\n let widthOverride;\r\n if (this.crewTimecardDataService.usageMode == \"approval\")\r\n widthOverride = this.sharedColumnInfo[columnName].InputLength || 100;\r\n else\r\n widthOverride = this.sharedColumnInfo[columnName].InputLength || 100;\r\n if ((this.crewTimecardDataService.usageMode == \"PR\" && (columnName == \"Hours\" || (columnName == \"UsageUnits\" && this.showEquipment))) || (this.crewTimecardDataService.usageMode == \"PREQ\" && columnName == \"UsageUnits\")) {\r\n let shiftIndex = this.columnPropertyNames.indexOf(\"Shift\");\r\n let earnCodeIndex = this.columnPropertyNames.indexOf(\"EarnCode\");\r\n if (this.crewTimecardDataService.usageMode != \"PREQ\") {\r\n for (let i = 0; i < columnMetadata.columnValues.length; ++i) {\r\n //filter out the date headers and well everything else if its PREQ\r\n if (multiDayTicketMode ||\r\n columnMetadata.columnDisplayValues[i].indexOf(\"Mo<\") == -1 && columnMetadata.columnDisplayValues[i].indexOf(\"Tu<\") == -1 &&\r\n columnMetadata.columnDisplayValues[i].indexOf(\"We<\") == -1 && columnMetadata.columnDisplayValues[i].indexOf(\"Th<\") == -1 &&\r\n columnMetadata.columnDisplayValues[i].indexOf(\"Fr<\") == -1 && columnMetadata.columnDisplayValues[i].indexOf(\"Sa<\") == -1 &&\r\n columnMetadata.columnDisplayValues[i].indexOf(\"Su<\") == -1) {\r\n //lets calculate some width and height!\r\n let canvas = document.createElement('canvas');\r\n let ctx = canvas.getContext(\"2d\");\r\n let width = ctx.measureText(columnMetadata.columnDisplayValues[i]).width;\r\n let approximateSpace = widthOverride * columnMetadata.columnValueCounts[i];\r\n let widthRatio = Math.ceil(width / approximateSpace);\r\n\r\n //Actually use it\r\n if (columnMetadata.columnDisplayValues[i] != null && (columnMetadata.columnDisplayValues[i].indexOf(\"
\") != -1 || columnMetadata.columnDisplayValues[i].indexOf(\" \") != -1)) {\r\n\r\n if (columnMetadata.columnDisplayValues[i].indexOf(\"
\") != -1 && widthRatio == 1) {\r\n widthRatio = 2;\r\n }\r\n if (multiDayTicketMode)\r\n headers.push({ text: columnMetadata.columnDisplayValues[i], css: \"multiline\", colspan: columnMetadata.columnValueCounts[i], height: 30 * widthRatio });\r\n else\r\n headers.push({ text: columnMetadata.columnDisplayValues[i], css: \"multiline\", height: 30 * widthRatio });\r\n }\r\n else {\r\n if (multiDayTicketMode)\r\n headers.push({ text: columnMetadata.columnDisplayValues[i], css: \"multiline\", colspan: columnMetadata.columnValueCounts[i] });\r\n else\r\n headers.push({ text: columnMetadata.columnDisplayValues[i], css: \"multiline\", height: 30 * widthRatio });\r\n }\r\n }\r\n }\r\n }\r\n else if (this.crewTimecardDataService.usageMode == \"PREQ\") {\r\n if (earnCodeIndex > -1) {\r\n if (columnMetadata.columnValues[earnCodeIndex] != this.equipmentDefaultEarnCode) {\r\n return;\r\n }\r\n }\r\n if (shiftIndex > -1) {\r\n if (columnMetadata.columnValues[shiftIndex] != this.equipmentDefaultShift) {\r\n return;\r\n }\r\n }\r\n if (multiDayTicketMode) {\r\n if (preqPostDates.indexOf(columnMetadata.columnDisplayValues[0]) > -1)\r\n return;\r\n preqPostDates.push(columnMetadata.columnDisplayValues[0]);\r\n //lets calculate some width and height!\r\n let canvas = document.createElement('canvas');\r\n let ctx = canvas.getContext(\"2d\");\r\n let width = ctx.measureText(columnMetadata.columnDisplayValues[0]).width;\r\n let approximateSpace = widthOverride * columnMetadata.columnValueCounts[0];\r\n let widthRatio = Math.ceil(width / approximateSpace);\r\n if (columnMetadata.columnDisplayValues[0].indexOf(\"
\") != -1 && widthRatio == 1) {\r\n widthRatio = 2;\r\n }\r\n headers.push({ text: columnMetadata.columnDisplayValues[0], css: \"multiline\", height: 30 * widthRatio });\r\n }\r\n }\r\n\r\n let valuePropertyName = columnMetadata.valuePropertyName.substr(1);\r\n headers.push(this.sharedColumnInfo[valuePropertyName].ColumnLabel);\r\n let column: any = {\r\n id: columnMapKey,\r\n header: headers,\r\n }\r\n\r\n column.width = this.sharedColumnInfo[columnName].InputLength || null;\r\n\r\n if (shiftIndex == -1 && earnCodeIndex == -1)\r\n throw \"PR Timecard missing Shift or Earncode\";\r\n let valueToUse = shiftIndex > -1 ? \"Shift\" : \"EarnCode\";\r\n let displayValue = columnMetadata.columnDisplayValues[this.columnPropertyNames.indexOf(valueToUse)].replace(/
/g, \"\").replace(/ /g, \" \")\r\n if (this.showEquipment)\r\n displayValue += \" - \" + valuePropertyName;\r\n\r\n if (multiDayTicketMode) {\r\n let dataValueParts = columnMapKey.split('___');\r\n dataValueParts.shift();\r\n let dataValue = dataValueParts.join('___');\r\n this.columnsForDR.map((x) => { return x.DataValue }).indexOf(dataValue);\r\n if (this.columnsForDR.map((x) => { return x.DataValue }).indexOf(dataValue) == -1) {\r\n this.columnsForDR.push({ DisplayValue: displayValue, DataValue: dataValue, HeaderLabel: this.sharedColumnInfo[valuePropertyName].ColumnLabel });\r\n }\r\n\r\n }\r\n else {\r\n if (valuePropertyName != \"UsageUnits\" || this.crewTimecardDataService.usageMode != \"PR\")\r\n this.columnsForDR.push({ DisplayValue: displayValue, DataValue: columnMapKey, HeaderLabel: this.sharedColumnInfo[valuePropertyName].ColumnLabel });\r\n }\r\n\r\n if (columnName == \"Hours\" || columnName == \"UsageUnits\") {\r\n column.footer = { content: \"summFixedColumn\" };\r\n }\r\n this.columns.push(column);\r\n //if using PREQ, add only first usage units column\r\n if (this.crewTimecardDataService.usageMode == \"PREQ\" && this.equipmentDefaultEarnCode == null && !multiDayTicketMode)\r\n return false;\r\n }\r\n else if (this.crewTimecardDataService.usageMode != \"PR\" && this.crewTimecardDataService.usageMode != \"PREQ\") {\r\n for (let i = 0; i < columnMetadata.columnValues.length; ++i) {\r\n //lets calculate some width and height!\r\n let canvas = document.createElement('canvas');\r\n let ctx = canvas.getContext(\"2d\");\r\n let width = ctx.measureText(columnMetadata.columnDisplayValues[i]).width;\r\n let approximateSpace = widthOverride * columnMetadata.columnValueCounts[i];\r\n let widthRatio = Math.ceil(width / approximateSpace);\r\n\r\n //Actually use it\r\n if (columnMetadata.columnDisplayValues[i] != null && (columnMetadata.columnDisplayValues[i].indexOf(\"
\") != -1 || columnMetadata.columnDisplayValues[i].indexOf(\" \") != -1)) {\r\n headers.push({ text: columnMetadata.columnDisplayValues[i], colspan: columnMetadata.columnValueCounts[i], css: \"multiline\", height: 60 });\r\n }\r\n else\r\n headers.push({ text: columnMetadata.columnDisplayValues[i], colspan: columnMetadata.columnValueCounts[i], css: \"multiline\" });\r\n\r\n }\r\n let valuePropertyName = columnMetadata.valuePropertyName.substr(1);\r\n headers.push(this.sharedColumnInfo[valuePropertyName].ColumnLabel);\r\n let column: any = {\r\n id: columnMapKey,\r\n header: headers\r\n }\r\n\r\n column.width = widthOverride || null;\r\n if (columnName == \"Hours\" || columnName == \"UsageUnits\") {\r\n column.footer = { content: \"summFixedColumn\" };\r\n }\r\n this.columns.push(column);\r\n }\r\n });\r\n if (this.crewTimecardDataService.usageMode != \"approval\") {\r\n let approveTemplate = \"\";\r\n let bulkEmployeeTemplate = null;\r\n if (this.crewTimecardDataService.usageMode == \"crewtimecard\") {\r\n bulkEmployeeTemplate = \"\";\r\n }\r\n\r\n let deleteTemplate = \"\";\r\n let totalHeader = this.portalSettings.CrewTotalsHeaderOverride.ConfigValue != null && this.portalSettings.CrewTotalsHeaderOverride.ConfigValue != \"\" ? this.portalSettings.CrewTotalsHeaderOverride.ConfigValue : \"Tot\";\r\n if (this.crewTimecardDataService.usageMode != \"PREQ\") {\r\n this.columns.push({\r\n id: \"Sub Total\",\r\n header: totalHeader,\r\n\r\n adjust: \"header\",\r\n footer: { content: \"summFixedColumn\" }\r\n });\r\n }\r\n\r\n this.columns.push({\r\n id: \"action\",\r\n header: \"\",\r\n width: 120,\r\n template: (obj) => {\r\n if (obj.IsSubmitted == \"1\") {\r\n if (obj.IsApproved == \"1\" || obj.IsReadOnly == \"1\" || this.crewTimecardDataService.readOnlyGrid) {\r\n return \"\";\r\n }\r\n else {\r\n if (this.crewTimecardDataService.usageMode == \"crewtimecard\") {\r\n return approveTemplate;\r\n }\r\n else if (this.portalSettings.DTREmpEquReadOnlyOverride.ConfigValue == 1 && (this.crewTimecardDataService.usageMode == \"PR\" || this.crewTimecardDataService.usageMode == \"PREQ\")) {\r\n return deleteTemplate;\r\n }\r\n else\r\n return \"\";\r\n }\r\n\r\n }\r\n else {\r\n if (obj.IsReadOnly == \"1\" || this.crewTimecardDataService.readOnlyGrid) {\r\n return \"\";\r\n }\r\n else {\r\n return deleteTemplate;\r\n }\r\n\r\n }\r\n },\r\n css: \"padding_less\"\r\n });\r\n if (this.crewTimecardDataService.usageMode == \"crewtimecard\" && !this.employeeInfo.IsReadOnlyGridTime && this.employeeInfo.IsAuthFMGridTime && !this.crewTimecardDataService.readOnlyGrid) {\r\n this.columns.push(\r\n {\r\n id: \"bulkEmployeeSelect\",\r\n header: \"\",\r\n width: 110,\r\n template: (obj) => {\r\n if (obj.IsSubmitted != \"1\") {\r\n return bulkEmployeeTemplate;\r\n }\r\n else\r\n return \"\";\r\n },\r\n css: \"padding_less\"\r\n });\r\n }\r\n }\r\n else {\r\n if (this.portalSettings.JobApprovalSplitButton.ConfigValue == 1) {\r\n let splitTemplate = \"\";\r\n let deleteTemplate = \"\";\r\n this.columns.push({\r\n id: \"splitAction\",\r\n header: \"\",\r\n width: 120,\r\n template: (obj) => {\r\n if (this.crewTimecardDataService.usageMode == \"approval\" && obj.IsLocked == \"1\") {\r\n return \"\";\r\n }\r\n if (obj.IsSubmitted == \"1\") {\r\n return \"\";\r\n }\r\n else {\r\n if (obj.IsReadOnly == \"1\") {\r\n return \"\";\r\n }\r\n else if (obj.isNewRow) {\r\n return deleteTemplate;\r\n }\r\n else {\r\n return splitTemplate;\r\n }\r\n\r\n }\r\n },\r\n css: \"padding_less\"\r\n });\r\n }\r\n let deleteZeroTemplate = \"\";\r\n this.columns.push({\r\n id: \"deleteZero\",\r\n header: \"\",\r\n width: 120,\r\n template: (obj) => {\r\n if (obj.IsDelete == \"1\" && !obj.isNewRow) {\r\n return deleteZeroTemplate\r\n }\r\n else {\r\n return \"\"\r\n }\r\n },\r\n css: \"padding_less\"\r\n });\r\n\r\n }\r\n\r\n };\r\n\r\n populateRows(rowContainer, remainingRowPropertyNames, sharedRowProperties, copyingRowProps, propertyValues) {\r\n if (remainingRowPropertyNames.length == 0) {\r\n if (rowContainer.ColumnCollection) {\r\n // Add in shared data for all column values\r\n sharedRowProperties['___ColumnCollection'] = propertyValues;\r\n\r\n this.populateRows(rowContainer.ColumnCollection, this.columnPropertyNames, sharedRowProperties, false, []);\r\n if (this.crewTimecardDataService.usageMode == \"approval\") {\r\n let employee = sharedRowProperties.Employee != null ? sharedRowProperties.Employee.substr(0, sharedRowProperties.Employee.indexOf(\"@\")) : sharedRowProperties.Employee;\r\n sharedRowProperties.EmployeeLabel = sharedRowProperties[\"Employee___@Value\"];\r\n sharedRowProperties.DailyTime = this.dailyTimeByEmployee[employee];\r\n }\r\n if (sharedRowProperties.Employee != null && sharedRowProperties.Employee != \"\" && sharedRowProperties.Employee.substr(0, sharedRowProperties.Employee.indexOf(\"@\") != \"\")) {\r\n //filter rows if usage mode is PR or PREQ\r\n if (this.crewTimecardDataService.usageMode == \"PR\" && sharedRowProperties.Employee.substr(0, sharedRowProperties.Employee.indexOf(\"@\")) != this.equipmentEmployee) {\r\n this.rows.push(sharedRowProperties);\r\n }\r\n else if (this.crewTimecardDataService.usageMode == \"PREQ\" && sharedRowProperties.Employee.substr(0, sharedRowProperties.Employee.indexOf(\"@\")) == this.equipmentEmployee) {\r\n this.rows.push(sharedRowProperties);\r\n }\r\n else if (this.crewTimecardDataService.usageMode != \"PR\" && this.crewTimecardDataService.usageMode != \"PREQ\") {\r\n this.rows.push(sharedRowProperties);\r\n }\r\n\r\n }\r\n } else {\r\n // Add Rows\r\n\r\n if (rowContainer.Value.constructor === Array) {\r\n $.each(rowContainer.Value, (containerKey, containerVal) => {\r\n $.each(this.valuePropertyNames, (valuePropertyNameIndex, valuePropertyName) => {\r\n let columnValueKey = propertyValues.join('___') + '___' + valuePropertyName;\r\n\r\n //Will only enter once a value is found\r\n if (sharedRowProperties[columnValueKey] != null && sharedRowProperties[columnValueKey] != \"\") {\r\n if (columnValueKey.indexOf(\"Hours\") > 0 && !isNaN(sharedRowProperties[columnValueKey])) {\r\n let numVal = parseFloat(sharedRowProperties[columnValueKey]);\r\n let newVal = containerVal[valuePropertyName];\r\n if (containerVal[valuePropertyName] != null && containerVal[valuePropertyName] != \"\") {\r\n numVal += parseFloat(newVal);\r\n sharedRowProperties.IsRowAggregate = true;\r\n }\r\n\r\n sharedRowProperties[columnValueKey] = numVal.toString();\r\n }\r\n }\r\n //Will enter on first value found\r\n else {\r\n if (columnValueKey.indexOf(\"StartTime\") > 0) {\r\n sharedRowProperties[columnValueKey] = this.parseTime(containerVal[valuePropertyName], \"start\");\r\n }\r\n else if (columnValueKey.indexOf(\"StopTime\") > 0)\r\n sharedRowProperties[columnValueKey] = this.parseTime(containerVal[valuePropertyName], \"stop\");\r\n else\r\n sharedRowProperties[columnValueKey] = containerVal[valuePropertyName];\r\n }\r\n });\r\n });\r\n\r\n sharedRowProperties[\"KeyID\"] = rowContainer.Value[0][\"@KeyID\"];\r\n if (this.crewTimecardDataService.usageMode != \"approval\") {\r\n sharedRowProperties[\"IsReadOnly\"] = rowContainer.Value[0][\"@IsReadOnly\"];\r\n sharedRowProperties[\"IsApproved\"] = rowContainer.Value[0][\"@IsApproved\"];\r\n sharedRowProperties[\"IsSubmitted\"] = rowContainer.Value[0][\"@IsSubmitted\"];\r\n }\r\n else {\r\n sharedRowProperties[\"PendingStatus\"] = rowContainer.Value[0][\"@PendingStatus\"];\r\n if (!sharedRowProperties[\"IsDelete\"] || (rowContainer.Value[0][\"@IsDelete\"] == 1 && sharedRowProperties[\"IsDelete\"] == 0))\r\n sharedRowProperties[\"IsDelete\"] = rowContainer.Value[0][\"@IsDelete\"];\r\n if (!sharedRowProperties[\"IsLocked\"] || (rowContainer.Value[0][\"@IsLocked\"] == 1 && sharedRowProperties[\"IsLocked\"] == 0))\r\n sharedRowProperties[\"IsLocked\"] = rowContainer.Value[0][\"@IsLocked\"];\r\n }\r\n }\r\n else {\r\n $.each(this.valuePropertyNames, (valuePropertyNameIndex, valuePropertyName) => {\r\n let columnValueKey = propertyValues.join('___') + '___' + valuePropertyName;\r\n sharedRowProperties[columnValueKey] = rowContainer.Value[valuePropertyName];\r\n if (columnValueKey.indexOf(\"@StartTime\") != -1) {\r\n sharedRowProperties[columnValueKey] = this.parseTime(sharedRowProperties[columnValueKey], \"start\");\r\n }\r\n else if (columnValueKey.indexOf(\"@StopTime\") != -1) {\r\n sharedRowProperties[columnValueKey] = this.parseTime(sharedRowProperties[columnValueKey], \"stop\");\r\n }\r\n });\r\n sharedRowProperties[\"KeyID\"] = rowContainer.Value[\"@KeyID\"];\r\n if (this.crewTimecardDataService.usageMode != \"approval\") {\r\n sharedRowProperties[\"IsReadOnly\"] = rowContainer.Value[\"@IsReadOnly\"];\r\n sharedRowProperties[\"IsApproved\"] = rowContainer.Value[\"@IsApproved\"];\r\n sharedRowProperties[\"IsSubmitted\"] = rowContainer.Value[\"@IsSubmitted\"];\r\n }\r\n else {\r\n sharedRowProperties[\"IsReadOnly\"] = rowContainer.Value[\"@IsReadOnly\"];\r\n sharedRowProperties[\"PendingStatus\"] = rowContainer.Value[\"@PendingStatus\"];\r\n if (!sharedRowProperties[\"IsDelete\"] || (rowContainer.Value[\"@IsDelete\"] == 1 && sharedRowProperties[\"IsDelete\"] == 0))\r\n sharedRowProperties[\"IsDelete\"] = rowContainer.Value[\"@IsDelete\"];\r\n if (!sharedRowProperties[\"IsLocked\"] || (rowContainer.Value[\"@IsLocked\"] == 1 && sharedRowProperties[\"IsLocked\"] == 0))\r\n sharedRowProperties[\"IsLocked\"] = rowContainer.Value[\"@IsLocked\"];\r\n }\r\n }\r\n\r\n\r\n }\r\n } else {\r\n // Add in shared data for all \"row\" header values\r\n let rowPropertyName = remainingRowPropertyNames[0];\r\n let rowCollection = rowContainer[rowPropertyName];\r\n let count = 0;\r\n\r\n $.each(rowCollection, (rowIndex, row) => {\r\n if (rowPropertyName == \"StartTime\" || rowPropertyName == \"StopTime\") {\r\n let oldValue = row[\"@Value\"];\r\n let newValue = this.parseTime(oldValue, rowPropertyName);\r\n row[\"@Value\"] = newValue;\r\n }\r\n let newSharedRowProperties = sharedRowProperties;\r\n let newPropertyValues = $.extend([], propertyValues);\r\n newPropertyValues.push(row['@Value']);\r\n\r\n if (copyingRowProps) {\r\n newSharedRowProperties = $.extend(true, {}, sharedRowProperties);\r\n if (this.sharedColumnInfo[rowPropertyName] != null && this.sharedColumnInfo[rowPropertyName].IsCombo == 1) {\r\n newSharedRowProperties[rowPropertyName] = row['@Value'] + \"@row_\";\r\n }\r\n else {\r\n newSharedRowProperties[rowPropertyName] = row['@Value'];\r\n }\r\n newSharedRowProperties[rowPropertyName + '___@Value'] = this.escapeHtml(row['@Label']);\r\n } else {\r\n newSharedRowProperties[rowPropertyName] = row['@Value'];\r\n }\r\n count++;\r\n this.populateRows(row, remainingRowPropertyNames.slice(1), newSharedRowProperties, copyingRowProps, newPropertyValues);\r\n });\r\n }\r\n }\r\n\r\n addRows(rows, dataTable, callback) {\r\n let addedRows = [];\r\n if (this.lastID == null) {\r\n this.lastID = 0;\r\n dataTable.eachRow((id) => {\r\n this.lastID = Math.max(this.lastID, id);\r\n });\r\n }\r\n this.lastID++;\r\n rows.forEach((rowToAdd) => {\r\n let row = _.cloneDeep(rowToAdd);\r\n row.id = this.lastID;\r\n $.each(rowToAdd, (key, val) => {\r\n if (this.rowPropertyNames.indexOf(key) > -1) {\r\n if (key == \"udSort\") {\r\n this.largestSortID++;\r\n row[\"udSort\"] = this.largestSortID;\r\n }\r\n else {\r\n if (val != null && val != \"\") {\r\n if (this.sharedColumnInfo[key].IsCombo == 1)\r\n row[key] = val + \"@row_\" + row.id;\r\n else\r\n row[key] = val;\r\n }\r\n else {\r\n row[key] = \"\";\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n });\r\n dataTable.add(row, 0);\r\n addedRows.push(row);\r\n this.lastID++;\r\n });\r\n callback(addedRows);\r\n }\r\n\r\n //Helper functions\r\n private getCollectionItemByProperty(collection, propertyName, propertyValue, columnName) {\r\n let foundItem = null;\r\n $.each(collection, (itemIndex, item) => {\r\n //special handling for start/stop time as shared row value\r\n if (columnName == \"StartTime\" || columnName == \"StopTime\") {\r\n let value = this.parseTime(item[propertyName], propertyName);\r\n if (value === propertyValue) {\r\n foundItem = item;\r\n return false;\r\n }\r\n }\r\n else {\r\n if (item[propertyName] === propertyValue) {\r\n foundItem = item;\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n });\r\n return foundItem;\r\n }\r\n\r\n private getColumnCollectionByRowValues(firstRowParent, rowValues) {\r\n let parentObj = firstRowParent;\r\n for (let i = 0; i < this.rowPropertyNames.length; ++i) {\r\n let collection = parentObj[this.rowPropertyNames[i]];\r\n parentObj = this.getCollectionItemByProperty(collection, '@Value', rowValues[i], this.rowPropertyNames[i]);\r\n }\r\n return parentObj.ColumnCollection;\r\n }\r\n\r\n\r\n private getColumnValuesCount(obj, remainingColumnNamesArr) {\r\n if (remainingColumnNamesArr.length == 0) {\r\n return this.valuePropertyNames.length;\r\n }\r\n let childColumnName = remainingColumnNamesArr[0];\r\n let subColumnCollection = obj[childColumnName];\r\n let columnValuesCount = 0;\r\n $.each(subColumnCollection, (childColumnIndex, childColumn) => {\r\n columnValuesCount += this.getColumnValuesCount(childColumn, remainingColumnNamesArr.slice(1));\r\n });\r\n return columnValuesCount;\r\n }\r\n\r\n private getFirstObjectWithName(obj, propertyName) {\r\n if ($.isArray(obj)) return this.getFirstObjectWithName(obj[0], propertyName);\r\n if (obj[propertyName]) return obj[propertyName];\r\n let firstObjWithName = null;\r\n $.each(obj, (key, childObj) => {\r\n if (key[0] === '@') return true;\r\n firstObjWithName = this.getFirstObjectWithName(childObj, propertyName);\r\n return firstObjWithName == null;\r\n });\r\n return firstObjWithName;\r\n }\r\n\r\n parseTime(value, mode) {\r\n if (value != null && value != \"\") {\r\n if (value.length > 8) {\r\n value = value.substr(value.lastIndexOf(\" \") + 1);\r\n }\r\n let timeStr = value;\r\n timeStr = timeStr.trim().replace(\" \", \"\");\r\n let timeOfDay = timeStr.toUpperCase().indexOf('A') != -1\r\n ? 'AM'\r\n : timeStr.toUpperCase().indexOf('P') != -1\r\n ? 'PM' : null;\r\n //detect non-colon time\r\n if (timeOfDay == null && timeStr.trim().length > 2 && timeStr.indexOf(\":\") == -1) {\r\n timeStr = timeStr.slice(0, timeStr.length - 2) + \":\" + timeStr.slice(timeStr.length - 2);\r\n }\r\n else if (timeStr.length > 4 && timeStr.indexOf(\":\") == -1) {\r\n let tempTimeStr = timeStr.toLowerCase();\r\n tempTimeStr = tempTimeStr.replace(\" \", \"\").replace(\"am\", \"\").replace(\"pm\", \"\").trim();\r\n tempTimeStr = tempTimeStr.slice(0, tempTimeStr.length - 2) + \":\" + tempTimeStr.slice(tempTimeStr.length - 2);\r\n timeStr = tempTimeStr + \" \" + timeOfDay;\r\n }\r\n let timeObj = this.timeParserService.parseTime(timeStr);\r\n let isValid = timeStr != '' && timeObj != null;\r\n if (isValid) {\r\n //Adjust time of new entries based on if the entry was Start or Stop\r\n if (timeOfDay == null && !this.time24HourMode) {\r\n if (mode == \"StartTime\") {\r\n //hours format\r\n if (timeStr >= 1 && timeStr <= 5) {\r\n timeObj.addHours(12);\r\n }\r\n //colon format\r\n let tempTimeStr = timeStr.replace(\":\", \"\");\r\n if (tempTimeStr >= 100 && tempTimeStr <= 559) {\r\n timeObj.addHours(12);\r\n }\r\n }\r\n else if (mode == \"StopTime\") {\r\n //hours format\r\n if (timeStr >= 1 && timeStr <= 8) {\r\n timeObj.addHours(12);\r\n }\r\n //colon format\r\n let tempTimeStr = timeStr.replace(\":\", \"\");\r\n if (tempTimeStr >= 100 && tempTimeStr <= 859) {\r\n timeObj.addHours(12);\r\n }\r\n }\r\n }\r\n let newTimeStr;\r\n if (this.time24HourMode)\r\n newTimeStr = timeObj.toString('HH:mm');\r\n else\r\n newTimeStr = timeObj.toString('hh:mm tt');\r\n if (timeStr != newTimeStr) {\r\n return newTimeStr\r\n }\r\n }\r\n return timeStr;\r\n }\r\n return \"\";\r\n }\r\n\r\n private escapeHtml(unsafe) {\r\n return unsafe\r\n .replace(/&/g, \"&\")\r\n .replace(//g, \">\")\r\n .replace(/\"/g, \""\")\r\n .replace(/'/g, \"'\");\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.css']\r\n})\r\nexport class FileUploadComponent {\r\n\r\n photoAlert: any;\r\n fileData: any[] = [];\r\n @Input('InputFile') fileHR: any;\r\n @Input() uploadText: string;\r\n innerCounter: number;\r\n @Input('OutputFile') attNewFile: any[] = [];\r\n validComboDrag: any;\r\n dragFiles: any;\r\n @Output() OutputFileChange = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n personalInfoUpload() {\r\n var currentFiles = this.fileHR;\r\n this.fileHR = [];\r\n this.fileData = [];\r\n\r\n if (currentFiles !== null) {\r\n //process filename\r\n for (var i = 0; i < currentFiles.length; i++) {\r\n currentFiles[i].nameEdit = this.processFileName(currentFiles[i].name);\r\n }\r\n\r\n for (var i = 0; i < currentFiles.length; i++) {\r\n var preLoad = 0;\r\n this.innerCounter = 0;\r\n this.readFile(currentFiles[i], (e: any, fileName: string) => {\r\n setTimeout(() => {\r\n this.fileData.push({ data: e.target.result.toString().split(\",\"), size: e.total, name: fileName });\r\n if (preLoad == (currentFiles.length - 1)) {\r\n this.fileData.forEach((val: any) => {\r\n currentFiles.forEach((val2: any) => {\r\n if (val2.size === val.size && val.name === val2.name) {\r\n this.attNewFile.push({ File: val.data[1], Filename: val2.nameEdit, Filedata: val2, Type: val.data[0].split(\"/\")[0] });\r\n this.OutputFileChange.emit(this.attNewFile);\r\n }\r\n });\r\n });\r\n }\r\n preLoad++;\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n private processFileName(filename: string) {\r\n var editedFilename = \"\";\r\n for (var y = 0; y < filename.substr(0, filename.lastIndexOf('.') + 1).length; y++) {\r\n if (filename[y] != \" \" && filename[y] != \"&\" && filename[y] != \"*\" && filename[y] != \":\" &&\r\n filename[y] != \";\" && filename[y] != \"|\" && filename[y] != \"=\" && filename[y] != \",\" &&\r\n filename[y] != \".\" && filename[y] != \"/\" && filename[y] != \"\\\"\" && filename[y] != \"[\" &&\r\n filename[y] != \"]\")\r\n editedFilename += filename[y];\r\n }\r\n editedFilename += filename.substr(filename.lastIndexOf('.'), filename.length);\r\n return editedFilename;\r\n }\r\n\r\n private readFile(file: any, call: any) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) { return call(e, file.name) };\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n attachDelete(index: any) {\r\n this.attNewFile.splice(index, 1);\r\n this.OutputFileChange.emit(this.attNewFile);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n {{uploadText}}\r\n
\r\n
\r\n
\r\n
\r\n {{file.Filename}}\r\n \r\n
\r\n
0\">\r\n
{{file.Progress}}%
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { CalendarEvent, CalendarMonthViewBeforeRenderEvent, CalendarMonthViewDay, CalendarView } from 'angular-calendar';\nimport { addDays, addMonths, addWeeks, endOfDay, endOfMonth, endOfWeek, isSameDay, startOfDay, startOfMonth, startOfWeek, subDays, subMonths, subWeeks } from 'date-fns';\nimport moment from 'moment';\nimport { Subject } from 'rxjs';\n\ntype CalendarPeriod = 'day' | 'week' | 'month';\n\nfunction addPeriod(period: CalendarPeriod, date: Date, amount: number): Date {\n return {\n day: addDays,\n week: addWeeks,\n month: addMonths,\n }[period](date, amount);\n}\n\nfunction startOfPeriod(period: CalendarPeriod, date: Date): Date {\n return {\n day: startOfDay,\n week: startOfWeek,\n month: startOfMonth,\n }[period](date);\n}\n\nfunction subPeriod(period: CalendarPeriod, date: Date, amount: number): Date {\n return {\n day: subDays,\n week: subWeeks,\n month: subMonths,\n }[period](date, amount);\n}\n\nfunction endOfPeriod(period: CalendarPeriod, date: Date): Date {\n return {\n day: endOfDay,\n week: endOfWeek,\n month: endOfMonth\n }[period](date);\n}\n\n@Component({\n selector: 'app-multiple-date-selector',\n templateUrl: './multiple-date-selector.component.html',\n styleUrls: ['./multiple-date-selector.component.css']\n})\nexport class MultipleDateSelectorComponent implements OnInit {\n\n //Defaulting to month view and today's date as current\n view: CalendarView | CalendarPeriod = CalendarView.Month;\n viewDate: Date = new Date();\n excludeDays: number[] = [];\n\n //Read special dates from main component\n @Input() events: CalendarEvent[] = [];\n @Input() locale: string = 'en';\n @Input() selectedDate: any[] = [];\n @Input() firstSelectableDate: Date = new Date();\n @Input() isVacationDashAdmin: boolean = false;\n\n //Notify the selected date\n @Output() selectedDateChange = new EventEmitter();\n @Output() calculateTimeOff: EventEmitter = new EventEmitter();\n\n //Disable the calendar selection based on the user role\n @Input() minDate: Date;\n @Input() maxDate: Date;\n prevBtnDisabled: boolean = false;\n nextBtnDisabled: boolean = false;\n\n //Disable the weekend\n @Input() disableWeekendTimeOff: boolean = false;\n\n newTimeOffClass: string = 'new-time-off-date';\n refresh = new Subject();\n activeDayIsOpen: boolean;\n\n constructor() {\n this.dateOrViewChanged();\n }\n\n ngOnInit(): void {\n this.refreshSelectableDate();\n this.excludeDays = this.disableWeekendTimeOff ? [0, 6] : [];\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes != null && changes.firstSelectableDate != null) {\n var fromDate = this.firstSelectableDate;\n fromDate.setHours(0, 0, 0, 0);\n var tempDates = [];\n this.selectedDate.forEach((selection: any) => {\n if (selection.date >= fromDate) {\n tempDates.push(selection);\n }\n });\n this.selectedDate = tempDates;\n this.selectedDateChange.emit(this.selectedDate);\n this.refreshSelectableDate();\n this.dateOrViewChanged();\n this.refreshView();\n }\n }\n\n private refreshSelectableDate() {\n this.minDate = this.firstSelectableDate != null ? new Date(this.firstSelectableDate.setHours(0, 0, 0, 0)) : new Date();\n this.maxDate = this.isVacationDashAdmin ? moment(this.firstSelectableDate).add('100', 'years').toDate() : moment(this.firstSelectableDate).add('1', 'years').toDate();\n }\n\n private dateIsValid(date: Date): boolean {\n return date >= this.minDate && date <= this.maxDate;\n }\n\n private refreshView(): void {\n this.refresh.next();\n }\n\n increment(): void {\n this.activeDayIsOpen = false;\n this.changeDate(addPeriod(this.view, this.viewDate, 1));\n }\n\n decrement(): void {\n this.activeDayIsOpen = false;\n this.changeDate(subPeriod(this.view, this.viewDate, 1));\n }\n\n today(): void {\n this.changeDate(new Date());\n }\n\n private changeDate(date: Date): void {\n this.viewDate = date;\n this.dateOrViewChanged();\n }\n\n private dateOrViewChanged(): void {\n this.prevBtnDisabled = !this.dateIsValid(\n endOfPeriod(this.view, subPeriod(this.view, this.viewDate, 1))\n );\n this.nextBtnDisabled = !this.dateIsValid(\n startOfPeriod(this.view, addPeriod(this.view, this.viewDate, 1))\n );\n if (this.viewDate < this.minDate) {\n this.changeDate(this.minDate);\n } else if (this.viewDate > this.maxDate) {\n this.changeDate(this.maxDate);\n }\n }\n\n beforeMonthViewRender(renderEvent: CalendarMonthViewBeforeRenderEvent): void {\n //Process existing dates\n renderEvent.body.forEach((day) => {\n this.events.forEach((item) => {\n if (moment(day.date).isSame(item.start)) {\n if (item.meta.IsPartialRequest) {\n day.cssClass = \"partial-time-off-date-\" + item.meta.Category;\n }\n else {\n day.cssClass = \"existing-time-off-date-\" + item.meta.Category;\n }\n }\n });\n this.selectedDate.forEach((selection) => {\n if (moment(day.date).isSame(selection.date)) {\n day.cssClass = selection.cssClass;\n }\n });\n if (!this.dateIsValid(day.date)) {\n day.cssClass = 'cal-disabled';\n }\n });\n }\n\n\n dayClicked(day: CalendarMonthViewDay): void {\n const selectedDateTime = day.date.getTime();\n const eventDateIndex = this.events.findIndex(\n (existingEvent) => existingEvent.start.getTime() === selectedDateTime\n );\n const selectedDateIndex = this.selectedDate.findIndex(\n (selectedDate) => selectedDate.date.getTime() === selectedDateTime\n );\n\n //Display the holiday event title\n if ((isSameDay(this.viewDate, day.date) && this.activeDayIsOpen === true) || day.events.length === 0) {\n this.activeDayIsOpen = false;\n }\n else {\n if (day.events[0].meta != null && day.events[0].meta.Category == \"H\") {\n this.activeDayIsOpen = true;\n } else {\n this.activeDayIsOpen = false;\n }\n }\n //Move the month based on selected date.\n this.viewDate = day.date;\n\n if (day.events != [] && day.events.length > 0) {\n if (day.cssClass != this.newTimeOffClass && day.cssClass.indexOf(\"partial\") == -1) {\n return; // Do not allow selection of existing timeoff dates\n }\n }\n\n if (eventDateIndex != -1) {\n var cssClass = day.cssClass;\n //togged css class if its a partial date, else remove selected date\n switch (cssClass) {\n case \"partial-time-off-date-P\":\n day.cssClass = \"new-partial-P\";\n this.selectedDate.push(day);\n break;\n case \"partial-time-off-date-A\":\n day.cssClass = \"new-partial-A\";\n this.selectedDate.push(day);\n break;\n case \"partial-time-off-date-H\":\n day.cssClass = \"new-partial-H\";\n this.selectedDate.push(day);\n break;\n case \"partial-time-off-date-N\":\n day.cssClass = \"new-partial-N\";\n this.selectedDate.push(day);\n break;\n case \"new-partial-P\":\n day.cssClass = \"partial-time-off-date-P\";\n this.selectedDate.splice(selectedDateIndex, 1);\n break;\n case \"new-partial-A\":\n day.cssClass = \"partial-time-off-date-A\";\n this.selectedDate.splice(selectedDateIndex, 1);\n break;\n case \"new-partial-H\":\n day.cssClass = \"partial-time-off-date-H\";\n this.selectedDate.splice(selectedDateIndex, 1);\n break;\n case \"new-partial-N\":\n day.cssClass = \"partial-time-off-date-N\";\n this.selectedDate.splice(selectedDateIndex, 1);\n break;\n default:\n this.selectedDate.splice(selectedDateIndex, 1);\n break;\n }\n }\n else {\n //if date was not found, add new date to selection\n if (selectedDateIndex != -1 && day.cssClass == this.newTimeOffClass) {\n delete day.cssClass;\n this.selectedDate.splice(selectedDateIndex, 1);\n }\n else {\n day.cssClass = this.newTimeOffClass;\n this.selectedDate.push(day);\n }\n }\n\n if(this.selectedDate != null && this.selectedDate.length > 1) {\r\n this.selectedDate = this.selectedDate.sort((date1, date2) => date1.date < date2.date ? -1 : 1);\r\n }\n\n this.selectedDateChange.emit(this.selectedDate);\n this.calculateTimeOff.emit();\n }\n}\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

{{ viewDate | calendarDate: view + 'ViewTitle':locale }}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n {{ day.date | calendarDate:'monthViewDayNumber':locale }}\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport * as QuillNamespace from 'quill';\r\n\r\n@Component({\r\n selector: 'app-rich-text-editor',\r\n templateUrl: './rich-text-editor.component.html',\r\n styleUrls: ['./rich-text-editor.component.css']\r\n})\r\nexport class RichTextEditorComponent implements OnInit {\r\n Quill: any = QuillNamespace;\r\n modules = {\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n [{ 'header': 1 }, { 'header': 2 }], // custom button values\r\n [{ 'list': 'ordered' }, { 'list': 'bullet' }],\r\n [{ 'script': 'sub' }, { 'script': 'super' }], // superscript/subscript\r\n [{ 'indent': '-1' }, { 'indent': '+1' }], // outdent/indent\r\n [{ 'direction': 'rtl' }], // text direction\r\n\r\n [{ 'header': [1, 2, 3, 4, 5, 6, false] }],\r\n\r\n [{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme\r\n [{ 'font': [] }],\r\n [{ 'align': [] }],\r\n\r\n ['clean'],\r\n ['link', 'image', 'video'],\r\n ]\r\n };\r\n @Input() richText: any;\r\n @Input() isDisable: any;\r\n @Input() ngClassCon: any;\r\n @Input() isRequired: any;\r\n @Output() richTooLong = new EventEmitter();\r\n @Output() saveText = new EventEmitter();\r\n @Output() onChange = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n var DirectionAttribute = this.Quill.import('attributors/attribute/direction');\r\n this.Quill.register(DirectionAttribute, true);\r\n\r\n var AlignClass = this.Quill.import('attributors/class/align');\r\n this.Quill.register(AlignClass, true);\r\n\r\n var BackgroundClass = this.Quill.import('attributors/class/background');\r\n this.Quill.register(BackgroundClass, true);\r\n\r\n var ColorClass = this.Quill.import('attributors/class/color');\r\n this.Quill.register(ColorClass, true);\r\n\r\n var DirectionClass = this.Quill.import('attributors/class/direction');\r\n this.Quill.register(DirectionClass, true);\r\n\r\n var FontClass = this.Quill.import('attributors/class/font');\r\n this.Quill.register(FontClass, true);\r\n\r\n var SizeClass = this.Quill.import('attributors/class/size');\r\n this.Quill.register(SizeClass, true);\r\n\r\n var AlignStyle = this.Quill.import('attributors/style/align');\r\n this.Quill.register(AlignStyle, true);\r\n\r\n var BackgroundStyle = this.Quill.import('attributors/style/background');\r\n this.Quill.register(BackgroundStyle, true);\r\n\r\n var ColorStyle = this.Quill.import('attributors/style/color');\r\n this.Quill.register(ColorStyle, true);\r\n\r\n var DirectionStyle = this.Quill.import('attributors/style/direction');\r\n this.Quill.register(DirectionStyle, true);\r\n\r\n var FontStyle = this.Quill.import('attributors/style/font');\r\n this.Quill.register(FontStyle, true);\r\n\r\n var SizeStyle = this.Quill.import('attributors/style/size');\r\n this.Quill.register(SizeStyle, true);\r\n }\r\n\r\n public checkRichLength() {\r\n this.richTooLong.emit(false);\r\n if (this.richText != null) {\r\n if (this.richText.length > 20000)\r\n this.richTooLong.emit(true);\r\n }\r\n this.saveText.emit(this.richText);\r\n this.onChange.emit(true);\r\n }\r\n}\r\n","","import { Component, Input, OnInit, SimpleChanges, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'search-drop-down',\r\n templateUrl: './search-drop-down.component.html',\r\n styleUrls: ['./search-drop-down.component.css']\r\n})\r\nexport class SearchDropDownComponent implements OnInit {\r\n inputFocused: boolean;\r\n callCount: number;\r\n ignoreUpdate: boolean;\r\n stdplaceholder: string = \"Type to search...\";\r\n suggestions: any[];\r\n selectedIndex: any;\r\n @Input(\"model\") selectedTags: string;\r\n @Input() dropDownList: any[];\r\n @Input(\"disable\") disabled: any;\r\n @Input(\"search-required\") required: any;\r\n @Input() searchText: string;\r\n @Input() where: string;\r\n @Input() selected: boolean;\r\n @Input() focused: any;\r\n @Input(\"display-key\") displayKey: any;\r\n @Input() modelKey: any;\r\n @Input() placeholder: string;\r\n @Input() warningMsg: string;\r\n @Output() searchTextChanged: EventEmitter = new EventEmitter();\r\n @Output(\"value-change\") vchange: EventEmitter = new EventEmitter();\r\n @Output() searchTextChange = new EventEmitter();\r\n @Output() modelChange = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.inputFocused = false;\r\n this.callCount = 0;\r\n this.ignoreUpdate = false;\r\n if (this.selectedTags == \"\" || this.selectedTags == null)\r\n this.selected = false;\r\n else\r\n this.selected = true;\r\n this.suggestions = [];\r\n this.selectedIndex = -1;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.dropDownList != null && (this.where == \"super\" || this.where == \"freeTextBlurSave\")) {\r\n this.callCount++;\r\n if (this.inputFocused) {\r\n this.searchValues();\r\n }\r\n }\r\n }\r\n\r\n search() {\r\n this.searchTextChange.emit(this.searchText);\r\n if (!this.ignoreUpdate) {\r\n if (this.selected == true && this.searchText != undefined && this.dropDownList != null) {\r\n this.dropDownList.forEach((key: any, val: any) => {\r\n if (this.where == \"super\" || this.where == \"freeTextBlurSave\") {\r\n //do nothing (:\r\n }\r\n else if (this.where == \"simple\") {\r\n if (val != null) {\r\n if (val.toLowerCase() == this.searchText.toLowerCase()) {\r\n return false;\r\n } else if (key == this.dropDownList.length - 1) {\r\n this.selectedTags = null;\r\n this.modelChange.emit(this.selectedTags);\r\n this.searchText = null;\r\n this.searchTextChange.emit(this.searchText);\r\n this.suggestions = [];\r\n this.selected = false;\r\n setTimeout(() => {\r\n if (this.vchange != null)\r\n this.vchange.emit();\r\n });\r\n }\r\n }\r\n } else {\r\n if (val.DisplayValue != null) {\r\n if (val.DisplayValue.toLowerCase() == this.searchText.toLowerCase()) {\r\n return false;\r\n } else if (key == this.dropDownList.length - 1) {\r\n this.selectedTags = \"\";\r\n this.modelChange.emit(this.selectedTags);\r\n this.searchText = \"\";\r\n this.searchTextChange.emit(this.searchText);\r\n this.suggestions = [];\r\n this.selected = false;\r\n setTimeout(() => {\r\n if (this.vchange != null)\r\n this.vchange.emit();\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n if (this.inputFocused) {\r\n setTimeout(() => {\r\n this.searchTextChanged.emit(this.searchText);\r\n });\r\n }\r\n }\r\n else {\r\n this.ignoreUpdate = false;\r\n }\r\n setTimeout(() => {\r\n if (this.inputFocused) {\r\n this.searchValues();\r\n }\r\n });\r\n }\r\n searchValues() {\r\n //Put search logic here\r\n if (this.searchText !== null && this.searchText !== undefined && this.searchText.length > 1 && this.inputFocused) {\r\n var suggestions = [];\r\n if (this.dropDownList && this.dropDownList !== undefined) {\r\n if (this.dropDownList.length >= 20 && (this.where == \"super\" || this.where == \"freeTextBlurSave\")) {\r\n //add first 20 items\r\n for (var i = 0; i < 20; i++) {\r\n if (this.displayKey != null) {\r\n //just push everything b/c it should be a smarter lookup, right?\r\n if (this.modelKey != null)\r\n suggestions.push({ DatabaseValue: this.dropDownList[i][this.modelKey], DisplayValue: this.dropDownList[i][this.displayKey] });\r\n else {\r\n suggestions.push({ DatabaseValue: this.dropDownList[i], DisplayValue: this.dropDownList[i][this.displayKey] });\r\n }\r\n }\r\n else {\r\n suggestions.push(this.dropDownList[i]);\r\n }\r\n }\r\n suggestions.push({ DatabaseValue: -1, DisplayValue: \"More results found... continue typing to search.\" });\r\n }\r\n else {\r\n this.dropDownList.forEach((val: any) => {\r\n if (this.where == \"simple\") {\r\n if (val != null) {\r\n if (val.toLowerCase().indexOf(this.searchText.toLowerCase()) > -1 && suggestions.length < 20) {\r\n suggestions.push({ DisplayValue: val, DatabaseValue: val });\r\n }\r\n\r\n if (suggestions.length == 20) {\r\n suggestions.push({ DatabaseValue: -1, DisplayValue: \"More results found... continue typing to search.\" });\r\n }\r\n }\r\n } else if (this.where == \"progress\") {\r\n if (val.JobDisplayName != null) {\r\n if (val.JobDisplayName.toLowerCase().indexOf(this.searchText.toLowerCase()) > -1 && suggestions.length < 20) {\r\n suggestions.push({ DisplayValue: val.JobDisplayName, DatabaseValue: val.JCJMKeyID });\r\n }\r\n\r\n if (suggestions.length == 20) {\r\n suggestions.push({ DatabaseValue: -1, DisplayValue: \"More results found... continue typing to search.\" });\r\n }\r\n }\r\n }\r\n else if (this.where == \"super\" || this.where == \"freeTextBlurSave\") {\r\n if (this.displayKey != null) {\r\n //just push everything b/c it should be a smarter lookup, right?\r\n if (this.modelKey != null)\r\n suggestions.push({ DatabaseValue: val[this.modelKey], DisplayValue: val[this.displayKey] });\r\n else {\r\n suggestions.push({ DatabaseValue: val, DisplayValue: val[this.displayKey] });\r\n }\r\n }\r\n else {\r\n suggestions.push(val);\r\n }\r\n }\r\n else {\r\n if (val.DisplayName != null) {\r\n if (val.DisplayValue.toLowerCase().indexOf(this.searchText.toLowerCase()) > -1 && suggestions.length < 20) {\r\n suggestions.push(val);\r\n }\r\n\r\n if (suggestions.length == 20) {\r\n suggestions.push({ DatabaseValue: -1, DisplayValue: \"More results found... continue typing to search.\" });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n this.suggestions = suggestions;\r\n if (this.suggestions.length == 0)\r\n this.selectedIndex = -1;\r\n else {\r\n if (this.selectedIndex == -1 || this.selectedIndex > this.suggestions.length) {\r\n this.selectedIndex = 0;\r\n }\r\n }\r\n } else\r\n this.suggestions = [];\r\n }\r\n\r\n checkKeyDown(event) {\r\n if (event.keyCode === 40) {//down key, increment selectedIndex\r\n event.preventDefault();\r\n if (this.selectedIndex + 1 !== this.suggestions.length) {\r\n this.selectedIndex++;\r\n }\r\n }\r\n else if (event.keyCode === 38) { //up key, decrement selectedIndex\r\n event.preventDefault();\r\n if (this.selectedIndex - 1 !== -1) {\r\n this.selectedIndex--;\r\n }\r\n }\r\n else if (event.keyCode === 13) { //enter pressed\r\n event.preventDefault();\r\n this.addToSelectedTags(this.selectedIndex, true);\r\n }\r\n else if (event.keyCode === 9 && this.suggestions.length > 0) { //tab pressed\r\n this.addToSelectedTags(this.selectedIndex, false);\r\n }\r\n else if (this.selectedTags != null && this.searchText != null && this.selectedTags != \"\" && this.searchText != \"\" && (event.keyCode == 8)) {\r\n this.searchText = \"\";\r\n this.searchTextChange.emit(this.searchText);\r\n this.selectedTags = null;\r\n this.modelChange.emit(this.selectedTags);\r\n }\r\n }\r\n\r\n addToSelectedTags(index, inputStillFocused: boolean) {\r\n if (index != -1 && index != 20) {\r\n if (this.suggestions[index] != null) {\r\n this.selectedTags = (this.suggestions[index].DatabaseValue);\r\n this.modelChange.emit(this.selectedTags);\r\n }\r\n this.ignoreUpdate = true;\r\n if (this.suggestions[index] != null) {\r\n this.searchText = this.suggestions[index].DisplayValue;\r\n this.searchTextChange.emit(this.searchText);\r\n }\r\n this.suggestions = [];\r\n this.inputFocused = inputStillFocused == true;\r\n index = -1;\r\n setTimeout(() => {\r\n if (this.vchange != null)\r\n this.vchange.emit();;\r\n });\r\n this.selected = true;\r\n } else if (index != 20) {\r\n this.searchText = \"\";\r\n this.searchTextChange.emit(this.searchText);\r\n this.selectedTags = \"\";\r\n this.modelChange.emit(this.selectedTags);\r\n }\r\n }\r\n\r\n check() {\r\n //off focus and set condition for free text blur trigger\r\n this.inputFocused = false;\r\n if (this.where == \"freeTextBlurSave\") {\r\n setTimeout(() => {\r\n if (this.vchange != null)\r\n this.vchange.emit();;\r\n });\r\n }\r\n }\r\n\r\n clearValues() {\r\n this.searchText = \"\";\r\n this.searchTextChange.emit(this.searchText);\r\n this.selectedTags = \"\";\r\n this.modelChange.emit(this.selectedTags);\r\n }\r\n\r\n fieldFocused() {\r\n this.inputFocused = true;\r\n if (this.focused != null)\r\n this.focused();\r\n }\r\n\r\n}\r\n","
\r\n\t
\r\n
\r\n \r\n
\r\n
\r\n
    \r\n\t\t
  • {{suggestion.DisplayValue}}
  • \r\n
\r\n
","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TimeWorkedService {\r\n http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n getCrewClockInStatus(pRPCKeyID, crewTemplateID) {\r\n let url = \"/CrewTimecard/GetCrewClockInStatus?pRPCKeyID=\" + pRPCKeyID + \"&crewTemplateID=\" + crewTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getDailyTime(employee, pRPCKeyID, startDateString = null, endDateString = null) {\r\n let url = \"/Timecard/GetDailyTime?employeeString=\" + employee + \"&pRPCKeyID=\" + pRPCKeyID;\r\n if (startDateString != null)\r\n url += \"&startDateString=\" + startDateString;\r\n if (endDateString != null)\r\n url += \"&endDateString=\" + endDateString;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getTemplateDays(crewTemplateID) {\r\n let url = \"/CrewTimecard/GetTemplateDays?crewTemplateID=\" + crewTemplateID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n getWeeks(pRPCKeyID) {\r\n let url = \"/Timecard/GetWeeksByPRPCKeyID?pRPCKeyID=\" + pRPCKeyID;\r\n return this.http.get(url).toPromise();\r\n }\r\n\r\n insertUpdateTime(employee, pRPCKeyID, dateWorkedString, startTimeString, stopTimeString, seq, notes, breakHours) {\r\n let url = \"/Timecard/InsertUpdateTime\";\r\n return this.http.post(url, {\r\n employee: employee,\r\n pRPCKeyID: pRPCKeyID,\r\n dateWorkedString: dateWorkedString,\r\n startTimeString: startTimeString,\r\n stopTimeString: stopTimeString,\r\n seq: seq,\r\n notes: notes,\r\n breakHours: breakHours\r\n }).toPromise();\r\n }\r\n\r\n deleteTime(employee, pRPCKeyID, dateWorkedString, seq) {\r\n let url = \"/Timecard/DeleteTime\";\r\n return this.http.post(url, {\r\n employee: employee,\r\n pRPCKeyID: pRPCKeyID,\r\n dateWorkedString: dateWorkedString,\r\n seq: seq\r\n }).toPromise();\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport _ from 'lodash';\r\nimport moment from 'moment';\r\nimport { EmployeeInfoService } from '../../../core/services/employee-info.service';\r\nimport { PortalSettingsService } from '../../../core/services/portal-settings.service';\r\nimport { TimeParserService } from '../../../core/services/time-parser.service';\r\nimport { TimeWorkedService } from './services/time-worked.service';\r\n\r\n@Component({\r\n selector: 'app-time-worked',\r\n templateUrl: './time-worked.component.html',\r\n styleUrls: ['./time-worked.component.css']\r\n})\r\nexport class TimeWorkedComponent implements OnInit {\r\n employeeInfo: any;\r\n portalSettings: any;\r\n timeParserService: TimeParserService;\r\n timeWorkedService: TimeWorkedService;\r\n timeWorkedForm: NgForm;\r\n @ViewChild('timeWorkedForm') set content(content: NgForm) {\r\n if (content) { // initially setter gets called with undefined\r\n this.timeWorkedForm = content;\r\n }\r\n }\r\n\r\n allowApproverTimeWorkedEdit: boolean;\r\n clockStatusesMap: any;\r\n dailyTimeData: any[];\r\n dailyTimeLoaded: boolean;\r\n daysOfWeek: any[];\r\n employees: any[];\r\n enableCrews: boolean;\r\n hasTime: boolean[];\r\n intervalConfig: number;\r\n isApprover: boolean;\r\n isTimecardAdmin: boolean;\r\n lastTimeWorkedAction: any;\r\n GPSClockInEnabled: boolean;\r\n GPSClockInFaultTolerance: number;\r\n payPeriod: any;\r\n readOnly: boolean;\r\n selectedDay: any;\r\n selectedEmployee: any;\r\n selectedWeek: any;\r\n selectedWeeks: any;\r\n showBreakHours: boolean;\r\n timecardTotalsByEmployee: any;\r\n timecardTotalsReady: boolean;\r\n timeWorked: any[];\r\n timeWorkedAlert: any;\r\n timeWorkedCollapsed: boolean = false;\r\n timeWorkedInitialized: boolean = false;\r\n timeWorkedSubTotals: any[];\r\n template: any;\r\n templateDates: any[];\r\n weeks: any[];\r\n defaultBreakHours: any;\r\n originalTimeWorked: any[];\r\n\r\n constructor(\r\n portalSettingsService: PortalSettingsService,\r\n employeeInfoService: EmployeeInfoService,\r\n timeParserService: TimeParserService,\r\n timeWorkedService: TimeWorkedService\r\n ) {\r\n this.timeParserService = timeParserService;\r\n this.timeWorkedService = timeWorkedService;\r\n this.employeeInfo = employeeInfoService.getEmployeeInfo();\r\n this.portalSettings = portalSettingsService.getPortalSettings();\r\n }\r\n\r\n ngOnInit(): void {\r\n //TODO create a readonly property\r\n // for crew grid - crewGridDataService.unsubmittedRows == rowCount\r\n this.allowApproverTimeWorkedEdit = this.portalSettings.TCAllowApproverTimeWorkedEdit.ConfigValue == \"1\";\r\n this.intervalConfig = parseInt(this.portalSettings[\"TimeSpanInterval\"].ConfigValue);\r\n this.GPSClockInEnabled = this.portalSettings[\"GPSClockInEnabled\"].ConfigValue == \"1\";\r\n this.isTimecardAdmin = this.employeeInfo.IsTimecardAdmin;\r\n this.GPSClockInFaultTolerance = parseInt(this.portalSettings.GPSClockInFaultTolerance.ConfigValue || 0) / 60;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n //public methods to be called by external components\r\n initTimeWorked(payPeriod) {\r\n this.timeWorkedInitialized = false;\r\n this.payPeriod = payPeriod;\r\n this.template = null;\r\n this.templateDates = null;\r\n this.clockStatusesMap = null;\r\n this.initDailyTime();\r\n if (payPeriod.IsTimeWorkedEnabled)\r\n this.getWeeks();\r\n }\r\n\r\n initDailyTime() {\r\n this.timecardTotalsByEmployee = null;\r\n this.timecardTotalsReady = false;\r\n this.timeWorkedSubTotals = [];\r\n this.dailyTimeData = null;\r\n this.dailyTimeLoaded = false;\r\n }\r\n\r\n setTemplate(template: any) {\r\n this.template = template;\r\n this.timeWorkedService.getTemplateDays(template.CrewTemplateID).then((response: any) => {\r\n let templateDates = [];\r\n response.forEach((templateDate) => {\r\n var date = moment(parseInt(templateDate.substr(6))).utc();\r\n templateDates.push({ Date: date, DisplayDate: date.format(\"l\") });\r\n });\r\n this.templateDates = templateDates;\r\n });\r\n this.timeWorkedService.getCrewClockInStatus(this.payPeriod.PRPCKeyID, this.template.CrewTemplateID).then((response: any[]) => {\r\n let clockStatusesMap: any = {};\r\n response.forEach((val => {\r\n clockStatusesMap[val.Employee.toString()] = val;\r\n }));\r\n this.clockStatusesMap = clockStatusesMap;\r\n\r\n if (this.selectedEmployee != null && this.selectedEmployee != \"all\" && this.clockStatusesMap[this.selectedEmployee] != null)\r\n this.isApprover = this.clockStatusesMap[this.selectedEmployee].IsApprover;\r\n \r\n });\r\n }\r\n\r\n setEmployee(employee: any) {\r\n this.selectedEmployee = employee;\r\n this.initDailyTime();\r\n if (this.selectedEmployee != null && this.selectedEmployee != \"all\" && this.timeWorkedInitialized)\r\n this.getDailyTime();\r\n\r\n if (this.clockStatusesMap != null) {\r\n if (this.selectedEmployee != null && this.selectedEmployee != \"all\" && this.clockStatusesMap[this.selectedEmployee] != null)\r\n this.isApprover = this.clockStatusesMap[this.selectedEmployee].IsApprover;\r\n }\r\n \r\n }\r\n\r\n setEmployeeList(employees: any[]) {\r\n this.employees = employees;\r\n }\r\n\r\n calculateSubtotals() {\r\n if (this.timecardTotalsReady && this.dailyTimeLoaded) {\r\n var subTotals = [];\r\n for (var i = 0; i < 7; i++) {\r\n subTotals[i] = { Subtotal: 0, Difference: 0 };\r\n }\r\n //add subtotal amounts\r\n this.timeWorked.forEach((sequence) => {\r\n $.each(sequence, (dayNumber, timeEntry) => {\r\n if ((timeEntry.StartTime != null && timeEntry.StartTime != \"\") && (timeEntry.StopTime != null && timeEntry.StopTime != \"\")) {\r\n var startTime = this.timeParserService.convertTimeString(timeEntry.StartTime);\r\n var stopTime = this.timeParserService.convertTimeString(timeEntry.StopTime);\r\n subTotals[dayNumber].Subtotal += (stopTime - startTime);\r\n if (this.showBreakHours) {\r\n subTotals[dayNumber].Subtotal -= (timeEntry.BreakHours || 0);\r\n }\r\n\r\n }\r\n });\r\n });\r\n //calculate differences from timecard allocation\r\n this.daysOfWeek.forEach((day: any) => {\r\n //calculate difference from timecard entries\r\n var dateString = day.DateString;\r\n var timecardTotal = 0;\r\n var breakHours = 0;\r\n var otherTotal = 0;\r\n\r\n if (!jQuery.isEmptyObject(this.timecardTotalsByEmployee) && this.timecardTotalsByEmployee[this.selectedEmployee][dateString] != null) {\r\n timecardTotal = this.timecardTotalsByEmployee[this.selectedEmployee][dateString].timecardHours;\r\n otherTotal = this.timecardTotalsByEmployee[this.selectedEmployee][dateString].otherHours;\r\n }\r\n\r\n subTotals[day.DayNumber].TimecardTotal = timecardTotal;\r\n subTotals[day.DayNumber].OtherTotal = otherTotal;\r\n if (subTotals[day.DayNumber].TimecardTotal != 0)\r\n subTotals[day.DayNumber].TimecardTotal = subTotals[day.DayNumber].TimecardTotal.toFixed(2);\r\n if (subTotals[day.DayNumber].OtherTotal != 0)\r\n subTotals[day.DayNumber].OtherTotal = subTotals[day.DayNumber].OtherTotal.toFixed(2);\r\n if (this.showBreakHours)\r\n subTotals[day.DayNumber].Difference = subTotals[day.DayNumber].Subtotal - timecardTotal - otherTotal + breakHours;\r\n else\r\n subTotals[day.DayNumber].Difference = subTotals[day.DayNumber].Subtotal - timecardTotal - otherTotal;\r\n subTotals[day.DayNumber].DifferenceAbs = Math.abs(subTotals[day.DayNumber].Difference);\r\n if (subTotals[day.DayNumber].Difference != 0)\r\n subTotals[day.DayNumber].Difference = subTotals[day.DayNumber].Difference.toFixed(2);\r\n if (subTotals[day.DayNumber].Subtotal != 0)\r\n subTotals[day.DayNumber].Subtotal = subTotals[day.DayNumber].Subtotal.toFixed(2);\r\n\r\n subTotals[day.DayNumber].Text = \"Time Worked: \" + subTotals[day.DayNumber].Subtotal + \"
Time Allocation: \" + subTotals[day.DayNumber].TimecardTotal + \"
Other Total: \" + subTotals[day.DayNumber].OtherTotal + \"
Difference: \" + subTotals[day.DayNumber].Difference + \"\";\r\n });\r\n this.timeWorkedSubTotals = subTotals;\r\n }\r\n \r\n }\r\n\r\n //Note - calculating employee totals must be performed on the specific pages itself\r\n setTimecardTotalsByEmployee(timecardTotalsByEmployee: any) {\r\n this.timecardTotalsByEmployee = timecardTotalsByEmployee;\r\n this.timecardTotalsReady = true;\r\n this.calculateSubtotals();\r\n }\r\n\r\n closeTimeWorkedAlert() {\r\n this.timeWorkedAlert = null;\r\n }\r\n\r\n //Only used in standard timecard to update route - possible deprecation?\r\n dayChanged() {\r\n\r\n }\r\n\r\n setReadOnly(readOnly) {\r\n this.readOnly = readOnly;\r\n }\r\n\r\n weekChanged() {\r\n this.getDailyTime();\r\n }\r\n\r\n private getWeeks() {\r\n this.timeWorkedService.getWeeks(this.payPeriod.PRPCKeyID).then((response: any[]) => {\r\n this.weeks = response;\r\n let USCountryMode = this.portalSettings[\"CountryDateCode\"].ConfigValue != \"US\";\r\n $.each(this.weeks, (weekKey, week) => {\r\n var startDate = moment.utc(week.WeekBeginDate);\r\n var startDateDisplay, endDateDisplay;\r\n if (USCountryMode)\r\n startDateDisplay = startDate.format(\"DD/MM\");\r\n else\r\n startDateDisplay = startDate.format(\"MM/DD\");\r\n var endDate = moment.utc(week.WeekEndDate);\r\n if (USCountryMode)\r\n endDateDisplay = endDate.format(\"DD/MM\");\r\n else\r\n endDateDisplay = endDate.format(\"MM/DD\");\r\n var displayValue = \"Week of: \" + startDateDisplay + \" - \" + endDateDisplay;\r\n this.weeks[weekKey].StartDate = startDate;\r\n this.weeks[weekKey].EndDate = endDate;\r\n this.weeks[weekKey].DisplayValue = displayValue;\r\n });\r\n if (this.weeks.length > 0) {\r\n this.defaultBreakHours = this.weeks[0].DefaultBreakHours;\r\n this.showBreakHours = this.weeks[0].ShowBreakHours;\r\n }\r\n this.selectedWeek = this.weeks.length > 0 ? this.weeks[0] : null;\r\n if (this.selectedWeek != null && this.selectedEmployee != null && this.selectedEmployee != \"all\")\r\n this.getDailyTime();\r\n this.timeWorkedInitialized = true;\r\n });\r\n }\r\n\r\n private getDailyTime() {\r\n if (this.selectedEmployee != null) {\r\n this.dailyTimeLoaded = false;\r\n this.timeWorkedService.getDailyTime(this.selectedEmployee, this.payPeriod.PRPCKeyID, this.selectedWeek.StartDate.format(\"MM/DD/YYYY\"), this.selectedWeek.EndDate.format(\"MM/DD/YYYY\")).then((response: any) => {\r\n let dailyTimeData = response;\r\n $.each(dailyTimeData, (key, dailyTime) => {\r\n dailyTimeData[key].Date = moment.utc(dailyTime.Date);\r\n if (dailyTime.StartTime != null) {\r\n let startTime = moment.utc(dailyTime.StartTime).format(\"hh:mm A\");\r\n dailyTimeData[key].StartTime = startTime;\r\n }\r\n\r\n if (dailyTime.StopTime != null) {\r\n let stopTime = moment.utc(dailyTime.StopTime).format(\"hh:mm A\");\r\n dailyTimeData[key].StopTime = stopTime;\r\n }\r\n\r\n dailyTimeData[key].DayOfWeek = dailyTimeData[key].Date.day();\r\n });\r\n this.dailyTimeData = dailyTimeData;\r\n this.groupDailyTime();\r\n });\r\n }\r\n }\r\n\r\n private groupDailyTime() {\r\n this.daysOfWeek = [];\r\n this.selectedDay = null;\r\n for (var i = 0; i < 7; i++) {\r\n var dayOfWeek = new Date(this.selectedWeek.StartDate.year(), this.selectedWeek.StartDate.month(), this.selectedWeek.StartDate.date());\r\n dayOfWeek.setDate(dayOfWeek.getDate() + i);\r\n var day;\r\n var dayNumber = dayOfWeek.getDay();\r\n switch (dayNumber) {\r\n case 0:\r\n day = \"Sun\"\r\n break;\r\n case 1:\r\n day = \"Mon\"\r\n break;\r\n case 2:\r\n day = \"Tues\"\r\n break;\r\n case 3:\r\n day = \"Wed\"\r\n break;\r\n case 4:\r\n day = \"Thurs\"\r\n break;\r\n case 5:\r\n day = \"Fri\"\r\n break;\r\n case 6:\r\n day = \"Sat\"\r\n break;\r\n }\r\n\r\n if (this.portalSettings[\"CountryDateCode\"].ConfigValue == \"US\")\r\n day = day + \" \" + (dayOfWeek.getMonth() + 1) + \"/\" + dayOfWeek.getDate();\r\n else\r\n day = day + \" \" + dayOfWeek.getDate() + \"/\" + (dayOfWeek.getMonth() + 1);\r\n var dayMoment = moment(dayOfWeek);\r\n var dateString = dayMoment.format(\"YYYY-MM-DD\");\r\n this.daysOfWeek.push({ Date: dayOfWeek, Day: day, DayNumber: dayNumber, DateValue: (dayOfWeek.getMonth() + 1) * 100 + dayOfWeek.getDate(), DateString: dateString });\r\n }\r\n if (this.selectedDay == null)\r\n this.selectedDay = this.daysOfWeek.length > 0 ? this.daysOfWeek[0] : null;\r\n this.timeWorked = [];\r\n this.dailyTimeData.forEach((dailyTime) => {\r\n if (this.timeWorked[dailyTime.Seq - 1] == null) {\r\n this.timeWorked[dailyTime.Seq - 1] = [];\r\n }\r\n this.timeWorked[dailyTime.Seq - 1][dailyTime.DayOfWeek] = dailyTime;\r\n });\r\n\r\n for (var i = 0; i < this.timeWorked.length; i++) {\r\n if (this.timeWorked[i] == null) {\r\n this.timeWorked[i] = [];\r\n\r\n }\r\n //fill out missing date info\r\n for (var j = 0; j < this.daysOfWeek.length; j++) {\r\n if (this.timeWorked[i][j] == null) {\r\n this.timeWorked[i][j] = { Date: this.daysOfWeek[j].Date, DayOfWeek: this.daysOfWeek[j].DayNumber };\r\n }\r\n }\r\n }\r\n if (this.timeWorked.length == 0) {\r\n this.timeWorked[0] = [];\r\n for (var i = 0; i < this.daysOfWeek.length; i++) {\r\n this.timeWorked[0][i] = { Date: this.daysOfWeek[i].Date, DayOfWeek: this.daysOfWeek[i].DayNumber };\r\n }\r\n }\r\n this.originalTimeWorked = _.cloneDeep(this.timeWorked);\r\n while (this.timeWorked.length < 2) {\r\n this.addSequence();\r\n }\r\n this.dailyTimeLoaded = true;\r\n this.updateHasTime();\r\n this.calculateSubtotals();\r\n }\r\n\r\n addSequence() {\r\n var seq = [];\r\n for (var j = 0; j < this.daysOfWeek.length; j++) {\r\n seq[j] = { Date: this.daysOfWeek[j].Date, DayOfWeek: this.daysOfWeek[j].DayNumber };\r\n }\r\n this.timeWorked.push(seq);\r\n this.originalTimeWorked.push(_.cloneDeep(seq));\r\n }\r\n\r\n updateHasTime() {\r\n var hasTime = [];\r\n this.timeWorked.forEach((sequence) => {\r\n $.each(sequence, (dayNumber, timeEntry) => {\r\n if ((timeEntry.StartTime != null && timeEntry.StartTime != \"\") || (timeEntry.StopTime != null && timeEntry.StopTime != \"\")) {\r\n hasTime[dayNumber] = true;\r\n }\r\n });\r\n })\r\n\r\n this.hasTime = hasTime;\r\n }\r\n\r\n saveTimeWorked(time, day, sequence) {\r\n this.closeTimeWorkedAlert();\r\n if (this.timeWorkedForm.valid) {\r\n this.timeWorkedAlert = null;\r\n if (time != null && this.timeChanged(time, day, sequence)) {\r\n let action;\r\n if ((time.StartTime == null || time.StartTime == \"\") && (time.StopTime == null || time.StopTime == \"\")) {\r\n action = \"delete\";\r\n }\r\n else {\r\n action = \"save\";\r\n }\r\n sequence += 1;\r\n if (action == \"save\") {\r\n //check for time overlap\r\n if (this.timeWorkedValid(time, day, sequence)) {\r\n //check for time interval setting\r\n\r\n let intervalValid = false;\r\n let startMinutes = time.StartTime != null ? parseInt(time.StartTime.substr(time.StartTime.indexOf(\":\") + 1, 2)) : null;\r\n let stopMinutes = time.StopTime != null ? parseInt(time.StopTime.substr(time.StopTime.indexOf(\":\") + 1, 2)) : null;\r\n switch (this.intervalConfig) {\r\n case 0:\r\n intervalValid = true;\r\n break;\r\n case 15:\r\n if (startMinutes == 0 || startMinutes == 15 || startMinutes == 30 || startMinutes == 45)\r\n intervalValid = true;\r\n break;\r\n case 30:\r\n if (startMinutes == 0 || startMinutes == 30)\r\n intervalValid = true;\r\n break;\r\n case 60:\r\n if (startMinutes == 0)\r\n intervalValid = true;\r\n break;\r\n }\r\n if (intervalValid) {\r\n let mm = day.Date.getMonth() + 1;\r\n if (mm < 10)\r\n mm = \"0\" + mm;\r\n let dd = day.Date.getDate();\r\n if (dd < 10)\r\n dd = \"0\" + dd;\r\n let insertDate = mm + \"/\" + dd + \"/\" + day.Date.getFullYear();\r\n this.timeWorkedService.insertUpdateTime(\r\n this.selectedEmployee,\r\n this.payPeriod.PRPCKeyID,\r\n insertDate,\r\n time.StartTime,\r\n time.StopTime,\r\n sequence,\r\n time.Notes,\r\n time.BreakHours\r\n ).then((response: any) => {\r\n if (response.success) {\r\n if (this.showBreakHours && (time.StartTime == null || time.StopTime == null || time.StartTime == \"\" || time.StopTime == \"\") && (time.BreakHours == null || time.BreakHours == \"\") && sequence == 1)\r\n time.BreakHours = this.defaultBreakHours;\r\n\r\n this.timeWorkedForm.form.markAsPristine();\r\n this.originalTimeWorked[sequence - 1][day.DayNumber].StartTime = time.StartTime;\r\n this.originalTimeWorked[sequence - 1][day.DayNumber].StopTime = time.StopTime;\r\n this.originalTimeWorked[sequence - 1][day.DayNumber].BreakHours = time.BreakHours;\r\n this.updateHasTime();\r\n this.calculateSubtotals();\r\n }\r\n else {\r\n this.timeWorkedAlert = { type: \"danger\", msg: response.data.error }\r\n }\r\n });\r\n }\r\n else {\r\n this.timeWorkedAlert = { type: \"danger\", msg: \"Time worked not saved. Minutes must be in intervals of \" + this.intervalConfig + \".\" };\r\n }\r\n\r\n }\r\n else {\r\n this.timeWorkedAlert = { type: \"danger\", msg: \"Your time entry overlaps with an existing entry or your time was invalid. Time worked not saved\" };\r\n }\r\n\r\n }\r\n else if (action == \"delete\") {\r\n let mm = day.Date.getMonth() + 1;\r\n if (mm < 10)\r\n mm = \"0\" + mm;\r\n let dd = day.Date.getDate();\r\n if (dd < 10)\r\n dd = \"0\" + dd;\r\n let insertDate = mm + \"/\" + dd + \"/\" + day.Date.getFullYear();\r\n this.timeWorkedService.deleteTime(\r\n this.selectedEmployee,\r\n this.payPeriod.PRPCKeyID,\r\n insertDate,\r\n sequence\r\n ).then((response) => {\r\n this.timeWorkedForm.form.markAsPristine();\r\n this.originalTimeWorked[sequence - 1][day.DayNumber].StartTime = time.StartTime;\r\n this.originalTimeWorked[sequence - 1][day.DayNumber].StopTime = time.StopTime;\r\n this.updateHasTime();\r\n this.calculateSubtotals();\r\n });\r\n }\r\n else {\r\n }\r\n }\r\n }\r\n }\r\n\r\n private timeChanged(time, day, sequence) {\r\n if (this.originalTimeWorked[sequence][day.DayNumber].StartTime != time.StartTime)\r\n return true;\r\n if (this.originalTimeWorked[sequence][day.DayNumber].StopTime != time.StopTime)\r\n return true;\r\n if (this.originalTimeWorked[sequence][day.DayNumber].BreakHours != time.BreakHours)\r\n return true;\r\n return false;\r\n }\r\n\r\n private timeWorkedValid(time, day, seq) {\r\n let timeValid = true;\r\n if (time.StartTime != null && time.StartTime != \"\" && time.StopTime != null && time.StopTime != \"\") {\r\n let start = this.timeParserService.convertTimeString(time.StartTime);\r\n let stop = this.timeParserService.convertTimeString(time.StopTime);\r\n if (start > stop && stop != 0) {\r\n return false;\r\n }\r\n }\r\n this.timeWorked.forEach((currentSequence, sequenceIndex) => {\r\n if (seq != sequenceIndex + 1) {\r\n if (currentSequence[day.DayNumber] != null) {\r\n if (currentSequence[day.DayNumber].StartTime != null && currentSequence[day.DayNumber].StartTime != \"\" &&\r\n currentSequence[day.DayNumber].StopTime != null && currentSequence[day.DayNumber].StopTime != \"\") {\r\n var startTime = this.timeParserService.convertTimeString(currentSequence[day.DayNumber].StartTime);\r\n var stopTime = this.timeParserService.convertTimeString(currentSequence[day.DayNumber].StopTime);\r\n if (time.StartTime != null && time.StartTime != \"\") {\r\n var currStartTime = this.timeParserService.convertTimeString(time.StartTime);\r\n if ((currStartTime >= startTime) && (currStartTime < stopTime)) {\r\n timeValid = false;\r\n return false;\r\n }\r\n }\r\n if (time.StopTime != null && time.StopTIme != \"\") {\r\n var currStopTime = this.timeParserService.convertTimeString(time.StopTime);\r\n if ((currStopTime > startTime) && (currStopTime <= stopTime)) {\r\n timeValid = false;\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n return timeValid;\r\n }\r\n\r\n //timecard submission validation\r\n async verifyTimeWorked() {\r\n let employeeString = \"\";\r\n //used to keep track of which employees are valid for submission\r\n let validEmployees;\r\n let invalidErrors = [];\r\n let unbalancedErrors = [];\r\n //TODO - get a list of employees\r\n if (this.selectedEmployee == null || this.selectedEmployee == \"all\") {\r\n let employees = this.employees.slice(1);\r\n validEmployees = employees.map(function (elem) {\r\n if (elem.Value != \"all\") {\r\n return parseInt(elem.Value);\r\n }\r\n });\r\n\r\n employeeString = validEmployees.join(\",\");\r\n }\r\n else {\r\n validEmployees = [parseInt(this.selectedEmployee)];\r\n employeeString = this.selectedEmployee;\r\n }\r\n\r\n let response: any = await this.timeWorkedService.getDailyTime(employeeString, this.payPeriod.PRPCKeyID);\r\n\r\n let dailyTimeData = response;\r\n $.each(dailyTimeData, (key, dailyTime) => {\r\n dailyTimeData[key].Date = moment.utc(dailyTime.Date);\r\n\r\n if (dailyTime.StartTime != null) {\r\n let startTime = moment.utc(dailyTime.StartTime).format(\"hh:mm A\");\r\n dailyTimeData[key].StartTime = startTime;\r\n }\r\n\r\n if (dailyTime.StopTime != null) {\r\n let stopTime = moment.utc(dailyTime.StopTime).format(\"hh:mm A\");\r\n dailyTimeData[key].StopTime = stopTime;\r\n }\r\n\r\n dailyTimeData[key].DayOfWeek = dailyTimeData[key].Date.day();\r\n });\r\n //compare time worked with timecard lines\r\n let subTotals = {};\r\n\r\n //iterate over time worked entries and calculate their subtotals\r\n dailyTimeData.forEach((dailyTime) => {\r\n let dateString = dailyTime.Date.format(\"YYYY-MM-DD\");\r\n let containsDate = false;\r\n //TODO - pass in template dates\r\n if (this.templateDates.length > 0) {\r\n for (let i = 0; i < this.templateDates.length; i++) {\r\n if (moment.utc(dateString, \"YYYY-MM-DD\").isSame(this.templateDates[i].Date, \"day\")) {\r\n containsDate = true;\r\n }\r\n }\r\n }\r\n if (containsDate) {\r\n if ((dailyTime.StartTime != null && dailyTime.StartTime != \"\") && (dailyTime.StopTime != null && dailyTime.StopTime != \"\")) {\r\n if (subTotals[dailyTime.Employee] == null) {\r\n subTotals[dailyTime.Employee] = {};\r\n subTotals[dailyTime.Employee][dateString] = { Subtotal: 0, Difference: 0 };\r\n }\r\n if (subTotals[dailyTime.Employee][dateString] == null) {\r\n subTotals[dailyTime.Employee][dateString] = { Subtotal: 0, Difference: 0 };\r\n }\r\n let startTime = this.timeParserService.convertTimeString(dailyTime.StartTime);\r\n let stopTime = this.timeParserService.convertTimeString(dailyTime.StopTime);\r\n subTotals[dailyTime.Employee][dateString].Subtotal += +(stopTime - startTime);\r\n if (dailyTime.ShowBreakHours) {\r\n subTotals[dailyTime.Employee][dateString].Subtotal -= (dailyTime.BreakHours || 0);\r\n }\r\n //calculate difference from timecard entries\r\n let date = dailyTime.Date;\r\n let timecardTotal = { timecardHours: 0, otherHours: 0 };\r\n if (this.timecardTotalsByEmployee[dailyTime.Employee][dateString] != null) {\r\n timecardTotal = this.timecardTotalsByEmployee[dailyTime.Employee][dateString];\r\n }\r\n subTotals[dailyTime.Employee][dateString].TimecardTotal = timecardTotal.timecardHours;\r\n subTotals[dailyTime.Employee][dateString].OtherTotal = timecardTotal.otherHours;\r\n subTotals[dailyTime.Employee][dateString].Difference = parseFloat((subTotals[dailyTime.Employee][dateString].Subtotal - timecardTotal.timecardHours - timecardTotal.otherHours).toFixed(2));\r\n subTotals[dailyTime.Employee][dateString].DifferenceAbs = Math.abs(subTotals[dailyTime.Employee][dateString].Difference);\r\n }\r\n else if ((dailyTime.StartTime != null && dailyTime.StartTime != \"\") || (dailyTime.StopTime != null && dailyTime.StopTime != \"\")) {\r\n //If start time and stop time don't both exist, time worked is invalid\r\n if (validEmployees.indexOf(dailyTime.Employee) > -1) {\r\n validEmployees.splice(validEmployees.indexOf(dailyTime.Employee), 1);\r\n invalidErrors.push(dailyTime.Employee);\r\n }\r\n }\r\n }\r\n\r\n });\r\n\r\n //iterate over timecard totals and add them to subtotal collection (adds entries that were missed by time worked calc in the last step)\r\n if (this.selectedEmployee == null || this.selectedEmployee == \"all\") {\r\n $.each(this.timecardTotalsByEmployee, (employee, totalsByEmployee) => {\r\n $.each(totalsByEmployee, (dateString, total) => {\r\n if (subTotals[employee] == null) {\r\n subTotals[employee] = {};\r\n }\r\n if (subTotals[employee][dateString] == null) {\r\n subTotals[employee][dateString] = { Subtotal: 0, Difference: total.totalHours * -1, TimecardTotal: total.timecardHours, OtherTotal: total.otherHours };\r\n }\r\n });\r\n })\r\n\r\n }\r\n else {\r\n $.each(this.timecardTotalsByEmployee[this.selectedEmployee], (dateString, total) => {\r\n if (subTotals[this.selectedEmployee] == null) {\r\n subTotals[this.selectedEmployee] = {};\r\n }\r\n if (subTotals[this.selectedEmployee][dateString] == null) {\r\n subTotals[this.selectedEmployee][dateString] = { Subtotal: 0, Difference: total.totalHours * -1, TimecardTotal: total.totalHours, OtherTotal: 0 };\r\n }\r\n });\r\n }\r\n $.each(subTotals, (employee, employeeSubtotals) => {\r\n if (validEmployees.indexOf(parseInt(employee)) > -1) {\r\n $.each(employeeSubtotals, (key, val: any) => {\r\n let containsDate = false;\r\n if (this.templateDates.length > 0) {\r\n for (let i = 0; i < this.templateDates.length; i++) {\r\n if (moment.utc(key, \"YYYY-MM-DD\").isSame(this.templateDates[i].Date, \"day\")) {\r\n containsDate = true;\r\n }\r\n }\r\n }\r\n if (this.templateDates.length == 0 || containsDate) {\r\n if (val.Difference != 0 && validEmployees.indexOf(parseInt(employee)) > -1) {\r\n if (Math.abs(val.Difference) > this.GPSClockInFaultTolerance) {\r\n validEmployees.splice(validEmployees.indexOf(parseInt(employee)), 1);\r\n unbalancedErrors.push(parseInt(employee));\r\n return false;\r\n }\r\n\r\n }\r\n }\r\n\r\n });\r\n }\r\n });\r\n if (unbalancedErrors.length == 0 && invalidErrors.length == 0) {\r\n return { Success: true, Error: null };\r\n }\r\n else {\r\n let errorMessage = \"Could not submit timecard.\";\r\n if (invalidErrors.length > 0) {\r\n errorMessage += \"
Time worked invalid for employees: \" + invalidErrors.join(\",\");\r\n }\r\n if (unbalancedErrors.length > 0) {\r\n errorMessage += \"
Time worked does not match up with time allocation for employees: \" + unbalancedErrors.join(\",\");\r\n }\r\n return { Success: false, Error: { type: \"danger\", msg: errorMessage } };\r\n }\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n {{timeWorkedAlert.msg}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n chevron_right\r\n expand_more\r\n \r\n Time Worked\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 Time Worked Saved\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Time Worked Saved\r\n
\r\n
\r\n {{timeWorkedSubTotals[selectedDay.DayNumber].Subtotal}}\r\n
\r\n GPSClockInFaultTolerance }\"\r\n [ngbPopover]=\"popContent\"\r\n triggers=\"mouseenter:mouseleave\">\r\n ({{timeWorkedSubTotals[selectedDay.DayNumber].Difference}})\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Loading...\"\r\n
Please wait while your daily time is loading...
\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 {{day.Day}}\r\n
Start:\r\n payPeriod.EndDateValue || (GPSClockInEnabled && !isTimecardAdmin && (!allowApproverTimeWorkedEdit || !isApprover))\"\r\n (blur)=\"saveTimeWorked(timeWorkedSequence[day.DayNumber], day, seqIndex)\"\r\n apptimeValidateFormat\r\n [cell]=\"'StartTime'\" />\r\n
\r\n \r\n {{timeWorkedSequence[day.DayNumber].StartTime}}\r\n \r\n
\r\n
Stop:\r\n payPeriod.EndDateValue || (GPSClockInEnabled && !isTimecardAdmin && (!allowApproverTimeWorkedEdit || !isApprover))\"\r\n (blur)=\"saveTimeWorked(timeWorkedSequence[day.DayNumber], day, seqIndex)\"\r\n apptimeValidateFormat\r\n [cell]=\"'StopTime'\" />\r\n
\r\n \r\n {{timeWorkedSequence[day.DayNumber].StopTime}}\r\n \r\n
\r\n
Break Hours:\r\n payPeriod.EndDateValue || (GPSClockInEnabled && !isTimecardAdmin && (!allowApproverTimeWorkedEdit || !isApprover))\"\r\n (blur)=\"saveTimeWorked(timeWorkedSequence[day.DayNumber], day, seqIndex)\"/>\r\n
\r\n \r\n {{timeWorkedSequence[day.DayNumber].BreakHours}}\r\n \r\n
\r\n
Subtotal:\r\n
\r\n {{timeWorkedSubTotals[day.DayNumber].Subtotal}}\r\n
\r\n GPSClockInFaultTolerance }\"\r\n [ngbPopover]=\"popContent\" placement=\"bottom\"\r\n triggers=\"mouseenter:mouseleave\">\r\n ({{timeWorkedSubTotals[day.DayNumber].Difference}})\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 payPeriod.EndDate || (GPSClockInEnabled && !isTimecardAdmin && (!allowApproverTimeWorkedEdit || !isApprover))\"\r\n (blur)=\"saveTimeWorked(sequence[selectedDay.DayNumber], selectedDay, seqIndex)\"\r\n apptimeValidateFormat\r\n [cell]=\"'StartTime'\" />\r\n \r\n {{sequence[selectedDay.DayNumber].StartTime}}\r\n \r\n
\r\n
\r\n payPeriod.EndDate || (GPSClockInEnabled && !isTimecardAdmin && (!allowApproverTimeWorkedEdit || !isApprover))\"\r\n (blur)=\"saveTimeWorked(sequence[selectedDay.DayNumber], selectedDay, seqIndex)\"\r\n apptimeValidateFormat\r\n [cell]=\"'StopTime'\" />\r\n \r\n {{sequence[selectedDay.DayNumber].StopTime}}\r\n \r\n
\r\n
\r\n payPeriod.EndDate || (GPSClockInEnabled && !isTimecardAdmin && (!allowApproverTimeWorkedEdit || !isApprover))\"\r\n (blur)=\"saveTimeWorked(sequence[selectedDay.DayNumber], selectedDay, seqIndex)\" />\r\n \r\n {{sequence[selectedDay.DayNumber].BreakHours}}\r\n \r\n
\r\n
\r\n
\r\n {{timeWorkedSubTotals[selectedDay.DayNumber].Subtotal}}\r\n
\r\n GPSClockInFaultTolerance }\"\r\n [ngbPopover]=\"popContent\"\r\n triggers=\"mouseenter:mouseleave\">\r\n ({{timeWorkedSubTotals[selectedDay.DayNumber].Difference}})\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?\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{timeWorkedSubTotals[selectedDay.DayNumber].Subtotal}}\r\n
\r\n GPSClockInFaultTolerance }\"\r\n [ngbPopover]=\"popContent\"\r\n triggers=\"mouseenter:mouseleave\">\r\n ({{timeWorkedSubTotals[selectedDay.DayNumber].Difference}})\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Loading...\"\r\n
Please wait while your daily time is loading...
\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 {{day.Day}}\r\n
Subtotal:\r\n
\r\n {{timeWorkedSubTotals[day.DayNumber].Subtotal}}\r\n
\r\n GPSClockInFaultTolerance }\"\r\n [ngbPopover]=\"popContent\"\r\n triggers=\"mouseenter:mouseleave\">\r\n ({{timeWorkedSubTotals[day.DayNumber].Difference}})\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 { Directive, ElementRef, Input, Renderer2 } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n//\r\n\r\n@Directive({\r\n selector: 'input[type=checkbox][trueFalseValue]',\r\n host: {\r\n '(change)': 'onChange($event.target.checked)'\r\n },\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: CheckBoxYNDirective,\r\n multi: true\r\n }\r\n ]\r\n})\r\n\r\nexport class CheckBoxYNDirective implements ControlValueAccessor {\r\n\r\n private propagateChange = (_: any) => { };\r\n @Input() trueValue:string;\r\n @Input() falseValue:string;\r\n\r\n constructor(private elementRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n onChange(isChecked: any) {\r\n this.propagateChange(isChecked ? this.trueValue : this.falseValue);\r\n }\r\n\r\n //Model value to View\r\n writeValue(obj: any): void {\r\n if (obj === this.trueValue) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', true);\r\n } else {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'checked', false);\r\n }\r\n }\r\n\r\n //Update model value\r\n registerOnChange(fn: any): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void { }\r\n\r\n setDisabledState?(isDisabled: boolean): void { }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appElastic]'\r\n})\r\nexport class ElasticDirective {\r\n\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n @HostListener(':input')\r\n onInput() {\r\n this.resize();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.elementRef.nativeElement.scrollHeight) {\r\n setTimeout(() => this.resize());\r\n }\r\n }\r\n\r\n resize() {\r\n this.elementRef.nativeElement.style.height = '0';\r\n this.elementRef.nativeElement.style.height = this.elementRef.nativeElement.scrollHeight + 'px';\r\n }\r\n}\r\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appFileread]',\r\n host: {\r\n '(change)': 'read($event)'\r\n },\r\n})\r\nexport class FilereadDirective {\r\n @Input() fileread: string;\r\n @Input() filename: string;\r\n @Input() filedata: string;\r\n @Output() filereadChange: EventEmitter = new EventEmitter();\r\n @Output() filenameChange: EventEmitter = new EventEmitter();\r\n @Output() filedataChange: EventEmitter = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n read(value: any) {\r\n var reader = new FileReader();\r\n this.filenameChange.emit(value.target.files[0].name);\r\n this.filedataChange.emit(value.target.files[0].name);\r\n reader.onload = (e) =>{\r\n var arrayBuffer = reader.result;\r\n var binaryString = '',\r\n bytes = new Uint8Array(arrayBuffer),\r\n length = bytes.length;\r\n for (var i = 0; i < length; i++) {\r\n binaryString += String.fromCharCode(bytes[i]);\r\n }\r\n this.filereadChange.emit(btoa(binaryString));\r\n }\r\n reader.readAsArrayBuffer(value.target.files[0]);\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appPercentNumber]',\r\n host: {\r\n '(blur)': 'calculatePercent($event.target.value)'\r\n }\r\n})\r\nexport class PercentNumberDirective {\r\n\r\n @Input(\"value\") value: string;\r\n @Output() valueChange = new EventEmitter();\r\n\r\n constructor(private _elementRef: ElementRef) { }\r\n\r\n calculatePercent(value: string) {\r\n var newVal = value;\r\n var actual;\r\n if (!newVal) {\r\n return '';\r\n }\r\n newVal = newVal.replace(/\\D/g, '');\r\n if (newVal != null && newVal != '') {\r\n actual = parseInt(newVal);\r\n this.value = actual.toString() + '%';\r\n }\r\n else {\r\n this.value = null;\r\n }\r\n\r\n //Update input control and ngModel value\r\n this._elementRef.nativeElement.setAttribute('value', this.value);\r\n this.valueChange.emit(this.value);\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\n\r\n@Directive({\r\n selector: '[appPhoneFormat]',\r\n host: {\r\n '(keyup)': 'validatePhoneNumber($event)',\r\n '(blur)': 'validatePhoneNumber($event)'\r\n }\r\n})\r\nexport class PhoneFormatDirective {\r\n portalSetting: any;\r\n @Input(\"value\") value: string;\r\n @Output() valueChange = new EventEmitter();\r\n\r\n constructor(private elementRef: ElementRef, portalSettingService: PortalSettingsService) {\r\n this.portalSetting = portalSettingService.getPortalSettings();\r\n }\r\n\r\n validatePhoneNumber(event: any) {\r\n var mask = this.portalSetting.PhoneMask.ConfigValue;\r\n if (mask) {\r\n var maskLength = mask.replace(/[\\D\\s]/gi, '').length;\r\n var newVal = event.target.value.replace(/[\\D\\s]/gi, '');\r\n this.value = \"\";\r\n var maskPosition = 0;\r\n for (var i = 0; i < newVal.length; i++) {\r\n\r\n if (i >= maskLength) {\r\n break;\r\n }\r\n var maskCharacter = mask.charAt(maskPosition);\r\n if (maskCharacter == \"\") {\r\n break;\r\n }\r\n while ((maskCharacter != '9')) {\r\n this.value += maskCharacter;\r\n maskPosition++;\r\n maskCharacter = mask.charAt(maskPosition);\r\n }\r\n this.value += newVal.charAt(i);\r\n maskPosition++;\r\n }\r\n this.elementRef.nativeElement.setAttribute('value', this.value);\r\n this.valueChange.emit(this.value);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\n\r\n@Directive({\r\n selector: '[appSsnFormat]',\r\n host: {\r\n '(keyup)': 'validateSSN($event,true)',\r\n '(blur)': 'validateSSN($event,false)'\r\n }\r\n})\r\nexport class SsnFormatDirective {\r\n portalSetting: any;\r\n @Input(\"value\") value: string;\r\n @Output() valueChange = new EventEmitter();\r\n\r\n constructor(private elementRef: ElementRef, private portalSettingService: PortalSettingsService) {\r\n this.portalSetting = portalSettingService.getPortalSettings();\r\n }\r\n\r\n validateSSN(event: any, type: boolean) {\r\n if (type) {\r\n\r\n var mask = \"\";\r\n var country = this.portalSetting.CountryDateCode.ConfigValue\r\n switch (country.toUpperCase()) {\r\n case \"US\":\r\n mask = \"999-99-9999\";\r\n break;\r\n case \"CAN\":\r\n case \"CA\":\r\n mask = \"999-999-999\";\r\n break;\r\n default:\r\n mask = \"999-99-9999\";\r\n break;\r\n }\r\n\r\n var maskLength = mask.replace(/[\\D\\s]/gi, '').length;\r\n var newVal = event.target.value.replace(/[^\\d|-]/gi, '');\r\n var newVal = newVal.replace(/[\\D\\s]/gi, '');\r\n this.value = \"\";\r\n for (var i = 0; i < newVal.length; i++) {\r\n if (i >= maskLength) {\r\n break;\r\n }\r\n if (country == \"US\") {\r\n if (i == 3 || i == 5) {\r\n this.value += (\"-\" + newVal.charAt(i));\r\n }\r\n else {\r\n this.value += (newVal.charAt(i));\r\n }\r\n } else if (country == \"CA\" || country == \"CAN\") {\r\n if (i == 3 || i == 6) {\r\n this.value += (\"-\" + newVal.charAt(i));\r\n }\r\n else {\r\n this.value += (newVal.charAt(i));\r\n }\r\n } else {\r\n if (i == 3 || i == 5) {\r\n this.value += (\"-\" + newVal.charAt(i));\r\n }\r\n else {\r\n this.value += (newVal.charAt(i));\r\n }\r\n\r\n }\r\n }\r\n this.elementRef.nativeElement.setAttribute('value', this.value);\r\n this.valueChange.emit(this.value);\r\n }\r\n else {\r\n var mask = \"\";\r\n switch (this.portalSetting.CountryDateCode.ConfigValue.toUpperCase()) {\r\n case \"US\":\r\n mask = \"999-99-9999\";\r\n break;\r\n case \"CAN\":\r\n case \"CA\":\r\n mask = \"999-999-999\";\r\n break;\r\n default:\r\n mask = \"999-99-9999\";\r\n break;\r\n }\r\n if (!mask || mask == \"\" || mask == undefined) {\r\n return;\r\n }\r\n else {\r\n\r\n var maskLength = mask.replace(/[^\\w\\s]/gi, '').length;\r\n var origVal = event.target.value.replace(/[\\D\\s]/gi, '');\r\n $(this).val(origVal);\r\n var maskedEntry = \"\";\r\n var inputChar = 0;\r\n\r\n if (origVal.length >= maskLength) {\r\n for (var i = 0; i < mask.length; i++) {\r\n if (mask.charAt(i) == '9') {\r\n maskedEntry += origVal.charAt(inputChar);\r\n inputChar++;\r\n }\r\n else {\r\n maskedEntry += mask.charAt(i);\r\n }\r\n }\r\n $(this).val(maskedEntry);\r\n }\r\n else {\r\n this.elementRef.nativeElement.setAttribute('value', this.value);\r\n this.valueChange.emit(this.value);\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, Input, Output, EventEmitter } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { TimeParserService } from 'src/app/core/services/time-parser.service';\r\nimport { cloneDeep } from 'lodash';\r\n\r\n@Directive({\r\n selector: '[apptimeValidateFormat]',\r\n host: {\r\n '(blur)': 'formatTime($event.target.value)',\r\n '(input)': 'validate($event.target.value)'\r\n },\r\n})\r\n\r\nexport class TimeValidateDirective {\r\n @Input('cell') cell: string;\r\n @Input('apptimeValidateFormat') timeValidate: string;\r\n @Input('isTimeValid') isTimeValid: boolean;\r\n @Input('value') time: string\r\n @Output() isTimeValidChange = new EventEmitter();\r\n @Output() valueChange = new EventEmitter();\r\n timeStr: any\r\n timeOfDay : string\r\n\r\n constructor(private timeParserService: TimeParserService) {\r\n }\r\n\r\n validate(value: string) {\r\n this.timeStr = value;\r\n var isTimeEmpty = this.timeStr == '' || this.timeStr == null;\r\n if (!isTimeEmpty) {\r\n this.isTimeValid = this.parseTime() != null\r\n }\r\n //var validateIndex = this.timeValidate;\r\n //var validationKey = 'time_' + validateIndex;\r\n this.isTimeValidChange.emit(this.isTimeValid);\r\n }\r\n parseTime(){\r\n this.timeStr = this.timeStr.trim().replace(\" \", \"\");\r\n var timeOfDay = this.timeStr.toUpperCase().indexOf('A') != -1\r\n ? 'AM'\r\n : this.timeStr.toUpperCase().indexOf('P') != -1\r\n ? 'PM' : null;\r\n //detect non-colon time\r\n if (timeOfDay == null && this.timeStr.trim().length > 2 && this.timeStr.indexOf(\":\") == -1) {\r\n this.timeStr = this.timeStr.slice(0, this.timeStr.length - 2) + \":\" + this.timeStr.slice(this.timeStr.length - 2);\r\n }\r\n else if (this.timeStr.length > 4 && this.timeStr.indexOf(\":\") == -1) {\r\n var tempTimeStr = this.timeStr.toLowerCase();\r\n tempTimeStr = tempTimeStr.replace(\" \", \"\").replace(\"am\", \"\").replace(\"pm\", \"\").trim();\r\n tempTimeStr = tempTimeStr.slice(0, tempTimeStr.length - 2) + \":\" + tempTimeStr.slice(tempTimeStr.length - 2);\r\n this.timeStr = tempTimeStr + \" \" + timeOfDay;\r\n }\r\n return this.timeParserService.parseTime(this.timeStr);\r\n }\r\n\r\n formatTime(value: any) {\r\n if (value != null && value != \"\") {\r\n this.timeStr = value;\r\n var oldTimeStr = cloneDeep(this.timeStr);\r\n var timeObj = this.parseTime()\r\n if (timeObj != null) {\r\n if (this.timeOfDay == null) {\r\n if ('StartTime' == this.cell) {\r\n //hours format\r\n if (this.timeStr >= 1 && this.timeStr <= 5) {\r\n timeObj.addHours(12);\r\n }\r\n //colon format\r\n var tempTimeStr = this.timeStr.replace(\":\", \"\");\r\n if (tempTimeStr >= 100 && tempTimeStr <= 559) {\r\n timeObj.addHours(12);\r\n }\r\n }\r\n else if ('StopTime' == this.cell) {\r\n //hours format\r\n if (this.timeStr >= 1 && this.timeStr <= 8) {\r\n timeObj.addHours(12);\r\n }\r\n //colon format\r\n var tempTimeStr = this.timeStr.replace(\":\", \"\");\r\n if (tempTimeStr >= 100 && tempTimeStr <= 859) {\r\n timeObj.addHours(12);\r\n }\r\n }\r\n }\r\n }\r\n var newTimeStr = moment(timeObj).format('hh:mm A');\r\n if (oldTimeStr != newTimeStr) {\r\n this.valueChange.emit(newTimeStr);\r\n }\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';\r\nimport { PortalSettingsService } from 'src/app/core/services/portal-settings.service';\r\n\r\n@Directive({\r\n selector: '[appUSZipFormat]',\r\n host: {\r\n '(keyup)': 'validateZipCode($event,true)',\r\n '(blur)': 'validateZipCode($event,false)'\r\n }\r\n})\r\nexport class USZipFormatDirective {\r\n portalSetting: any;\r\n //Read Country code if its value is passed\r\n @Input('appUSZipFormat') selectedCountryCode: string;\r\n @Input(\"value\") value: string;\r\n @Output() valueChange = new EventEmitter();\r\n\r\n constructor(private elementRef: ElementRef, portalSettingService: PortalSettingsService) {\r\n this.portalSetting = portalSettingService.getPortalSettings();\r\n }\r\n\r\n validateZipCode(event: any, type: boolean) {\r\n if (type) {\r\n var mask = \"\";\r\n var country = (this.selectedCountryCode != '' && this.selectedCountryCode != undefined) ? this.selectedCountryCode : this.portalSetting.CountryDateCode.ConfigValue\r\n\r\n switch (country.toUpperCase()) {\r\n case \"US\":\r\n mask = \"99999\";\r\n break;\r\n case \"CAN\":\r\n case \"CA\":\r\n mask = \"L9L 9L9\";\r\n break;\r\n case \"AU\":\r\n mask = \"9999\";\r\n break;\r\n default:\r\n mask = \"99999\";\r\n break;\r\n }\r\n\r\n var newVal = event.target.value.replace(/[^a-zA-Z0-9]/gi, '');\r\n var maskLength = mask.length;\r\n this.value = \"\";\r\n var maskPosition = 0;\r\n\r\n for (var i = 0; i < newVal.length; i++) {\r\n if (i >= maskLength) {\r\n break;\r\n }\r\n var maskCharacter = mask.charAt(maskPosition);\r\n if (maskCharacter == \"\") {\r\n break;\r\n }\r\n while ((maskCharacter != '9') && (maskCharacter != 'L')) {\r\n this.value += maskCharacter;\r\n maskPosition++;\r\n maskCharacter = mask.charAt(maskPosition);\r\n }\r\n if (maskCharacter == 'L' && !newVal.charAt(i).match(/[a-zA-Z]/i)) {\r\n break;\r\n }\r\n if (maskCharacter == '9' && !newVal.charAt(i).match(/\\d/i)) {\r\n break;\r\n }\r\n this.value += newVal.charAt(i);\r\n maskPosition++;\r\n }\r\n this.elementRef.nativeElement.setAttribute('value', this.value);\r\n this.valueChange.emit(this.value);\r\n }\r\n else {\r\n var mask = \"\";\r\n var country = (this.selectedCountryCode != '' && this.selectedCountryCode != undefined) ? this.selectedCountryCode : this.portalSetting.CountryDateCode.ConfigValue\r\n switch (country.toUpperCase()) {\r\n case \"US\":\r\n mask = \"99999\";\r\n break;\r\n case \"CAN\":\r\n case \"CA\":\r\n mask = \"L9L 9L9\";\r\n break;\r\n case \"AU\":\r\n mask = \"9999\";\r\n break;\r\n default:\r\n mask = \"99999\";\r\n break;\r\n }\r\n\r\n if (!mask || mask == \"\" || mask == undefined) {\r\n return;\r\n }\r\n else {\r\n var maskLength = mask.length;\r\n var origVal = event.target.value;\r\n if (!((origVal.length == maskLength))) {\r\n this.value = \"\";\r\n this.elementRef.nativeElement.setAttribute('value', this.value);\r\n this.valueChange.emit(this.value);\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'daysAndHours'\r\n})\r\nexport class DaysAndHoursPipe implements PipeTransform {\r\n\r\n transform(daysAndHours: any, units: string, stdWorkdayHours: number, hideUnits: undefined, roundValue: undefined): any {\r\n var daysAndHourss = parseFloat(daysAndHours);\r\n if (!stdWorkdayHours)\r\n stdWorkdayHours = 8;\r\n if (!daysAndHourss || daysAndHourss == 0) {\r\n if (units == 'H')\r\n return '0' + (hideUnits ? \"\" : \" hrs\");\r\n else if (units == 'D')\r\n return '0' + (hideUnits ? \"\" : \" days\");\r\n }\r\n else {\r\n if (units == 'H') {\r\n if (roundValue)\r\n return Math.round(daysAndHourss) + (hideUnits ? \"\" : \" hrs\");\r\n else\r\n return parseFloat(daysAndHourss.toFixed(2)) + (hideUnits ? \"\" : \" hrs\");\r\n\r\n }\r\n\r\n else if (units == 'D') {\r\n var days = daysAndHourss / stdWorkdayHours;\r\n if (roundValue)\r\n return Math.round(days) + (hideUnits ? \"\" : \" days\");\r\n return parseFloat(days.toFixed(2)) + (hideUnits ? \"\" : \" days\");\r\n }\r\n }\r\n //return parseFloat(daysAndHours.toFixed(2)) + \"hrs\";\r\n return 0;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeUrl } from '@angular/platform-browser';\r\nimport DOMPurify from 'dompurify';\r\n\r\n@Pipe({\r\n name: 'dOMSafe'\r\n})\r\nexport class DOMSafePipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n public transform(value: any, type: string): SafeHtml | SafeUrl {\r\n const sanitizedContent = DOMPurify.sanitize(value);\r\n switch (type) {\r\n case 'html': return this.sanitizer.sanitize(SecurityContext.HTML, value);\r\n case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\r\n case 'stylesafehtml': return this.sanitizer.bypassSecurityTrustHtml(sanitizedContent);\r\n default: throw new Error('Invalid safe type specified : ${type}');\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as _ from 'lodash';\r\n\r\n@Pipe({\r\n name: 'orderBy'\r\n})\r\nexport class OrderByPipe implements PipeTransform {\r\n\r\n transform(value: any[], column: any[], order: any): any[] {\r\n if (!value || order === '' || !order) { return value; } // no array\r\n if (value.length <= 1) { return value; } // array with only one item\r\n if (Array.isArray(column)) {\r\n const partition = _.partition(value, val => { return (val[column[0]] != null && val[column[0]] != '') || (val[column[1]] != null && val[column[1]] != '') });\r\n return _.concat(_.orderBy(partition[0], column.map(col => {\r\n return row => {\r\n let value = _.get(row, col);\r\n return value != null ? typeof (value) == 'string' ? col == 'Job' || col == 'WorkOrder' ? parseInt(_.trimStart(value)) : col == 'OverallScore' ? parseFloat(_.trimStart(value)) : _.trimStart(value.toLowerCase()) : value : ''\r\n }\r\n }), [order, order]), partition[1]);\r\n }\r\n else {\r\n const partition = _.partition(value, (val: any) => {\r\n return val[column] != null && val[column] !== '';\r\n });\r\n if (typeof (value[0][column]) == \"boolean\") {\r\n const partition2 = _.partition(value, (val: any) => {\r\n return val[column];\r\n });\r\n if (order == \"asc\")\r\n return _.concat(partition2[1], partition2[0]);\r\n else\r\n return _.concat(partition2[0], partition2[1]);\r\n } else {\r\n return _.concat(_.orderBy(partition[0], [val => (val[column] != null ? (typeof (val[column]) == 'string' ? (column == 'Job' || column == 'Job_Name' || column == 'WorkOrder' ? parseInt(_.trimStart(val[column])) : (column == 'OverallScore' ? parseFloat(_.trimStart(val[column])) : _.trimStart(val[column].toLowerCase()))) : val[column]) : '')], order), partition[1]);\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ngfModule } from 'angular-file';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { CalendarModule, DateAdapter } from 'angular-calendar';\r\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\r\nimport { QuillModule } from 'ngx-quill';\r\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\r\n\r\n//Directive imports\r\nimport { PhoneFormatDirective } from './directive/phone-format.directive';\r\nimport { USZipFormatDirective } from './directive/uszip-format.directive';\r\nimport { TimeValidateDirective } from './directive/time-validate.directive';\r\nimport { PercentNumberDirective } from './directive/percent-number.directive';\r\nimport { CheckBoxYNDirective } from './directive/check-box-yn.directive';\r\nimport { ElasticDirective } from './directive/elastic.directive';\r\n\r\n//Pipe imports\r\nimport { OrderByPipe } from './pipe/order-by.pipe';\r\nimport { DOMSafePipe } from './pipe/domsafe.pipe';\r\nimport { DaysAndHoursPipe } from './pipe/days-and-hours.pipe';\r\n\r\n//Component imports\r\nimport { SearchDropDownComponent } from './component/search-drop-down/search-drop-down.component';\r\nimport { FileUploadComponent } from './component/file-upload/file-upload.component';\r\nimport { MultipleDateSelectorComponent } from './component/multiple-date-selector/multiple-date-selector.component';\r\nimport { SsnFormatDirective } from './directive/ssn-format.directive';\r\nimport { FilereadDirective } from './directive/fileread.directive';\r\nimport { RichTextEditorComponent } from './component/rich-text-editor/rich-text-editor.component';\r\nimport { AutoCompleteEmailComponent } from './component/auto-complete-email/auto-complete-email.component';\r\nimport { CrewTimecardGridComponent } from './component/crew-timecard-grid/crew-timecard-grid.component';\r\nimport { TimeWorkedComponent } from './component/time-worked/time-worked.component';\r\nimport { AutoCompleteEmailTCBComponent } from './component/auto-complete-email-t-c-b/auto-complete-email-t-c-b.component';\r\n\r\n\r\n\r\n//Sort order for declarations/exports - Directives,Pipes,Components\r\n@NgModule({\r\n declarations: [\r\n PhoneFormatDirective,\r\n USZipFormatDirective,\r\n TimeValidateDirective,\r\n PercentNumberDirective,\r\n CheckBoxYNDirective,\r\n OrderByPipe,\r\n DOMSafePipe,\r\n DaysAndHoursPipe,\r\n SearchDropDownComponent,\r\n PercentNumberDirective,\r\n CheckBoxYNDirective,\r\n FileUploadComponent,\r\n SsnFormatDirective,\r\n MultipleDateSelectorComponent,\r\n FilereadDirective,\r\n RichTextEditorComponent,\r\n AutoCompleteEmailComponent,\r\n CrewTimecardGridComponent,\r\n TimeWorkedComponent,\r\n ElasticDirective,\r\n AutoCompleteEmailTCBComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ngfModule,\r\n NgSelectModule,\r\n CalendarModule.forRoot({\r\n provide: DateAdapter,\r\n useFactory: adapterFactory,\r\n }),\r\n QuillModule,\r\n CollapseModule,\r\n NgbModule\r\n ],\r\n exports: [\r\n PhoneFormatDirective,\r\n USZipFormatDirective,\r\n TimeValidateDirective,\r\n PercentNumberDirective,\r\n CheckBoxYNDirective,\r\n ElasticDirective,\r\n OrderByPipe,\r\n DOMSafePipe,\r\n DaysAndHoursPipe,\r\n SearchDropDownComponent,\r\n PercentNumberDirective,\r\n CheckBoxYNDirective,\r\n FileUploadComponent,\r\n SsnFormatDirective,\r\n MultipleDateSelectorComponent,\r\n FilereadDirective,\r\n RichTextEditorComponent,\r\n AutoCompleteEmailComponent,\r\n CrewTimecardGridComponent,\r\n TimeWorkedComponent,\r\n AutoCompleteEmailTCBComponent\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { DefaultUrlSerializer, UrlTree } from '@angular/router';\r\n\r\n/** Pass URL and convert them to lower case. */\r\n@Injectable()\r\nexport class CustomUrlSerializer extends DefaultUrlSerializer {\r\n\r\n parse(url: string): UrlTree {\r\n\r\n var routeRegex = /^([/][A-Za-z]+)([/][A-Za-z]+)?/;\r\n var routeMatch = routeRegex.exec(url);\r\n if (routeMatch != null) {\r\n url = url.replace(routeMatch[0], routeMatch[0].toLowerCase());\r\n }\r\n return super.parse(url);\r\n }\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nimport { registerLicense } from '@syncfusion/ej2-base';\r\nregisterLicense('ORg4AjUWIQA/Gnt2V1hhQlJDfV5AQmBIYVp/TGpJfl96cVxMZVVBJAtUQF1hSn5bdkBjWXtYcXVTRmRd');//22.1.37\r\n//registerLicense('ORg4AjUWIQA/Gnt2VVhkQlFacltJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxQdkRgWX5dcHNRTmBYVkc=');\r\n//registerLicense('ORg4AjUWIQA/Gnt2V1hhQlJAfV5AQmBIYVp/TGpJfl96cVxMZVVBJAtUQF1hSn5bdERiUH1YcHNRQWhb');//22.1.34\r\n\r\n//registerLicense('ORg4AjUWIQA/Gnt2V1hhQlJCfV5AQmBIYVp/TGpJfl96cVxMZVVBJAtUQF1hSn5bdERiUHtccnVQTmNY');//22.1.36\r\n\r\n\r\n\r\nenableProdMode();\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":[],"sourceRoot":"webpack:///"}